2014-01-26 3 views
3

scikit 및 ML에 조금 익숙합니다. 나는 모든 분류에 대해 하나의 SVM 분류자를 훈련시키고있다. 다음 코드를 사용하고 있습니다.scikit을 사용하여 SVM 교육에 잘못된 입력 모양 오류가 발생했습니다.

g=list() 
for i in range(0,120): 
    g.append(1) 
for i in range(120,240): 
    g.append(2) 

u=set(g) 
numclasses=len(u) 

lin_clf = svm.LinearSVC() 
lin_clf.fit(features,u) 

특징은 72,900 * (120) 배열이다. 다른 파이썬 코드에서 기능을 얻고 여기에서 호출합니다. 다음 경고 및 오류가 발생합니다.

/usr/lib/python2.7/dist-packages/scipy/misc/pilutil.py:279: 
DeprecationWarning: fromstring() is deprecated. Please call frombytes() instead. 
image = Image.fromstring(mode, shape, strdata) 

오류

ValueError: bad input shape() 

당신이 특징 추출에 대한 코드가 필요한 경우 의견을주십시오. 미리 감사드립니다.

답변

9

어떤 코드가 오류를 발생시키고 있습니까? lin_clf.fit(features,u)입니까?

LinearSVC의 documentation에 따르면 fit(X,y) 대한 인수는

X {배열 등 희소 행렬} 형상 = N_SAMPLES, n_features]

트레이닝 벡터 N_SAMPLES에서 샘플 수와 n_features는 피쳐의 수입니다.

Y :

X

에 어레이 형상, 모양 = N_SAMPLES]

타겟 벡터 상대적인 그러나, 코드의 u 파이썬 set이다. 길이가 72900 인 배열이 있어야합니다.

관련 문제