줄리아의 GLM 패키지를 사용하여 일반화 된 선형 모델에 맞추려고합니다. 기본적으로 30으로 설정된 최대 반복 횟수가 초과되었으므로 피팅 알고리즘이 실패합니다. 소스를 조사하면 glm
의 이름 지정된 인수가 인 경우 이라는 이름의 인수가 기본값 인 함수의 끝에 호출되는 fit
함수에이 인수가 명명 된 인수 (maxIter
)로 저장된다는 것을 알 수 있습니다. 그래서 나는 그것을 수동으로 다음 fit
를 호출, 내 GLM을 만들어 false
에 dofit
을 설정하여 최대 반복을 조정할 수 있어야한다 maxIter
변경 :최대 반복 횟수를 변경하면서 줄리아에 GLM을 맞추려면 어떻게해야합니까?
myGlm = glm(formula, dataframe, Poisson(), dofit=false)
fit(myGlm, maxIter=50)
그러나이 코드의 첫 번째 줄은 오류 메시지와 함께 실패 :
어떤 방법 GLM (배열 {모든, 1}, EXPR, DataFrame, 포아송, LogLink)
내가glm
에 대한 함수 서명을보고
전 n 소스 (glmfit.jl) 또는 help(glm)
으로 표시되는 경우이 서명이 나열되지 않은 것이 사실입니다. 하지만이 함수 호출에 대한 서명은 왜입니까? 명명 된 인수는 자동으로 인수 목록의 시작 부분에 배열로 옮겨지며 명시 적으로 지원되어야합니까? 문맥에있는 소스 This section of the Julia manual 내 전화가 작동합니다 제안합니다.
이것은 매우 이상하게 보입니다. 가장 쉬운 방법은'maxmter '에'glm'에 키워드 인자를 추가하는 것입니다. 그러면'glm'의 마지막 라인에서'fit'에 전달합니다. Doug이 그 기능을 추가하는 패치를 기꺼이 받아 들일 것으로 의심됩니다. –
@JohnMylesWhite 흠. 그러나'fit'에'verbose','convTol','minStepFac'과 같은 다른 키워드 인자가 있습니다. 'glmfit'에'maxIter' 만 추가하면 코드가 혼란스럽고, 위의 모든 것을 추가하는 것이 불필요하게 반복되는 것처럼 보입니다. Dict를 함수 호출에서 키워드 인수로 확장하는 방법이 있습니까? 그런 다음 glm에 키워드 fitoptions를 추가하고 glm의 마지막 줄에'fit (res, fitoptions ...) '로'fit'에 전달할 수 있습니다. 나는'...'문법이'Dict'을 확장하는 데는 도움이되지 않을 것이라고 알고 있지만, 방법이 있습니까? –
현재 유일한 방법은 다음과 같이 임의의 많은 수의 키워드를 전달하는 것입니다 :'function glm (; kwargs ...); 적합 (kwargs); 끝 '. 이것은 기본적으로 모든 키워드 인수에서 사전을 생성합니다. 필자는 여전히 여기서는 유용한 추상화가 없다고 생각하지만, 컴파일시에는 분석이 불가능하기 때문에 Dict이 아닐 것입니다. –