将稀疏矩阵拟合到 kNN 模型时出现 MemoryError

MemoryError while fitting a sparse matrix to kNN model

虽然 运行 下面的代码我在最后一行有一个 MemoryError:

from sklearn.neighbors import KNeighborsClassifier
clf = KNeighborsClassifier(n_neighbors=7)
clf.fit(train_X, y_train)
y_pred_clf = clf.predict(test_X)

test_X是一个<10852x112 sparse matrix of type '<class 'numpy.float64'>' with 97668 stored elements in Compressed Sparse Row format>

有什么建议吗?

一种方法 是使用数据批次,第二种方法 是对 KNN 模型使用不同的算法:

clf = KNeighborsClassifier(n_neighbors=5,algorithm='kd_tree').fit(X_train, Y_train)
y_pred_clf = clf.predict(test_X)

默认模型是algorithm='brute',brute false占用太多内存。