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]]
'''