问题一:从实际问题出发
现实生活中,我们往往能够找到很多分类的例子。假设某个疾病只跟k个因素有关,那么我们通过获取病人这k个因素的数据和不生病人k个因素的取值,可以建立起一个判别函数。当我们有一个检测样本进来的时候,我们通过k个因素的取值和检测函数就能最终判别出该样本的情况。
问题二:数据属性差异性的刻画
比较典型的算法是knn算法,我们通过计算未知数据周围最近的k个数据进行投票,最终确定出未知点的分类。所以,如何找到离未知数据最相似的k个点成为我们需要解决的问题。
我们需要找到一个合适的距离计算来进行刻画对象的差异性,我们将分几种情况进行讨论:标称属性、二元属性、数值属性、序列属性。
(一)标称属性
当我们的数据属性如下图所示,为混合类型的样本时,对于test_1这类标称属性,我们可以采取不匹配率来进行计算数据间的差异性。m是匹配的数目,p是刻画对象的属性总数。
(二)二元属性
其中q表示对象i和j都是取1(正匹配),t表示对象i和j都是取0(负匹配)。在一些实际问题中,病情去1(阳性)会比取0(阴性)更加重要,所以对于非对称二元属性,两种状态不是一样重要,因此我们可以把相异性公式的分母简化。二元属性是指只有两种状态,0或1。其中0表示属性不出现,1表示属性出现。我们可以通过该方法计算出相似度sim(i,j) = 1 - d(i,j),称为Jaccard系数。
(三)数值属性
1、欧式距离
如上图公式所示,欧式距离是h取2的时候。
2、曼哈顿距离
又称城市快距离,是h取1的情况。
3、闵可夫斯基距离
闵可夫斯基距离是欧式和曼哈顿的推广,定义就是图所示。
4、上界距离
上界距离又称切比雪夫距离,取max曼哈顿距离
5、马氏距离
但是在统计分析与计算情况中,我们如果还是采用简单的欧式距离或者曼哈顿距离就有点错误了。如下图所示,这是两个正态分布,u分别是0和4,方差为1和4,那么我们现在有个未知数据A点,A在距离上会比0近,那么我们就把A归为1类了吗?
从概率统计角度来讲,A离二类会更加近。因此,对于概率分布的问题,应用马氏距离会更加适合计算
(四)序列属性
有些属性之间是具有意义的序或者排位的,比如说上图(混合型表格)的test_2中的成绩,分为良、好、优三类。三类是具有排序意义的,共有M = 3种状态。我们用数值表示排位顺序r = {1,2...,m}代替本来的良好优。并对排位顺序进行数据格式化,zi =(ri - 1)/(M - 1)。
则优对应为 z优= (3-1)/(3-1)= 1。