Python中的这一行是否表明KNN是加权的?

数据挖掘 Python scikit-学习 k-nn 数学
2022-02-19 07:32:44

Python中的这一行是否表明KNN是加权的?

clf = KNeighborsClassifier(n_neighbors=5, metric='euclidean', weights='distance')

权重是距离的倒数吗?

谁能举一个例子来说明加权 KNN 在数学上是如何工作的?

1个回答

是的,这条线表明 KNN 是加权的,并且权重是距离的倒数。所有这些都可以在scikit-learn 的文档中轻松找到

help此外,专业提示,您可以使用该函数找到对象的文档。在这种情况下:

from sklearn.neighbors import KNeighborsClassifier

print(help(KNeighborsClassifier))

至于加权 KNN 的工作原理,我实际上在我的网站上制作了一个关于此的学习单元。

简而言之,对实例进行加权意味着不是每个邻居都拥有平等的投票权,而是对他们的投票进行加权。这意味着,例如,在我的 3 个最近邻中,其中 2 个属于 A 类但权重较低,其中 1 个属于 B 类且权重较高,即使有更多邻居,KNN 仍可能选择 B 类属于A类。