- sklearn.preprocessing.OrdinalEncoder是一个用于将分类特征编码为整数数组的预处理转换器
- 编码方式:将分类特征(如字符串或整数表示的离散特征)转换成序数整数形式。这样每个特征都被编码为一个整数序列,范围从 0 到该特征的类别数减一(n_categories - 1)
class sklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=<class 'numpy.float64'>, handle_unknown='error', unknown_value=None, encoded_missing_value=nan, min_frequency=None, max_categories=None)参数:
| categories | 可以设置为  如果是  如果是列表,则列表中的每个元素代表对应特征的预期类别,这些类别应该是有序的 | 
| dtype | 输出的数据类型,默认为 numpy.float64 | 
| handle_unknown | 处理未知类别的方式。 默认为  如果设置为  | 
| unknown_value | 当  需要注意的是,这个值必须和已有的编码值不同 | 
| encoded_missing_value | 编码缺失类别的值,默认为 np.nan | 
| min_frequency 和 max_categories | 这两个参数用于处理低频类别。 min_frequency用于定义什么样的频率算是低频,max_categories用于限制输出类别的数量。 | 
举例:
from sklearn.preprocessing import OrdinalEncoder
import numpy as np# 示例数据
data = [['low'], ['medium'], ['high'], ['medium'], ['low']]
encoder = OrdinalEncoder(dtype=np.int32).fit(data)
encoded_data = encoder.transform(data)print(encoded_data)
'''
[[1][2][0][2][1]]
'''