С 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%) ?
- Какая точность предназначена для набора поездов, а какая - для набора тестов?
- Как мы можем проанализировать точность набора поездов и наборов тестов при перекрестной проверке?
- Какую точность мне взять?