我正在用Scikit学习教材和第2章学习机器学习,作者建议使用以下代码对训练测试中的一个特征(收入组)进行分层:
strat_train_set, strat_test_set = train_test_split(housing,
test_size=0.2,random_state=42,stratify=housing["income_cat"])
根据我的理解,所有属性(包括目标)在train和test数据集中的表示是同等重要的。你知道吗
在上面的以下代码中,我们不能保证其他属性按照它们各自列中的比率进行拆分。不是所有的属性都应该是分层的吗?你知道吗
对吗?还是我误解了密码
谢谢
这是一个非常好的问题!你知道吗
据我所知,你有20%的数据作为测试数据。你知道吗
这一点很重要,因为在训练模型时,我们能够确保生成的样本中的值的比例与提供给参数分层的值的比例相同。你知道吗
例如,如果变量
income_cat
是一个具有值High
和Low
的分类变量,并且有25%的High
和75%的Low
,那么stratify=housing["income_cat"]
将确保随机拆分有25%的High
和75%的Low
希望有帮助!你知道吗
相关问题 更多 >
编程相关推荐