sklearn pipeline_sklearn中Pipeline管道机制

pipeline 是对机器学习各个步骤进行封装的流水线式工作,按照封装顺序依次执行的一种机制,便于灵活调整多项式模型参数。

封装 pipeline 时包括以下几个流程:

  • 使用多项式 PolynomialFeatures;

  • 使用 StandardScaler 对特征进行标准化,使得各特征均值为 1,方差为 0;

  • 可以使用 PAC 对特征进行选取;

  • 对模型进行训练和验证。


下面来演示下在 Python 中是如何应用。

导入建模需要的库

# 导入管道机制
from sklearn.pipeline import Pipeline 

# 导入多项式
from sklearn.preprocessing import PolynomialFeatures

# 数据标准化
from sklearn.preprocessing import StandardScaler

# 导入线性回归模型
from sklearn.linear_model import LinearRegression

# 划分测试集和训练集
from sklearn.model_selection import train_test_split

# 模型评估指标
from sklearn.metrics import mean_squared_error

# 数据集
from sklearn.datasets import load_iris

加载数据集

# 加载数据集
data = load_iris()
X = data.data
y = data.target

# 切分数据集,将数据集切分为70%的训练集和30%的测试集
train_x, test_x, train_y, test_y = train_test_split(X,y, test_size=0.3, random_state = 0)

封装 pipeline 管道
pipeline 接受任意个数的转换器,这些转换器必须包含 fit 和 transform 函数;先经过 StandardScaler 标准化,可加入 PCA 过程,最后的参数必须是一个评估器。

def PolynomialRegression(degree):
    return Pipeline([
        ('poly', PolynomialFeatures(degree=degree)),
        ('std_scaler', StandardScaler()),
        ('lin_reg', LinearRegression())
    ])
# 建模
poly2_reg = PolynomialRegression(degree=2)
poly2_reg.fit(X, y)
y2_predict = poly2_reg.predict(X)

最后根据验证模型的好坏

# 比较真值和预测值的均方误差
mean_squared_error(y, y2_predict)
781272c699635dc05dc5d9c861b783a5.png

7d864b3b0e717c1ea28a5514a29098c4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值