sklearn.pipeline
是一个实用的工具,可以将多个数据预处理步骤和机器学习模型组合成一个整体,从而简化了机器学习的流程。Pipeline
类可以将多个算法模型串联起来,比如将特征提取、归一化、分类组织在一起形成一个典型的机器学习问题工作流。主要带来两点好处:1. 直接调用fit
和predict
方法来对pipeline中的所有算法模型进行训练和预测。2. 可以结合grid search对参数进行选择。具体而言,Pipeline
实现了对全部步骤的流式化封装和管理,可以很方便地使参数集在新数据集(比如测试集)上被重复使用。
下面是一个简单的例子,展示了如何使用Pipeline
对训练集和测试集进行如下操作:先用StandardScaler
对数据集每一列做标准化处理(是 transformer),再用PCA将原始的30维度特征压缩到2维度(是 transformer),最后再用模型LogisticRegression(是 Estimator)。调用Pipeline时,输入由元组构成的列表,每个元组第一个值为变量名,元组第二个元素是sklearn中的transformer或Estimator。注意中间每一步是transformer,即它们必须包含fit和transform方法,或者fit_transform。最后一步是一个Estimator,即最后一步模型要有fit方法,可以没有transform方法。
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
pipe_lr = Pipeline([
('sc', StandardScaler()),
('pca', PCA(n_components=2)),
('clf', LogisticRegression(random_state=1))
])
pipe_lr.fit(X_train, y_train)
print('Test accuracy: %.3f' % pipe_lr.score(X_test, y_test))
更多关于Pipeline
的信息,请参考官方文档。
源: 与必应的对话, 2023/10/5 (1) 利用sklearn中pipeline构建机器学习工作流 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/42368821. (2) sklearn pipeline函数-CSDN博客. https://blog.csdn.net/weixin_41500849/article/details/80389331. (3) sklearn的make_pipeline函数的代码解释、使用方法. https://developer.aliyun.com/article/988120. (4) sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略-阿里云开发者社区. https://developer.aliyun.com/article/800578. (5) 机器学习之构建Pipeline(一) - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/395777245. (6) undefined. https://archive.ics.uci.edu/ml/machine-learning-databases/.
标签:pipeline,fit,Pipeline,函数参数,transformer,https,sklearn From: https://blog.51cto.com/u_16055028/7711040