scikit-learn 线性回归 LinearRegression 参数详解

scikit-learn 线性回归 LinearRegression 参数详解

LinearRegression 参数详解

# 从 sklearn 中引入线性模型模块
from sklearn import linear_model
# 建立线性回归对象 reg
reg = linear_model.LinearRegression(fit_intercept=True,copy_X=True,n_jobs=-1,positive=False)

fit_intercept: 是 bool 值只支持 True /False, 默认是 True
意思是,模型是否拟合截距项 w 0 w_0 w0 一般情况下我们都需要拟合 w 0 w_0 w0 也就是我们使用 True 选项,但是对于一些已经中心化的数据,其截距项可以确定为 0 我们就可以使用 False 选项,不拟合截距项。

例如:

# 从 sklearn 中引入线性模型模块
from sklearn import linear_model
# 建立线性回归对象 reg
reg = linear_model.LinearRegression(fit_intercept=False)
# 通过建立的对象拟合数据 x 为 [[0, 0], [1, 1], [2, 2]], y 为 [0, 1, 2] 
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# 拟合的参数系数如下 y = 0.5x1 + 0.5x2
print(reg.coef_)
print(reg.intercept_)

在这里插入图片描述

作为对比我们看另一个例子

# 从 sklearn 中引入线性模型模块
from sklearn import linear_model
# 建立线性回归对象 reg
reg = linear_model.LinearRegression(fit_intercept=True)
# 通过建立的对象拟合数据 x 为 [[0, 0], [1, 1], [2, 2]], y 为 [0, 1, 2] 
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# 拟合的参数系数如下 y = 1.1102230246251565e-16 + 0.5x1 + 0.5x2
print(reg.coef_)
print(reg.intercept_)

在这里插入图片描述
我们可以看到这两个拟合结果一个截距项确定为 0,一个截距项是非常接近 0 的数,这就是 fit_intercept 参数的作用。

copy_X: 是 bool 值只支持 True /False, 默认是 True
意思是我们的特征矩阵 X 是否需要拷贝,如果拷贝一份的话 scikit-learn 做的运算不会影响我们的原始数据,否则我们的 X 矩阵有可能会被覆盖。一般而言这个选项我们都使用 True,毕竟我们不希望原始数据被修改。

n_jobs 是 int 型,默认是 None (在这种情况下相当于 1)
意思是使用多少个 processor 完成这个拟合任务,通常来说对于少量数据我们可以使用默认选项 None,但是对于数据量较大且我们电脑 CPU 性能较好且有多核的情况下我们可以使用 -1 这个参数,调用所有 processor 为我们计算,减少运算所使用的时间。

positive 是 bool 型,默认是 False
意思是拟合的系数是否限制为正数,一般来说我们都使用 False 选项。
使用 True 选项往往是因为实际问题中参数存在限制,比如一些有具体含义的参数(必须是正数),需要注意的是 True 选项可能只支持 dense array (个人理解就是不支持带约束的稀疏矩阵的相关运算)。

参考文献

https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值