机器学习基础(三十七) —— 处理类别特征

当类别特征仍保持原始形式时,其取值来自所有可能取值构成的集合而不是一个数字,故不能作为输入。

当各个取值之间是没有顺序关系的并列关系,这样的类别特征称为 名义(nominal)变量。相反,那些存在顺序关系的(比如评级,评级5的会好于评级1的),则被称为 有序(ordinal)变量。

将类别特征表示为数字形式,常可借助 1-of-k 这样的编码方法进行。

假设变量的取值有 k 个,如果对这些值用 1 到 k 编序,则可用长度为 k 的二元向量来表示一个变量的值。在这样的向量里,该取值所对应的序号所在的元素为1,其他元素均为0.

>>> labels = ['A+', 'A-', 'B+', 'B-', 'C+','C-', 'D+', 'D-']
>>> binary_code = [0]*len(labels)
>>> binary_code[labels.index('B+')] = 1
>>> binary_code
[ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.]
                            # 根据 类别 B+ 获得其对应的二元向量编码
                            # [ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.]

你可能感兴趣的:(机器学习)