1、项目概述
利用加州普查数据,建立一个加州房价模型。这个数据包含每个街区组的人口、收入中位数、房价中位数等指标。你的模型要利用这个数据进行学习,然后根据新的数据的指标,预测其对应街区的房价中位数。
1.1 划定问题
通常一个完整的机器学习工程由多个机器学习模型组成,其中一个模型的输入可能是另一个模型的输出,故第一步我们需要先弄清楚该模型的输入和输出分别是什么。其次,需要划定问题:监控或非监督,还是强化学习?这是个分类问题、回归问题还是其它?要使用批量学习还是线上学习?
在该项目中,模型的输入是一个加州普查得到的关于房价的数据信息,输出是各个街区组的房价中位数,则该模型的学习方式属于监督学习,且为多变量回归算法。
2、获取数据
数据下载代码如下:
import 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_PATH + "/housing.tgz"
def fetch_housing_data(housing_url=HOUSING_URL, ousing_path=HOUSING_PATH):
if not os.pat