
上QQ阅读APP看书,第一时间看更新
3.4 使用线性回归预测房价
现在我们已经了解了基础知识,让我们将这些概念应用于实际数据集。以Harrison和Rubinfield在1978年收集的波士顿住房价格数据集(http://lib.stat.cmu.edu/datasets/boston
)为例。该数据集包含506个样本。每个房屋都有以下13个属性:
- CRIM——城镇人均犯罪率
- ZN——划定面积超过25 000平方英尺[1]的住宅用地比例
- INDUS——每个城镇非零售业务的用地比例
- CHAS——查尔斯河(Charles River)虚拟变量(dummy variable)(如果比邻河边则为1;否则为0)
- NOX——一氧化氮浓度(百万分之几)
- RM——每个住宅的平均房间数
- AGE——1940年之前建造的自有住房的比例
- DIS——到5个波士顿就业中心的加权距离
- RAD——径向公路的可达性指数
- TAX——每10 000美元的全值财产税率
- PTRATIO——各镇师生比例
- LSTAT——收入较低的公民在人口中的百分比
- MEDV——拥有住房的中位数,单位为$1000
我们将使用TensorFlow估计器来构建线性回归模型。
1)导入所需的模块:

2)下载数据集:

3)定义数据中的特征,并为了易于处理和可视化将其转换为pandas DataFrame
:

4)目前,我们正在使用所有特征。我们建议你检查不同特征之间的相关性以及预测标签MEDV
,以选择最佳特征并重复实验:

5)为估算器创建输入函数。该函数返回带有元组的tf.Data.Dataset
对象:批量化的特征和标签。用该输入函数来创建train_input_fn
和val_input_fn
:

6)实例化LinearRegressor
估计器。用训练数据和train_input_fn
对其进行训练,并通过val_input_fn
评估训练后的模型来得到验证数据集的结果:

7)进行预测,结果如图3-1所示。


图3-1 基于LinearRegression估算器产生的预测值
线性回归器的TensorBoard图如图3-2所示。

图3-2 线性回归器TensorBoard图
该图显示了整个过程中使用的数据、操作和节点的流程。要获取估算器的TensorBoard图,你只需在实例化Estimator类时定义model_dir
即可:

[1]1平方英尺=0.092 903平方米。——编辑注