我正在使用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|x-y|)*wy和(sum|x-z|)*wz。
我尝试定义一个函数,传递给weights参数,但我还希望除了用户定义的权重之外,保留倒数距离缩放,并且我不知道倒数距离缩放函数。我在文档中找不到答案。
有什么建议吗?
knn = neighbors.KNeighborsClassifier(n_neighbors=7, weights='distance', algorithm='auto', leaf_size=30, p=1, metric='minkowski')
该模型可以正常工作。但是,我想为每个样本点提供用户定义的权重。目前的代码使用距离的倒数进行缩放,使用metric='distance'参数。
我仍然希望保持倒数距离缩放,但对于每个样本点,我也有一个概率权重。我希望将其应用为距离计算中的权重。例如,如果x是测试点,y、z是正在计算距离的两个最近邻居,则我希望分别计算距离为(sum|x-y|)*wy和(sum|x-z|)*wz。
我尝试定义一个函数,传递给weights参数,但我还希望除了用户定义的权重之外,保留倒数距离缩放,并且我不知道倒数距离缩放函数。我在文档中找不到答案。
有什么建议吗?