判别分析贝叶斯判别的R代码
时间: 2024-12-18 19:23:36 浏览: 11
anal.rar_判别_判别分析_贝叶斯分析_距离判别
在R语言中,贝叶斯判别是一种基于贝叶斯定理的概率分类方法。以下是使用贝叶斯判别进行简单分类的一个基础示例,假设我们有两组数据,每组代表一种类别,并且已知每个特征与类别之间的先验概率。
首先,你需要安装并加载所需的包,例如`MASS`包,它包含了贝叶斯判别模型的函数`lda()`:
```R
install.packages("MASS") # 如果还未安装,先安装
library(MASS)
```
然后,我们可以创建一个模拟的数据集,比如两个正态分布:
```R
set.seed(1) # 设置随机种子便于复制结果
data <- data.frame(
x1 = rnorm(50, mean = c(-1, 1), sd = 1),
x2 = rnorm(50, mean = c(1, -1), sd = 1),
group = factor(c(rep("A", 25), rep("B", 25))) # 两类标签
)
```
接下来,我们可以使用`lda()`函数进行贝叶斯判别分析:
```R
model <- lda(group ~ ., data = data)
```
`group ~ .` 表示我们想根据所有列(除了"group")来预测"group"这个变量。
最后,我们可以对新样本进行分类:
```R
new_data <- data.frame(x1 = c(-0.5, 0.8), x2 = c(0.6, -1.2)) # 新的观测值
predicted_class <- predict(model, new_data)$class
```
`$class` 将返回每个新样本所属的最有可能的类别。
阅读全文