本文簡要介紹python語言中 sklearn.calibration.CalibratedClassifierCV
的用法。
用法:
class sklearn.calibration.CalibratedClassifierCV(base_estimator=None, *, method='sigmoid', cv=None, n_jobs=None, ensemble=True)
使用等滲回歸或邏輯回歸進行概率校準。
此類使用交叉驗證來估計分類器的參數並隨後校準分類器。使用默認
ensemble=True
,對於每個 cv 拆分,它將基本估計器的副本擬合到訓練子集,並使用測試子集對其進行校準。對於預測,預測的概率在這些單獨的校準分類器中進行平均。當ensemble=False
時,交叉驗證用於通過cross_val_predict
獲得無偏預測,然後用於校準。對於預測,使用使用所有數據訓練的基本估計器。這是在probabilities=True
用於sklearn.svm
估計器時實現的方法。已經安裝的分類器可以通過參數
cv="prefit"
進行校準。在這種情況下,不使用交叉驗證,所有提供的數據都用於校準。用戶必須手動注意模型擬合和校準的數據是不相交的。校準基於
base_estimator
的decision_function 方法(如果存在),否則基於predict_proba。在用戶指南中閱讀更多信息。
- base_estimator:估計器實例,默認=無
需要校準其輸出以提供更準確的
predict_proba
輸出的分類器。默認分類器是LinearSVC
。- method:{‘sigmoid’, ‘isotonic’},默認='sigmoid'
用於校準的方法。可以是‘sigmoid’,它對應於 Platt 方法(即邏輯回歸模型)或 ‘isotonic’,它是一種非參數方法。不建議使用校準樣本過少的等滲校準
(<<1000)
,因為它往往會過擬合。- cv:int,交叉驗證生成器,可迭代或“prefit”,默認=無
確定交叉驗證拆分策略。 cv 的可能輸入是:
- 無,使用默認的 5 折交叉驗證,
- 整數,指定折疊次數。
- CV分配器,
- 一個可迭代的 yield (train, test) 拆分為索引數組。
對於整數/無輸入,如果
y
是二進製或多類,則使用StratifiedKFold
。如果y
既不是二進製也不是多類,則使用KFold
。有關可在此處使用的各種交叉驗證策略,請參閱用戶指南。
如果通過“prefit”,則假設
base_estimator
已經擬合,所有數據都用於校準。- n_jobs:整數,默認=無
並行運行的作業數。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。基本估計器克隆在交叉驗證迭代中並行擬合。因此,並行性僅在
cv != "prefit"
時發生。有關詳細信息,請參閱詞匯表。
- ensemble:布爾,默認=真
確定當
cv
不是'prefit'
時如何安裝校準器。如果cv='prefit'
則忽略。如果
True
,則使用訓練數據擬合base_estimator
並使用測試數據進行校準,對於每個cv
折疊。最終估計器是n_cv
擬合分類器和校準器對的集合,其中n_cv
是交叉驗證折疊的數量。輸出是所有對的平均預測概率。如果
False
、cv
用於通過cross_val_predict
計算無偏預測,然後用於校準。在預測時,使用的分類器是在所有數據上訓練的base_estimator
。請注意,此方法也在帶有probabilities=True
參數的sklearn.svm
估計器中內部實現。
- classes_:ndarray 形狀 (n_classes,)
類標簽。
- n_features_in_:int
擬合期間看到的特征數。僅當基礎base_estimator 在合適時公開此類屬性時才定義。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當基礎base_estimator 在合適時公開此類屬性時才定義。
- calibrated_classifiers_:列表(len() 等於 cv 或 1 如果
cv="prefit"
或ensemble=False
) 分類器和校準器對的列表。
- 當
cv="prefit"
時,安裝base_estimator
和安裝校準器。 - 當
cv
不是 “prefit” 和ensemble=True
時,n_cv
適合base_estimator
和校準器對。n_cv
是交叉驗證折疊的數量。 - 當
cv
不是 “prefit” 和ensemble=False
時,base_estimator
適合所有數據,並適合校準器。
- 當
參數:
屬性:
參考:
- 1
從決策樹和樸素貝葉斯分類器獲得校準的概率估計,B. Zadrozny & C. Elkan,ICML 2001
- 2
將分類器分數轉化為準確的多類概率估計,B. Zadrozny & C. Elkan,(KDD 2002)
- 3
支持向量機的概率輸出和與正則似然方法的比較,J. Platt,(1999)
- 4
使用監督學習預測良好概率,A.Niculescu-Mizil & R. Caruana,ICML 2005
例子:
>>> from sklearn.datasets import make_classification >>> from sklearn.naive_bayes import GaussianNB >>> from sklearn.calibration import CalibratedClassifierCV >>> X, y = make_classification(n_samples=100, n_features=2, ... n_redundant=0, random_state=42) >>> base_clf = GaussianNB() >>> calibrated_clf = CalibratedClassifierCV(base_estimator=base_clf, cv=3) >>> calibrated_clf.fit(X, y) CalibratedClassifierCV(base_estimator=GaussianNB(), cv=3) >>> len(calibrated_clf.calibrated_classifiers_) 3 >>> calibrated_clf.predict_proba(X)[:5, :] array([[0.110..., 0.889...], [0.072..., 0.927...], [0.928..., 0.071...], [0.928..., 0.071...], [0.071..., 0.928...]]) >>> from sklearn.model_selection import train_test_split >>> X, y = make_classification(n_samples=100, n_features=2, ... n_redundant=0, random_state=42) >>> X_train, X_calib, y_train, y_calib = train_test_split( ... X, y, random_state=42 ... ) >>> base_clf = GaussianNB() >>> base_clf.fit(X_train, y_train) GaussianNB() >>> calibrated_clf = CalibratedClassifierCV( ... base_estimator=base_clf, ... cv="prefit" ... ) >>> calibrated_clf.fit(X_calib, y_calib) CalibratedClassifierCV(base_estimator=GaussianNB(), cv='prefit') >>> len(calibrated_clf.calibrated_classifiers_) 1 >>> calibrated_clf.predict_proba([[-0.5, 0.5]]) array([[0.936..., 0.063...]])
相關用法
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn CalibrationDisplay.from_estimator用法及代碼示例
- Python sklearn CalibrationDisplay用法及代碼示例
- Python sklearn CategoricalNB用法及代碼示例
- Python sklearn ConfusionMatrixDisplay.from_predictions用法及代碼示例
- Python sklearn ClassifierChain用法及代碼示例
- Python sklearn ComplementNB用法及代碼示例
- Python sklearn CountVectorizer用法及代碼示例
- Python sklearn ConfusionMatrixDisplay用法及代碼示例
- Python sklearn CompoundKernel用法及代碼示例
- Python sklearn ConstantKernel用法及代碼示例
- Python sklearn ConfusionMatrixDisplay.from_estimator用法及代碼示例
- Python sklearn ColumnTransformer用法及代碼示例
- Python sklearn CCA用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.calibration.CalibratedClassifierCV。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。