Хой, чтобы получить точно обратный результат предсказания? - Sklearn предсказывает совершенно неправильно - PullRequest
0 голосов
/ 31 октября 2019

Мои модели предсказывают совершенно неверные результаты. Для проблемы классификации двух классов существует много ложных срабатываний и ложных отрицаний. На самом деле у меня был бы хороший результат, если бы я мог получить только противоположные. Итак, у меня есть простой фрагмент, подобный следующему:

clf = neural_network.MLPClassifier(solver='lbfgs', alpha=1e-5
                                   , hidden_layer_sizes=(5, 2)
                                   , random_state=1, max_iter=5000)
clf.fit(X_train, y_train)
print('TRAIN')
print(classification_report(y_train, clf.predict(X_train)))
print(confusion_matrix(y_train, clf.predict(X_train)))
print('\nTEST')
print(classification_report(y_test, clf.predict(X_test)))
print(confusion_matrix(y_test, clf.predict(X_test)))

И матрица путаницы выглядит примерно так:

[[2 7]
 [8 2]]

Итак, я мог бы использовать вывод типа

[[8 2]
 [2 7]]

Как я могу достичь этого, не воздействуя непосредственно на результаты? Заранее спасибо.

1 Ответ

1 голос
/ 31 октября 2019

Если у вас есть оригинальный фрейм данных:

X,y

, и вы сделали:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

Тогда код верен. Это означает, что ничего не меняйте в выводе. Если бы вы могли сделать, запустите другой поезд / тест-сплит, чтобы увидеть, как меняются результаты. У вас просто плохой классификатор, но вы не настраиваете его вручную, вот и все.

...