首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TPOT机器学习

TPOT机器学习
EN

Data Science用户
提问于 2021-05-24 14:08:08
回答 1查看 345关注 0票数 1

我在Google上训练了一个回归TPOT算法,其中TPOT过程的输出是一些锅炉板Python代码,如下所示。

代码语言:javascript
复制
import numpy as np
import pandas as pd
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline, make_union
from tpot.builtins import StackingEstimator
from tpot.export_utils import set_param_recursive

# NOTE: Make sure that the outcome column is labeled 'target' in the data file
tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64)
features = tpot_data.drop('target', axis=1)
training_features, testing_features, training_target, testing_target = \
            train_test_split(features, tpot_data['target'], random_state=1)

# Average CV score on the training set was: -4.881434802676966
exported_pipeline = make_pipeline(
    StackingEstimator(estimator=ExtraTreesRegressor(bootstrap=False, max_features=0.9000000000000001, min_samples_leaf=1, min_samples_split=20, n_estimators=100)),
    ExtraTreesRegressor(bootstrap=True, max_features=0.9000000000000001, min_samples_leaf=6, min_samples_split=13, n_estimators=100)
)
# Fix random state for all the steps in exported pipeline
set_param_recursive(exported_pipeline.steps, 'random_state', 1)

exported_pipeline.fit(training_features, training_target)
results = exported_pipeline.predict(testing_features)

有人知道Sklearn管道过程是什么样子的吗?当我改进锅炉板代码并使用IPython中的数据集运行它时,我可以看到管道过程中的输出,这些都在做什么?

代码语言:javascript
复制
Pipeline(steps=[('stackingestimator-1',
                 StackingEstimator(estimator=ExtraTreesRegressor(max_features=0.6500000000000001,
                                                                 min_samples_leaf=19,
                                                                 min_samples_split=14,
                                                                 random_state=1))),
                ('maxabsscaler', MaxAbsScaler()),
                ('stackingestimator-2',
                 StackingEstimator(estimator=ExtraTreesRegressor(max_features=0.4,
                                                                 min_samples_leaf=3,
                                                                 min_samples_split=7,
                                                                 random_state=1))),
                ('adaboostregressor',
                 AdaBoostRegressor(learning_rate=0.001, loss='exponential',
                                   n_estimators=100, random_state=1))])

结果看起来很好,只是好奇的管道处理如何工作,任何提示或链接到教程非常赞赏。我认为这个机械掌握教程对任何有兴趣了解更多关于TPOT的人也有一定的帮助。

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-05-24 15:28:33

StackingEstimator的文档非常糟糕,但相对简单:将estimator放在数据上,并将其预测作为一个新特性添加到dataset上。来源github问题.

因此,您的管道适合原始输入的ExtraTreesRegressor,并将其预测附加到未来的数据集中。数据(原始+1预测)被缩放,然后另一个ExtraTreesRegressor是合适的(在缩放的原始和第一preds上,并且有不同的超参数),它的预测也被附加到数据集上。最后,AdaBoostRegressor适合于缩放-原始+缩放-1-preds+2-preds。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/94842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档