[英]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.