判别分析又称“分辨法”,是按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标。据此即可确定某一样本属于何类。
判别分析目的——对已知分类的数据建立由数值指标构成的分类规则,然后把这样的规则应用到未知分类的样本中去分类,以识别未知样本所属的类别。
library('MASS')
data(iris)
head(iris)
colnames(iris) <- tolower(colnames(iris))
head(iris)
# Fisher判别
ld <- lda(species~sepal.length+sepal.width+petal.length+petal.width,data=iris )
ld
#对原始数据进行回判分类
p_iris <- predict(ld) # 可以加参数
p_iris
new_class<- p_iris$class
# p_iris$x 给出了p_iris中两个判别函数对应的值
cbind(iris$species, new_class, p_iris$x)
table(iris$species, p_iris$class)
# 贝叶斯判别
library(klaR)
fit_bayes <- NaiveBayes(species~sepal.length+sepal.width+petal.length+petal.width,data=iris)
pre_bayes <- predict(fit_bayes,iris)
table(iris$species, pre_bayes$class)
table(iris s p e c i e s , p i r i s species, p_iris species,pirisclass)
setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 1 49
pre_bayes <- predict(fit_bayes,iris)
table(iris s p e c i e s , p r e b a y e s species, pre_bayes species,prebayesclass)
setosa versicolor virginica
setosa 50 0 0
versicolor 0 47 3
virginica 0 3 47
具体细节可以参考 https://blog.csdn.net/weixin_30301183/article/details/98981964