KNN 同时使用离散和连续变量 作为训练数据

10 篇文章 6 订阅
6 篇文章 0 订阅

KNN是通过计算距离,获得最近的K个邻居 而完成分类, 所以说,他本质上是要用numeric 来完成分类。 所以可以通过将分类变量转换为numeric 来进行KNN分类:

 

衣服大小编码
S1
M2
L3

 

 

 

 

 

如果是这样的转化 没有问题, 因为本身 categorical data 就是有顺序的,(ordinal data), 当你对衣服大小编码时就是没问题的。

1<2 而 显示意义上 S<M, 所以是没问题, 可以直接KNN,结果也是相关的,因为衡量距离也是有意义的

但是如果分类变量是nominal的

职业编码
学生
老师2
农民3

 

 

 

 

 

这时候编码就有问题了, 为什么学生会小于老师, 等于为原有的数据添加的而外的信息, 那我如果用不同的编码的话结果就可能很不一样,所以KNN会有问题

对于这些数据 因为没有顺序,所以他们的距离应该是相等的。 所以编码应该是

职业编码
学生0,0,1
老师0,1,0
农民1,0,0

 

 

 

 

 

这样距离就是相等了, 但是这又会出现另一个问题,对于每一个职业都给了一个单独的binomial变量, 很有可能导致高维的问题 也就是 P>N, 即便K设置的很小很小, 预测的误差还是很大。

 

总结一句, 再对分类变量进行KNN时, 要仔细想想 KNN的“距离” 在分类变量的意义到底是什么

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值