Gra*_*ham 13 matlab classification octave ordinal knn
我正在忙着一个涉及k-最近邻回归的项目.我混合了数字和分类领域.分类值是序数(例如银行名称,帐户类型).数字类型,例如工资和年龄.还有一些二元类型(例如,男性,女性).
如何将分类值纳入KNN分析?
据我所知,人们不能简单地将每个分类字段映射到数字键(例如,银行1 = 1;银行2 = 2等),因此我需要一种更好的方法来使用分类字段.我听说可以使用二进制数 - 这是一种可行的方法吗?建议将不胜感激.
Ano*_*sse 15
您需要找到适用于您的数据的距离函数.二进制指示符变量的使用隐含地解决了这个问题.这样做的好处是可以让你继续使用这种数据进行基于矩阵的实现,但更简单的方法 - 适用于大多数基于距离的方法 - 只是使用修改后的距离函数.
存在无数个这样的组合.您需要尝试哪种方法最适合您.本质上,您可能希望对数值使用一些经典度量(通常应用规范化;但是也可以将此规范化移动到距离函数中),加上其他属性的距离,进行适当缩放.
在基于距离的算法的大多数实际应用领域中,这是最困难的部分,优化您的领域特定距离函数.您可以将其视为预处理的一部分:定义相似性.
有很多不仅仅是欧氏距离.在您的情况下,有各种集合理论措施可能更合适.例如,Tanimoto系数,Jaccard相似度,Dice系数等.余弦也可能是一种选择.
有一些专门讨论相似性搜索主题的会议 - 除了欧几里德矢量空间(实际上,甚至没有),没有人声称这在任何事情上都是微不足道的:http://www.sisap.org/2012
| 归档时间: |
|
| 查看次数: |
24315 次 |
| 最近记录: |