得到了一个奇怪的 ROC 曲线和分类器的 AUC
Got a wierd ROC curve and AUC of a classifier
我的训练数据集有 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 个训练样本的分类器怎么能给你这个?我做错了什么?
不一定是错的。我们必须问问自己轴的含义。它们是真阳性率和真阴性率。即正确和错误标记为 "positive class" 的项目的分数。
如果你的 9 个样本中有 8 个是真正的阳性而最后一个是真正的阴性。这个有可能。想象一下,使用一个滑块并将左侧的所有内容分类为正面,将右侧的所有内容分类为负面。想想你的真阳性率和真阴性率是多少(为简单起见,我总共使用 5 个)
|+|+|+|+|-|
^
^这里,左边什么都没有,所以有 0 个东西被正确或错误地分类为阳性。所以两个轴都是0,让我们把它移到1:
|+|+|+|+|-|
^
^在这里,左边的所有东西都是正的并且分类正确,我们没有任何误报。沿线的每个点都是这种情况
|+|+|+|+|-|
^
^ 同样的解释也适用于这里。让我们再移动一次滑块:
|+|+|+|+|-|
^
^至此。一切实际上是积极的都被正确地标记为积极,一切消极的事情(即一件事)都被错误地标记为积极(因此是假阳性)。这就是为什么这些曲线总是在对角线开始和结束。
我的意思是你也可能把事情搞砸了...
我的训练数据集有 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 个训练样本的分类器怎么能给你这个?我做错了什么?
不一定是错的。我们必须问问自己轴的含义。它们是真阳性率和真阴性率。即正确和错误标记为 "positive class" 的项目的分数。
如果你的 9 个样本中有 8 个是真正的阳性而最后一个是真正的阴性。这个有可能。想象一下,使用一个滑块并将左侧的所有内容分类为正面,将右侧的所有内容分类为负面。想想你的真阳性率和真阴性率是多少(为简单起见,我总共使用 5 个)
|+|+|+|+|-|
^
^这里,左边什么都没有,所以有 0 个东西被正确或错误地分类为阳性。所以两个轴都是0,让我们把它移到1:
|+|+|+|+|-|
^
^在这里,左边的所有东西都是正的并且分类正确,我们没有任何误报。沿线的每个点都是这种情况
|+|+|+|+|-|
^
^ 同样的解释也适用于这里。让我们再移动一次滑块:
|+|+|+|+|-|
^
^至此。一切实际上是积极的都被正确地标记为积极,一切消极的事情(即一件事)都被错误地标记为积极(因此是假阳性)。这就是为什么这些曲线总是在对角线开始和结束。
我的意思是你也可能把事情搞砸了...