最近这段时间学习了机器学习中的线性模型,用自己定义的最小二乘法函数和sklearn中的linear_model方法完成了几个小实例,具体就是通过我们班同学的各科成绩来预测最后的平均绩点模型,但不清楚sklearn库中的源码就直接调用都有点不好意思了~~在这里主要还是想记录一下我对于LinearRegression的理解。

       
打开pycharm,安装好scikit-learn库后在Python-Package中可以找到scikit-learn,点开它会显示此库的一些信息。

         点击文档-->Regression,官方文档里详尽写了sklearn中的各种模型的用法和实例。

         这里不多赘述,直接上源码!!!
from sklearn import linear_model
        新建python文件后输入上行代码
,按住Ctrl键左键点击linear_model就会进入_init_.py,在里面找到'LinearRegression',同样按住Ctrl键左键点击进入_base.py,此时看到的就是sklearn中线性回归模型的源码。

#################################从这里开始看 #################################
class LinearRegression(MultiOutputMixin, RegressorMixin, LinearModel):
注释部分写有

一、简介

普通最小二乘法线性回归。
线性回归拟合一个系数为w = (w1,…wp)中观测目标之间的残差平方和(剩余平方和)最小数据集和线性逼近预测的目标。

二、参数(Parameters)

fit_intercepe:是否计算模型的截距,截距就是公式中的“b”,布尔类型,默认值为True

normalize:是否标准化,标准化可以使不同的特征具有相同的维度(尺度),布尔类型,默认值为False

copy_X:是否复制x,否则得出的x值将被正则化覆盖,布尔类型,默认值为True

n_jobs:用于计算的核数,设为-1时最快,int类型,默认值为1

positive:强制系数为正数。仅支持密集阵列。布尔类型,默认值为False

源码如下:
@_deprecate_positional_args def __init__(self, *, fit_intercept=True,
normalize=False, copy_X=True, n_jobs=None, positive=False): self.fit_intercept
= fit_intercept self.normalize = normalize self.copy_X = copy_X self.n_jobs =
n_jobs self.positive = positive
三、属性(Attributes)

coef_:线性回归问题的系数,即公式中各特征x前的系数w。

rank_:矩阵X的秩,仅当' X '密集时可用

singular_:数组的形状(min(X, y))' X '的奇异值。仅当' X '密集时可用。

intercept_:线性模型中的独立项。截距b(或),只能为数组型(array)和浮点数(float)型

属性我们可以这样用:
model = linear_model.LinearRegression() model.fit(x_data, y_data)
print("系数w:", model.coef_) print("偏置项b:", model.intercept_)
运行代码后可在运行栏中观察到系数和偏置项的结果(有几个特征就有几个系数w)
系数w: [0.03835515 0.03039367] 偏置项b: -2.4193839868128992
 今天就为大家分享到这里,学习阶段,第一次写文章,不知道效果如何,有不足望指正!!!

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信