问题
实际处理和解决机器学习问题过程中,我们会遇到一些“大数据”问题,比如有上百万条数据,上千上万维特征,此时数据存储已经达到10G这种级别。这种情况下,如果还是直接使用传统的方式肯定行不通,比如当你想把数据load到内存中转成numpy数组,你会发现要么创建不了那么大的numpy矩阵,要么直接加载时报MemeryError。
在这种情况下我了解了几种选择办法,1. 对数据进行降维,2. 使用流式或类似流式处理,3. 上大机器,高内存的,或者用spark集群。
文档
Sklearn里面提供一些流式处理方法。具体可以参考官方文档:
讲解了怎么处理 big data 文件:http://scikit-learn.org/stable/modules/scaling_strategies.html
通过一个例子讲解了怎么用:http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html
简单介绍
我看了上面两个文档,并使用介绍的SGDClassifier进行分类,效果挺好的,这里记录下用法。
要实现big data的处理,需要满足三个条件ÿ