【问题标题】:Moving multiple classification model training and test [closed]移动多分类模型训练和测试[关闭]
【发布时间】:2021-09-29 12:50:57
【问题描述】:

假设我有一个两年的数据集(24 个月),业务周期是每月,所以我必须每个月提供模型分数(分类模型)。为此训练模型(我认为)的最佳方法是使用这种方法:

  • 训练月 1-12,测试月 13
  • 训练月 1-13,测试月 14
  • 训练月 1-14,测试月 15
  • ...
  • 训练月 1-23,测试月 24

鉴于此,我将得到 12 种不同的结果。这种训练有名字吗?我正在考虑自己做,但如果确实存在一个包或名称来做这类事情并接收我想为每次训练尝试的 ML 算法、管道或 CVsearch 作为输入,那将非常有帮助。

如果存在一个包或一个简单的方法来做到这一点,是否也可以像这样建立一个 12 个月的窗口?:

  • 训练月 1-12,测试月 13
  • 训练月 2-13,测试月 14
  • 训练月 3-14,测试月 15
  • ...
  • 训练月 12-23,测试月 24

如果这也是可能的,是否可以在最近几个月在模型中进行“更高重量训练”的地方放置一个权重?

【问题讨论】:

标签: python pandas scikit-learn


【解决方案1】:

通常称为滚动交叉验证。 Scikit-learn 有一个that 的函数。

查看他们示例的输出:

>>> for train_index, test_index in tscv.split(X):
...     print("TRAIN:", train_index, "TEST:", test_index)
...     X_train, X_test = X[train_index], X[test_index]
...     y_train, y_test = y[train_index], y[test_index]
TRAIN: [0] TEST: [1]
TRAIN: [0 1] TEST: [2]
TRAIN: [0 1 2] TEST: [3]
TRAIN: [0 1 2 3] TEST: [4]
TRAIN: [0 1 2 3 4] TEST: [5]

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 2021-01-01
    • 1970-01-01
    • 2016-04-04
    • 2021-03-09
    • 1970-01-01
    • 2020-08-18
    • 2018-02-13
    • 2021-10-12
    相关资源
    最近更新 更多