Я работаю над проектом 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)