R语言之LDA算法应用

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

在R语言中我们用LDA算法的做预测的时候包,主要的MASS包。在这里我就不对于LDA算法进行详细的描述,只是根据问题的需求用R语言解决问题。我们使用的数据是KKNN包中的自带数据miete数据。主要对于该数据进行划分:1/3为测试数据,2/3为训练数据,通过对于数据的观察,预测测试数据中的nmkat对应的值。

观察数据:

library(kknn)data("miete")head(miete)dim(miete)summary(miete)

划分数据:1/3测试数据,2/3训练数据

####等样抽取library(sampling)n=round(2/3*nrow(miete)/5)nsub_train=strata(miete,stratanames="nmkat",size=rep(n,5),method="srswor")head(sub_train)#剔除1、3、12 属性data_train=getdata(miete[,c(-1,-3,-12)],sub_train$ID_unit)data_test=getdata(miete[,c(-1,-3,-12)],-sub_train$ID_unit)dim(data_test);dim(data_train)

LDA算法进行预测

##1.LDA算法library(MASS)ff1=lda(nmkat~.,data_train)head(ff1)ff1$priorff1$countsff1$meansff1ff2=predict(ff1,data_test)ff2$classff2$posteriortable(data_test$nmkat,ff2$class)

准确率的计算:

#错误率的计算error_data=sum(as.numeric(as.numeric(ff2$class)!=as.numeric(data_test$nmkat)))/nrow(data_test)error_data1-error_data

对于LDA算法预测的准确率:

       1   2    3    4     5  1  56  16   1    1     1  2  22  40   21  3      0  3   2   16   35  12    1  4   0    0    15   43    6  5   0    0     0    20    51
 error_data[1] 0.378453> 1-error_data[1] 0.621547

点这里可以跳转到人工智能网站

发表评论