2017-11-22 6 views
0

다음 코드를 실행 중이지만 계속 오류 메시지가 표시됩니다. 이 코드는 ISLR 웹 사이트의 코드입니다.ridge 실행시 람다 오류

library(ISLR) 
Hitters=na.omit(Hitters) 
x=model.matrix(Salary~.,Hitters)[,-1] 
y=Hitters$Salary 
library(glmnet) 
ridge.mod=glmnet(x,y,alpha=0,lambda=grid) 

오류 메시지 : 난 정말 어떤 도움을 주셔서 감사합니다 것

Error in lambda < 0 : comparison (3) is possible only for atomic and list types 

. 감사! (시도 '그리드?')

ridge.mod=glmnet(x,y,alpha=0,lambda=grid) 

그리드는 R 함수의 이름이지만, glmnet 람다 값의 벡터를 기대하고있다 :

답변

0

귀하의 문제는 여기에있다. 당신은 람다 순서를 제공하지 않고 glmnet를 실행하면

에서, glmnet 라이브러리 람다 선택하는 자신의 휴리스틱을 사용

ridge.mod=glmnet(x,y,alpha=0, lambda=seq(10, 1000, 1)) 

하지만 glmnet 도움 :

ridge.mod=glmnet(x,y,alpha=0) 

을 당신은 또한 자신의 순서를 제공 할 수 있습니다 그것을 권고한다.

lambda 사용자가 제공 한 람다 시퀀스. 일반적인 사용법은 프로그램이 nlambda 및 lambda.min.ratio를 기반으로 자체 람다 시퀀스를 계산하도록하는 것입니다. 람다 값을 제공하면이 값이 무시됩니다. 경고 : 주의해서 사용하십시오. 람다에 단일 값을 제공하지 마십시오 (CV 사용 predict() 후 예측의 경우). 대신 람다 값의 시퀀스가 ​​감소합니다. glmnet은 따뜻함에 의지합니다. 은 속도를 내기 시작하며, 종종 이 단일 적합을 계산하는 것보다 전체 경로에 더 빠르게 맞 춥니 다.

은 ('1) SEQ (10, 1000'위의 올바른 구문을 보여주는 예에 불과합니다.)

+0

이 너무 많은 오토 감사합니다! 그것은 정말 내 퍼즐을 해결합니다. –

+0

도와 주시겠습니까? 스택 오버플로에 오신 것을 환영합니다! 내 대답으로 문제가 해결되면 동의라고 표시하십시오. :) –

+0

고마워요, 오토! 방금 화살표를 클릭했습니다. 불행히도 저의 명성이 낮아 공개적으로 표시되지 않습니다. 미안합니다! –