Python中的这一行是否表明KNN是加权的?
clf = KNeighborsClassifier(n_neighbors=5, metric='euclidean', weights='distance')
权重是距离的倒数吗?
谁能举一个例子来说明加权 KNN 在数学上是如何工作的?
Python中的这一行是否表明KNN是加权的?
clf = KNeighborsClassifier(n_neighbors=5, metric='euclidean', weights='distance')
权重是距离的倒数吗?
谁能举一个例子来说明加权 KNN 在数学上是如何工作的?
是的,这条线表明 KNN 是加权的,并且权重是距离的倒数。所有这些都可以在scikit-learn 的文档中轻松找到
help此外,专业提示,您可以使用该函数找到对象的文档。在这种情况下:
from sklearn.neighbors import KNeighborsClassifier
print(help(KNeighborsClassifier))
至于加权 KNN 的工作原理,我实际上在我的网站上制作了一个关于此的学习单元。
简而言之,对实例进行加权意味着不是每个邻居都拥有平等的投票权,而是对他们的投票进行加权。这意味着,例如,在我的 3 个最近邻中,其中 2 个属于 A 类但权重较低,其中 1 个属于 B 类且权重较高,即使有更多邻居,KNN 仍可能选择 B 类属于A类。