one-hot编码矩阵方式

one-hot的编码方式:

如果一个特征有n个值,那么他就可以用一个n维的向量去表示这个特征,

例如:
人的身高用3个特征表示:高、矮、中等;那么用one-hot的形式就可以表示为:(1,0,0)高、(0,1,0)中等、(0,0,1)矮。

也就是用一个3维的数组去表示原来的一个特征,且3维数组中的数有且只有一个是1.

优缺点:

优点:

能够处理非连续型数值特征,也就是离散值。
在一定程度上也扩充了特征。比如性别本身是一个特征,经过one hot编码以后,就变成了男或女两个特征,将离散特征通过one-hot编码映射到欧式空间,在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
将离散型特征使用one-hot编码,可以会让特征之间的距离计算更加合理。比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是x_1 = (1), x_2 = (2), x_3 = (3)。两个工作之间的距离是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_3) = 2。那么x_1和x_3工作之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理。那如果使用one-hot编码,则得到x_1 = (1, 0, 0), x_2 = (0, 1, 0), x_3 = (0, 0, 1),那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的,显得更合理。
缺点:

如果原本的标签编码是有序的,那one hot编码就不合适了——会丢失顺序信息。
如果特征的特征值数目特别多,特征向量就会非常大,且非常稀疏。

优缺点参考原文链接:https://blog.csdn.net/randompeople/article/details/83244766

你可能感兴趣的:(one-hot编码矩阵方式)