2014-02-28 1 views
0

sklearn의 최적화 함수를 사용하여 다 변수 함수를 최적화하는 코드를 작성하려고하지만 IndexError를 계속 반환합니다. 여기에서 어디로 가야할지 모르겠습니다. .scipy의 optimize.minimize 함수를 이해하려고하는데 indexerror가 발생했습니다.

코드는 이것이다 : 내 가까운 이웃 알고리즘에 사용하고 두 가지 기능이 있습니다

revcoeff = coefficients[::-1] 
xdot = np.zeros(0) 
normfeat1 = normfeat1.reshape(-1,1) 
xdot = np.append(normfeat1, normfeat2.reshape(-1,1), axis=1) 
a = revcoeff[1:3] 
b = xdot[0, :]  

seed = np.zeros(5) #does seed need to be the coefficients? not sure 
fun = lambda x: np.multiply((1/666), np.power(np.sum(np.dot(a, xdot[x, :])-medianv[x]),2))  #costfunction 

optsol = optimize.minimize(fun, seed) 

. 적합 회귀 모델에 대한 계수는 배열 "계수"에 제공됩니다.

내가 이해하는데 어려움을 겪고있는 이유는 무엇입니까? 1) 내 코드가 "IndexError : 지표가 정수 또는 부울 유형이어야합니다."라는 오류가 발생하는 이유는 무엇입니까? 또한 부분적으로는 부분적으로는 혼란 스럽습니다. 기능 자체를 최소화하십시오. 함수와 x0 (초기 추측을 가진 ndarray)의 두 입력 값을 취합니다. x0은 무엇이되어야하며, 계수 값은 무엇입니까? 또는 무작위 값을 선택합니까? 얼마나 많이 필요합니까?

답변

0

np.zeros()은 기본적으로 정수를 반환하지 않습니다. 예를 들어, np.zeros(5, dtype=int)을 대신 입력하십시오. 그래도 코드의 모든 문제를 해결할 수는 없습니다. 다른 오류 메시지가 나타납니다.

또한 1/666은 0.00150150 대신 0을 반환합니다. 아마도 1/666.0을 원할 것입니다.

절반을 사용하지 않아도 코드를 정리할 수 있다면 도움이됩니다.

+0

맞습니다. 오류가 발생합니다. 이번에는 "ValueError : objects not aligned"- 내 함수 또는 시드 배열의 값 길이와 관련이 있습니까? – user2635779

+0

도움이된다면 코드를 약간 정리했습니다. – user2635779

+0

변수의 길이가'xdot [x, :]'변수와 일치하지 않으며'np.dot()'에서 오류가 발생하지만 그것은 당신의 코드가 당신이보고있는 것을 복제하는 것이 가능하지 않다는 것을 감안할 때 단지 추측입니다. 실행될 수있는 코드를 제시 할 수 있다면 도움이 될 것입니다. –

관련 문제