小弟是R的初心使用者,刚刚开始应用R做研究,所以我上google/人大爬了一些做法
下面有几个问题想请教板上的高手
第一个是资料分割的部分
prost.std <- data.frame(cbind(scale(prost[,1:8]),prost$lpsa))
将变量1~8标准化,锁定变量lpsa,cbind则是列出矩阵
names(prost.std)[9] <- 'lpsa'
将变量9命名为lpsa
data.train <- prost.std[prost$train,]
data.test <- prost.std[!prost$train,]
划分出训练与测试资料集,!则表示train以外的都是test(随机抽取)
y.test <- data.test$lpsa 将Y
指定为lpsa,$选取特定条件下的数据,在此选择data.test中的lpsa
n.train <- nrow(data.train)
我照着网络上的教学做资料分割,我使用教学中给的资料,并且做出我个人的注解
http://www-stat.stanford.edu/~tibs/ElemStatLearn/datasets/prostate.data
一步一度步的跟着做,可以很顺利的切开资料并且抽取训练跟资料
但是我把资料换成iris的话..资料就切不开了,到data.test的部分就会卡住
出现了:
错误在!iris$train : 引数类型不正确
但是我用posta却不会有这种情况....
另外,LARs的部分
library(lars)
m.lasso <- lars(as.matrix(data.train[,1:8]),data.train$lpsa)
plot(m.lasso)
# Cross-validation
r <- cv.lars(as.matrix(data.train[,1:8]),data.train$lpsa)
bestfraction <- r$fraction[which.min(r$cv)]
# Observe coefficients
coef.lasso <-predict(m.lasso,as.matrix(data.test[,1:8]),
s=bestfraction,type="coefficient",mode="fraction")
coef.lasso
# Prediction
y.pred.lasso <-predict(m.lasso,as.matrix(data.test[,1:8]),
s=bestfraction,type="fit",mode="fraction")$fit
summary((y.pred.lasso - y.test)^2)
我也是照着执行都能够顺利的用posta跑出结果来,
但是如果单纯要做feature selection我应该要看哪个值呢?
=====================================================================
以上是我实做跟个人的注解,如果有错请板友纠正跟帮忙谢谢