Машина опорных векторов выводит два нуля в Confusion Matrix - PullRequest
0 голосов
/ 19 марта 2020

Я работаю над проектом ML, чтобы предсказать конкретный логический столбец. Я использую SVM в SKlearn. У меня есть некоторые функции, которые я пытаюсь использовать в качестве описательных функций. Эти функции содержат целые числа (кодировка метки) и имеют максимум три уникальных значения. Матрица путаницы и классификационный отчет, который создается после того, как я сделаю прогноз, ниже. Я не могу понять, почему это классифицирует ноль результатов. Любая помощь? изображение кода здесь

Приведенный ниже код использует одну описательную функцию, которая содержит три уникальных целых числа, а целевой функцией является логический столбец.

from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, y_pred)
array([[9309,    0],
       [8896,    0]], dtype=int64)

from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))
      precision    recall  f1-score   support

           0       0.51      1.00      0.68      9309
           1       0.00      0.00      0.00      8896

    accuracy                           0.51     18205

Вот кодировка и обучение

encoder = preprocessing.LabelEncoder()
df['Gaze'] = encoder.fit_transform(df['Gaze'])
df['Blink'] = encoder.fit_transform(df['Blink'])
df['Brows'] = encoder.fit_transform(df['Brows'])
df['QuestionType'] = encoder.fit_transform(df['QuestionType'])


y = df[['QuestionType']]
X = df[['Blush']]

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

from sklearn.preprocessing import MinMaxScaler
scaling = MinMaxScaler(feature_range=(-1,1)).fit(X_train)
X_train = scaling.transform(X_train)
X_test = scaling.transform(X_test)

clf.fit(X_train, y_train)
y_score = clf.decision_function(X_test)
y_pred = clf.predict(X_test)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...