gpt4 book ai didi

scikit-learn - 为什么度量 ='precomputed' 在 sk-learn 的 k-最近邻中不起作用?

转载 作者:行者123 更新时间:2023-12-03 14:50:25 26 4
gpt4 key购买 nike

我试图在使用 http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html 时拟合一个预先计算的内核矩阵,这显然是可能的,因为存在“预先计算”的指标。我允许你传递一个 n_samples*n_samples 核矩阵来拟合方法。

使用它时,这是我得到的:

ValueError:指标“预计算”对算法“自动”无效

我不明白如何使用算法“自动”来查找最近的邻居与我使用预先计算的内核矩阵的事实不兼容。

编辑:

不幸的是,我的问题没有得到任何关注。我已经更深入地研究了源代码,自从您通过 metric=precomputed 以来似乎存在一个错误。 ,因为代码应该允许您选择 algorithm=auto .相反,在运行时,代码会遇到我提到的 valueError,我认为作者不希望他的代码表现得那样。我不知道如何更改源代码以使其正常运行。

另外我想补充一个问题,从更理论的角度来看,能够使用核矩阵(又名克矩阵)来使用 kNN 的拟合方法是完全合理的。您可以从 gram 矩阵中推导出距离矩阵,然后当您想要预测新数据时,您只需找到 k 个最近的邻居,并使用 k 个最近邻居中最新的标签标记新数据。

我真的认为这个问题应该得到答案。这是正确的问题,我想要一些非常精确的东西,我知道对 Python 和 scikit learn 库有更深入了解的人应该能够回答它。也许我遗漏了一些明显的东西,但我也认为它应该可以帮助任何尝试将 kNN 与预先计算的内核矩阵(这不是孤立的情况)一起使用的人。

最佳答案

我想这是一个太晚的答复,但如果你仍然想知道。 “自动”不起作用,因为 KDTree 不接受用户定义或预先计算的指标。只有球树会起作用。如果您专门将算法设置为“球树”,它应该可以正常工作。希望这可以帮助!

关于scikit-learn - 为什么度量 ='precomputed' 在 sk-learn 的 k-最近邻中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38429987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com