Sklearn-GMM在大型数据集上



我有一个很大的数据集(我无法在内存上容纳整个数据(。我想在这个数据集上拟合一个GMM。

我可以在小批量数据上重复使用GMM.fit()(sklearn.mixture.GMM(吗?

没有理由反复安装它。只需随机抽取您认为机器可以在合理时间内计算的数据点数量。如果变异不是很高,则随机样本的分布将与完整数据集大致相同。

randomly_sampled = np.random.choice(full_dataset, size=10000, replace=False)
#If data does not fit in memory you can find a way to randomly sample when you read it
GMM.fit(randomly_sampled)

和用途

GMM.predict(full_dataset)
# Again you can fit one by one or batch by batch if you cannot read it in memory

其余的对它们进行分类。

fit将永远忘记scikit-learn中以前的数据。对于增量拟合,有partial_fit功能。不幸的是,GMM还没有partial_fit,所以你不能这样做。

正如Andreas Mueller所提到的,GMM还没有partial_fit,这将允许你以迭代的方式训练模型。但是,您可以通过在创建 GMM 对象时将其值设置为 True 来利用warm_start。这允许您迭代数据批次,并从上次迭代中离开的位置继续训练模型。

我认为您可以在创建GMM对象时''init_para设置为空字符串,然后您也许能够训练整个数据集。

相关内容

  • 没有找到相关文章

最新更新