python回归模型_使用python进行多项式回归

本文介绍了如何在scikit-learn中使用多项式特征转换进行非线性拟合,展示了如何通过Pipeline组合PolynomialFeatures和LinearRegression,并通过实际例子演示了如何训练一个阶数为3的多项式模型来精确捕捉输入函数。此外,还提到了如何通过设置interaction_only来仅包含交互特征的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scikit支持线性和多项式回归.

在多项式回归部分检查Generalized Linear Models页面:使用基函数扩展线性模型.

例:

>>> from sklearn.preprocessing import PolynomialFeatures

>>> import numpy as np

>>> X = np.arange(6).reshape(3, 2)

>>> X

array([[0, 1],

[2, 3],

[4, 5]])

>>> poly = PolynomialFeatures(degree=2)

>>> poly.fit_transform(X)

array([[ 1, 0, 1, 0, 0, 1],

[ 1, 2, 3, 4, 6, 9],

[ 1, 4, 5, 16, 20, 25]])

X的特征已经从[x_1,x_2]变换为[1,x_1,x_2,x_1 ^ 2,x_1 x_2,x_2 ^ 2],现在可以在任何线性模型中使用.

使用Pipeline工具可以简化这种预处理.可以创建表示简单多项式回归的单个对象,如下所示:

>>> from sklearn.preprocessing import PolynomialFeatures

>>> from sklearn.linear_model import LinearRegression

>>> from sklearn.pipeline import Pipeline

>>> model = Pipeline([('poly', PolynomialFeatures(degree=3)),

... ('linear', LinearRegression(fit_intercept=False))])

>>> # fit to an order-3 polynomial data

>>> x = np.arange(5)

>>> y = 3 - 2 * x + x ** 2 - x ** 3

>>> model = model.fit(x[:, np.newaxis], y)

>>> model.named_steps['linear'].coef_

array([ 3., -2., 1., -1.])

在多项式特征上训练的线性模型能够精确地恢复输入多项式系数.

在某些情况下,没有必要包括任何单个特征的更高权力,而只需要包含最多d个不同特征的所谓交互特征.这些可以通过设置interaction_only = True从PolynomialFeatures获得.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值