Scikit learn SKLearn中具有类权重的KNN

Scikit learn SKLearn中具有类权重的KNN,scikit-learn,knn,Scikit Learn,Knn,可以在SKLearn中为K近邻分类器定义类权重吗?我已经看过API了,但还不能解决它。我有一个knn问题,它的类数非常不平衡(有些是10000个,有些是1个) sklearn中的原始knn似乎没有提供该选项。不过,您可以通过在距离方程中添加系数(权重)来更改源代码,这样,对于属于多数类的记录(例如,系数为1.5),距离会被放大 或者,作为scikit learn contrib项目的一部分,不平衡学习模块可用于具有高度类间不平衡的数据集: (对于二进制分类,您也可以将该问题视为无监督的异常值

可以在SKLearn中为K近邻分类器定义类权重吗?我已经看过API了,但还不能解决它。我有一个knn问题,它的类数非常不平衡(有些是10000个,有些是1个)

sklearn中的原始knn似乎没有提供该选项。不过,您可以通过在距离方程中添加系数(权重)来更改源代码,这样,对于属于多数类的记录(例如,系数为1.5),距离会被放大

或者,作为scikit learn contrib项目的一部分,不平衡学习模块可用于具有高度类间不平衡的数据集:


(对于二进制分类,您也可以将该问题视为无监督的异常值检测问题,并在sklearn中使用类似一类SVM的方法来执行分类)

在kNN的sklearn实现中,您似乎不太可能这样做。但我建议您进行一些重新采样,以平衡标签,拟合kNN,然后集成每个子样本的结果。更多信息,我有一个关于这个的教程:很棒的教程!非常感谢。
sklearn.neighborsClassifier.score()
有一个
sample\u weight
参数。这就是你要找的吗?