管道
使用sklearn的pipeline方法,可以将从数据预处理、特征提取到模型部署等组件拼装在一起,形成一条算法链。要求是这些组件都具有transfomr
方法,从而实现数据的转换。此外,值得关注的是,使用网格搜索可以直接在算法链上搜索我们需要的参数,比如我们想要启用多项式特征,而不知道1、2、3哪个参数更好,同时我们想要使用岭回归进行回归任务,需要设定参数alpha(岭回归Ridge使用L2正则化,而lasso使用L1正则化,二者都是Linear Regression加入正则化的变体),将加入多项式特征的polynomialfeatures和Ridge组合成一条算法链pipe,并将pipe输入到GridSearchCV进行网格搜索,即可获得最佳的参数配置。
实现
①👇加载波士顿房价数据集并部署管道。
from sklearn.datasets import load_boston
from sklearn.linear_model import Ridge
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.pipeline import make_pipeline
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, random_state=0)
#👇制作管道
pipe = make_pipeline(
StandardScaler