赚钱游戏一天500,seo关键词首页排名,网站建设方案打包,wordpress带个人中心一、背景
在机器学习算法中#xff0c;我们经常会遇到分类特征#xff0c;例如#xff1a;人的性别有男女#xff0c;祖国有中国#xff0c;美国#xff0c;法国等。这些特征值并不是连续的#xff0c;而是离散的#xff0c;无序的。通常我们需要对其进行特征数字化。…一、背景
在机器学习算法中我们经常会遇到分类特征例如人的性别有男女祖国有中国美国法国等。这些特征值并不是连续的而是离散的无序的。通常我们需要对其进行特征数字化。那什么是特征数字化呢例子如下 性别特征[男女] [0,1] 祖国特征[中国美国法国] [0,1,2] 运动特征[足球篮球羽毛球乒乓球] [0,1,2,3]
假如某个样本它的特征是这样的[男,中国,乒乓球]我们可以用 [0,0,3] 来表示但是这样的特征处理并不能直接放入机器学习算法中因为类别之间是无序的。
二、定义
独热编码是指将离散型的特征数据映射到一个高维空间中每个可能的取值都对应于高维空间的一个点在这些点上取值为1其余均为0因此独热编码也被称为“一位有效编码”或“One-of-K encoding”。
回到一开始的例子性别特征[男,女]按照N位状态寄存器来对N个状态进行编码的原理 性别特征[男女]这里N2 二维数据 男 10 女 01 地区特征[北京上海深圳]这里N3三维数据 北京 100 上海 010 深圳 001 工作特征[演员厨师公务员工程师律师]这里N5五维数据 演员 10000 老师 01000 公务员 00100 工程师 00010 消防员 00001
三、优缺点
独热编码的优点有以下几个
能够处理非数值属性。比如血型、性别等一定程度上扩充了特征。编码后的向量是稀疏向量只有一位是 1其他都是 0可以利用向量的稀疏来节省存储空间。能够处理缺失值。当所有位都是 0表示发生了缺失。此时可以采用处理缺失值提到的高维映射方法用第 N1 位来表示缺失值。
当然独热编码也存在一些缺点
高维度特征会带来以下几个方面问题
KNN 算法中高维空间下两点之间的距离很难得到有效的衡量逻辑回归模型中参数的数量会随着维度的增高而增加导致模型复杂出现过拟合问题通常只有部分维度是对分类、预测有帮助需要借助特征选择来降低维度。
四、代码
from sklearn import preprocessing enc preprocessing.OneHotEncoder() enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]]) #这里一共有4个数据3种特征array enc.transform([[0,1,3]]).toarray() #这里使用一个新的数据来测试print array # [[ 1 0 0 1 0 0 0 0 1]]参考
独热编码One-Hot Encoding-CSDN博客
机器学习数据预处理之独热编码One-Hot详解-CSDN博客