如何在 python 中的大数据上运行 AgglomerativeClustering?

数据挖掘 Python scikit-学习 聚类
2022-03-10 05:24:28

我在数据样本上运行 AgglomerativeClustering 并拟合模型。然后我决定预测这适合我的所有数据,但我得到了MemoryError.

如何在大数据集上运行 AgglomerativeClustering?我应该根据集群标签创建分类吗?!

2个回答

你不能。

根据定义,该算法需要 O(n²) 内存和 O(n³) 运行时间。

这不适用于大数据。

使用不同的算法。或对您的数据进行二次抽样。

结果不一定会因为您使用更多数据而变得更好。在许多情况下,这真的无关紧要。估计均值的质量随着 sqrt(n) 的增长而增长,因此使用更多数据很快不会得到回报,因为这只会影响结果的小数字。

如果您的数据(至少在某种程度上)呈正态分布,那么记录的子样本应该是非常好的。

# To get 3 random rows 
# each time it gives 3 different rows 
# df.sample(3) or 
df.sample(n = 3) 


# Fraction of rows 
# here you get .50 % of the rows 
df.sample(frac = 0.5) 

不要浪费你的时间。获取一个小样本并以此为基础。