1、对数据进行特征选择
2、进行PSO-SVR实验
library(ISLR)#使用R语言中自带的数据包
dim(College)#查看该数据的行数和列数
[1] 777 18
library(leaps)
sum(is.na(College$Apps))#看数据是否有缺失值
[1] 0
k=10
set.seed(1)
folds=sample(1:k,nrow(College),replace = TRUE)
cv.errors=matrix(NA,k,17,dimnames = list(NULL,paste(1:17)))
predict.regsubsets=function(object,newdata,id){
form=as.formula(object$call[[2]])
mat=model.matrix(form,newdata)
coefi=coef(object,id=id)
xvars=names(coefi)
mat[,xvars]%*%coefi
}
for(j in 1:k){
best.fit=regsubsets(Apps~.,data=College[folds!=j,],nvmax=17)
for(i in 1:17){
pred=predict(best.fit,College[folds==j,],id=i)
cv.errors[j,i]=mean((College$Apps[folds==j]-pred)^2)
}
}
apply(cv.errors, 2,mean)
1 2 3 4 5 6 7 8 9 10
1700274 1338304 1315245 1296220 1329976 1349159 1342177 1369784 1375110