| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 记录篇:【百面机器学习】第一章.特征工程---类别型特征 -> 正文阅读 |
|
[人工智能]记录篇:【百面机器学习】第一章.特征工程---类别型特征 |
类别型特征(
Categorical Feature
)主要是指性别(男、女)、血型(
A
、
B
、AB、
O
)等只在有限选项内取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。
?在对数据进行预处理时,应该怎样处理类别型特征?
序号编码 序号编码通常用于处理类别间具有大小关系的数据。例如成绩,可以分为低、中、高三档,并且存在“高>中>低”的排序关系。序号编码会按照大小关系对类别型特征赋予一个数值ID,例如高表示为3、中表示为2、低表示为1,转换后依然保留了大小关系。
独热编码
独热编码通常用于处理类别间不具有大小关系的特征。例如血型,一共有4
个取值(A
型血、
B
型血、
AB
型血、
O
型血),独热编码会把血型变成一个
4
维稀疏向量,A
型血表示为(
1, 0, 0, 0
),
B
型血表示为(
0, 1, 0, 0
),
AB
型表示为(
0, 0,1, 0),
O
型血表示为(
0, 0, 0, 1
)。对于类别取值较多的情况下使用独热编码需要 注意以下问题。
(1)使用稀疏向量来节省空间。在独热编码下,特征向量只有某一维取值为1,其他位置取值均为0。因此可以利用向量的稀疏表示有效地节省空间,并且目前大部分的算法均接受稀疏向量形式的输入。
(
2
)配合特征选择来降低维度。高维度特征会带来几方面的问题。一是在
K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度。
二进制编码
二进制编码主要分为两步,先用序号编码给每个类别赋予一个类别
ID
,然后将类别ID
对应的二进制编码作为结果。以
A
、
B
、
AB
、
O
血型为例,表
1.1
是二进制编码的过程。A
型血的
ID
为
1
,二进制表示为
001
;
B
型血的
ID
为
2
,二进制表示为010;以此类推可以得到
AB
型血和
O
型血的二进制表示。可以看出,二进制编码本质上是利用二进制对ID
进行哈希映射,最终得到
0/1
特征向量,且维数少于独热编码,节省了存储空间。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 4:26:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |