首页 > 解决方案 > 在 Python 中拟合 sklearn.KNN 的内存错误

问题描述

我在 Ubuntu、Python 和 sklearn 中使用 32 GB DDR4 RAM拟合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 用于倾销?或任何保存拟合模型等的方法。

标签: pythonmachine-learningscikit-learnknn

解决方案


有一个问题——你真的需要如此庞大的训练数据集吗?这个想法是模型可能不需要整个数据集。来自 sklearn的一个很好的代码示例。或者使用一些云实例来处理如此庞大的数据集。


推荐阅读