# Create predictive scoring model

Create a new predictive scoring model.

Endpoint: POST /entities/predictive_segments
Version: 1.0.0

## Request fields (application/vnd.treasuredata.v1+json):

  - `id` (string)

  - `type` (string)
    Enum: "predictive-segment"

  - `attributes` (object)

  - `attributes.name` (string)

  - `attributes.description` (string,null)

  - `attributes.baseSegmentId` (integer,null)

  - `attributes.segmentId` (integer)

  - `attributes.scoredSegmentId` (integer,null)

  - `attributes.gradeThresholds` (array)
    Given the items [a, b, c], they must meet the condition a >= b >= c
    Example: [75,50,25]

  - `attributes.categoricalAsColumnNames` (array)

  - `attributes.categoricalArrayAsColumnNames` (array)

  - `attributes.quantitativeAsColumnNames` (array)

  - `attributes.preprocess` (array)
    Definition of preprocess. All of $item.column must be specified in one of categoricalAsColumnNames, categoricalArrayAsColumnNames, or quantitativeAsColumnNames.

  - `attributes.preprocess.column` (string, required)

  - `attributes.preprocess.source` (object, required)

  - `attributes.preprocess.source.column` (string)

  - `attributes.preprocess.source.table` (string)

  - `attributes.preprocess.source.functions` (array) — one of:
    - variant 1:
      - `function` (string, required)
        Enum: "+", "-", "*", "/"
      - `arg` (number)
    - variant 2:
      - `function` (string, required)
        Enum: "replace"
      - `search` (string)
      - `replacement` (string,null)
    - variant 3:
      - `function` (string, required)
        Enum: "substr"
      - `start` (number)
      - `length` (number)
    - variant 4:
      - `function` (string, required)
        Enum: "regexp_extract"
      - `pattern` (string)
      - `group` (number)
    - variant 5:
      - `function` (string, required)
        Enum: "day_of_week", "from_iso8601_timestamp", "ln", "elapsed_days", "td_ip_to_least_specific_subdivision_name", "td_ip_to_country_name", "td_ip_to_city_name", "td_ip_to_connection_type", "td_ip_to_domain"
    - variant 6:
      - `function` (string, required)
        Enum: "cast_as_quantitative"
      - `default` (number, required)
    - variant 7:
      - `function` (string, required)
        Enum: "cast_as_categorical"
      - `default` (string, required)
    - variant 8:
      - `function` (string, required)
        Enum: "cast_as_categorical_array"
    - variant 9:
      - `function` (string, required)
        Enum: "if"
      - `op` (string)
        Enum: ">", "<", "<=", ">=", "=", "!=", "is", "is\\", "not"
      - `right_value` (number,null)
      - `then` (number)
      - `else` (number)

  - `relationships` (object)

  - `relationships.parentFolder` (object)

  - `relationships.parentFolder.data` (object)

  - `relationships.parentFolder.data.id` (string, required)

  - `relationships.parentFolder.data.type` (string, required)
    Enum: "folder-segment"

## Response 200 fields (application/vnd.treasuredata.v1+json):

  - `data` (object, required)

  - `data.audienceId` (string)

  - `data.baseSegmentId` (string,null)

  - `data.segmentId` (string)

  - `data.scoredSegmentId` (string,null)

  - `data.name` (string)

  - `data.description` (string,null)

  - `data.categoricalAsColumnNames` (array)

  - `data.categoricalArrayAsColumnNames` (array)

  - `data.quantitativeAsColumnNames` (array)

  - `data.accuracy` (number,null)
    Accuracy for trained model evaluated on initial training.

  - `data.areaUnderRocCurve` (number,null)
    Evaluation score for the model. See also https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve

  - `data.gradeThresholds` (array)
    Given the items [a, b, c], they must meet the condition a >= b >= c
    Example: [75,50,25]

  - `data.createdAt` (string)

  - `data.updatedAt` (string)

  - `data.modelUpdatedAt` (string)

  - `included` (array, required)

  - `included.id` (string, required)

  - `included.type` (string, required)
    Enum: "user"

  - `included.attributes` (object, required)

  - `included.attributes.tdUserId` (string, required)

  - `included.attributes.name` (string, required)


