本编者为机器学习的广大初学者之一,在机器学习实践此书以及吴恩达老师视频教育下,本人决定将其定期写成笔记(笔记更新进度与速度为学习进度与速度的四分之一),辅助自身学习的同时也来帮助和我一样对machine learning有强烈兴趣并想快速入门的兄弟姐妹们,有勘误的地方欢迎大家斧正。
###本文默认兄弟姐妹们有良好的python基础(做做样子也行),操作系统为windows###
问题
在jupyter notebook命令打开后,我们将迎来我们遇到的第一个难题,那就是数据的获取。我们可以选择去网站手动下载,但是当数据在处于不断更新状态下,这样做是耗费人力的。所以用代码写一个小函数是极其必要的,并需要将其做初步处理。
可以在昨天建立好的notebook上写
1.小函数代码如下:
##导入包
import os
import tarfile
from six.moves import urllib
import pandas as pd
import matplotlib.pyplot as plt
DOWNLOAD_ROOT = "http://raw.githubusercontent.com/ageron/handson-ml/master/"##url
HOUSING_PATH = "datasets/housing"
HOUSING_URL = DOWNLOAD_ROOT + HOUSING_PATH + "/housing.tgz"
def fetch_housing_data(housing_url=HOUSING_URL,housing_path=HOUSING_PATH):
print("要获取的路径:"+housing_url)
if not os.path.isdir(housing_path):
##os.path.isdir()判断某一路径是否为目录
print(housing_path)
os.makedirs(housing_path)
##os.makedirs() 方法用于递归创建目录
else:
print("exists file path")
print(housing_path)
tgz_path = os.path.join(housing_path,"housing.tgz")
##os.path.join()用来连接路径名
urllib.request.urlretrieve(housing_url,tgz_path)
##该函数将URL表示的网络对象复制到本地文件
print("数据已经获取")
housing_tgz=tarfile.open(tgz_path)
##打开
housing_tgz.extractall(path=housing_path)
##解压
print("数据已解压")
housing_tgz.close()
##关闭
print("done")
def load_housing_data(housing_path=HOUSING_PATH):
csv_path = os.path.join(housing_path,"housing.csv")
print("要打开的数据文件为"+housing_path+"housing.csv")
return pd.read_csv(csv_path)
#fetch_housing_data()
housing_data = load_housing_data()
housing_data.head(3)
##查看
其中倒数第四行第一次使用应当把#号删除(fetch_housing_data())
会根据代码出现n行数据(我的是3次)
2.再偷瞄一下
housing_data.info()
housing_data.describe()
运行后出现下图模样
3.初步处理数据为直方图
import matplotlib.pyplot as plt
def show_hist(data):
housing_data.hist(bins=50,figsize=(20,15))
plt.show()
show_hist(data=housing_data)
之后会根据数据画出直方图
下一篇我将详细地带来创建测试集的具体代码来完成我们数据获取的内容。磨刀不误砍柴功,5天之内将环境和数据准备好后,我就会和大家一起深入最重要的ml算法阶段。
最后给大家送上一位帅哥的鼓励