Fisher判别的基本思路就是投影,针对P维空间中的某点x=(x1,x2,x3,…,xp),寻找一个能使它降为一维数值的线性函数y(x)= ∑Cjxj,然后应用这个线性函数把P维空间中的已知类别总体以及求知类别归属的样本都变换为一维数据,再根据其间的亲疏程度把未知归属的样本点判定其归属。这个线性函数应该能够在把P维空间中的所有点转化为一维数值之后,既能最大限度地缩小同类中各个样本点之间的差异,又能最大限度地扩大不同类别中各个样本点之间的差异,这样才可能获得较高的判别效率。
library(ggplot2)
library(lattice)
library(kernlab)
library(caret)
#将数据使用留出采样法进行划分成训练集、测试集
train <- createDataPartition(y=iris$Species, p=0.75, list=FALSE)
training <- iris[train,]
testing <- iris[-train,]
library(MASS)
model <- lda(Species ~ ., data = training)
table(testing$Species, predict(model, testing[, c(1, 2, 3, 4)])$class)
网友评论