首页
学习
活动
专区
工具
TVP
发布

ML-2 多变量线性回归问题之应用实例

概要:

多变量线性回归:

特征缩放:

X=(X—u)/S;

其中X:某一特征单个值,u:某一特征的平均值;S:某一特征的标准差或(最大值—最下值)。

为什么要特征缩放呢?目的是确保特征都具有相似的尺度,尝试把每个特征尺度缩放到-1和1之间。

假设函数:

代价函数:

梯度下降:

注意:在使用梯度下降时,应批量同时更新。式中,a为学习率,m为训练集样本个数。

实际问题:

假设你正在出售你的房子,你想知道一个好的市场价格是什么。一种方法是首先收集最近出售的房屋的信息,并建立房价模型。文件ex1data2.txt包含某地的一组房价信息。第一栏是房子的大小(平方尺),第二栏是卧室的数目,第三栏是房子的价格。并预测出你的房子能卖多少钱。

本文采用Python解决该实例问题。

第一步,当拿到数据,对数据导入并进行预处理。预处理包括:特征缩放,增加偏差项,提取X和y项,并矩阵化。

运行查看预处理后的数据

第二步,定义代价函数。代价函数的理解,前篇文章已经叙述过,在此不在赘述。

第三步,定义梯度下降算法,通过梯度下降求得最小的代价函数值,以及相应的系数矩阵theta。

第四步,对学习率a和循环次数进行赋值,并进行预测。

运行查看结果

最后,我们来绘制梯度下降过程中,代价函数值的变化过程。

查看运行后所得的图形

不难发现,代价函数值是收敛的,找到适合的系数矩阵来拟合数据。

补充:

在线性回归中,不难发现,我们做的就是要找到符合条件的系数theta矩阵满足方程 X*theta=y,梯度下降算法很常用,在以后的逻辑回归中,仍继续使用梯度下降算法。但对于线性回归,可以使用线性代数的方法,直接来计算theta。我们把这种方法称作 正规方程法(Normal Equation)。

一般少于10000个特征(就是10000个变量,而不是值10000个样本)的线性回归下,我们可以直接使用正规方程法。

下面来展示使用正规方程法来对该应用实例的求解

运行查看结果

两者比较,最后所预测的结果还是有些差别的,不过并不大。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180204G0KRZQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券