【问题标题】:Understanding Stratified sampling in numpy了解 numpy 中的分层抽样
【发布时间】:2019-08-27 22:23:21
【问题描述】:

我目前正在完成一本关于机器学习的练习册,以便在这门学科中说话。现在我正在研究一个房地产数据集:每个实例都是加利福尼亚州的一个地区,并且有几个属性,包括该地区的收入中位数,该数据已被缩放并上限为 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)

他解释说,他将 medium_income 除以 1.5 以限制类别的数量,然后他只保留低于 5 的类别,并将所有其他类别合并到类别 5。

我不明白的是

  • 为什么将每个实例的 median_income 划分来创建层在数学上是合理的?这种划分的结果究竟意味着什么?还有其他方法可以计算/限制层数吗?
  • 除数如何限制类别的数量,为什么他选择1.5作为除数而不是不同的值?他怎么知道要选择哪个值?
  • 为什么他只想要 5 个类别,他怎么事先知道至少会有 5 个类别?

任何帮助理解这些决定将不胜感激。

我也不确定这是否是 StackOverFlow 类别,我应该在其中发布这个问题,所以如果我这样做有误,请告诉我什么是合适的论坛。

谢谢!

【问题讨论】:

  • 不是编程问题,因此这里可以说是题外话;更适合Cross Validated

标签: numpy machine-learning statistics


【解决方案1】:

您可能是根据您的数据集对此进行更多分析的合适人选。但是我可以帮助你理解分层抽样,这样你就会有一个想法。

分层抽样:假设您有一个包含食用不同水果的消费者的数据集。一个特征是“水果类型”,这个特征现在有 10 个不同的类别(苹果、橙子、葡萄......等)如果你只是从数据集中采样数据,那么样本数据可能不会涵盖所有类别。这在训练数据时非常糟糕。为了避免这种情况,我们有一种叫做分层抽样的方法,在这种情况下,每个不同类别的抽样概率是相同的,这样我们就不会错过任何有用的数据。

如果您还有任何问题,请告诉我,我很乐意为您提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多