R 语言中的判别分析:LDA 和 QDA 的介绍与实践
判别分析(Discriminant Analysis)是一种经典的统计学习方法,用于对数据进行分类和预测。R 语言提供了多种判别分析的实现,其中包括线性判别分析(Linear Discriminant Analysis,简称 LDA)和二次判别分析(Quadratic Discriminant Analysis,简称 QDA)。本文将介绍 LDA 和 QDA 的基本原理,并演示如何在 R 语言中应用这两种方法。
一、线性判别分析(LDA)
LDA 是一种经典的判别分析方法,它假设每个类别的数据服从多元正态分布,并且各个类别的协方差矩阵相等。LDA 通过线性变换将原始数据投影到低维空间,使得不同类别的数据在投影后的空间中更容易区分。在 R 语言中,我们可以使用 lda
函数实现 LDA。
下面是一个使用 LDA 进行分类的示例代码:
# 加载所需的包
library(MASS)
# 创建训练数据
set.seed(123)
x1 <- matrix(rnorm(100), ncol = 2)
x2 <- matrix(rnorm(100, mean = 2), ncol = 2)
train_data <- rbind(x1, x2)
train_labels <- c(rep(0, 100), rep(1, 100))
# 训练 LDA 模型
lda_model <- lda(train_data, train_labels)
# 创建测试数据
x1_new <- matrix(rnorm(50), ncol = 2)
x2_new <- matrix(rnorm(50, mean = 2