管道机制是按照封装顺序依次执行的一种机制,在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的重复使用。
具体代码如下:
from sklearn.pipeline import Pipeline #管道机制
from sklearn.preprocessing import StandardScaler #标准化数据
from sklearn import datasets #数据集
from sklearn.model_selection import train_test_split #分训练和测试集
from sklearn.neighbors import KNeighborsClassifier #knn分类
iris = datasets.load_iris()
X_train,X_test,y_train,y_test = train_test_split(iris.data,\
iris.target,test_size=0.1)
pipe=Pipeline(steps=[('standardScaler',StandardScaler()),\
('knn',KNeighborsClassifier(n_neighbors=5))])
pipe.fit(X_train,y_train) #训练模型
pipe.predict(X_test) #预测结果
print('Test accuracy: %.3f' % pipe.score(X_test, y_test))#输出精度
Pipeline中的steps是一个列表结构,里面是由一个个tuple构成,上述代码中包括两个结构:(1)均一化(2)KNN分类器。不管steps中有几个tuple,最后一个一定要是分类器(回归器),前面的可以是各种处理数据的模块。
在每个模块中,可以写入模块中所用的参数。
参考:https://blog.csdn.net/lanchunhui/article/details/50521648