gpt4 book ai didi

python - sklearn.pipeline.Pipeline 到底是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:11:51 26 4
gpt4 key购买 nike

我无法弄清楚 sklearn.pipeline.Pipeline 是如何工作的。

doc 中有一些解释.例如它们是什么意思:

Pipeline of transforms with a final estimator.

为了让我的问题更清楚,步骤是什么?它们是如何工作的?

编辑

感谢答案,我可以让我的问题更清楚:

当我调用管道并作为步骤传递时,两个转换器和一个估计器,例如:

pipln = Pipeline([("trsfm1",transformer_1),
("trsfm2",transformer_2),
("estmtr",estimator)])

当我调用它时会发生什么?

pipln.fit()
OR
pipln.fit_transform()

我无法弄清楚估算器如何成为变压器以及如何安装变压器。

最佳答案

Transformer in scikit-learn - 一些具有 fit 和 transform 方法或 fit_transform 方法的类。

Predictor - 一些具有 fit 和 predict 方法或 fit_predict 方法的类。

管道只是一个抽象概念,它不是一些现有的机器学习算法。通常在 ML 任务中,您需要在应用最终估计器之前对原始数据集执行一系列不同的转换(查找特征集、生成新特征、只选择一些好的特征)。

Here是管道使用的一个很好的例子。Pipeline 为您提供了一个单一界面,用于所有 3 个转换步骤和生成的估算器。它将转换器和预测器封装在内部,现在您可以执行以下操作:

    vect = CountVectorizer()
tfidf = TfidfTransformer()
clf = SGDClassifier()

vX = vect.fit_transform(Xtrain)
tfidfX = tfidf.fit_transform(vX)
predicted = clf.fit_predict(tfidfX)

# Now evaluate all steps on test set
vX = vect.fit_transform(Xtest)
tfidfX = tfidf.fit_transform(vX)
predicted = clf.fit_predict(tfidfX)

只需:

pipeline = Pipeline([
('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', SGDClassifier()),
])
predicted = pipeline.fit(Xtrain).predict(Xtrain)
# Now evaluate all steps on test set
predicted = pipeline.predict(Xtest)

使用管道,您可以轻松地对该元估计器的每个步骤的参数集执行网格搜索。如上面链接中所述。除了最后一步之外的所有步骤都必须是变换,最后一步可以是更改器(mutator)或预测器。回答编辑:当您调用 pipln.fit() - 管道内的每个转换器都将安装在前一个转换器的输出上(第一个转换器是在原始数据集上学习的)。最后一个估计器可能是转换器或预测器,只有当您的最后一个估计器是转换器时,您才能在管道上调用 fit_transform()(实现 fit_transform 或单独的变换和拟合方法),您可以在管道上调用 fit_predict() 或 predict() 只有在您的最后一个估计器是预测器。所以你不能在管道上调用 fit_transform 或 transform,最后一步是预测器。

关于python - sklearn.pipeline.Pipeline 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com