zoukankan      html  css  js  c++  java
  • 第二章: 多变量线性回归

    多变量

    其实多变量就是多增加了几个特征变量。本质上和单变量线性回归是一样的,单变量线性回归中theta0可以看做是乘上了x0,而x0恒等于1,这样也就可以把单变量也看做是多变量。例如下面这个例子:
    在这里插入图片描述想要更加准确地预测房价就需要多考虑几个因素。
    这里有几点需要注意的:学习了多变量之后因为元素较多,所以最好使用向量,矩阵乘法对其进行表示。

    多元梯度下降

    在这里插入图片描述这是单变量和多变量的梯度算法对比图,其实从中可以看出来如果将单变量也视作2个变量的话,右边便是一个更加一般的梯度算法。
    notation:x右上角的i代表训练集中第几个,右下角的j代表是哪个输入特征。

    梯度下降中的常用技巧-特征缩放

    在这里插入图片描述还是房价预测的这个例子,我们可以看到x1代表了房子的大小,x2代表了房子拥有几个卧室,显然x1的取值一般是远远大于x2的,我们画出损失函数J(theta)的等高线图,可以看出来这是一个椭圆(至于为什么是一个这样的椭圆,我们可以这样看:在损失函数中x1时候theta1的系数,x2是theta2的系数,因为x1远大于x2所以做两条分别平行于theta1,theta2的线可以看出来等高线随theta1变化更快,即theta1的系数更大),这样的椭圆会让梯度收敛的很慢,所以我们需要一个办法将这个图像变成这样:
    在这里插入图片描述这就是特征缩放的公式:
    在这里插入图片描述
    其中s1就是x1的最大值减去最小值(也可以用标准差),μ就是数据的均值,其目的就是让数据集中在原点附近。

    多项式回归

    在这里插入图片描述
    当用线性方程不太好拟合数据的时候,这时我们需要用到多项式拟合。而如果将这里的x²,x³也看成x2,x3用多元线性拟合的方式就可以实现这个多项式的拟合。

    正规方程

    当线性回归用矩阵进行表示时可以写成:
    x × theta = y
    除了用梯度下降的方式找到合适的theta,还可以用正规方程的方式来找:
    在这里插入图片描述这个就是正规方程的公式,从这中间求逆矩阵也就可以看出这几点:
    1这个方法不适合特征数量过多的问题。所以一般特征量在10000以下可以使用这个,相比梯度下降更加方便,而10000以上最好还是使用梯度下降的方式。
    2.从式子中还可以发现如果x.T × x没有逆矩阵的话该怎么办。这个时候如果你用的编程方式是计算的伪逆矩阵的话同样是可以得到正确的theta的。
    3.一般不可逆的情况很少,如果有的话需要检查一下自己的训练数据是否本来就有一些线性相关的重复数据,例如:x1是平方英尺的房间大小,而x2是平方米的房间大小。这时就需要删掉一些输入特征。

    这里有我自己写的单变量和多变量线性拟合的python代码。里面有比较详细的注释可以看一下。
    机器学习编程练习一

  • 相关阅读:
    linux 防火墙管理
    自动化运维监控工具有哪些?常用的开源运维监控工具大全
    编程必备github代码仓库使用
    安全加密算法
    浅笑若风之高效工作流程
    jmeter压力测试工具使用
    ES扩容实战记录
    在5G+AI+CLCP下拉动互联网走向物联网
    设计模式之简单工厂模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/lsl1229840757/p/14122612.html
Copyright © 2011-2022 走看看