【发布时间】:2020-10-01 17:33:06
【问题描述】:
我的训练数据集有 9 行(样本)和 705 列(特征+目标)(Train_5,y_train_5)
我的测试数据集有 17 行 705 列(我知道拆分不正确)(Test_5, y_test_5)
首先我这样做:
clf = GradientBoostingClassifier ()
fit = clf.fit(Train_5, y_train_5)
y_predicted2 = clf.predict(Test_5)
c_report = classification_report(y_test_5, y_predicted2)
print('\nClassification report:\n', c_report)
Classification report:
precision recall f1-score support
0 0.13 1.00 0.24 2
1 1.00 0.13 0.24 15
这个结果是正常的。但是当我想绘制 ROC 曲线时,它给了我完整的东西,AUC 是 1!
y_predicted = clf.predict_proba(Test_5)[:, 1]
false_positive, true_positive, _ = roc_curve(y_test_5, y_predicted)
auc = roc_auc_score(y_test_5, y_predicted)
auc
1
这是 ROC 曲线。
这显然是错误的!我的意思是一个有 9 个训练样本的分类器怎么能给你这个?我做错了什么?
【问题讨论】:
标签: python pandas numpy machine-learning classification