特征工程之类别特征 处理方法介绍
2016-04-07 15:36
260 查看
当类别特征仍保持原始形式时,其取值来自所有可能取值构成的集合而不是一个数字,故不能作为输入。
当各个取值之间是没有顺序关系的并列关系,这样的类别特征称为 名义(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.]
当各个取值之间是没有顺序关系的并列关系,这样的类别特征称为 名义(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.]
相关文章推荐
- hibernate Entity注解
- shader first
- 数据结构与算法——二叉查找树类的C++实现
- 【剑指offer系列】 在O(1)时间删除链表节点___13
- 6.9.2 qmgr_active_done函数:处理已存在的退信文件
- 1.uniq去重命令讲解
- vsftpd.conf 详解与实例配置
- adgeView使用介绍
- 文件系统及其相关结构体
- 从0开始搭建主流框架(纯代码)
- 周志华老师的《机器学习》课后习题
- 华为OJ-名字的漂亮度
- 6.9.1.2 qmgr_entry_done:清理活动数据
- displacement map置换贴图
- 使用Maven创建Web项目
- Qt基础: 信号和槽
- 存储过程自学
- logstash邮件报警功能实现
- magento 计划任务
- 面试题76:单链表的归并排序