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