2

尝试创建 ROC 曲线。

model = RandomForestClassifier(500, n_jobs = -1);
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

probas = model.predict_proba(X_test)[:, 1]
precision = metrics.precision_score(y_test, y_pred)    # returns 0.72

recall = metrics.recall_score(y_test.values, y_pred)   # returns 0.35
y_test.shape                                           # (39257, 1)

auc = metrics.roc_auc_score(y_test, probas)            # fails.

ValueError:y_true 中只有一个类。ROC AUC 分数在这种情况下没有定义。

4

2 回答 2

4

最终回答了我自己的问题:

已将 y_test 作为 pandas DataFrame 而不是 Series 导入(使用 to_csv 保存并使用 from_csv 在其他地方导入)。

ROC 曲线上的这种混乱的 scikit,但它似乎对其他任何地方都很满意。

我会把这个留在这里,以防(不太可能)有人遇到同样的事情。

于 2015-07-27T16:23:16.183 回答
0

有时我们会遇到不平衡的数据集。

就像在拆分时一样,任何一个类都有可能不存在任何数据集(测试数据集)。所以分裂时最好使用分层技术。

或者如果您在训练 MLP 模型时面临,那么您可以尝试增加“batch_size”

我希望,它可能会有所帮助。谢谢

于 2021-06-05T16:59:49.550 回答