【问题标题】:How do I re-train an existing K-Means clustering model如何重新训练现有的 K-Means 聚类模型
【发布时间】:2020-01-09 01:46:37
【问题描述】:

我使用 Sci-Kit Learn 构建了一个 k-means 聚类模型。我需要每天使用新数据重新训练现有模型。

我寻找任何可用于重新训练现有模型的技术,但我找不到任何直接的方法。

由于我每天都在获取大型数据集,因此我无法从一开始就重新训练模型,因为从长远来看它不实用。因此,我需要一种可用于使用新数据重新训练现有模型的方法。

【问题讨论】:

    标签: python machine-learning scikit-learn k-means pre-trained-model


    【解决方案1】:

    你想看看在线学习技术。许多scikit-learn algorithms有一个选项可以在数据的partial_fit,这意味着您可以在少量数据上逐步逐步训练。

    在您的情况下,您可以使用sklearn.cluster.MiniBatchKMeans,通过拍摄样本(批量)的一小部分来培训,以更新每次迭代的模型的参数,从而使其成为在线学习问题的自然候选者。但是,该模型仍然必须通过方法partial_fit,否则它将重新启动整个模型。

    【讨论】:

      【解决方案2】:

      不是每个 scikit 算法都提供部分训练,这个不允许你重新训练它。

      也许有一种解决方法适合您:

      您可以使用fit方法,只将新点应用于现有集群。由于您的数据集相当大,也许这在一开始是有道理的,因为每次添加新数据时,肯定存在集群质量下降的风险。

      另一种选择是为 k-means 编写一个手动函数,它检查新点并仅过滤附近的点以进行调整或使用小批量算法:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MiniBatchKMeans.html

      【讨论】:

      • 我需要在重新训练期间保持集群质量。因此,我认为 MiniBatchKmeans 会对我有所帮助。
      猜你喜欢
      • 2019-05-29
      • 1970-01-01
      • 2021-01-19
      • 2019-05-04
      • 2015-04-11
      • 2014-03-05
      • 2019-04-06
      • 2020-03-10
      • 2013-08-10
      相关资源
      最近更新 更多