『One-Hot 编码』在机器学习数据集中,为什么使用one-hot编码表示离散型特征?

为什么要用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) = 3dist(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编码可以解决离散型特征值的尴尬,但是依然还是有它的缺陷,等我学会了再来写博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值