我正在使用XGBoost的python接口来构建模型。我有一个正在使用xgb.DMatrix(data_path)
读取的数据集。我需要将这些数据分为训练和测试(以及验证,如果需要的话)。但我看到的大多数实现都是
dtrain = xgb.DMatrix('')
dtest = xgb.DMatrix('')
我找不到一种方法来读取数据集,然后将它们分成训练集、测试集(和验证集)。在
此外,是否可以在分成列车和试验时进行分层抽样?在
我需要知道这一点,因为我有稍微大一点的数据集,目前我正在使用spark读取它,将它们拆分,存储在磁盘上,然后从那里读取。有没有一种方法可以让我不必经过Pyspark和从hdfs读取数据?在
我将使用sklearn的}。在
train_test_split
,它也有一个分层参数,然后将结果放入dtrain
和{请参阅此处的实现:A Simple XGBoost Tutorial Using the Iris Dataset。在
您总是可以使用
pandas
(请参见pandas.HDStore)从HDF5文件中读取数据,然后使用sklearn(简单随机或分层列车/列车拆分,请参见train_test_split的stratify
参数)进行拆分。然后您可以直接将pandas数据帧对象馈送到sklearn API of xgboost中,或者将这些对象转换为xgboost.DMatrix
,并在本机培训API中使用这些对象相关问题 更多 >
编程相关推荐