[問題] 資料分割與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