什么是SKLearn的Birch Clustering中的partial_fit(),它可以用于非常大的数据集吗?

问题描述 投票:0回答:1

我的数据是轻尾的,两个极端都有几个异常值。我正在使用Birch进行数据聚类,在此之前我使用RobustScaler转换数据,然后使用PCA来减小维度。但是我收到了一个MemoryError:enter image description here

这对我来说有点不寻常,因为当我尝试不同的转换方法只映射来自[0,1]的原始数据时,Birch算法可以工作。

我阅读了SKLearn的Birch文档并介绍了partial_fit()函数,但是我没有足够的细节来了解它的目的以及如何使用它。文档简单地说:'在线学习。防止从头开始重建CFTree。

python pandas scikit-learn cluster-analysis hierarchical-clustering
1个回答
0
投票

看一下源代码。

当您有权访问源时,不要依赖Web论坛上的人来猜测函数的作用。原因很简单:它可能因版本而异。对于不同的版本,我可以给你一个正确的答案......

你有没有立刻给整个数据打电话partial_fit?这不是你应该做的。一次只处理一批。

旧数据仍然可以访问而不是垃圾收集(例如非转换数据),但也可能由于参数不同而导致内存问题。如果你仔细研究Birch文件,你会发现它比我们今天的Python语言更接近对内存的控制,并且在现代操作系统上这个详细的级别是不可复制的。

但您应该考虑的主要问题是以下两个:

  1. 这种数据的Birch聚类质量是否足够好?或者你正在努力解决错误的问题?
  2. 如果你只使用50%的“大”数据,质量会降低多少?统计上它应该无关紧要......该方法基于聚合,并且这种聚合的精度随sqrt(n)增长...即,添加越来越多的数据并不重要。
© www.soinside.com 2019 - 2024. All rights reserved.