簡體   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