希望前面的章节能让你了解一些方法,使得你可以探索这些数据并获得认知。在将数据输入机器学习算法之前,您已经确定了一些您可能想要清理的怪异数据,并且您发现了属性之间的有趣关联,特别是对于目标属性(即标签)的相关性。您还注意到一些属性有一个尾重分布现象,因此您可能想要转换它们(例如,可以通过计算它们的对数)。当然,项目不同,你所遇到的情况也不一致,但总体思路是相似的。

在为机器学习算法准备数据之前,您可能要做的最后一件事是尝试各种属性组合。例如,如果你不知道有多少个家庭,那么一个地区的房间(rooms)总数就不是很有用。你真正想要的是每个家庭的房间数量。同样,卧室(bedrooms)的总数量也不是很有用:你可能想把它和房间(rooms)的数量进行比较。每个家庭的人口看起来也是一个有趣的属性组合。让我们创建这些新属性:

housing["rooms_per_household"] = housing["total_rooms"]/housing["households"]
housing["bedrooms_per_room"] = housing["total_bedrooms"]/housing["total_rooms"]
housing["population_per_household"]=housing["population"]/housing["households"]

现在我们再来看看相关性矩阵:

>>> corr_matrix = housing.corr()
>>> corr_matrix["median_house_value"].sort_values(ascending=False)
median_house_value 1.000000
median_income 0.687170
rooms_per_household 0.199343
total_rooms 0.135231
housing_median_age 0.114220
households 0.064702
total_bedrooms 0.047865
population_per_household -0.021984
population -0.026699
longitude -0.047279
latitude -0.142826
bedrooms_per_room -0.260070
Name: median_house_value, dtype: float64

嘿,不错!与房间或卧室的总数量相比,新的bedrooms_per_room属性与房价中值的相关性要大得多。显然,拥有较低的 bedroom/room(卧室/房间)比例的房子往往更贵。每个家庭的房间数量也比一个地区的房间总数蕴含着更丰富的信息——显然,房子越大,也就越贵。

这一轮的探索并不一定是绝对彻底的;关键是要从正确的角度出发,迅速获得洞察,这将帮助你获得第一个相当好的原型。但这是一个迭代的过程:一旦你得到一个原型并运行,你就可以分析它的输出来获得更多的认知,并再回到这个探索阶段上。

results matching ""

    No results matching ""