GLM과 Elastic Net을 사용하여 관련 기능을 선택하고 선형 회귀 모델을 작성하고 싶습니다 (예 : 예측과 이해 모두 상대적으로 적은 매개 변수로 남겨 두는 것이 좋습니다). 출력은 연속적입니다. 그것은이다 당 유전자 의 경우. 패키지 에 대해 읽었 지만 다음 단계에 대해 100 % 확신하지 못합니다.glmnet
CV를 수행 하여 입력 데이터가 주어지면 람다 :
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) 을 선택하십시오. 다른 알파 값을 선택 하시겠습니까?
(Q2) 모델을 빌드하기 전에 다른 작업을 수행해야합니까?모델을
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
맞 춥니 다 . (Q3) "공분산"보다 더 좋은 것이 있습니까?
(Q4) CV가 람다를 선택한 경우이 단계에는 왜 필요한nlambda=
가요?
(Q5)lambda.min
또는 사용하는 것이 좋습니다lambda.1se
?어떤 매개 변수가 빠졌는지 ( ".") 계수를 구하십시오.
predict(model, type="coefficients")
도움말 페이지에서 여러가
predict
방법 (예를 들면,predict.fishnet
,predict.glmnet
,predict.lognet
, 등). 그러나 예를 보았을 때 어떤 "평원"도 예측합니다.
(Q6) 해야 내가 사용predict
하거나predict.glmnet
또는 다른?
정규화 방법에 대해 읽은 내용에도 불구하고 R 과이 통계 패키지에 익숙하지 않으므로 문제를 코드에 적용하고 있는지 확인하기가 어렵습니다. 모든 제안을 환영합니다.
UPDATE
에 기반는 "있는 그대로 이전에 언급, 클래스 열차의 목적이라는 요소가 포함되어 finalModel
있다고하여,이 개체는 새로운 샘플에 대한 예측을 생성하는 전통적인 방법으로 사용할 수 있습니다. 리샘플링에 의해 선택된 조정 매개 변수 값을 사용하여 장착 모델입니다, 모델의 예측 기능. "
caret
알파와 람다를 모두 조정하는 데 사용 :
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
fitM
이전 2 단계를 대체 합니까 ? 그렇다면 지금 glmnet 옵션 ( type.gaussian="naive",lambda=cv$lambda.min/1se
) 을 지정하는 방법 은 무엇입니까?
그리고 다음 predict
단계로 바꿀 model
수 fitM
있습니까?
만약 내가한다면
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
전혀 이해가되지 않습니까? 아니면 두 패키지 어휘를 잘못 혼합하고 있습니까?