3

我有一个大型数据集(我无法将整个数据放入内存)。我想在这个数据集上拟合 GMM。

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

4

4 回答 4

6

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

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

其余的对它们进行分类。

于 2015-03-17T10:08:08.273 回答
2

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

于 2015-03-17T21:08:54.363 回答
0

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

于 2016-04-07T22:41:43.240 回答
0

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

希望这可以帮助!

于 2020-02-07T10:03:50.243 回答