1、生物物种 预测:天气预报 决策:yes or no 分类的传统模型 分类(判别分析)与聚类有什么差别?2 DATAGURU专业数据分析网站 2012.6.28 常见分类模型与算法 线性判别法 距离判别法 贝叶斯分类器 决策树 支持向量机(SVM)神经网络 3 DATAGURU专业数据分析网站 2012.6.28 线性判别法(Fisher)例子:天气预报数据 G=c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2)x1=c(-1.9,-6.9,5.2,5.0,7.3,6.8,0.9,-12.5,1.5,3.8,0.2,-0.1,0.4,2.7,2.1,-4.6,-
2、1.7,-2.6,2.6,-2.8)x2=c(3.2,0.4,2.0,2.5,0.0,12.7,-5.4,-2.5,1.3,6.8,6.2,7.5,14.6,8.3,0.8,4.3,10.9,13.1,12.8,10.0)a=data.frame(G,x1,x2)plot(x1,x2)text(x1,x2,G,adj=-0.5)4 DATAGURU专业数据分析网站 2012.6.28 线性判别法的原理 用一条直线来划分学习集(这条直线一定存在吗?)然后根据待测点在直线的哪一边决定它的分类 5 DATAGURU专业数据分析网站 2012.6.28 MASS包与线性判别函数lda()library
3、(MASS)ld=lda(Gx1+x2)ld 6 DATAGURU专业数据分析网站 2012.6.28 分类判断 z=predict(ld)newG=z$class newG 1 1 1 1 1 1 2 1 1 1 1 2 2 2 2 1 2 2 2 2 2 Levels:1 2 cbind=(G,z$x,newG)y=cbind(G,z$x,newG)y 7 DATAGURU专业数据分析网站 2012.6.28 距离判别法 原理:计算待测点与各类的距离,取最短者为其所属分类 马氏距离(薛毅书p445,为什么不用欧氏距离?),计算函数mahalanobis()8 DATAGURU专业数据分析网
4、站 2012.6.28 算法 情形一(薛毅书p445)9 DATAGURU专业数据分析网站 2012.6.28 算法 情形二(薛毅书p447)例子(薛毅书p449)10 DATAGURU专业数据分析网站 2012.6.28 贝叶斯分类器 原理(薛毅书p455)11 DATAGURU专业数据分析网站 2012.6.28 结果 对于总体协方差矩阵相同的情形 12 DATAGURU专业数据分析网站 2012.6.28 结果 对于总体协方差矩阵不同的情形 13 DATAGURU专业数据分析网站 2012.6.28 程序与例子 薛毅书P457 利用贝叶斯分类器判断垃圾邮件 14 DATAGURU专业数据
5、分析网站 2012.6.28 多分类的情况 多分类下的距离判别法(薛毅书p452)多分类下的贝叶斯(薛毅书p460)15 DATAGURU专业数据分析网站 2012.6.28 决策树 decision tree 什么是决策树 输入:学习集 输出:分类规则(决策树)16 DATAGURU专业数据分析网站 2012.6.28 例子 用SNS社区中不真实账号检测的例子说明如何使用ID3算法构造决策树。为了简单起见,我们假设训练集合包含10个元素。其中s、m和l分别表示小、中和大。17 DATAGURU专业数据分析网站 2012.6.28 信息增益 设L、F、H和R表示日志密度、好友密度、是否使用真实
6、头像和账号是否真实,下面计算各属性的信息增益。18 DATAGURU专业数据分析网站 2012.6.28 根据信息增益选择分裂属性 因此日志密度的信息增益是0.276。用同样方法得到H和F的信息增益分别为0.033和0.553。因为F具有最大的信息增益,所以第一次分裂选择F为分裂属性,分裂后的结果如下图表示:19 DATAGURU专业数据分析网站 2012.6.28 递归+分而治之 在上图的基础上,再递归使用这个方法计算子节点的分裂属性,最终就可以得到整个决策树。这个方法称为ID3算法,还有其它的算法也可以产生决策树 对于特征属性为连续值,可以如此使用ID3算法:先将D中元素按照特征属性排序,
7、则每两个相邻元素的中间点可以看做潜在分裂点,从第一个潜在分裂点开始,分裂D并计算两个集合的期望信息,具有最小期望信息的点称为这个属性的最佳分裂点,其信息期望作为此属性的信息期望。20 DATAGURU专业数据分析网站 2012.6.28 R语言实现决策树:rpart扩展包 以鸢尾花数据集作为算例说明 iris.rp=rpart(Species.,data=iris,method=class)plot(iris.rp,uniform=T,branch=0,margin=0.1,main=“Classification TreenIris Species by Petal and Sepal Length)text(iris.rp,use.n=T,fancy=T,col=blue)21 Rule 1:if Petal.Length=2.45&Petal.Width=2.45&Petal.Width=1.75,then it is virginica(0/1/45)Rule 3:if Petal.Length2.45,then it is setosa(50/0/0)DATAGURU专业数据分析网站 FAQ时间 22