备注(第一次写博客,如有错误望指正)
认识线性回归
机器学习分为有监督学习和无监督学习,线性回归属于有监督学习。即需要特征X和标签Y,训练输入(特征X)与输出(标签Y)之间的映射函数。
此时有人肯定会想,什么是特征什么是标签?映射函数又是什么呢?
简单的线性函数
Y = w1 * x1 + w0* x0
如果x0=1的话
Y = w1 * x1 + w0 这样是不是很像一次方程y = k*x + b ?没错差不多就是一个意思。
上面就是我们一个很简单的线性函数了,但是对特征和标签还不是特别明白。没关系看下面表格
工资(X0) | 年龄 (X1) | 花呗额度(Y) |
---|---|---|
3000 | 22 | 1600 |
5000 | 26 | 4000 |
10000 | 30 | 8000 |
如表格所示工资和年龄这两样决定着花呗的额度,这里的工资和年龄就是我们需要的特征X0和X1,花呗额度就是我们最终的结果Y。
这样是不是就很显然了可以知道,线性回归就是寻找已经知道的条件工资X0和年龄X1与花呗额度Y之间的关系。这种关系就是由公式里的w所决定的。那这就有疑问了,如果是多个特征X呢?没关系,我们用特征向量X来表示。
这也就说明有多个w,那么也用特征向量W表示。
线性函数表示为
这里的hw(x) 也就是我们说的预测值,跟上面说的标签值性质相同。公式里的特征向量X和权重向量W都是列向量,所以才有最后的结果 hw(x) = wT*x。
损失
这时候我们知道了它的预测值和标签值(真实值),那么预测值和标签值之间是否会存在误差呢?
i表示样本,即第几个样本。y(i) 表示第几个样本的标签值(真实值),wT*x(i) 代表预测值。
那么损失函数用最小二乘法求出损失值。
公式如下所示J(w)代表所有样本的损失,i表示第几个样本。
通过转换
公式中给出X代表所有样本的特征向量,和权值w
你看X和y知道了,那么我们怎么知道W是多少呢?
第一种方法,求正则方程
J(w)对w求偏导
求出其正则方程,w等于
那么问题来了XT*X 得到的结果还是矩阵,但是并不是所有的矩阵都是可逆的,因为矩阵满秩才可逆。所以就w就不一定能求出来。
第二种方法,梯度下降
好的,接下来让我们看一下第二种方法,也是机器学习里面用的很多的方法,梯度下降法。
梯度是什么呢?梯度也是一个向量。我们打个比方,比如说要找到函数最小的值,那么就需要沿着下降的方向搜索,其实我们求出来的梯度是指向上升最快的方向,那么我们要找到下降的方向怎么办呢?没关系,在梯度前面加个负号就可以了,-W 。那么到底我们怎么求出来呢?
首先还是看损失函数,不过这个损失函数要稍微修改一点,需要除以个2n,为的就是避免样本的数量大小影响到损失大小。即求平均损失。
梯度是一个向量,那么让损失J(w)对权值wm求偏导
对w求偏导得到
好了,现在梯度也求出来了,那么就得开始梯度下降寻找最小值了。刚刚上面说了求出来的梯度是指向上升最快的方向,所以我们需要让他回到下降最快的方向。
看到了吗,wj是原始的梯度,后面的是新的梯度,意思就是原始梯度减去新的上升最快的梯度,得到了下降最大的梯度。
梯度下降的方式
来源:CSDN
作者:CSzhangjinchao
链接:https://blog.csdn.net/weixin_44771532/article/details/103987016