Python 稀疏输入Kneighbors分类器中使用的算法?

Python 稀疏输入Kneighbors分类器中使用的算法?,python,scikit-learn,Python,Scikit Learn,对于分类算法KNeighborsClassifier稀疏输入上的拟合意味着什么 这是否意味着如果我将x_列和x_测试作为稀疏csr矩阵,并且如果我适合x_列并且没有指定算法,它将自动选择暴力?谁能澄清这一困惑 算法:{'auto','ball_tree','kd_tree','brute'},可选 用于计算最近邻的算法: 注意:稀疏输入上的拟合将覆盖此参数的设置, 使用暴力 不,这意味着如果输入是稀疏的,那么传递给参数算法的任何值都将被忽略,并将使用蛮力算法(相当于算法

对于分类算法
KNeighborsClassifier
稀疏输入上的拟合意味着什么

这是否意味着如果我将
x_列
x_测试
作为稀疏csr矩阵,并且如果我适合
x_列
并且没有指定算法,它将自动选择暴力?谁能澄清这一困惑

算法:{'auto','ball_tree','kd_tree','brute'},可选 用于计算最近邻的算法:

注意:稀疏输入上的拟合将覆盖此参数的设置, 使用暴力


不,这意味着如果输入是稀疏的,那么传递给参数
算法
的任何值都将被忽略,并将使用蛮力算法(相当于
算法

我将我的x_序列作为csr矩阵,然后我做了
knn.fit(x_序列,y_序列)
,我没有指定任何算法。那么,这是否意味着它将自动选择为
brute
?根据文档中的说明,是的。当拟合稀疏输入时,不能使用与“brute”不同的算法的原因/直觉是什么?@hipoglicdo不是没有算法,而是
brute
,这是因为,在稀疏数据的情况下,scikit learn实现的算法(但
brute
)不会给出准确的结果,因此库会自动避免用户犯错误。ball-tree和kd-tree算法都有一个基本假设,即数据不是稀疏的,它们从未被设计用于处理此类数据。然而,暴力通常适用于任何类型的数据,但速度可能较慢(当数据较少或数据稀疏时,这就不是问题了)。