我有一组时间序列数据。我不想使用前80%的数据进行训练,剩余20%的数据进行测试,而是希望以这种方式分割每个月的数据。数据集包含多年的数据。我希望对每个月都进行这种分割。有人知道如何使用Python中的xgboost机器学习库来实现这一点吗?
回答:
你可以尝试在train_test_split()
函数中使用stratify
参数。
例如,像这样:train_test_split(X, y, stratify=X['month_variable'])
。
这应该能给你一个按月份分层的训练和测试分割。
如果你想要只包含某个特定月份的训练和测试集,我建议你创建不同的数据框,比如:df_jan = df.loc[df['month_variable'] == 'january']
,然后进行train_test_split
并构建单独的模型。
这取决于你的具体需求。