R语言进行判别分析

Fisher判别法、距离判别法、Bayes判别法基本理论、方法:

Fisher判别法

理论基础:

Fisher判别法旨在通过选择合适的投影方向,最大化不同类别之间的类间差异性,同时最小化类内差异性。这种投影方向使得在低维空间中样本点的类别可分性最大化。

方法概述:

Fisher判别法通过计算类别之间的散布矩阵和类内散布矩阵,然后将其转化为广义特征值问题。通过求解广义特征值问题,得到最佳的投影方向(判别函数),以实现类别的有效区分。

距离判别法

理论基础:

距离判别法基于样本之间的距离度量,将样本点划分到最近的类别中。它通过计算不同类别之间的距离,以及类内样本之间的距离,来实现分类的目标。

方法概述:

距离判别法中常用的方法是最近邻分类算法。对于给定的样本点,通过计算其与训练集中各个样本点的距离,并选择最近的K个样本,根据这K个样本的类别进行投票,从而确定该样本点所属的类别。

Bayes判别法

理论基础:

Bayes判别法基于贝叶斯定理,考虑了样本的先验概率和条件概率,通过计算后验概率来进行分类。它将样本点划分到使得后验概率最大化的类别中。

方法概述:

Bayes判别法涉及计算类别的先验概率、各个类别下的条件概率密度函数,以及使用贝叶斯公式计算后验概率。通过比较后验概率,将样本分配给具有最高后验概率的类别。

实验实例和数据资料:

调用R自带数据iris3:鸢尾花数据(iris3)(花瓣,花萼的长宽) 4个变量:花瓣长(slen),花瓣宽(swid), 花萼长(plen), 花萼宽(pwid), 分类号(1:Setosa, 2:Versicolor, 3:Virginica),每类设置前47个为训练样本,后3个为待判样品;用三种判别方法进行判别分析。

实验步骤

载入数据集并查看数据结构。使用以下代码载入iris3数据集;

data(iris3)  
head(iris3)  

结果如下

划分训练样本和待判样品;

train <- rbind(iris3[1:47, , 1], iris3[1:47, , 2], iris3[1:47, , 3])  
test <- rbind(iris3[48:50, , 1], iris3[48:50, , 2], iris3[48:50, , 3])

结果如下

执行Fisher判别分析;

library(MASS)  
train_labels <- rep(1:3, each = 47)  
fisher_model <- lda(train, train_labels)  
fisher_pred <- predict(fisher_model, newdata = test)  
fisher_pred$class  

结果如下

执行距离判别分析;

library(class)  
train_labels <- rep(1:3, each = 47)  
distance_pred <- knn(train, test, train_labels, k = 1)  
distance_pred 

结果如下

Bayes判别分析。

library(e1071)  
train_labels <- rep(1:3, each = 47)  
bayes_model <- naiveBayes(train, train_labels)  
bayes_pred <- predict(bayes_model, newdata = test)  
bayes_pred 

结果如下

​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数小模.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值