python - XGBoost:在训练和测试中分割数据

标签 python pyspark xgboost

我正在使用 XGBoost 的 python 接口(interface)来构建模型。我正在使用 xgb.DMatrix(data_path) 读取一个数据集。我需要将这些数据分为训练和测试(以及验证,如果需要)。但我见过的大多数实现都是这种形式

dtrain = xgb.DMatrix('')
dtest = xgb.DMatrix('')

我找不到一种方法来读取数据集,然后将它们分成训练集、测试集(和验证集)。

此外,是否可以在分为训练和测试的同时进行分层采样?

我需要知道这一点,因为我有稍大的数据集,目前我正在使用 Spark 读取它,将它们拆分,存储在磁盘上,然后从那里读取。有没有办法可以做到这一点,而无需通过 Pyspark 并从 hdfs 读取?

最佳答案

我会使用sklearn的train_test_split,它也有一个分层参数,然后将结果放入dtraindtest

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

import xgboost as xgb
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)

请参阅此处的实现:A Simple XGBoost Tutorial Using the Iris Dataset .

关于python - XGBoost:在训练和测试中分割数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50564167/

相关文章:

azure - Pyspark - 基于数据帧创建包含所有组合的 json 结构

python xgboost 在 mac 安装

python - 为什么不能在类的实例上设置属性?

python - 有条件的 Numpy 均值

apache-spark - Spark-Python : Select rows and dates

python - Pyspark:解析一列 json 字符串

python - 在Python中加载xgboost模型,该模型由R中的 `xgboost::save()`保存

r - 使用 NA 为稀疏矩阵和 XGBOOST 准备数据

python - python 如何使用 dir(object) 显示所有属性和方法的列表?

python - 为什么当我尝试打开 Google AdWords 时,Python 中的 Machenize 包会打开支持页面?