2.1.2 理解数据
对于Roberto提供的样本数据,一眼就能看出座位预订数与比萨销量之间应该存在一定的关联。让我们使用Python(使用python3命令)进行具体分析。
NumPy库有一个很方便的功能,可以从文本中导入带空格分隔的数据:
第一行代码引入NumPy库,第二行使用NumPy的loadtxt()函数来载入pizza.txt文件中的数据。我们跳过了标题行,还将两列“拆成”两个单独的向量,X和Y。X包含输入变量的数值,Y则包含标签值。我用大写字母X和Y表示这两个向量,因为这是一种常见的Python约定,表示一个变量应该被当作常量来处理。
让我们来检查一下这些数据以确保数据加载无误。如果你希望继续操作,那么可以启动一个Python解释器,发送上面的两行代码,然后检查X和Y的前几个元素:
虽然仍然很难理解这些数字,但它们与Roberto的文件是一致的。如果把它们画在图表上,那么就很清晰了:
现在,这种相关性就在我们面前突显出来了:座位预订数越多,比萨的销量就越大。客观地说,统计学家可能会因为我们从仓促收集的几个样本数据中得出结论而批评我们。然而,这并不是一个研究项目,所以让我们无视统计学家的批评,建立一个比萨预测器吧。
绘图代码
下面是绘图代码:
除了NumPy之外,这段代码还使用了两个程序库,即使用Matplotlib制图和使用Seaborn美化图像。plot()函数将实例绘成小圆点(这就是bo所代表的),代码其余部分的作用为建立坐标系、加载代码并显示图像。你可以自己使用python3 plot.py来运行这个绘图程序。
你不需要理解上面的绘图代码,但是迟早你会自己编写类似的代码。也许可以留出一个下雨的周日来专门学习Matplotlib和Seaborn,或者根据具体需要一点一点地去学习。
在本书的其余部分,我将跳过有关生成图像的代码。你总是可以在本书附带的源码中找到它们。