【问题标题】:Understanding the train_test_split method了解 train_test_split 方法
【发布时间】:2019-08-03 23:57:05
【问题描述】:

我正在学习使用 Scikit 学习的动手机器学习教科书和第 2 章,作者建议使用以下代码在 train_test_split 期间对其中一个特征(收入组)进行分层:

strat_train_set, strat_test_set = train_test_split(housing, 
test_size=0.2,random_state=42,stratify=housing["income_cat"])

据我了解,所有属性(包括目标)在训练和测试数据集中均等表示是很重要的。

在上面的以下代码中,我们不能保证其他属性按照各自列中的比率进行拆分。不是所有的属性都应该分层拆分吗?

正确吗?还是我误解了代码

谢谢

【问题讨论】:

标签: python pandas machine-learning training-data


【解决方案1】:

这是一个很好的问题!

据我了解,您有 20% 的数据作为测试数据。

这很重要,因为当我们训练模型时,我们将能够确保生成的样本中值的比例与提供给参数分层的值的比例相同。

例如,如果变量 income_cat 是一个分类变量,其值为 HighLow,并且有 25% 的 High 和 75% 的 Low,stratify=housing["income_cat"] 将确保您的随机拆分有 25% 的 High 和 75% 的 Lows。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 2020-01-05
    • 2016-07-06
    • 2014-07-20
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多