在SKLearn中具有类权重的KNN [已关闭]

问题描述 投票:3回答:1

是否可以在SKLearn中为K最近邻分类器定义类权重?我看过API但无法解决问题。我有一个knn问题,它的类数量非常不平衡(其中10000个,其他1个)。

scikit-learn knn weight
1个回答
2
投票

sklearn中的原始knn似乎没有提供这种选择。您可以通过将系数(权重)添加到距离方程来改变源代码,使得对于属于多数类的记录(例如,系数为1.5)放大距离。

https://github.com/scikit-learn/scikit-learn/blob/7b136e9/sklearn/neighbors/classification.py#L23

或者,imbalanced-learn模块是scikit-learn-contrib项目的一部分,可用于具有高级别间不平衡的数据集:

http://contrib.scikit-learn.org/imbalanced-learn/stable/introduction.html

(在二进制分类的情况下,您可以选择将问题视为无监督异常检测问题,并使用sklearn中的单类SVM等方法来执行分类)

© www.soinside.com 2019 - 2024. All rights reserved.