本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。