版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前言判别分析(discriminant analysis)是多元统计分析中较为成熟的一种分类方法,它的核心思想是“分类与判断”,即根据已知类别的样本 所提供的信息,总结出分类的规律性,并建立好判别公式和判别准则, 在此基础上,新的样本点将按照此准则判断其所属类型。例如,根据 一年甚至更长时间的每天的湿度差及压差,我们可以建立一个用于判 别是否会下雨的模型,当我们获取到某一天(建立模型以外的数据) 的湿度差及压差后,使用已建立好的模型,就可以得出这一天是否会 下雨的判断。根据判别的组数来区分,判别分析可以分为两组判别和多组判别。接 下来,我们将学习三种常见的判别分析方法,分别是:距离判别Baye
2、s判别Fisher判别一、距离判别基本理论假设存在两个总体和-,另有:为一个,,维的样本值,计算得到该样 本到两个总体的距离和:丄一如果 大于,则认为样本属于总体,反之样本则属于总体;若 等于,则该样本待判。这就是距离判别法的基本思想。在距离判别法中,最核心的问题在于距离的计算,般情况下我们最 常用的是欧式距离,但由于该方法在计算多个总体之间的距离时并不 考虑方差的影响,而马氏距离不受指标量纲及指标间相关性的影响, 弥补了欧式距离在这方面的缺点,其计算公式如下:,J . . ,一:为总体之间的协方差矩阵二、二、距离判别的R实现(训练样本)首先我们导入数据#读取SAS数据Iibrary(sas7
3、bdat)datal - read.sas7bdat(disl01.sas7bdat)#截取所需列数据,用于计算马氏距离testdata - data12:5head(testdata,3)X1 X2 X3 X4-0.45 -0.41 1.09 0.45-0.56 -0.31 1.51 0.160.06 0.02 1.01 0.40#计算列均值colM - colMeans(testdata)colMX1X2X30.096304348 -0.006956522 2.033478261 #计算矩阵的协方差cov_test - cov(testdata)cov_testX1X2X3X1 0.068
4、183816 0.027767053 0.14996870X40.431739130X4X40.431739130X4-0.002566763X3 0.149968696 0.058782512 1.01309874 0.028607150X4 -0.002566763 0.001252367 0.02860715 0.033912464#样本的马氏距离计算distance - mahalanobis(testdata,colM,cov_test)head(distance,5)1 12.726465 11.224681 1.692702 1.347885 2.369820这样,我们得到了距离
5、判别中最关键的马氏距离值,在此基础上就可以进行进一步的判别分析了。不过我们介绍一个R的第三方包WMDB,该包的wmd()函数可以简化我们的距离判别过程,函数将输出样本的分类判别结果、错判的样本信息以及判别分析的准确度。library(WMDB)head(data1,3)A X1 X2 X3 X41 -0.45 -0.41 1.09 0.451 -0.56 -0.31 1.51 0.161 0.06 0.02 1.01 0.40#提取原始数据集的A列生成样品的已知类别testdata_group - data1$A#转换为因子变量,用于wmd()函数中testdata_group - as.fa
6、ctor(testdata_group)wmd(testdata,testdata_group)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2627blong 1 1 1 1 1 1 1 1 11111122111211112 2 228 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46blong 22222212221111121221 num of wrong judgement1 15 16 20 22 23 24 34 38 39 40 41
7、 42 441 samples divided to1 2 2 2 1 1 1 1 1 1 1 1 1 11 samples actually belongs to1 1 1 1 2 2 2 2 2 2 2 2 2 2Levels: 1 21 percent of right judgement1 0.7173913由分析结果可知,根据已知分类的训练样品建立的判别规则,重新应用于训练样品后,出现了 13个错判样品,拥有71.7%的准确度。三、距离判别的R实现(测试样本)接着,当我们获取到未分类的新样本数据时,使用wmd()函数,在训练样本的基础上进行这些数据的距离判别#导入数据,-共10个样本
8、data2 - read.sas7bdat(disldp01.sas7bdat)#截取所需列数据newtestdata - data21:4#进行判别分析wmd(testdata,testdata_group,TstX = newtestdata)1 2 3 4 5 6 7 8 9 10blong 1 1 1 1 1 1 2 2 2 1根据马氏距离判别分析得到的结果,10个待判样品中,第一类7个, 第二类3个。距离判别方法简单实用,它只要求知道总体的数字特征,而不涉及总 体的分布,当总体均值和协方差未知时,就用样本的均值和协方差矩 阵来估计,因此距离判别没有考虑到每个总体出现的机会大小,即先
9、验概率,没有考虑到错判的损失。因此,我们进一步学习贝叶斯判别 法。一、贝叶斯判别基本理论贝叶斯判别法的前提是假定我们已经对所要分析的数据有所了解(比 如数据服从什么分别,各个类别的先验概率等),根据各个类别的先 验概率求得新样本属于某类的后验概率。该算法应用到经典的贝叶斯 公式,该公式为:假设有两个总体:和,分别具有概率密度函数;:和:,并且根 据以往的统计分析,两个总体各自出现的先验概率为寸和,当一个样 本::发生时,求该样本属于某一类的概率,计算公式为:响切)=这样,我们得到了该样本属于两类总体的概率,分别为和门,属于哪一类总体的概率值大,我们则将样本划分到该类中。二、贝叶斯判别的R实在R
10、中,我们使用klaR包中的NaiveBayes()函数实现贝叶斯判别分析,函数调用公式如下:NaiveBayes(formula, data, subset, na.action = na.pass)formula指定参与模型计算的变量,以公式形式给出,类似于y=x1+x2+x3na.action指定缺失值的处理方法,默认情况下不将缺失值纳入模型计算,也 不会发生报错信息,当设为“na.omit”时则会删除含有缺失值的样本#数据准备,使用R内置数据集iris#通过抽样建立训练样本(70%)和测试样本(30%)index - sample(2,size = nrow(iris),replace
11、= TRUE,prob = c(0.7,0.3)train_data test data test data -irisindex = 2,#载入所用包library(klaR)#构建贝叶斯模型Bayes_model - NaiveBayes(Species data = train_data)#进行预测Bayes_model_pre sum(diag(table(test_data$Species,Bayes_model_pre$class)+ / sum(table(test_data$Species,Bayes_model_pre$class)1 0.9361702三、Fisher判别基
12、本理论Fisher判别法的基本思想是“投影”,将组;维的数据向低维空间投影, 使其投影的组与组之间的方差尽可能的大,组内的方差尽可能的小。 因此,Fisher判别法的重点就是选择适当的“投影轴”。判别函数为 接下来我们以两类总体举例。首先我们将样本点投影到一维空间,旋转坐标轴至总体单位尽可能分 开的方向,此时分类变量被简化为一个,判别函数.=;如果划分 的效果不理想,可以考虑投影到二维空间(- :),以此类推。上图为二 维空间的Fisher判别,从图中可以看到,无论我们把总体 和 投影 到 还是 轴,都不能很好的把两类总体区分出来。为此,我们需要寻找一条合适的投影线,使得两类总体向该线投影后
13、的区分程度达到最大,线性判别函数,., .很卩为该投影线的表 达形式(这里我们仅介绍Fisher判别的基本原理,不涉及参数的具体 推导和求解,这些都可用R程序求得)。OV . OV . 能使总体单位 尽可能分开的方向觅不能使总体 .尽可能分开 Xj四、Fisher判别的R实现在R中,我们使用MASS包中的lda()函数实现Fisher判别分析,函数 调用公式如下: lda(formula, data, subset, na.action)formula:指定参与模型计算的变量,以公式形式给出,类似于y=x1+x2+x3na.action:指定缺失值的处理方法,默认情况下,缺失值的存在使算法无法
14、运 行,当设置为“na.omit”时则会删除含有缺失值的样本#数据准备,使用R内置数据集iris#通过抽样建立训练样本(70%)和测试样本(30%)index - sample(2,size = nrow(iris),replace = TRUE, prob = c(0.7,0.3)train_data - irisindex = 1,test_data - irisindex = 2,#载入所用包library(MASS)#构建Fisher判别模型fisher_model - lda(Species., data = train_data)#进行预测fisher_model_pre sum(
15、diag(table(test_data$Species,fisher_model_pre$class)+ / sum(table(test_data$Species,fisher_model_pre$class)1 0.9811321五、Fisher判别进阶在判别分析的实际应用中,对复杂的数据使用线性判别可能无法得到 理想的效果。为此,我们需要使用类似于二次判别函数的非线性分类 方法,将样本点投影到若干种二次曲面中,实现理想的判别效果。在R中,非线性判别使用MASS包的qda()函数来实现,调用公式为:qda(formula, data, subset, na.action)#使用lda()函数同样的数据集fisher_model_2 - qda(Species., data = train_data)fisher_model_pre_2 table(test_data$Species,fisher_model_pre_2$class)setosa versicolor virginicasetosa2000versicolor0141virginica0018 sum(diag(table(test_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春季湖南长沙市一中初级中学编外合同制教师招聘考试参考题库及答案解析
- 2026广东广州花都城投产融商业投资有限公司招聘1人笔试模拟试题及答案解析
- 2026广东广州市人力资源和社会保障局广州市事业单位招聘人才91人笔试模拟试题及答案解析
- 2026河南郑州市惠济颐宁中医院招聘考试参考试题及答案解析
- 2026福建厦门市集美区杏苑实验幼儿园产假顶岗教师招聘3人笔试备考试题及答案解析
- 2026安徽省中国电子科技集团第八研究所招聘42人笔试备考题库及答案解析
- 2026天津开放大学第二批招聘1人 (高级专业技术岗位)笔试模拟试题及答案解析
- 战队赛内部奖惩制度
- 公司内部清算制度
- 乡卫生院内部管理制度
- 【2026春】部编版八年级下册语文读读写写(注音+解释)
- 初中历史历史互动传承的文化遗产课题报告教学研究课题报告
- 质量管理运行培训课件
- 2026年春季统编版(部编版)2024新教材二年级下册道德与法治教学计划
- 2026年湖南机电职业技术学院单招综合素质考试题库附答案
- 无人机uom合格证考试题库及答案
- 第二单元+新音乐启蒙+课件【高效课堂精研】高中音乐粤教花城版必修音乐鉴赏
- 全国美容院质量与服务调查报告(2023-2024)
- 高一语文资料李桢(明)六国论,原文与译文六国论李桢
- 秋季学期固态电子论第一章演示文稿
- 汉语教学 《成功之路+进步篇+3》第26课课件
评论
0/150
提交评论