关于回归问题的模型,相当于给一些x(自变量),y(因变量)的数据对构成的数据集,去建立一个数学函数模型(model),之后就能根据这个函数模型,给出x(自变量条件)之后,预测出y(因变量结果)的值。
这里对于条件特征定义为x,结果定义为y。
Training Set(训练集)--> Learning Algorithm(学习算法) --> h(假设函数)
然后在得到h之后,可以通过:
x(条件特征)--> h(假设函数) --> y(结果)
针对于这个思想和基本模型,可以利用比较多的数学上的统计方法做出模型。
对于线性模型,我们常使用如下这个假设函数模型:
\[
h_θ(x)=θ_0+θ_1x
\]
对于这个线性的假设函数,如何得到一个合适的θ0和θ1是的这个假设函数更契合我们需要预测的东西就至关重要了,这里就需要用到所谓的代价函数。
我们希望\(h_θ(x^{(i)})-y^{(i)}\)尽可能的小,对于一整个样本集合,可以使用以下的式子:
\[
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2}
\]
其中m是样本容量,也就是样本数据的总数,之所以有个1/2的存在是因为对于\(J(θ_0,θ_1)\)需要求得最小值,就需要采用求导的方式,而构造的方式是误差平方和就会出现一个系数2,可以相互消去,计算会更加方便。
为什么要对\(J(θ_0,θ_1)\)求得最小值,首先目的在于使得\(h_θ(x)\)这条函数曲线最符合数据集,在θ0=0的时候,根据图像很容易的就能看出最符合数据集的曲线\(h_θ(x)\)的斜率θ1为参数的\(J(θ_1)\)最接近0(当所有样本点全在曲线\(h_θ(x)\)上时,\(J(θ_1)\)=0)。
若两个参数都不为0的时候,其代价函数\(J(θ_0,θ_1)\)可以被描绘为如下的图形,其最小值依然代表最合适的曲线\(h_θ(x)\)系数取值。
其通过等高线图描绘为如下:
通过代价函数的意义,可以知道目的在于求得代价函数取得最小值时θ的取值,这就引入梯度下降算法。梯度下降算法通过设定初始值,然后从初始值慢慢逼近结果,利用迭代思想有点类似于求局部最优进而得到全局最优的结果(贪心),这里的全局最优指的是极小值而不是最小值。(其实这也是一种局部最优)
原课中打了一个很有意思的比方:
一个人在山顶(初始值),想要用最快的速度下山(到达极小值点),首先做的就是观察四周,寻找目光所及的最小值点,然后移动下山,在新的地点反复这个操作。
将以上的操作转换为数学语言就是(一个单变量线性回归的梯度下降算法式):
\[
θ_j:=θ_j-α\frac{?}{?θ_j}J(θ_0,θ_1)
\]
\[
(for (j=0) and (j=1))
\]
利用以上算法,我们可以得到最后的单变量线性回归的计算式子(由于单变量线性回归函数的图像特点,最后必然是全局最优点):
\[
h_θ(x)=θ_0+θ_1x
\]
\[
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2}
\]
\[
θ_0:=θ_0-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})}
\]
\[
θ_1:=θ_1-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})·x^{(i)}}
\]
原文:https://www.cnblogs.com/pullself/p/10350788.html