Python机器学习 — 线性回归(Linear Regression)

本文详细介绍了线性回归,包括一元和多元线性回归的概念、步骤及模型建立。通过最小二乘法和梯度下降算法求解模型参数,并探讨了这两种方法在实际应用中的差异。最后,通过实例展示了线性回归模型的建立和结果分析。
摘要由CSDN通过智能技术生成

线性回归 -- 简介


       线性回归是机器学习算法中最简单的算法之一,它是监督学习的一种算法,主要思想是在给定训练集上学习得到一个线性函数,在损失函数的约束下,求解相关系数,最终在测试集上测试模型的回归效果。  

       线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y=\omega ^{'}x+ee 为误差服从均值为0的正态分布。

       回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

        线性回归分析

           一元线性回归:一个解释变量

            多元线性回归:多个解释变量

 

线性回归 -- 步骤


       回归分析的步骤:

              1、根据预测目标,确定自变量和因变量;

              2、绘制散点图,确定回归模型类型;

              3、估计模型参数,建立回归模型;

              4、对回归模型进行检验;

              5、利用回归模型进行预测;

线性回归 -- 一元线性回归


       一元回归的主要任务是从两个相关变量中的一个变量去估计另一个变量,被估计的变量,称因变量,可设为y;估计出的变量,称自变量,设为x。回归分析就是要找出一个数学模型y=f\left ( x \right ),使得从x估计y可以用一个函数式去计算。当y=f\left ( x \right )的形式是一个直线方程时,称为一元线性回归。这个方程一般可表示为y=\omega x+b。根据最小平方法或其他方法,可以从样本数据确定常数项b与回归系数\omega的值。b\omega确定后,有一个x的观测值,就可得到一个y的估计值。回归方程是否可靠,估计的误差有多大,都还应经过显著性检验和误差计算。有无显著的相关关系以及样本的大小等等,是影响回归方程可靠性的因素。

       现实世界中的数据总是存在各种误差,比如测量工具的误差,人度数的误差等等。而且数据的产生也大部分是一个随机的过程。所以如果现实世界中存在某些线性关系,那么这个关系也一定是近似的。所以其一次函数其实是这样的:
y=kx+b+e
      其中\small e是数据偏离线性的误差,这个误差是服从正态分布的。什么!你还不知道什么是正态分布?那请先学习下相关知识。就是因为这个\small e的存在,所以对于每一组数据\left ( x,y \right ),他们的误差都是不同的,所以在前面那个式子中,我们不能使用待定系数法求得尽量精确的解。所以就需要一个更高端的做法。

      先不考虑怎么做的话,我们既然知道有这个误差存在了,那么我们就应该让这个误差尽量减小,数据已经是确定好了的,我们只能在计算方法上做文章。这里移项可以得到误差的方程: \left | e \right |=\left | y-kx-b \right |
      所以现在我们就应该想方法,利用已知的\left ( x,y \right )来找的合适的kb使 \left | e \right | 的和对于所有的已知点最小,这就是线性回归的思路。下面介绍具体方法。

      线性回归的方法

      为了求解出最小的 \sum_{i=1}^{n}\left |e _{i} \right |,我们可以其实可以利用平方消去其中的绝对值符号,得到了我们的要求的式子: 

                                                                       \small S=\sum_{i=1}^{n}e^{2}=\sum_{i=1}^{n}\left (y _{i} \right-kx_{i}-b )^{2}

      为了取到最小的S,我们可以对上式分别对kb求偏导,并令它们为0,以求的S的极值,即:

                               \large \begin{align*} \frac{\partial S}{\partial k}&=-2\sum_{i=1}^{n} x_{i}\left (y_{i}-kx_{i}-b \right )\\&=-2\sum_{i=1}^{n}\left (x_{i}y_{i}-kx_{i}^{2} -bx_{i} \right )\\&=0 \end{align*}                      \bg_white \large \begin{align*} \frac{\partial S}{\partial b}&=-2\sum_{i=1}^{n} \left (y_{i}-kx_{i}-b \right )\\&=0 \end{align*}

       根据这个式子,可以知道偏导数的图像(如左图)和原函数随k或者b变化的图像(类似于右图) 

b6n1G.png

        所以可以说,当这两个偏导数都取到0的时候,就是误差

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值