我正在使用 scikit-learn KNeighborsClassifier 对具有 4 个输出类的数据集进行分类。以下是我正在使用的代码:
knn = neighbors.KNeighborsClassifier(n_neighbors=7, weights='distance', algorithm='auto', leaf_size=30, p=1, metric='minkowski')
该模型工作正常。但是,我想为每个样本点提供用户定义的权重。该代码当前使用距离的倒数来使用metric='distance'参数进行缩放。
我想继续保持反距离缩放,但对于每个样本点,我也有一个概率权重。我想将其作为距离计算中的权重。例如,如果x是测试点并且y,z是正在计算距离的两个最近邻居,那么我希望将距离计算为 (sum|xy|)*w y和 (sum|xz|)*w z分别。
我尝试定义一个传递到weights参数中的函数,但除了用户定义的权重之外,我还想保留反距离缩放,并且我不知道反距离缩放函数。我无法从文档中找到答案。
有什么建议么?