实现原理
首先是自然数排序方法,该方法的过程较为简单,即先对离散字段的不同取值进行排序,然后对其进行自然数值取值转化,例如下述过程:
实现过程
可以直接考虑调用sklearn中的OrdinalEncoder()评估器(转化器)。
from sklearn import preprocessing
# 和所有的sklearn中转化器使用过程类似,需要先训练、后使用:
X1 = np.array([['F'], ['M'], ['M'], ['F']])
# 实例化转化器
enc = preprocessing.OrdinalEncoder()
# 在X1上训练
enc.fit(X1)
# 对X1数据集进行转化
enc.transform(X1)
# 运行结果
# array([[0.],
# [1.],
# [1.],
# [0.]])
# 当然,该评估器的训练过程就相当于记录了原分类变量不同取值和自然数之间的对应关系,我们可以调用转化器如下属性来查看映射关系:
enc.categories_
# [array(['F', 'M'], dtype='<U1')]