本文介绍linear regression的相关知识,作为监督学习中的一个重要的方法和手段,其重要性不言而喻。其实线性回归的应用十分简单,就是在一组数样本(x,y)中发现一定规律,用来对新的xi预测新的yi。
就比如下图有这样一组数据:
然后我们根据已知的这些数据,通过线性回归进行学习,得到这样的一条直线就可以根据新的房屋面积预测价格了。当然实际要复杂很多,也可能不是一条直线,甚至不在二维空间,这里只是简单介绍。下面进行详细说明。
1.我们做出如下假设:
m:训练样本数量
x:输入变量(feature)
y:输出变量(target)
(x,y)一个样本
(x(i), y(i)) 第i个样本
2.算法的执行结构图
h是hypothesis函数,是学习算法得出的函数,可以根据x得出y(目标值)。
3.计算
这里需要说明,x是特征值,可能不止一个。比如影响房子价格的因素可能不止面积,还有装修,卧室数量等。
我们这里假设有两个特征即x1和x2。
(1)
h(x)代表hypothesis函数,有两个特征值(x1,x2)我们这里假设了x0=1。
一般的假设有n个特征值(x1,...,xn),则上式可以写成:
(2)
这里说明一下,θ是学习算法的参数,需要利用训练集和学习得到合适的值,下面介绍如何得到θ。
4.学习算法参数
(3)
我们只需要让θ满足使得J最小即可,这样就代表我们的学习算法得出的目标值和样本的y之间的误差最小,算法也就最合理。前面的1/2是一个参数,暂时不必理会他。即minimize θ J(θ):不断的找出使得J(θ)最小的θ。
那么如何才能找到这个θ呢?有很多种方法:比如批梯度下降法(Gradient Descent)、增量梯度下降法(Stochastic Gradient Descent)、公式法(Normal Equations)。
声明:本文是在学习完Andrew Ng教授的MachineLearning课程后,写的一些笔记由于时间原因可能会有些错误,如果想详细了解请去coursera学习这门课程。