输入:
1,连续的样本特征
2,连续的样本标签
目的:
对连续的样本特征与标签拟合出误差最小的函数
最简单的直线拟合函数:
h(x) = w1 * x + w0 * 1
代价函数:
为了最接近实际情况,最小化代价函数: J = 1/2m * Σ(h(xj) - yj) ^ 2
m是样本个数,Σ对所有样本求导,j是样本序号,h(xj)是对第j个样本经过拟合函数的输出值,yj是第j个样本的样本标签
最小化代价函数过程(优化过程):
J无疑是一个关于w1,w0的凸函数,所以,使用梯度下降法【1】可以求解得到J最小值对应的w1和w0
步骤:
(1),分别对w1和w0求代价函数J的偏导,得Δ1和Δ2
(2),根据梯度下降法,提出对于w1和w0的更新公式:w = w - α * (1 / m) * Δ
(3),将样本特征值和标签带入更新公式,以更新w1和w0
(4),重复第三步,直至J达到最小值,得到相应的w1和w0,将w1和w0代入拟合函数中,即为最终的拟合函数
完整流程:
输入:
1,连续的样本特征
2,连续的样本标签
步骤:
(1),确定拟合函数h(w,x)
(2),对代价函数求w的偏导,根据梯度下降法,得到对w的更新公式
(3),将样本特征值和标签带入更新公式,以更新w1和w0
(4),重复第三步,直至J达到最小值,得到相应的w1和w0,将w1和w0代入拟合函数中,即为最终的拟合函数
代码部分:
见我的另一篇博客《用于线性回归与BP神经网络的简单向量化编程思想与技巧》
【1】,《用于寻找凸函数最小值的梯度下降(gradient descent)法》