我目前正在完成一本关于机器学习的练习本,以使我的脚湿。目前,我正在处理房地产数据集:每个实例都是加利福尼亚一个地区,并且具有多个属性,包括该地区的中位数收入,该中位数已缩放并限制为15。中位数收入直方图显示,大多数中位数收入值为聚集在2到5之间,但是有些值远远超过6。作者希望使用分层抽样,将分层基于收入中位数。他提供了下一段代码来创建收入类别属性。
housing["income_cat"] = np.ceil(housing["median_income"] / 1.5)
housing["income_cat"].where(housing["income_cat"] < 5, 5.0, inplace=True)
他解释说,他将中位数收入除以1.5以限制类别的数量,然后仅将那些类别保持低于5,并将所有其他类别合并为类别5。
我不明白的是
任何对理解这些决定的帮助将不胜感激。
我也不确定这是否是我应该发布此问题的StackOverFlow类别,因此,如果我这样做有误,请告诉我什么是合适的论坛。
谢谢!
答案 0 :(得分:0)
您可能是合适的人,可以根据您的数据集对此进行更多分析。但我可以帮助您了解分层抽样,以便您有所了解。
分层抽样:假设您有一个吃不同水果的消费者的数据集。一种功能是“水果类型”,该功能具有10个不同的类别(苹果,橙色,葡萄等),如果您仅从数据集中对数据进行采样,则样本数据可能无法涵盖所有类别。训练数据时,这非常糟糕。为了避免这种情况,我们有一种称为分层抽样的方法,这种抽样方式对每个不同类别进行抽样的可能性是相同的,因此我们不会错过任何有用的数据。
如果您还有任何疑问,请告诉我,我们非常乐意为您提供帮助。