怎么得到完全相反的预测结果? - sklearn 预测完全错误
Hoy to get exactly inverse prediction results? - sklearn predicts perfectly wrong
我的模型预测的结果完全错误。对于一个二 类 分类问题,存在大量的误报和漏报。事实上,如果我能得到相反的结果,我会得到一个不错的结果。所以我有一个像下面这样的简单片段:
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]]
不直接对结果进行操作如何实现呢?
提前致谢。
如果您有原始数据框:
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)
那么代码是正确的。这意味着不要更改输出中的任何内容。您可以 运行 另一个 train/test-split 看看结果是如何改变的。
你只是有一个糟糕的分类器,但不要手动调整它,那是胡说八道。
我的模型预测的结果完全错误。对于一个二 类 分类问题,存在大量的误报和漏报。事实上,如果我能得到相反的结果,我会得到一个不错的结果。所以我有一个像下面这样的简单片段:
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]]
不直接对结果进行操作如何实现呢? 提前致谢。
如果您有原始数据框:
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)
那么代码是正确的。这意味着不要更改输出中的任何内容。您可以 运行 另一个 train/test-split 看看结果是如何改变的。 你只是有一个糟糕的分类器,但不要手动调整它,那是胡说八道。