【问题标题】:Validation in online/streaming learning在线/流式学习中的验证
【发布时间】:2023-03-13 02:24:01
【问题描述】:

我必须对一些太大而无法放入内存的数据训练分类模型,并且我正在使用 scikit learn 和 pandas 进行分析。所以这是我的问题,如何在在线学习管道中使用验证来调整超参数?

我正在使用带有chucksize 的pandas read_sql_query 和使用sklearn SGDClassifier partial_fit 从sql 数据库流式传输数据。这是一个例子:

clf = SGDCClassifier()
for chunk in pd.read_sql_query("""
            select * 
            from table;
            """,
          con = conn,
          chunksize = n):

          preprocess chunk
          .
          .
          .
          clf.partial_fit(chunk)

我的问题是:在这样的环境中进行验证的最佳方法是什么?

【问题讨论】:

    标签: python validation machine-learning scikit-learn


    【解决方案1】:

    验证(用于调整或其他任何事情)对于流来说实际上是很自然的。

    说这是流的逻辑表示

    |-------------------------------------------------------------------------->
    

    它从左侧开始,向右添加元素。由于这是一个流设置,我们假设它不能全部放入内存。

    在步骤 i 你在内存中有这个块

    |--------------------(cccccccccccc)---------------------------------------->
    

    所以你提前决定了火车 (r) 和测试 (t) 部件的大小,然后你就有了这样的东西:

    |--------------------(rrrrrrrrrrrtt)---------------------------------------->
    

    此时,您只能向rs 学习,并在ts 上检查自己。

    在步骤i + 1,一些ts 变成rs,你必须丢弃一些旧的rs(存储不过数据)。

    别忘了留下一些数据用于干净的测试。

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2019-03-14
      • 2017-06-13
      • 2022-11-03
      • 2021-02-28
      • 2015-10-23
      • 2015-08-06
      • 2016-06-20
      • 2015-04-02
      相关资源
      最近更新 更多