当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn OrdinalEncoder用法及代码示例


本文简要介绍python语言中 sklearn.preprocessing.OrdinalEncoder 的用法。

用法:

class sklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=<class 'numpy.float64'>, handle_unknown='error', unknown_value=None)

将分类特征编码为整数数组。

该转换器的输入应该是类似整数或字符串的数组,表示分类(离散)特征所采用的值。特征被转换为序数整数。这会导致每个特征有一列整数(0 到 n_categories - 1)。

在用户指南中阅读更多信息。

参数

categories‘auto’ 或类似数组的列表,默认=’auto’

每个函数的类别(唯一值):

  • ‘auto’:根据训练数据自动确定类别。
  • list : categories[i] 包含第 i 列中预期的类别。传递的类别不应混合字符串和数值,如果是数值则应进行排序。

使用的类别可以在categories_ 属性中找到。

dtype数字类型,默认 np.float64

所需的输出数据类型。

handle_unknown{‘error’, ‘use_encoded_value’},默认='错误'

当设置为 ‘error’ 时,如果转换过程中出现未知的分类特征,将会引发错误。当设置为‘use_encoded_value’时,未知类别的编码值将设置为参数unknown_value给定的值。在 inverse_transform 中,未知类别将表示为 None。

unknown_valueint 或 np.nan,默认=无

当参数handle_unknown设置为‘use_encoded_value’时,该参数为必填参数,将设置未知类别的编码值。它必须与 fit 中用于编码任何类别的值不同。如果设置为 np.nan,则 dtype 参数必须是 float dtype。

属性

categories_数组列表

fit 期间确定的每个特征的类别(按 X 中的特征的顺序并与 transform 的输出相对应)。这不包括在 fit 期间未出现的类别。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

例子

给定具有两个特征的数据集,我们让编码器找到每个特征的唯一值并将数据转换为序数编码。

>>> from sklearn.preprocessing import OrdinalEncoder
>>> enc = OrdinalEncoder()
>>> X = [['Male', 1], ['Female', 3], ['Female', 2]]
>>> enc.fit(X)
OrdinalEncoder()
>>> enc.categories_
[array(['Female', 'Male'], dtype=object), array([1, 2, 3], dtype=object)]
>>> enc.transform([['Female', 3], ['Male', 1]])
array([[0., 2.],
       [1., 0.]])
>>> enc.inverse_transform([[1, 0], [0, 1]])
array([['Male', 1],
       ['Female', 2]], dtype=object)

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.preprocessing.OrdinalEncoder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。