CalibratedClassifierCV

CalibratedClassifierCV

我试图在sklearn管道中添加一个校准步骤,以获得一个已校准的分类器,从而在输出中获得have more trustworthy probabilities

到目前为止,我很笨拙地尝试使用CalibratedClassifierCV沿着“(可重复性的愚蠢示例)”行插入“校准”步骤:

import sklearn.datasets
import pandas as pd
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.linear_model import SGDClassifier
from sklearn.feature_extraction.text import TfidfVectorizer

data = sklearn.datasets.fetch_20newsgroups(categories=['alt.atheism', 'sci.space'])
df = pd.DataFrame(data = np.c_[data['data'], data['target']])\
       .rename({0:'text', 1:'class'}, axis = 'columns')

my_pipeline = Pipeline([
    ('vectorizer', TfidfVectorizer()),
    ('classifier', SGDClassifier(loss='modified_huber')),
    ('calibrator', CalibratedClassifierCV(cv=5, method='isotonic'))
])

my_pipeline.fit(df['text'].values, df['class'].values)

但这是行不通的(至少不是这种方式)。有没有人提供有关如何正确执行此操作的提示?

最佳答案

SGDClassifier对象应放入 CalibratedClassifierCV 's base_estimator argument中。

您的代码应该看起来像这样:

my_pipeline = Pipeline([
    ('vectorizer', TfidfVectorizer()),
    ('classifier', CalibratedClassifierCV(base_estimator=SGDClassifier(loss='modified_huber'), cv=5, method='isotonic'))
])
CalibratedClassifierCV是一个元估算器。

关于python - 在scikit学习管道中插入CalibratedClassifierCV的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49832981/

10-09 17:10