《机器学习实战(基于scikit-learn和TensorFlow)》第二章内容的学习心得 (4)

image

image

在上述函数中有个属性是alpha,改变该值,可以提高显示图像的疏密程度,这对于我们的数据探索有帮助,因此:

image

可以看出,沿海的房屋数据更多,内陆的房屋数据较少些,沿海地区中也存在集中现象。

在此基础上,我们将房价信息添加到上图中。

使用jet的一个预定义的颜色表表示房屋价值,每个园的半径显示出该地区人口数量:

image

从这张图,信息量就大多了。首先,我们可以观察到,越靠近沿海地区(再解释一下,该数据是加利福尼亚州的房屋价格数据,因此根据美国地理位置,沿海地区一目了然)房屋价格更高,同时人口的分布大致呈两条弧线,沿海地区与内陆地区的人口分布在总体上大致保持一致。

因为数据的量不大,我们可以让计算机对数据的相关性进行一个计算。

使用corr()函数,计算各属性与房价中位数的关系。

image

相关性的值,越靠近1说明正相关性越强,越靠近-1说明负相关性越强,越靠近0说明两者之间没有相关性。注意,这里corr()计算的是一种线性相关关系,不是非线性相关关系。

从上图,房价中位数与收入中位数有很强的相关性。

使用Pandas中的scatter_matrix()函数可以绘制各属性之间的相关性,如果不加限制条件,函数将把所有属性与其他属性的相关关系全部计算。我们的数据中存在11个属性,因此如果不加限制条件,会绘制11*11=121个图形。选取与房价中位数直觉上最相关的属性计算,这里选取“median_income”、“total_rooms”、“housing_median_age”三个属性计算相关性:

image

image

这张图的对角线需要说明一下,因为相同的属性的相关性肯定是1,因此显示直方图。

我们重点关注一下“income_value”与“house_median_value”的关系:

image

从图中可以看出,在50万有一条横线,在35万、45万处好像也存在直线,我们在继续的数据处理中应该对这些点进行去除,防止系统重现这些怪异数据。

除了上述针对原属性的介绍,我们其实也可以针对属性进行组合,形成新属性。

我们从之前给出的属性,我们可以进行分析,这里再给出我们的属性:

image

在属性中,我们能观察到“total_bedrooms”、“total_rooms”、“population”、“households”可能存在一定联系,那么是否可以对这几个属性进行一个数据融合形成一个新属性呢?当然可以,并且有助于深刻探索数据。书中针对该方面新创新了3个属性:

image

上述属性含义分别是:平均每房屋的房间数、平均房间中的卧室数、平均人口持有房屋数

我们可以通过计算相关性,看看新属性对“house_median_value”的关系:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdzfp.html