机器学习线性回归(六):线性回归从入门到精通——正规方程优化和梯度下降法优化

线性回归简介

线性回归应用场景

  • 房价预测

  • 销售额度预测

  • 贷款额度预测

    举例:

在这里插入图片描述

什么是线性回归

定义与公式

线性回归(Linear regression)是利用回归方程(函数)一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。

  • 特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsMPZw2P-1582644074633)(../images/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E5%85%AC%E5%BC%8F.png)]

  • 线性回归用矩阵表示举例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zfrOpB6-1582644074633)(../images/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E7%9F%A9%E9%98%B5%E8%A1%A8%E7%A4%BA%E6%B3%95.png)]

那么怎么理解呢?我们来看几个例子

  • 期末成绩:0.7×考试成绩+0.3×平时成绩
  • 房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率

上面两个例子,我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型

线性回归的特征与目标的关系分析

线性回归当中主要有两种模型,**一种是线性关系,另一种是非线性关系。**在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。

  • 线性关系

    • 单变量线性关系:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1zufibCT-1582644074634)(../images/%E7%BA%BF%E6%80%A7%E5%85%B3%E7%B3%BB%E5%9B%BE.png)]

    • 多变量线性关系

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kartzUtu-1582644074634)(../images/%E5%A4%9A%E5%8F%98%E9%87%8F%E7%BA%BF%E6%80%A7%E5%85%B3%E7%B3%BB.png)]

注释:单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系

更高维度的我们不用自己去想,记住这种关系即可

  • 非线性关系

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4QI4a51A-1582644074635)(../images/%E9%9D%9E%E7%BA%BF%E6%80%A7%E5%85%B3%E7%B3%BB.png)]

注释:为什么会这样的关系呢?原因是什么?

如果是非线性关系,那么回归方程可以理解为:w1x1+w2x22+w3x32

线性回归api初步使用

线性回归API

  • sklearn.linear_model.LinearRegression()
    • LinearRegression.coef_:回归系数

举例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JUx4Y2dp-1582644173290)(../images/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92api%E4%BD%BF%E7%94%A8%E4%B8%BE%E4%BE%8B.png)]

步骤分析

  • 1.获取数据集
  • 2.数据基本处理(该案例中省略)
  • 3.特征工程(该案例中省略)
  • 4.机器学习
  • 5.模型评估(该案例中省略)

代码过程

  • 导入模块
from sklearn.linear_model import LinearRegression
  • 构造数据集
x = [[80, 86],
[82, 80],
[85, 78],
[90, 90],
[86, 82],
[82, 90],
[78, 80],
[92, 94]]
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
  • 机器学习-- 模型训练
# 实例化API
estimator = LinearRegression()
# 使用fit方法进行训练
estimator.fit(x,y)

estimator.coef_

estimator.predict([[100, 80]])

数学:求导

常见函数的导数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u27MomXt-1582644216404)(../images/%E6%B1%82%E5%AF%BC%E5%85%AC%E5%BC%8F.png)]

导数的四则运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2V1EC4Yr-1582644216405)(../images/%E6%B1%82%E5%AF%BC%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97.png)]

练习

  • 3.1 y = x3-2x2+sinx,求f`(x)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m0ah97RN-1582644216406)(../images/%E6%B1%82%E5%AF%BC%E4%B8%BE%E4%BE%8B1.png)]

  • 3.2 y=ln(sinx), 求dy/dx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mbecJNj8-1582644216406)(../images/%E6%B1%82%E5%AF%BC%E4%B8%BE%E4%BE%8B2.png)]

矩阵(向量)求导 [了解]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jf2SoSYM-1582644216406)(../images/%E7%9F%A9%E9%98%B5%E6%B1%82%E5%AF%BC.png)]

线性回归的损失和优化

假设刚才的房子例子,真实的数据之间存在这样的关系

真实关系:真实房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率

那么现在呢,我们随意指定一个关系(猜测)

随机指定关系:预测房子价格 = 0.25×中心区域的距离 + 0.14×城市一氧化氮浓度 + 0.42×自住房平均房价 + 0.34×城镇犯罪率

请问这样的话,会发生什么?真实结果与我们预测的结果之间是不是存在一定的误差呢?类似这样样子

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KyKx08Hm-1582644298832)(../images/%E6%88%BF%E5%B1%8B%E4%BB%B7%E6%A0%BC%E5%9B%9E%E5%BD%92%E4%B8%BE%E4%BE%8B.png)]

既然存在这个误差,那我们就将这个误差给衡量出来

损失函数

总损失定义为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ojZUeI4o-1582644298834)(../images/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0.png)]

  • yi为第i个训练样本的真实值
  • h(xi)为第i个训练样本特征值组合预测函数
  • 又称最小二乘法

如何去减少这个损失,使我们预测的更加准确些?既然存在了这个损失,我们一直说机器学习有自动学习的功能,在线性回归这里更是能够体现。这里可以通过一些优化方法去优化(其实是数学当中的求导功能)回归的总损失!!!

优化算法

如何去求模型当中的W,使得损失最小?(目的是找到最小损失对应的W值)

线性回归经常使用的两种优化算法

正规方程

什么是正规方程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47oY5KPH-1582644298834)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B.png)]

理解:X为特征值矩阵,y为目标值矩阵。直接求到最好的结果

缺点:当特征过多过复杂时,求解速度太慢并且得不到结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18b7LGfy-1582644298835)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E6%B1%82%E8%A7%A3%E5%9B%BE%E7%A4%BA.png)]

正规方程求解举例

以下表示数据为例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLFiJmyE-1582644298835)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E4%B8%BE%E4%BE%8B1.png)]

即:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e3tKQthV-1582644298835)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E4%B8%BE%E4%BE%8B2.png)]

运用正规方程方法求解参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N0aCmnQe-1582644298836)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E4%B8%BE%E4%BE%8B3.png)]

正规方程的推导

  • 推导方式一:

把该损失函数转换成矩阵写法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6R7MGI26-1582644298836)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E6%8E%A8%E5%AF%BC1.png)]

其中y是真实值矩阵,X是特征值矩阵,w是权重矩阵

对其求解关于w的最小值,起止y,X 均已知二次函数直接求导,导数为零的位置,即为最小值。

求导:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cyOWZpj7-1582644298836)(../images/%E6%AD%A3%E8%A7%84%E6%96%B9%E7%A8%8B%E6%8E%A8%E5%AF%BC2.png)]

注:式(1)到式(2)推导过程中, X是一个m行n列的矩阵,并不能保证其有逆矩阵,但是右乘XT把其变成一个方阵,保证其有逆矩阵。

式(5)到式(6)推导过程中,和上类似。

  • 推导方式二【拓展】:

https://www.jianshu.com/p/2b6633bd4d47

发布了529 篇原创文章 · 获赞 659 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104508107