为什么要用One-Hot编码?
在数据集中,经常碰到离散型的特征,比如:国家∈{中国,英国,法国,德国…}
如果我们使用country=0表示中国,…,country=3表示德国,这样的表示方法,无法在欧式空间里计算出合理的样本点之间的距离。
用自然数表示离散特征无法合理计算样本点距离?
保持两个样本点的其他特征不变(以求方便用0表示),只考虑国家这个特征(加粗,用自然数表示),那么有3个样本向量可以表示为:
person1 = [0, 0, 0, 0] (中国人)
person2 = [0, 0, 3, 0] (德国人)
person3 = [0, 0, 2, 0] (法国人)
而 dist(person1, person2) = 3
,dist(person2, person3) = 1
,这显然是不合理的。
用One-Hot?
其他同上,不过国家特征用one-hot编码表示:
person1 = [0, 0, 1, 0, 0, 0, 0]
person2 = [0, 0, 0, 0, 0, 1, 0]
person3 = [0, 0, 0, 0, 1, 0, 0]
这样,任意两个样本点的距离就相同了。
总结
使用one-hot编码可以解决离散型特征值的尴尬,但是依然还是有它的缺陷,等我学会了再来写博客。