【发布时间】:2014-04-28 00:53:48
【问题描述】:
我想知道如何选择特定点的最佳 L 个邻居。就像说我需要选择 5 个邻居。有没有要改的参数。
我想让它选择 L 个点,其中:L = SQRT[数据集中的点数]
我有一个庞大的数据集,所以我可能会发现很多点彼此靠近,而其他点则远离它们。
L,要考虑的邻居数量,可以任意选择,或者 通过交叉验证。随着更多的训练数据,L 可以更大,因为 训练数据在底层空间 X 中更密集。 分类中的不连续或非线性动力学,K应该是 更小,以捕捉这些更局部的波动。
NearestNeighbors(algorithm='auto', leaf_size=30, n_neighbors=5, p=2,
radius=1.0, warn_on_equidistant=True)
【问题讨论】:
-
你的代码不能这样工作。请在列表元组周围添加方括号,使其成为列表列表,并传递给
np.array。此外,请让您的问题更准确,并告诉我们您尝试了什么以及出了什么问题。 -
“我想知道如何选择一个特定点的最优L个邻居。就像说我需要选择5个邻居。有什么参数可以改变。”
-
你为什么要举一个例子,a)不起作用,b)不代表你试图解决的问题。到目前为止,您尝试了什么,问题出在哪里?
-
我想使用 Sklearn NearestNeighbors() 那么我怎么知道让 NearestNeighbors 只选择前 L 个邻居(例如 5 个第一个邻居)?如果有人对 Scikit 有经验,这是一个简单的问题
-
NearestNeighbors对象的构造正是为了做到这一点(并在半径内查找数据点)。这就是为什么我对问题出在哪里感到困惑。请尝试运行我的答案中提供的代码,看看它是否有效。然后在您的数据上使用它,看看这是否会产生问题。
标签: python scikit-learn