[问题] 资料分割与LARs应用

楼主: rosso0922 (哔波)   2013-11-30 17:05:42
小弟是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我应该要看哪个值呢?
=====================================================================
以上是我实做跟个人的注解,如果有错请板友纠正跟帮忙谢谢
作者: braveht (冲吧冲吧)   2012-01-30 17:50:00
prost有train属性,iris没有。你可以用str(prost)来看属性
楼主: rosso0922 (哔波)   2013-02-01 00:46:00
谢谢bra大,我确实忘记了prost属性,但很怪的为什么问题只出现在test.data的部分?

Links booklink

Contact Us: admin [ a t ] ucptt.com