我当时使用简单的逻辑回归来预测问题,并尝试用predict_proba(X_test)
绘制 precision_recall_curve 和 roc_curve 。我检查了predict_proba
的文档字符串,但是关于它的工作方式没有太多细节。每次输入都有错误,并检查y_test
,predict_proba(X_test)
不匹配。最终发现predict_proba()
产生2列,人们使用第二列。
如果有人可以解释它如何产生两列及其意义,那将非常有帮助。 TIA。
答案 0 :(得分:1)
predict_proba()
产生形状(N,k)的输出,其中N是数据点的数量,k是您要分类的类的数量。看来您有两个类,因此您有2列。假设您的标签(类)为[“健康”,“糖尿病”],如果预测数据点有80%的机会患有糖尿病,因此有20%的机会是健康的,那么该点的输出行将为[0.2 ,0.8]来反映这些概率。通常,您可以遍历预测的数组并使用model.predict_proba(X)[:,k-1]
对于绘图,您可以对precision_recall_curve执行以下操作:
predicted = logisticReg.predict_proba(X_test)
precision, recall, threshold = precision_recall_curve(y_test, predicted[:,1])
对于中华民国:
predicted = logisticReg.predict_proba(X_test)
fpr, tpr, thresholds = precision_recall_curve(y_test, predicted[:,1])
请注意,对于多标签分类,这将改变。您可以在sklearn文档here
中找到一个示例答案 1 :(得分:0)
我们可以使用分类器类来区分分类器。如果分类器名称为 model ,则 model.classes _ 将给出不同的类。