rm(list = ls())#清空所有内存
library("MASS")
xx<-read.csv("D:\\文档\\Tencent Files\\510271461\\FileRecv\\zuoye.csv")
data<-xx
fisher<-function(data,n,form){
accu<-0
for (i in 1:10){
ind<-sample(1:nrow(data),round(0.6*nrow(data)),replace=FALSE)#取出data中的任意6个数据
newdata=data[ind,]#将这6行重新建立数据框,用于预测模型构建
fm<-lda(form,data=newdata)#构建模型,也就是求解fish判别函数相关系数
pre<-predict(fm,data[-ind,-1])$class#利用源数据中的剩余数据进行预测检验,$CLASS就是要提取出来预测结果,你这里是male和female
t<-table(data[-ind,1],pre)#生产一个表,这个可以看书上的例子,就是一个矩阵(行是原始数据结果,列是预测数据结果)的样子差不多,单元格数据为统计值。
accu[i]<-sum(diag(t))/sum(t)#把表中对角线的数据(也就是预测和实际一致的数据)求和,sum(t)就是把整个table的数据加起来,也就是包括一些预测不对的。
}
return(c(mean(accu),sd(accu)))
}
n<-1
form<-as.formula("sex~weight+height")
fisher(data,n,form)