由于存在地理信息(纬度和经度),因此创建所有区域的散点图来可视化数据是一个好主意(图2-11):
housing.plot(kind="scatter", x="longitude", y="latitude")
图2 - 11 数据的地理分散图。
这看起来像加利福尼亚,但除此之外,很难看到任何特定的模式。将alpha可选参数设置为0.1,可以更容易地可视化数据点密度高的地方(图2-12):
housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.1)
图2 - 12 高亮高密度区域以更好的可视化、
现在情况好多了:你可以清楚地看到高密度区域,即湾区和洛杉矶和圣迭戈附近,再加上中央山谷的一长排相当高密度的区域,特别是萨克拉门托和弗雷斯诺。
更普遍的是,我们的大脑非常善于识别图片上的图案,但是你可能需要使用可视化的参数来让图案脱颖而出。
现在我们来看看房价(图2-13)。每个圆的半径代表区域的人口(即可选参数s),颜色代表价格(即可选参数c)。我们将使用一种名为jet的预定义颜色映射(即可选参数cmap),从蓝色(低值)到红色(高价格)来映射价格的高低:
housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4,
s=housing["population"]/100, label="population",
c="median_house_value", cmap=plt.get_cmap("jet"), colorbar=True,
)
plt.legend()
图2 - 13 加州的房价
这张图片告诉你,房价与地理位置(例如,靠近海洋)以及人口密度都有关,正如你所知道的一样。使用聚类算法来检测主集群的,并添加一些新特性来度量到集群中心的距离,这可能是很有用的做法。靠近海洋的属性也可能有用,尽管在北加州,沿海地区的房价并不太高,所以这不是一个简单的规则。