2017-04-04 9 views
0

훈련 데이터를 예측 그래서 같은 scikit - 학습의 SVM을 사용 : 내가 훈련 세트의 멤버의 클래스를 예측하는 분류를 사용할 때sklearn

clf = svm.SVC() 
clf.fit(td_X, td_y) 

내 질문은, 분류 혹시 잘못 될 수있다 scikit-learns 구현에서도. (. 예를 들어 clf.predict(td_X[a])==td_Y[a])

답변

2

예 확실히, 예를 들어,이 코드를 실행 :

from sklearn import svm 
import numpy as np 
clf = svm.SVC() 
np.random.seed(seed=42) 
x=np.random.normal(loc=0.0, scale=1.0, size=[100,2]) 
y=np.random.randint(2,size=100) 
clf.fit(x,y) 
print(clf.score(x,y)) 

점수는 0.61이므로, 훈련 데이터의 약 40 %가 missclassified된다. 그 이유 중 하나는 기본 커널이 'rbf' (이론적으로는 서로 다른 레이블을 가진 두 개의 동일한 교육 포인트가없는 한 모든 교육 데이터 세트를 완벽하게 분류 할 수 있어야 함)이지만 정규화는 다음과 같습니다. overfitting을 줄이십시오. 기본 정식 사용자는 C=1.0입니다.

위 코드와 동일한 코드를 실행했지만 clf = svm.SVC()clf = svm.SVC(C=200000)으로 변경하면 정확도는 0.94가됩니다.