Scikit learn 如何在scikit learn中扩展大规模数据?

Scikit learn 如何在scikit learn中扩展大规模数据?,scikit-learn,Scikit Learn,整个数据集有80100万个样本,每个样本有200密集特征。我们经常用批处理来训练分类器。例如,我们采用clf=sklearn.linear\u model.sgdclassizer,然后我们可以使用clf.partial\u fit(batch\u data,batch\u y)用批数据拟合模型 在此之前,我们应该首先缩放批处理数据。假设我们使用平均标准化。因此,我们应该获得每个特征维度的全局平均值和标准偏差。然后,我们可以使用全局平均值和STD来缩放批次数据 现在的问题是如何获得整个数据集的均

整个数据集有
80
100万个样本,每个样本有
200
密集特征。我们经常用批处理来训练分类器。例如,我们采用
clf=sklearn.linear\u model.sgdclassizer
,然后我们可以使用
clf.partial\u fit(batch\u data,batch\u y)
用批数据拟合模型

在此之前,我们应该首先缩放批处理数据。假设我们使用
平均标准化。因此,我们应该获得每个特征维度的全局平均值和标准偏差。然后,我们可以使用全局平均值和STD来缩放批次数据

现在的问题是如何获得整个数据集的均值和标准差。为了计算全局std,我们可以使用$\sigma^2=E(X^2)-E(X)^2$。然后我们应该通过批处理计算
E(X^2)
E(X)

我认为
Hadoop
Spark
可能适合此任务。对于每一批数据,我们可以启动一个实例来计算部分
E(X^2)
E(X)
,然后将它们缩减为全局值


在scikit学习中,是否有更有效的方法来扩展大型数据集?也许我们可以使用
多线程
或启动多进程来处理批处理数据,然后减少结果以获得全局平均值和STD。

您可以利用大多数
scikit learn
算法中可用的
n_作业
选项进行并行处理


对于这种大小的数据,我建议使用apache spark。

是的,我正在尝试spark!谢谢你的建议!这里有一篇相关文章-谢谢!参考资料非常有用!我试试看!