小编Jef*_*ham的帖子

为 scikit-learn 中的 knn 分类器提供用户定义的样本权重

我正在使用 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参数中的函数,但除了用户定义的权重之外,我还想保留反距离缩放,并且我不知道反距离缩放函数。我无法从文档中找到答案。

有什么建议么?

python nearest-neighbor knn scikit-learn

6
推荐指数
1
解决办法
2370
查看次数

标签 统计

knn ×1

nearest-neighbor ×1

python ×1

scikit-learn ×1