我有一个非常大的数据集,大小为[2000000 12672],其中行代表实例数,列代表特征数。这个数据集在本地硬盘上占用约60 GB的空间。我想训练一个线性SVM来处理这个数据集。问题是我只有8 GB的RAM,所以不能一次性加载所有的数据。是否有任何解决方案可以让我在这个大型数据集上进行SVM训练?生成该数据集是我自己的意愿,并且目前是HDF5格式。
我有一个非常大的数据集,大小为[2000000 12672],其中行代表实例数,列代表特征数。这个数据集在本地硬盘上占用约60 GB的空间。我想训练一个线性SVM来处理这个数据集。问题是我只有8 GB的RAM,所以不能一次性加载所有的数据。是否有任何解决方案可以让我在这个大型数据集上进行SVM训练?生成该数据集是我自己的意愿,并且目前是HDF5格式。
RSofia
的实现,由Google团队创建,并在Large Scale Learning to Rank中进行了讨论。在论文中,他们表明与传统SVM相比,SGD方法显著减少了训练时间(这是由于1、成对学习方法和2、只有一部分观察结果被用来训练模型)。RSofia
比R中提供的其他SVM软件包更加简化;例如,您需要自行完成特征的居中和缩放。您没有说明为什么需要线性支持向量机,但如果可以考虑另一个通常提供更优结果的模型,则可以查看hpelm python包。它可以直接读取HDF5文件。您可以在此找到https://pypi.python.org/pypi/hpelm。它可以对分段数据进行训练,甚至可以预加载(称为异步)以加速从慢硬盘中读取。
ff
包。 - tguzellaff
包并没有帮助。 - Slater Victoroffff
就可以了,但它不适用于离线算法的进一步使用。 - Slater Victoroff