> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# infer_gender

> Try to infer a person's gender given a first name. 

Uses a machine learning model trained on a large database of names and the frequencies of associated genders.

## Usage

The following examples show how the step can be used in a recipe.

<Accordion title="Examples" icon="code" defaultOpen="true">
  <Tabs>
    <Tab title="Example 1">
      To use the default labels "male" and "female" in the resulting output simply use

      ```stan theme={null}
      infer_gender(ds.first_name) -> (ds.gender)
      ```
    </Tab>

    <Tab title="Example 2">
      To use labels "M" and "F" instead

      ```stan theme={null}
      infer_gender(ds.first_name), "labels": {"male": "M", "female": "F"}) -> (ds.gender)
      ```
    </Tab>

    <Tab title="Signature">
      General syntax for using the step in a recipe. Shows the inputs and outputs the step is expected to receive and will produce respectively. For futher details see sections below.

      ```stan theme={null}
      infer_gender(first_name: category, {
          "param": value,
          ...
      }) -> (gender: sex)
      ```
    </Tab>
  </Tabs>
</Accordion>

## Inputs & Outputs

The following are the inputs expected by the step and the outputs it produces. These are generally
columns (`ds.first_name`), datasets (`ds` or `ds[["first_name", "last_name"]]`) or models (referenced
by name e.g. `"churn-clf"`).

<Accordion title="Inputs" icon="right-to-bracket">
  <ParamField path="first_name" type="column[category]" required>
    Column containing first names.
  </ParamField>
</Accordion>

<Accordion title="Outputs" icon="right-from-bracket">
  <ParamField path="gender" type="column[sex]" required>
    Predicted gender for each name.
  </ParamField>
</Accordion>

## Configuration

The following parameters can be used to configure the behaviour of the step by including them in
a json object as the last "input" to the step, i.e. `step(..., {"param": "value", ...}) -> (output)`.

<Accordion title="Parameters" defaultOpen="true" icon="sliders">
  <ParamField path="labels" type="object">
    Labels for the male and female categories.
    An object mapping the "male" and "female" categories to custom labels.

    <Accordion title="Properties">
      <ParamField path="male" type="string" default="male">
        Label for the "male" category.
      </ParamField>

      <ParamField path="female" type="string" default="female">
        Label for the "female" category.
      </ParamField>
    </Accordion>
  </ParamField>
</Accordion>
