Я не вижу перекрестной проверки части кода.Предположим, что вы сделали это, и это выглядит примерно так:
from sklearn.model_selection import KFold
from sklearn.svm import SVC
kf = KFold(n_splits = 5, shuffle = True)
for train_index, test_index in kf.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train = y_true[train_index]
svclassifier_rbf = SVC(kernel='rbf')
svclassifier_rbf.fit(X_train, y_train)
###### NEXT LINE NEEDED #######
y_pred_A_rbf[test_index] = svclassifier_rbf.predict(X_test)
В вашем коде отсутствует svclassifier_rbf.predict(X_test)
Это используется для прогнозирования ваших классов.Теперь вы можете взять значения переменной y_pred_A_rbf
и передать ее в матрицу путаницы, чтобы прочитать ваши истинные положительные стороны, истинные отрицательные значения, ложные положительные значения и ложные отрицательные значения.Типичная запутанная матрица в Python может быть отображена на следующем рисунке:
Теперь, когда у вас есть два массива фактических и предсказанных меток,вы можете сделать что-то вроде , если фактическая метка и предсказанная метка верны, или, другими словами, 1, то они являются истинными положительными значениями и правильно классифицированы , аналогично, вы можете сделать следующее дляистинные отрицания, ложные срабатывания и ложные отрицания для изучения того, какие записи были предсказаны и классифицированы правильно или неправильно.
Например, если вы хотите узнать, какие записи были правильно классифицированы как положительный класс (в данном случаевозможно, допустим дефект), вы можете сделать:
tp = np.where((y_true == 1) & (y_pred == 1), 'True Positive', 'Else')
Теперь вы получите индексы всех записей, которые были должным образом классифицированы как положительный класс.