在线/流媒体学习验证

时间:2015-07-16 17:38:21

标签: python validation machine-learning scikit-learn

我必须在一些太大而不适合记忆的数据上训练分类模型,我正在使用scikit learn和pandas进行分析。所以这是我的问题,如何在在线学习管道中使用验证进行超参数调整?

我使用pandas read_sql_query和chucksize并使用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)

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

1 个答案:

答案 0 :(得分:1)

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

说这是流

的逻辑表示
@Override

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

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

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

所以你事先决定了火车的大小(|--------------------(cccccccccccc)----------------------------------------> )和测试(r)部分,那么你有类似的东西:

t

此时,您只能从|--------------------(rrrrrrrrrrrtt)----------------------------------------> 学习,并在r上查看自己。

在步骤 i + 1 ,有些t成为t,你必须丢弃一些旧的r(它更多但不允许存储数据的聚合。

不要忘记留下一些数据进行清洁测试。