利用R语言如何判别和分类

本文介绍了R语言中的判别和分类方法,包括线性判别、二次判别、贝叶斯判别,以及有监督分类的决策树、神经网络、支持向量机、KNN和逻辑回归。以鸢尾花数据集为例,详细阐述了各种方法的原理和在R中的实现。
摘要由CSDN通过智能技术生成

楼主在学习数据挖掘期间,老师讲了很多的判别和分类方法,只是没有平时时间整理,这次利用周末的时间特地整理自己以前的知识点,这篇文章会引用大量网上的图片和文字,若有侵权,及时告知,本人会马上修改。这篇文章中的案例统一使用著名的鸢尾花数据。若有错误,也请及时指出,大家相互学习,共同进步
判别分析(discriminant analysis)是一种分类技术。它通过一个已知类别的“训练样本”来建立判别准则,并通过预测变量来为未知类别的数据进行分类。
判别分析根据所采用的数据模型,可分为线性判别分析和非线性判别分析。根据判别准则可分为Fisher判别、Bayes判别和距离判别。其中最基本的Fisher判别方法也被称为线性判别方法。该方法的主要思想是将多维数据投影到某个方向上,投影的原则是将总体与总体尽可能的分开,然后再选择合适的判别规则将新的样本分类判别。Fisher判别会投影降维,使多维问题简化为一维问题来处理。选择一个适当的投影轴,使所有的样品点都投影到这个轴上得到一个投影值。对这个投影轴的方向的要求是:使每一组内的投影值所形成的组内离差尽可能小,而不同组间的投影值所形成的类间离差尽可能大。Bayes判别思想是根据先验概率求出后验概率,并依据后验概率分布作出统计推断。距离判别思想是根据已知分类的数据计算各类别的重心,对未知分类的数据,计算它与各类重心的距离,与某个重心距离最近则归于该类。
1.线性判别
当不同类样本的协方差矩阵相同时,我们可以在R中使用MASS包的lda函数实现线性判别。值得注意的是当分类只有两种且总体服从多元正态分布条件下,Bayes判别与Fisher判别、距离判别是等价的。利用table函数建立混淆矩阵,比对真实类别和预测类别。

> library(MASS)
> data(iris)
> iris.lda=lda(Species~.,data=iris)
> table(Species,predict(iris.lda,iris)$class)
Species      setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         48         2
  virginica       0          1        49
> table<-table(Species,predict(iris.lda,iris)$class)
> sum(diag(prop.table(table)))###判对率
[1] 0.98

2.二次判别
当不同类样本的协方差矩阵不同时,则应该使用二次判别。在使用lda和qda函数时注意:其假设是总体服从多元正态分布,若不满足的话则谨慎使用二次判别。

> iris.qda=qda(Species~.,data=iris,cv=T)
> table(Species,predict(iris.qda,iris)$class)
Species      setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         48         2
  virginica       0          1        49
> table<-table(Species,predict(iris.qda,iris)$class)
> sum(diag(prop.table(table)))###判对率
[1] 0.98

3.贝叶斯判别
贝叶斯判别式假定对研究对象已有一定的认识 这种认识常用先验概率来描述,当取得样本后就可以用样本来修正已经有的先验概率分布得出后验概率分布,然后通过后验概率分布进行各种统计推。实际上就是使平均误判损失(误判概率与误判损失的结合)ECM达到极小的过程。

> library(MASS)
> data(iris)
> iris.Beyes=lda(Species~.,data=iris,prior=c(1,1,1)/3)
> table(Species,predict(iris.
  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值