在Python中拟合sklearn.KNN的内存错误

时间:2018-11-02 05:52:38

标签: python machine-learning scikit-learn knn

我正在使用32 GB DDR4 RAM在Ubuntu,Python和sklearn中安装kNN模型。

我希望在不再次拟合模型的情况下加载模型,因此我决定在拟合后抛弃拟合的模型。

输入是一个大型数据集,包含1M +行,1052列。 (大多数列是[0,1]中类别变量的虚拟对象。)

在KNN拟合之后,当我尝试用咸菜转储模型时,我得到了Memory Error

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors = 14)
knn = knn.fit(x,y)

import pickle
pickle.dump(knn, open('KNN.sav', 'wb'))

从另一篇文章来看,该解决方案始终使用更高的规格和RAM来解决。我认为从长远来看,这不是一个好的解决方案。

更新的问题:是否有任何方式可以限制模型火车使用26 / 32GB的空间并保留6GB的转储空间?或任何保存拟合模型的方法等。

1 个答案:

答案 0 :(得分:0)

有一个问题-您真的需要如此庞大的训练数据集吗?想法是该模型可能不需要整个数据集。 sklearn的优秀code example。或使用一些云实例来处理如此庞大的数据集。