我正忙于一个涉及k近邻回归的项目我混合了数字和分类字段分类值是序数(例如银行名称、帐户类型)数字类型包括,例如工资和年龄也有一些二进制类型(如男性、女性)。
如何将分类值纳入KNN分析?
据我所知,不能简单地将每个分类字段映射到数字键(例如,bank 1=1;bank 2=2等),所以我需要使用分类字段的更好方法我听说可以用二进制数,这是可行的方法吗?
如能提供建议,将不胜感激。

最佳答案

你需要找到一个适合你的数据的距离函数使用二进制指示符变量隐式地解决了这个问题这样做的好处是,您可以继续使用这种类型的数据执行可能基于矩阵的实现,但一种更简单的方法(而且适用于大多数基于距离的方法)是只使用修改后的距离函数。
这样的组合有无穷多个你需要试验哪个对你最有效实际上,您可能希望对数值使用一些经典度量(通常应用规范化;但也可以将此规范化移到距离函数中),再加上其他属性上的距离,并适当缩放。
在大多数基于距离的算法的实际应用领域中,这是最困难的部分,优化特定于域的距离函数您可以将其视为预处理的一部分:定义相似性。
不仅仅是欧几里德距离有各种集合论方法,可能更适合你的情况例如,Tanimoto系数、Jaccard相似性、Dice系数等余弦也可能是一个选择。
有很多会议专门讨论相似性搜索的主题-除了欧几里德向量空间(实际上,甚至没有)之外,没有人声称这是微不足道的:http://www.sisap.org/2012

关于matlab - 带有分类数据的KNN分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13625849/

10-15 17:38