2017-12-05 39 views
-1

기계 학습에 비교적 익숙하며 다음과 같은 도움이 필요합니다.sklearn에서 10 배 교차 검증을 실행 한 후 SVC 분류기를 실행하는 방법은 무엇입니까?

10 배 교차 유효성 검사를 사용하여 SVC (Support Vector Machine Classifier)를 실행하고 정확도 점수를 계산했습니다. 약 89 %). 저는 파이썬과 scikit을 사용하여 작업을 수행합니다. 이제

def get_scores(features,target,classifier): 
    X_train, X_test, y_train, y_test =train_test_split(features, target , 
    test_size=0.3) 
    scores = cross_val_score(
    classifier, 
    X_train, 
    y_train, 
    cv=10, 
    scoring='accuracy', 
    n_jobs=-1) 
return(scores) 

get_scores(features_from_df,target_from_df,svm.SVC()) 

, 어떻게 내가 X_test에서 테스트하고 y_test하는 예측 결과를 비교합니다 (10 폴드 이력서를 실행 한 후) 내 분류를 사용할 수 있습니다 여기에 코드입니다? 눈치 챘을 지 모르지만 교차 검증 과정에서 X_train과 y_train 만 사용했습니다.

나는 sklearn이 cross_val_predict를 가지고있는 것을 알아 냈습니다 : http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html cross_val_score를 cross_val_predict로 대체해야합니까? 그냥 FYI : 내 목표 데이터 열이 이진화되었습니다 (0과 1의 값을가집니다).

내 접근 방식이 잘못 되었다면 계속 진행하는 가장 좋은 방법을 알려주십시오.

감사합니다.

답변

0

당신은 거의 다 :이 시점에서

# Build your classifier 
classifier = svm.SVC() 

# Train it on the entire training data set 
classifier.fit(X_train, y_train) 

# Get predictions on the test set 
y_pred = classifier.predict(X_test) 

, 당신은 당신이 얼마나 잘했는지 확인하기 위해 sklearn.metrics 모듈에서 모든 통계를 사용할 수 있습니다. 예 :

from sklearn.metrics import accuracy_score 
print(accuracy_score(y_test, y_pred)) 
+0

답변 해 주셔서 감사합니다. 그러나 이것은 교차 검증을 고려하지 않습니다. 어떤 대안이든 좋을 것입니다. –

+1

@ M_13 교차 검증을 고려한 모델은 없습니다. CV는 데이터에서 모델의 성능을 확인하는 것입니다. [cross-validation] (http://scikit-learn.org/stable/modules/cross_validation.html)에 대해 읽어보십시오. –