一、什么是线性回归
回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。假如你想预测汽车的功率,可能会这么计算:
HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio
写成中文就是:
汽车的功率 = 0.0015 * 年薪 - 0.99 * 收听公共广播的时间
这就是所谓的回归方程(regression equation),其中的0.0015和-0.99称为回归系数(regression weights)在给定一些样本数据(训练集)后,通过学习算法对样本数据进行训练,则会得到模型或者可以说是假设函数,模型中则会有我们的回归系数。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。求这些回归系数的过程就是回归。
二、实现一个线性回归
我们假设有一组历史数据<城市人口,开店利润>,现需要预测在哪个城市中开店利润比较好?
定义为第i个样本,X为城市人口数(单位为万人),Y为利润(单位为万美金)。数据如图所示
①用梯度下降找到最佳拟合直线
我们应该怎么从一大堆数据中求出回归方程呢?假定输入值为X(X0列全为1),结果为y,θ为模型的参数也可称为权重(weights)
同时我可以假设函数的一般表现形式为
可以得出只要我们确定θ,我们就可以把要预测的样本X带入h(x),可求出预测结果y。那么问题就可以转换为求θ。
实际上就是要找出一个θ使该假设函数的效果最好。当假设函数与实际结果y的误差越小时,那么我们假设函数效果越好,这时我们可以使用平方误差。我们设 代价函数J(θ)
那么我们最终目标已经明确:使用梯度下降算法找到能使得代价函数取最小值的θ。
我们先举一个简单的求最小值例子: