

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据科学配方步骤
<a name="recipe-actions.data-science"></a>

使用这些配方步骤可从不同的角度对数据进行制表和汇总，或者执行高级转换。

**Topics**
+ [BINARIZATION](recipe-actions.BINARIZATION.md)
+ [BUCKETIZATION](recipe-actions.BUCKETIZATION.md)
+ [CATEGORICAL\$1MAPPING](recipe-actions.CATEGORICAL_MAPPING.md)
+ [ONE\$1HOT\$1ENCODING](recipe-actions.ONE_HOT_ENCODING.md)
+ [SCALE](#recipe-actions.SCALE)
+ [SKEWNESS](recipe-actions.SKEWNESS.md)
+ [TOKENIZATION](recipe-actions.TOKENIZATION.md)

# BINARIZATION
<a name="recipe-actions.BINARIZATION"></a>

获取选定数值源列中的所有值，将其与阈值进行比较，然后输出每行为 1 或 0 的新列。

**参数**
+ `sourceColumn`：现有列的名称。

  `targetColumn`：要创建的新列的名称。

  `threshold`：指示用于赋值 0 或 1 的阈值的数字。

  `flip`：可以选择翻转二进制赋值，以便将较低的值赋为 1，将较高的值赋为 0。当 flip 参数为 true 时，小于或等于阈值的值会生成 1，大于阈值的值会生成 0。

**Example 示例**  
  

```
{
    "Action": {
        "Operation": "BINARIZATION",
        "Parameters": {
            "sourceColumn": "level",
            "targetColumn": "bin",
            "threshold": "100.0",
            "flip": "false"
        }
    }
}
```

# BUCKETIZATION
<a name="recipe-actions.BUCKETIZATION"></a>

分桶（在控制台中称为分箱）获取一列数值中的各项，将它们分组到由数值范围定义的分箱，然后输出一个显示每行分箱的新列。可以通过拆分或百分比完成分桶。下面的第一个示例使用拆分，第二个示例使用百分比。

**参数**
+ `sourceColumn`：现有列的名称。

  `targetColumn`：要创建的新列的名称。

  `bucketNames`：存储桶名称列表。

  `splits`：存储桶级别列表。存储桶连续排列，存储桶的上限将是下一个存储桶的下限。

  `percentage`：每个存储桶将以百分比形式描述。

**Example 使用拆分的示例**  
  

```
{
    "Action": {
        "Operation": "BUCKETIZATION",
        "Parameters": {
            "sourceColumn": "level",
            "targetColumn": "bin",
            "bucketNames": "[\"Bin1\",\"Bin2\",\"Bin3\"]",
            "splits": "[\"-Infinity\",\"2\",\"20\",\"Infinity\"]"
        }
    }
}
```

**Example 使用百分比的示例**  

```
{
    "Action": {
        "Operation": "BUCKETIZATION",
        "Parameters": {
            "sourceColumn": "level",
            "targetColumn": "bin",
            "bucketNames": "[\"Bin1\",\"Bin2\"]",
            "percentage": "50"
        }
    }
}
```

# CATEGORICAL\$1MAPPING
<a name="recipe-actions.CATEGORICAL_MAPPING"></a>

将一个或多个类别值映射到数值或其他值

**参数**
+ `sourceColumn`：现有列的名称。

  `categoryMap`：JSON 编码字符串，表示值到类别的映射。

  `deleteOtherRows`：如果为 `true`，则所有未映射的行都将从数据集中删除。

  `other`：如果提供，则所有未映射的值都将替换为此值。

  `keepOthers`：如果为 true，则所有未映射的值都将保持不变。

  `mapType`：映射的列的数据类型。

  `targetColumn`：要包含结果的列的名称。

**Example 示例**  
  

```
{
    "Action": {
        "Operation": "CATEGORICAL_MAPPING",
        "Parameters": {
            "categoryMap": "{\"United States of America\":\"1\",\"Canada\":\"2\",\"Cuba\":\"3\",\"Haiti\":\"4\",\"Dominican Republic\":\"5\"}",
            "deleteOtherRows": "false",
            "keepOthers": "true",           
            "mapType": "NUMERIC",
            "sourceColumn": "state_name",
            "targetColumn": "state_name_mapped"
        }
    }
}
```

# ONE\$1HOT\$1ENCODING
<a name="recipe-actions.ONE_HOT_ENCODING"></a>

创建 *n* 个数值列，其中 *n* 是所选类别变量中唯一值的数量。

例如，假设有一个名为 `shirt_size` 的列。衬衫有小号、中号、大号或超大号可供选择。列数据可能看起来类似以下内容。

```
shirt_size
-----------
L
XL
M
S
M
M
S
XL
M
L
XL
M
```

在这种情况下，`shirt_size` 有四个不同的值。因此，`ONE_HOT_ENCODING` 生成四个新列。每个新列都被命名为 `shirt_size_x`，其中 `x` 表示不同的 `shirt_size ` 值。

`shirt_size` 和所生成四列的结果如下所示。

```
shirt_size    shirt_size_S    shirt_size_M    shirt_size_L    shirt_size_XL
------------    ------------    ------------    ------------    -------------
L              0               0               1               0
XL             0               0               0               1
M              0               1               0               0
S              1               0               0               0
M              0               1               0               0
M              0               1               0               0
S              1               0               0               0
XL             0               0               0               1
M              0               1               0               0
L              0               0               1               0
XL             0               0               0               1
M              0               1               0               0
```

您为 `ONE_HOT_ENCODING` 指定的列最多可以有十（10）个不同的值。

**参数**
+ `sourceColumn`：现有列的名称。该列最多可以有 10 个不同的值。

**Example 示例**  
  

```
{
    "RecipeAction": {
        "Operation": "ONE_HOT_ENCODING",
        "Parameters": {
            "sourceColumn": "shirt_size"
        }
    }
}
```

## SCALE
<a name="recipe-actions.SCALE"></a>

缩放或标准化数值列中的数据范围。

**参数**
+ `sourceColumn`：现有列的名称。
+ `strategy`：要应用于列值的操作：
  + `MIN_MAX`：将值重新缩放到 [0,1] 的范围内
  + `SCALE_BETWEEN`：将值重新缩放到 2 个指定值的范围内。
  +  `MEAN_NORMALIZATION`：在 [-1, 1] 的范围内重新缩放数据，使其平均值（μ）为 0，标准差（σ）为 1
  +  `Z_SCORE`：线性缩放数据值，使其平均值（μ）为 0，标准差（σ）为 1。最适合处理异常值。
+ `targetColumn`：要包含结果的列的名称。

**Example 示例**  
  

```
{
    "Action": {
        "Operation": "NORMALIZATION",
        "Parameters": {
            "sourceColumn": "all_votes",
            "strategy": "MIN_MAX",
            "targetColumn": "all_votes_normalized"
        }
    }
}
```

# SKEWNESS
<a name="recipe-actions.SKEWNESS"></a>

对数据值应用转换以更改分布形状及其偏度。

**参数**
+ `sourceColumn`：现有列的名称。

  `targetColumn`：要创建的新列的名称。

  `skewFunction`
  + `ROOT`：提取值的根。可以在 `value` 参数中提供根。

    `LOG`：对数底值。可以在 `value` 参数中提供对数底。

    `SQUARE`：平方函数

  `value`：skewFunction 的参数。

**Example 示例**  
  

```
{
    "RecipeAction": {
        "Operation": "SKEWNESS",
        "Parameters": {
            "sourceColumn": "level",
            "targetColumn": "bin",
            "skewFunction": "LOG",
            "value": "2.718281828"
        }
    }
}
```

# TOKENIZATION
<a name="recipe-actions.TOKENIZATION"></a>

将文本拆分为较小的单位或词元，例如单个单词或术语。

**参数**
+ `sourceColumn`：现有列的名称。
+ `delimiter`：在词元化的单词之间显示的自定义分隔符。（默认行为是用空格分隔每个词元。）
+ `expandContractions`：如果为 `ENABLED`，请展开缩写词。例如：“don't”变成“do not”。
+ `stemmingMode`：将文本拆分为较小的单位或词元，例如单个小写单词或术语。有两种词干提取模式可供选择：`PORTER` \$1 `LANCASTER`。
+ `stopWordRemovalMode`：删除像 a、an、the 等常用词。
+ `customStopWords`：对于 `StopWordRemovalMode`，可用于指定自定义停用词列表。
+ `targetColumn`：要包含结果的列的名称。

**Example 示例**  
  

```
{
    "Action": {
        "Operation": "TOKENIZATION",
        "Parameters": {
            "customStopWords": "[]",
            "delimiter": "- ",
            "expandContractions": "ENABLED",
            "sourceColumn": "dimensions",
            "stemmingMode": "PORTER",
            "stopWordRemovalMode": "DEFAULT",
            "targetColumn": "dimensions_tokenized"
        }
    }

}
```