博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R学习-小白笔记07
阅读量:4842 次
发布时间:2019-06-11

本文共 2662 字,大约阅读时间需要 8 分钟。


----分类:分类的意义----

#传统意义下的分类:生物物种
#预测:天气预报
#决策:yes or no
#分类的传统模型
#分类(判别分析)与聚类有什么差别?


----常见分类模型与算法----

#线性判别法
#距离判别法
#贝叶斯分类器
#决策树
#支持向量机(SVM)
#神经网络

----线性判别法(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,-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)

----线性判别法的原理----

#用一条直线来划分学习集(这条直线一定存在 )
#然后根据待测点在直线的哪一边决定它的分类

----MASS包与线性判别函数lda()----

>library(MASS)
>ld=lda(G~x1+x2)
>ld

Call:

lda(G ~ x1 + x2)

Prior probabilities of groups:

1 2
0.5 0.5

Group means:

x1 x2
1 0.92 2.10
2 -0.38 8.85

Coefficients of linear discriminants:

LD1
x1 -0.1035305
x2 0.2247957

----分类判断----

>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

>y=cbind(G,z$x,newG)

>y
G LD1 newG
1 1 -0.28674901 1
2 1 -0.39852439 1
3 1 -1.29157053 1
4 1 -1.15846657 1
5 1 -1.95857603 1
6 1 0.94809469 2
7 1 -2.50987753 1
8 1 -0.47066104 1
9 1 -1.06586461 1
10 1 -0.06760842 1
11 2 0.17022402 2
12 2 0.49351760 2
13 2 2.03780185 2
14 2 0.38346871 2
15 2 -1.24038077 1
16 2 0.24005867 2
17 2 1.42347182 2
18 2 2.01119984 2
19 2 1.40540244 2
20 2 1.33503926 2

----距离判别法----

#原理:计算待测点与各类的距离,取最短者为其所属分类
#马氏距离(薛毅书,为什么不用欧氏距离?),计算函数mahalanobis()

#薛毅P378-R程序及例8.1

----贝叶斯分类器----
#原理(薛毅书P385)

----结果----

#对总体协方差矩阵相同的情形
#对于总体协方差矩阵不同的情形

----程序与例子----

#薛毅书P387
#利用贝叶斯分类器判断垃圾邮件

----多分类的情况----

#多分类下的距离判别法(薛毅书p382)
#多分类下的贝叶斯(薛毅书p390)


----Knn算法----

#算法主要思想
1,选取k个和待分类点距离最近的样本点
2,看1中的样本点的分类情况,投票决定待分类点所属的类


----决策树decision tree----

#什么是决策树
#输入:学习集
#输出:分类规则(决策树)

--例子

# 用SNS社区中不真实账号检测的例子说明如何使用ID3算法构造决策树。为了简单起见,我们假设训练集合包含10个元素。其中s、 m和l分别表示小、中和大。

----信息增益----

#设L、F、H和R表示日志密度、好友密度、是否使用真实头像和账号是否真实,下面计算各属性的信息增益。

----根据信息增益选择分裂属性----

#因此日志密度的信息增益是0.276。用同样方法得到H和F的信息增益分别为0.033和0.553。因为F具有最大的信息增益,所以第一次分裂选择F为分裂属性。

----递归+分而治之----

#在上图的基础上,再递归使用这个方法计算子节点的分裂属性,最终就可以得到整个决策树。
#这个方法称为ID3算法,还有其它的算法也可以产生决策树
#对于特征属性为连续值,可以如此使用ID3算法:先将D中元素按照特征属性排序,则每两个相邻元素的中间点可以看做潜在分裂点,从第一个潜在分裂点开始,分裂D并计
算两个集合的期望信息,具有最小期望信息的点称为这个属性的最佳分裂点,其信息期望作为此属性的信息期望。

----R语言实现决策树:rpart扩展包----

#以鸢尾花数据集作为算例说明
>iris.rp = rpart(Species~., data=iris,method="class")
>plot(iris.rp, uniform=T, branch=0,margin=0.1, main=“ Classification Tree\nIris Species by Petal and Sepal Length")
>text(iris.rp, use.n=T, fancy=T, col="blue")

#Rule 1: if Petal.Length>=2.45&Petal.Width<1.75, then it is versicolor(0/49/5)

#Rule2: if Petal.Length>=2.45&Petal.Width>=1.75, then it is virginica (0/1/45)
#Rule 3: if Petal.Length<2.45, then it is setosa (50/0/0)



 

转载于:https://www.cnblogs.com/EleanorInHarbin/p/8282390.html

你可能感兴趣的文章
爬不出去的水井
查看>>
Freemarker 语法详解
查看>>
c# 工具类(字符串和时间,文件)
查看>>
一些关于界面设计的技巧
查看>>
Linux中查看CPU信息【转】
查看>>
Linux安装字体
查看>>
2017《JAVA》预备作业 计科1501刘喆
查看>>
DNS—正、反向解析;委派;主从;子域;转发;智能dns等的实现
查看>>
HDU 2609 How many
查看>>
Linux 桌面应用
查看>>
Qt 蓝牙部分翻译
查看>>
c#设计模式-观察者模式
查看>>
做webform注意事项 闰年日期
查看>>
C++中static用法
查看>>
Selenium——selenium之利用excel实现参数化
查看>>
2535-springsecurity系列--关于授权角色“ROLE”前缀的问题
查看>>
自己动手写OpenStack的QoS功能(4)
查看>>
IDEA快捷键
查看>>
【tmos】spring boot项目中处理Schedule定时任务
查看>>
Nginx+certbot 实现泛域名的https证书
查看>>