2- 回归模型预测房价
房子特征: 房子多大, 有几个房间
房子观测量: 房价
运用回归进行分类邮件特征判断是否是垃圾邮件
预测房价对于中国很适合不知道房子值多少钱, 通过查看邻居房子的销售情况
记录周围区域的每一间房子的样子和面积等特征值
mark
每一个点代表房子售价
术语: x - 特征, 协变量 预测变量 (自变量)
y - 观测或反映 (因变量)
通过相似的房子预测你的房子
mark
找到与你房子面积大小差不多的房子, 看看他们的价格一般很少能找到一模一样大的
mark
找到附近面积区间内和我房子一样大的可是只有两个在区间之内的
别的观察值也需要被采纳进我们的预测中
应用线性回归模型
通过数据拟合一条线来预测
mark
线: y=kx+b w0 和 w1 斜率决定 w1 称为 x 上的权重或回归系数
mark
不同的参数 w 可以拟合出很多条线? 可是哪一条才是我们想要的正确的线呢
定义选择给定一条线的成本: 与数据拟合相关的非常常见的成本叫做残差平方和 (RSS)
定义:
模型预测的结果和实际结果有多远残差就是实际观测和预测的差异
每一个观测价格减去预测价格之后平方并累计求和
mark
选择残差和最少的一条线就是我们最终想要拟合的模型
截距与斜率有非常成熟的算法找到我们想要的两个参数
mark
房屋价格的最好猜测就是将房屋面积进行带入
mark
加入更高阶的因素
会不会它并不是一条直线呢如果用二次函数怎么样?
mark
mark
一次项, 二次项, 截距虽然是一个二次函数但是仍然叫做线性回归
因为我们把 x 的平方认为是另一个回归量但是 w 仍然是 w 没有变
我们在寻找残差平方和最小的时候我们需要寻找一个最佳的三个参数的组合
用更高阶的多项式效果如何?
mark
十三次的曲线确实 rss 降到了最低曲线通过了所有点残差均为 0.
mark
通过这个曲线预测出的价格过低, 违背常理这是一种过拟合的现象
通过训练和测试分离来评估过拟合
想要拟合模型, 但是又不能使模型太过于局限于我们已有的数据集
这样的模型不能很好的泛化, 无法在新观测到的数据集上进行正确的预测
虽然很小化了 Rss 但是预测效果却很差
如何选择模型阶数或复杂度
想要得到好的预测, 但要观察到未来
模拟预测
移除一部分房子
通过剩余的房屋数据拟合我们的模型
预测剩下的房子
好的效果是在我有足够多的数据来拟合的前提下
训练 / 测试分离
术语:
训练集
测试集 (真实预测房屋的替代品)
训练误差
mark
蓝色的点代表我们在训练集中的房屋
mark
依然通过残差和的计算找出我们在训练集的误差和最小化以选择 w
测试误差
在灰色的实际测试集房屋上, 依然采用残差平方和进行计算
mark
训练测试曲线
那么我们可以考虑考虑我们的测试误差和训练误差之间是否存在一定的函数关系
mark
如我们采用了 13 次多项式进行拟合, 随着模型复杂度的上升, 训练误差会随着越来越小
w 帽子就是我们想要搜索出的最优的解决参数
测试集中的数据: 某一个点上我们的测试误差很可能会上升
加入新的特征
不仅仅是看屋子的面积和价格的关系而是加入更多的特征
mark
不再使用一条直线而是使用一个平面来进行拟合
w0 表示截距, 平面在 y 轴上的位置 w1 乘以房屋面积 w2 乘以澡堂的数量
应该选择多少特征?
mark
其他回归示例
学完这门课之后的薪水
mark
薪水的多少依赖于几个特征预测 y 帽子的时候, 估计模型的参数
mark
权值通过其他学习本门课的学生的数据得到
股票的预测
mark
微博流行度
多少人会转发你的微博?
mark
智能房屋
mark
回归总结
机器学习流水线
mark
数据喂给机器学习的方法然后产生智能应用
mark
训练集 特征提取: 选取一部分特征得到模型, 房屋价格的预测值 y 冒
参数 w 冒回归系数, 权重将房屋的真实价格与预测价格进行比较产生了质量评估
残差平方和使用迭代的方式根据残差平方和的大小不断调整权重
实际构建房屋售价模型
见 ipython notebook 代码
构建房屋售价预测回归模型
来源: http://www.jianshu.com/p/a91d001cff80