我使用 Scikit-Learn 的最近邻/半径分类和预先计算的指标。这意味着,我将成对距离的 n_samples_train x n_samples_train 矩阵传递给分类器的拟合方法。
现在我想知道为什么必须这样做。使用 knn 学习只是意味着“存储样本”,但是距离的计算应该只在稍后进行,在泛化过程中(在那个步骤中,我当然会计算我的训练样本和我的测试样本之间的距离矩阵,所以大小为 n_samples_train x n_samples_test 的矩阵)。
例如,在 SVM 的情况下,我将预先计算的矩阵(Gramian,相似矩阵)传递给 smv.SVC 对象的 fit 方法。然后进行优化,找到支持向量等等。在那里,该矩阵在训练期间是绝对必要的。
但是我看不出为什么需要一个预先计算的矩阵来拟合邻居/半径分类。
有人可以给我一个相关的提示吗?
我很想用 scikit learn 跳过计算 knn 的训练矩阵。
最好的问候,谢谢。:-)