sklearn之多项式回归

本文介绍了如何在sklearn中实现多项式回归,重点讨论了多项式变化和相关参数,如degree、interaction_only和include_bias。通过创建新特征并使用线性回归进行拟合,同时提到了多项式回归与线性回归的相似之处。文中还提到了多项式回归的优缺点,并指出在某些情况下,多项式回归可能不如随机森林等其他模型有效。
摘要由CSDN通过智能技术生成

多项式回归其实本质上与线性回归一样,在sklearn中,多项式回归与线性回归的使用方法一致,唯一不同的是需要我们自己手动创造多项式(生成新特征),然后再使用线性回归的方法来进行拟合,同样该方法可以在逻辑回归上尝试。

多项式变化

sklearn.preprocessing.PolynomialFeatures(degree=2,interaction_only=False,include_bias=True)

1.degree
多项式中的次数,默认为2
2.interaction_only
布尔值是否只产生交互项,默认为False
3.include_bias
布尔值,是否产出与截距项相乘的 ,默认True

对于多项式回归来说,我们已经为线性回归准备好了x0(截距的系数),但是线性回归并不知道,会将x0当作一个特征,所以一般将include_bias设置为false,或者关闭线性回归中的fit_intercept。
如果我们只要求高次项的话,X1X2会是一个比X1**2更好的高次项,因为X1X2和X1之间的共线性会比X1**2与X1之间的共线性好那么一点点(只是一点点),当interaction_only为True的时候,只生成交互项。

重要接口get_feature_names(),返回每个特征的名称,括号内还可以传入例如DataFrame的列标签,返回的结果就会使列标签的变化,不然默认x0,x1等等
同时可以使用DataFrame,将特征对用的系数放到dataframe中进行排序
coeff = pd.DataFrame([poly.get_feature_names(X.columns),reg.coef_.tolist()]).T

import numpy as np
from sklearn.preprocessing import PolynomialFeatures

# 生成数据
X = np.arange(6).reshape(3, 2)
# array([[0, 1],
#        [2, 3],
#        [4, 5]])

# 尝试二次多项式
print(PolynomialFeatures(degree=2).fit_transform(X))
#       X**0  x1  x2  x1**2  x1*x2  x2**2
# array([[ 1.,  0.,  1.,  0.,  0.,  1.],
#        [ 1.,  2.,  3.,  4.,  6.,  9.],
#        [ 1.,  4.,  5., 16., 20., 25.]])

# 只生成交互项
print(PolynomialFeatures(degree=2,interaction_only=True).fit_transform(X))
# array([[ 1.,  0.,  1.,  0.],
#        [ 1.,  2.,  3.,  6.],
#        [ 1.,  4.,  5., 20.]])

# 取消截距项
print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值