构建房屋预测回归模型
上面我们可以看见房屋的各种属性信息
也就是房屋的各个特征
为了更形象化的展示房屋的特征,我们使用图形来直观展现
使用,我们前面介绍的Graphlab Canvas来展现
重定向到当前页面展现
接下来,我们就来,构建回归模型
被用来去拟合模型的数据叫做训练集
那些作为真实预测的替代叫做测试集
步骤:
- 分离出训练集合测试集
说明,这里直接调用SFrame的random_split方法就好,
括号内的第一个参数,是随机抽成的比例,第二个参数是是否保存这次随机分离的两部分的数据的状态,,为0,表示,下次使用还是第一次分离的两拨数据
- 构建回归模型
我们使用graphlab的linear函数加上训练集+目标y+特征值x这些个参数
来构建回归模型
PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.
You can set ``validation_set=None`` to disable validation tracking.
Linear regression:
--------------------------------------------------------
Number of examples : 16480
Number of features : 1
Number of unpacked features : 1
Number of coefficients : 2
Starting Newton Method
--------------------------------------------------------
+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+
| Iteration | Passes | Elapsed Time | Training-max_error | Validation-max_error | Training-rmse | Validation-rmse |
+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+
| 1 | 2 | 1.060747 | 4337721.604860 | 1987870.095446 | 264377.961084 | 235343.331161 |
+-----------+----------+--------------+--------------------+----------------------+---------------+-----------------+
SUCCESS: Optimal solution found.
- 评估上面生成的线性回归方程
查看测试数据集的均值:
我们使用上面生成的回归模型进行测试;
可以看见,误差还是很大的
- 使用图形化查看我们的预测是什么样子(直观展现)
使用第三方的画图库matplotlib:画图工具
%matplotlib inline表示图形画在当前页面,也相当于重定向
开始画图:
主要是:定义好X和Y轴,使用点号表示这个(x,y)
原始闪点图+预测图
定义了两个函数,第一个XY表示原始测试集的闪点图,我们用点表示;
然而,我们的第二个XY表示我们的回归方程预测出来的值,用短横线表示
现在,我们想要知道,我们构造出来的回归方程的两个参数:
截距和斜率
5.探索数据中的其他特征
自定义特征值:
开始构建
my_features_model=graphlab.linear_regression.create(train_data,target='price',features=my_features)
开始对比但特征模型与多特征模型
可以看出,多个特征值得效果比只是用单个房屋大小特征的效果要好
运行学到的模型进行房屋售价的预测
房屋实际售价(我们从原始数据集中随机挑选了一个房屋)
这间房屋的实际售价为62万
下面开始预测:
分析:
不一定涵盖特征多的模型就比少特征的预测更加准确
同样,我们再次预测一个
原始售价为220万
开始预测:
总结:很有可能单特征的效果会比多特征的效果好,也有可能多特征的比我们的但特征的效果好,主要取决于数据