繁体   English   中英

在 Python 中绘制 RidgeClassifier 的 ROC 曲线

[英]Plotting ROC curve for RidgeClassifier in Python

我想 plot RidgeClassifier的 ROC 曲线。 但是代码有一个错误:我用谷歌搜索了解决方案,结果将predict_proba更改为predict ,但它不起作用!

predY = classifier.predict_proba(X_test)

错误:

AttributeError: 'RidgeClassifier' object has no attribute 'predict_proba'

这就是我得到的predict

IndexError: too many indices for array

根据文档Ridge.Classifier没有predict_proba属性。 这一定是因为 object 在拟合过程中自动选择了一个阈值。

鉴于文档,我相信没有办法 plot 为这个 model 的 ROC 曲线。 幸运的是,您可以使用sklearn.linear_model.LogisticRegression并设置penalty='l2' 通过这样做,您设置了RidgeClassifier考虑的相同优化问题。

from sklearn.linear_model import LogisticRegression

classifier = LogisticRegression(penalty='l2')
classifier.fit(X, y)
predY = classifier.predict_proba(X_test)

现在您可以将predY传递给sklearn.metrics.roc_curve

这里的问题是,并非所有 scikit-learn 分类器都有predict_proba方法,因为这些模型的计算概率并不总是合理的定义。 在这种情况下,请尝试使用decision_function方法:

confidence = classifier.decision_function(X_test)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM