类别特征和序数特征
- 类别特征:一般的类别特征,这种特征没有顺序或距离的概念。
例如:性别(男/女)、国家、职业等。 - 序数特征:有着某种意义排序的类别特征,但又不同于数字特征。
例如:学历(学士/硕士/博士)、火车票等级(一等座/二等座),它们虽然是类别特征,但它们在某种意义上又是有顺序或距离的。
1,特征的预处理
- Label Encoding
- Frequency Encoding
- OneHot Encoding
(1)Label Encoding
Label Encding就是将各个类别特征的各个取值映射成对应的整数。
- sklearn.preprocessing.LabelEncoder:它是按字母顺序将类别特征的各个取值换成对应的有序的整数。
- pandas.factorize:它是按类别特征的各个取值出现的顺序将其换成对应的有序的整数。
(2)Frequency Encoding
将类别特征的各个取值换成各自对应的频率。
encoding = titanic.groupby(‘class’).size()
encoding = encoding/len(titanic)
titanic[‘enc’] = titanic.class.map(encoding)
(3)OneHot Encoding
一般将没有顺序的类别特征进行独热编码,因为独热编码之间,类别特征各个取值之间的距离是一样的。
2,特征生成
类别特征的特征生成一般是将几个类别特征连接到一起,组成一个新的取值比较多的联合类别特征。如下所示: