sklearn python中KNN回归量的内核是什么?

时间:2018-02-21 19:53:32

标签: python scikit-learn regression

只是想知道是否有人知道内核对于sklearn中的KNN回归是什么。我想使用高斯内核,但我不确定KNN回归量中的内核是否是高斯内核,对此主题的任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

我假设你在这里谈论sklearn.neighbors.KNeighborsRegressor

有点不清楚'内核'是什么意思,但假设你在讨论k邻居是如何加权的:

  • 默认情况下,所有K个邻居的权重相等 - 忽略邻居的距离(weights='uniform'
  • 取一个简单的均值
  • 您可以通过在创建KNR对象时设置weights='distance'来设置它来根据距离的倒数来对邻居进行加权。

虽然默认情况下没有实现高斯内核,但KNR也支持决定权重的任意函数。你可以这样定义一个:

def kernel(distances):
    # distances is an array of size K containing distances of neighbours
    weights = gaussian(distances) # Compute an array of weights however you want
return distances

然后通过weights=kernel将其传递给你的KNR初始化。我建议您阅读sklearn文档以获取更多信息。