python将分类数据和顺序数据转换为标志变量

分类数据:某些数据属性只能归于某一类别的非数值型数据,如性别的男和女,颜色的红、黄、蓝顺序数据:只能归于某一有序类别的非数值型数据,如评价的好、中、差,学历的博士、硕士、学士标志方法处理分类和顺序数据将所有分类或顺序数据的值域从一列多值的形态转换为多列**只包含真值(True/False,0/1)**的形态,也称为真值转换。例如:性别(男、女)标志转换后变为“性别-男”和“性别-女”两列,每列只有0和1两种值评价(好、中、差)标志转换后变为“评价-好”、“评价-中”、“评价-差”三列,每列.
摘要由CSDN通过智能技术生成
  • 分类数据:某些数据属性只能归于某一类别的非数值型数据,如性别的男和女,颜色的红、黄、蓝
  • 顺序数据:只能归于某一有序类别的非数值型数据,如评价的好、中、差,学历的博士、硕士、学士

标志方法处理分类和顺序数据

将所有分类或顺序数据的值域从一列多值的形态转换为多列**只包含真值(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([[
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值