第二章:端到端的机器学习项目
1.环境配置:
python和jupyter notebook,同时需要下载一些依赖包来辅助我们做机器学习比如numpy,scipy,matplotlib,sklearn,jupyter,pandas等等,这些包可以通过pip命令一键安装,这里就不说了。
2.下载数据:
从书中给出的网站可以下载一个压缩过的数据集,然后将其解压,就是我们的原始数据集了。
这里用python写一个小脚本,使用了tarfile解压,实现上述步骤。
(注意:这个网站你直接访问是报400错误的,但是不要以为这个链接是无效的。。。)
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, housing_path=HOUSING_PATH):
if not os.path.isdir(housing_path):
os.makedirs(housing_path)
tgz_path = os.path.join(housing_path, "housing.tgz")
urllib.request.urlretrieve(housing_url, tgz_path)
housing_tgz = tarfile.open(tgz_path)
housing_tgz.extractall(path=housing_path)
housing_tgz.close()
fetch_housing_data()
成功调用该函数后,应该在datasets/文件夹中可以看到一个压缩包和一个解压好的housing.csv文件。这时,我们可以通过excel打开这个数据集看看里头有什么,可以看到很多数据,类似于一张数据库的表。
3.加载数据
数据都在这个csv文件里了,我们得把它加载到我们的程序中来分析它。
这里使用pandas来加载
import pandas as pd
def load_housing_data(housing_path=HOUSING_PATH):
csv_path = os.path.join(housing_path,"housing.csv")
return pd.read_csv(csv_path)
housing = load_housing_data()
这个函数会返回一个Pandas DataFrame对象
4.查看数据结构
使用DataFrame的head()方法,可以查看一下数据集开头五行的数据
housing.head()
我们可以看到大致的数据结构了。
此外我们还可以用过info()方法获取数据集的简单描述,总行数,类型和数量等信息。
housing.info()