pipeline 有以下妙用: 1、便捷性和封装性:直接调用fit和predict方法来对pipeline中的所有算法模型进行训练和预测。 2、联合的参数选择:你可以一次grid search管道中所有评估器的参数。 3、安全性:训练转换器和预测器使用的是相同样本,管道有助于防止来自测试数据的统计数据泄露到交叉验证的训练模型中。
sklearn.pipeline.Pipeline(steps, memory=None, verbose=False) 参数详解: steps : 步骤:使用(key, value)列表来构建,其中 key 是你给这个步骤起的名字, value 是一个评估器对象。 memory:内存参数,默认None Pipeline的function Pipline的方法都是执行各个学习器中对应的方法,如果该学习器没有该方法,会报错。假设该Pipline共有n个学习器: transform:依次执行各个学习器的transform方法 fit:依次对前n-1个学习器执行fit和transform方法,第n个学习器(最后一个学习器)执行fit方法 predict:执行第n个学习器的predict方法 score:执行第n个学习器的score方法 set_params:设置第n个学习器的参数 get_param:获取第n个学习器的参数
from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.decomposition import PCA from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split iris=load_iris() print(iris) print("\n") print(iris.data.shape) print(len(iris.target)) X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.25,random_state=1) print(X_train) print("\n") print(X_test) print("\n") print(y_train) print("\n") print(y_test) print("\n") pipe=Pipeline([('sc', StandardScaler()),('pca',PCA()),('svc',SVC())]) #('sc', StandardScaler()) sc为自定义转换器名称,StandardScaler()为执行标准化任务的转换器 pipe.fit(X_train,y_train) print(pipe) y_pre=pipe.predict(X_test) print(y_pre) print(pipe.score(iris.data,iris.target)) from sklearn.metrics import accuracy_score p=accuracy_score(y_test, y_pre) print(p)