您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

一些具有fit和transform方法或fit_transform方法的类。

-具有fit和预测方法或fit_predict方法的某些类。

只是一个抽象概念,它不是现有的ml算法。在ML任务中,通常需要在应用最终估计量之前对原始数据集执行不同变换的序列(查找特征集,生成新特征,仅选择一些良好特征)。

是管道使用的一个很好的例子。管道为您提供了用于转换的所有三个步骤和结果估计器的单一界面。它在内部封装了转换器和预测变量,现在您可以执行以下操作:

    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)

使用管道,您可以轻松地针对该元估计器的每个步骤对一组参数执行网格搜索。如以上链接中所述。除最后一个步骤外,所有步骤都必须是转换步骤,最后一个步骤可以是转换器或预测值。 :致电时pipln.fit()-管道内的每个变压器都将安装在先前变压器的输出上(从原始数据集获悉第一个变压器)。最后一个估计器可以是转换器或预测器,仅当您的最后一个估计器是转换器(可以实现fit_transform或分别转换和拟合方法)时,才可以在管道上调用fit_transform(),只有在以下情况下,才可以在管道上调用fit_predict()或predict():您的最后一个估算器是预测器。因此,您无法调用fit_transform或在管道上进行转换,后者的最后一步是预测变量。

python 2022/1/1 18:42:13 有283人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶