как преодолеть разницу в точности с SVM? - PullRequest
0 голосов
/ 19 июня 2020

С 10-кратной перекрестной проверкой и применением классификатора SVM я достиг различий в точности, как указано ниже, с исходным кодом и выводом.

from sklearn import svm
svm_class = svm.SVC(kernel='linear')

result_svm= cross_val_score(svm_class, x,encoded_Y, scoring='accuracy', cv = 10)
print("Accuracy with SVM")
result_svm.mean()*100

Вывод:

Accuracy with SVM
92.19999999999999

Код для прогноза:

y_pred_svm=cross_val_predict(svm_class,x,encoded_Y,cv=10)

Код для матрицы путаницы:

import numpy as np
y_s=np.argmax(y, axis=1)
from sklearn.metrics import confusion_matrix
cm_svm = confusion_matrix(y_s, y_pred_svm)
cm_svm

Вывод:

array([[173,  27],
       [ 12, 288]], dtype=int64)

Код для отчета о классификации:

from sklearn.metrics import classification_report 
print('Classification report for SVM Classifier')
print(classification_report(y_s, y_pred_svm))

Вывод:

Classification report for SVM
              precision    recall  f1-score   support

           0       0.00      0.00      0.00       200
           1       0.60      1.00      0.75       300

    accuracy                           0.60       500
   macro avg       0.30      0.50      0.37       500
weighted avg       0.36      0.60      0.45       500
  • Кто-нибудь может сказать мне, почему нет прогноза для метки 0?
  • Почему есть две точности: 92,19% и 0,60 (т.е. 60%) ?
  • Какая точность предназначена для набора поездов, а какая - для набора тестов?
  • Как мы можем проанализировать точность набора поездов и наборов тестов при перекрестной проверке?
  • Какую точность мне взять?
...