本文主要记录《Sklearn与TensorFlow 机器学习实用指南》中的理论知识拓展和实践问题中解决方案的总结
大纲
1.项目概述核心问题:利用街区组数据(人口、收入中位数、房价中位数等)预测任何街区的房价中位数
划分问题:划定问题类型,监督/非监督/强化学习,分类/回归,批量学习/线上学习,明显这是个监督(有标签)回归(预测值)批量学习(没有连续数据流入)问题
性能指标:回归问题典型的性能指标是均方根误差(RMSE),均方根误差是系统预测误差的标准差,满足高斯分布,即满足 “68-95-99.7”规则:大约68%的值落在1σ内,95% 的值落在2σ内,99.7%的值落在3σ内。
虽然大多数时候RMSE是回归任务可靠的性能指标,在有些情况下,你可能需要另外的函数。例如,假设存在许多异常的街区。此时,你可能需要使用平均绝对误差(Mean Absolute Error,也称作平均绝对偏差)
其实RMSE和MAE仅仅是测量预测值和目标值向量距离方法不同,MAE使用的是l1范数(曼哈顿距离),RMSE使用的是l2范数(欧几里得距离),更一般的有lk范数(K 阶闵氏范数)
范数的指数越高,就越关注大的值而忽略小的值。这就是为什么RMSE比MAE对异常值更敏感。但是当异常值是指数分布的(类似正态曲线)RMSE就会表现很好。
2.获取数据
创建工作空间:安装python-更新pip版本-安装jupyter matplotlib numpy pandas scipy scikit-learn库
打开Jupyter:命令[jupyter notebook]打开[.ipynb]文件,之后可以在底下代码框放入可执行代码或者格式化文本,点击运行按钮,会将当前代码框发送到python内核运行之后返回输出结果显示在代码框下方
获取数据:使用以下代码可以通过urllib库发起网络请求下载housing.tgz文件并解压出数据文件housing.csv1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import os
import tarfile
from six.moves import urllib
DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml/master/"
HOUSING_PATH = "datasets/housing"
HOUSING_URL = DOWNLOAD_ROOT + HOUSING_PA