判别分析
前言:
判别分析(discriminant analysis)属于一种分类方法,根据已知类别的样本提供的信息,总结出分类的规律性,建立判别准则,新的样本将按照这种判别准则进行分类。根据判别的类别来分,判别分析分为两组判别和多组判别。常见的三种判别方法:
距离判别
Bayes判别
Fisher判别
一、距离判别:
- 理论知识:
存在已知类别的两个总体(G_1,G_2),现要判断未知类别的样本x属于哪个总体。计算该样本到这两个总体之间的距离(d(x,G_1))和(d(x,G_2)),若(d(x,G_1))大于(d(x,G_2)),则认为样本属于(G_2)。反之,样本属于(G_1),若相等,则进一步在判断。
在距离判别中,最核心的问题是考虑用什么方法计算两者之间的距离,常见的几种距离有欧式距离,马氏距离,欧式距离过于简单,未考虑样本方差的影响,故采取马氏距离较为理想,它不受变量相关性的影响。其计算公式为:
(d^2(x,y)=(x-y)^T\sum^{-1}(x-y)), (\sum^{-1})表示总体之间的协方差矩阵.
- R语言实现:
##WMDB包中的wmd函数,封装了马氏距离的判别分析
library(WMDB)
train_class<-gl(3,50)##这里必须转化为数字型因子
wmd(iris[,1:4],train_class)
## 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 26
## blong 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
## blong 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 50 51 52 53 54 55 56 57 58 59