2、我们第一个(极小的)机器学习应用【图形化数据】
我们已经有了原始数据(x,y)了,在处理这些数据之前先将它们在图上展现出来,这会用到Matplotlib模块。
1、首先,上一节的代码保存到first.py文件中,并且放到同一个工作目录下:
1 import matplotlib.pyplot as plt 2 from first import x,y
2、将x,y标示在坐标系里面,我一开始就想用plot()函数,试一下:
1 plt.plot(x,y) 2 plt.show()
出来的像心电图,plot()是将各个点生硬的连接起来,不是我们想要的,还是按照书里面的用离散函数scatter()做成散点图。
1 plt.scatter(x,y) 2 plt.show()
就是这样,只是蓝点有点大,不是很清晰,改一下:
1 plt.scatter(x,y,s=10) 2 plt.show()
自己对比一下有什么区别,s表示的是原点的大小size,默认情况下是20(像素)。
3、其实这样就没有问题了,只是光秃秃的不是很正规,试着给图加上标题、XY轴加上标签,以及显示网格。
1 plt.title("Web traffic over the last month")
2 plt.xlabel("Time")
3 plt.ylabel("Hits/hour")
4 plt.grid()
如图:
4、Y轴上的刻度代表次数,从0~6000没有什么问题,但是X轴的刻度如果以小时为单位就有点太小了,换成以“周”为单位吧。
1 plt.xticks([w*7*24 for w in range(10)],['week %i' % w for w in range(10)])
一周有7*24个小时,这里给了10周,其实没有必要,因为743个小时也就4.5周的样子,给10周后边的都是空白,好在有自动放缩能够让图像紧凑一点
1 plt.autoscale(tight=True)
以上就将原始数据在图像中展现出来了,接下来的工作就是在此图上画一条特殊的直线。。
《待续....》