- 分类数据:某些数据属性只能归于某一类别的非数值型数据,如性别的男和女,颜色的红、黄、蓝
- 顺序数据:只能归于某一有序类别的非数值型数据,如评价的好、中、差,学历的博士、硕士、学士
标志方法处理分类和顺序数据
将所有分类或顺序数据的值域从一列多值的形态转换为多列**只包含真值(True/False,0/1)**的形态,也称为真值转换。
例如:
- 性别(男、女)标志转换后变为“性别-男”和“性别-女”两列,每列只有0和1两种值
- 评价(好、中、差)标志转换后变为“评价-好”、“评价-中”、“评价-差”三列,每列只有True和False两种值
为什么不能用数字表示不同的值而非要做标志转换?
因为无论用哪些数字来表示不同的值,数字和数字之间本身存在了差异
如分类数据用1表示男,2表示女,1和2之间有了距离为1的差异,但男和女之间并不存在这种差异;
再如顺序数据用3、2、1分别表示好、中、差,但3个数字之间的差异并不能表示出好、中、差之间的差异性
进行标志转换
1. sklearn处理
from sklearn.preprocessing import OneHotEncoder
data
sex level score
0 male high 1
1 Female low 2
2 Female middle 3
# 建立模型规则
model_enc = OneHotEncoder(sparse=False)
# 对数据应用模型规则
model_enc.fit_transform(data)
array([[