我的数据是轻尾的,在两个极端都有几个异常值。我先使用Birch对数据进行聚类,然后再使用RobustScaler转换数据,然后使用PCA减小尺寸。但是我收到一个MemoryError:
这对我来说有点不寻常,因为当我尝试另一种仅映射[0,1]中的原始数据的转换方法时,Birch算法起作用。
我阅读了SKLearn的Birch文档并使用了partial_fit()函数,但是那里没有足够的细节让我了解其目的和使用方法。文档只是说:“在线学习。防止从头开始重建CFTree。'
答案 0 :(得分:0)
查看源代码。
当您访问源时,不要依赖网络论坛上的人来猜测该功能的作用。原因很简单:它可能因版本而异。因此,对于其他版本,我可能会给您正确的答案...
您是否一次调用了整个数据上的partial_fit
?那不是你应该做的。一次只能处理一批。
内存问题可能是由于仍然可以访问并且没有垃圾回收(例如未转换的数据)的旧数据引起的,还可能是由于参数不同所致。如果您仔细研究Birch论文,您会发现它期望对内存的控制要比现今的Python等语言更紧密,并且在现代操作系统上无法重现。 >
但是您应该考虑的主要问题是以下两个: