1、若样本中存在离散数据,knn是不是就不适用了呢?2、后面的课程大约本月几号上线?
来源:4-9 更多有关k近邻算法的思考
XhmTLnz丶
2018-01-22
离散数据怎么求距离
1回答
-
这个课程由于不很强调数据预处理,所以对这个阶段的数据处理工作介绍不多。
具体来说,对于离散数据,也要具体问题具体分析:
首先,专业来讲,我们说的“离散数据”,叫“Categorical Variable”,中文可以翻译为“分类变量”。
1)有一种分类变量,虽然是分类变量,但是类别之间存在顺序关系。比如,对于房产,可能有一个属性是:周边地铁站的情况,会以分为“挨着地铁站”;“步行可达地铁站”;”必须坐车才能到地铁站“三种可能。那么此时,将“挨着地铁站”映射为0;“步行可达地铁站”映射为1;”必须坐车才能到地铁站“映射为2,是合理的。同理,学生的成绩优良中差;或者信用评级ABCD;等等等等,都是分类变量,但是我们可以直接将它映射为数字变量。
2)另外一种分类变量,类别之间没有顺序关系。比如,对于房产的”城市“这个属性;车辆的”颜色“,”型号“等等属性;体检数据中的”血型“属性,等等等等。对于这种分类变量,我们需要对数据进行预处理。常见的预处理方式是使用OneHotEncoder的方式。简单来说,就是把一个分类变量的所有分类展开。分类变量有几种可能,就展成几个属性。对于每个属性,只填写0或者1。
比如对于”血型“这个属性,他有”A“,”B“,”AB“,”O“四种可能。我们就将这个”血型“特征,转换成”是否是A“,”是否是B“,”是否是AB“,”是否是O“四个特征。简单示例如下:
+-Blood-Type-+ +- A? -+- B? -+- AB? -+- O? -+ +------------+ +------+------+-------+------+ + A + + 1 + 0 + 0 + 0 + +------------+ +------+------+-------+------+ + B + + 0 + 1 + 0 + 0 + +------------+ => +------+------+-------+------+ + AB + + 0 + 0 + 1 + 0 + +------------+ +------+------+-------+------+ + O + + 0 + 0 + 0 + 1 + +------------+ +------+------+-------+------+
这样转换之后,再使用距离就可以了:)
对于一个数据,既有数字变量,又有分类变量,处理方式可以参见这里:https://coding.imooc.com/learn/questiondetail/39047.html
----
后续课程会在本月逐渐更新完毕。谢谢支持:)加油!
122018-01-22
相似问题