python - 理解train_test_split方法

标签 python pandas machine-learning training-data

我正在学习《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"])

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

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

这是正确的吗?或者我误解了代码

谢谢

最佳答案

这是一个非常好的问题!

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

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

例如,如果变量 venue_cat 是一个分类变量,其值为 HighLow,并且 High 的比例为 25%/code> 和 Low 的 75%,stratify=housing["venue_cat"] 将确保您的随机分割具有 High 的 25%以及 75% 的

希望对你有帮助!

关于python - 理解train_test_split方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57342864/

相关文章:

python - 在django中连接外键上的对象查询结果

python - Pandas:强制将 Excel 文件中的多行合并为单行合并为单行

python - 在机器学习中使用不可训练的参数可以吗?

machine-learning - 使用 DNN 进行异常数字分类

ruby - 用于机器学习可视化的 Ruby 图形和线性代数库?

python - 在python中查找关键字后的单词

python - 按每个元素的类型过滤列表的元素

python - 在 Python 中解释仅关键字参数 (VarArgs)

python-3.x - 如何使用 IQR 从 DataFrame 中删除异常值?

python - 使用没有循环的 Pandas 数据帧中的字典创建字典