Catboost 多分类评估指标:Kappa & WKappa

数据挖掘 Python 多类分类 猫促进
2022-02-24 14:26:54

我正在研究一个不平衡的分类问题,我想使用 Kappa 作为我的评估指标。考虑到分类器接受权重(我已经给它了),我应该仍然使用加权 kappa 还是只使用标准 kappa?老实说,我不完全确定区别。

model = CatBoostClassifier(
    iterations = 1000,
    learning_rate = 0.1,
    random_seed = 400,
    one_hot_max_size = 15,
    loss_function = 'MultiClass',
    eval_metric = 'WKappa', # weighted kappa
    #ignored_features = ignore_list,
    class_weights= weights,
    od_type = "Iter",
    od_wait = 50,
    task_type = 'GPU',
    border_count = 124,
    depth = 12
)
1个回答

我在 Catboost github(问题)页面上发布了相同的问题并得到了答案。链接可以在这里找到:https ://github.com/catboost/catboost/issues/1447

回答:

WKappa 中的类权重和权重是不同的。

WKappa 度量的计算包括两个步骤:

  1. 混淆矩阵计算 - 这里使用对象和类权重。
  2. 使用混淆矩阵进行 WKappa 计算 - 这里是混淆矩阵中的值乘以类之间的平方差。(j)^2。换句话说,当第 0 类的对象被分类为第 1 类和分类为第 5 类时,第 0 类的权重具有相同的效果。但是错误分类 0->5 的 WKappa 权重将是错误分类 0->1 的 25 倍. 因此,如果您的班级是有序的,您可以同时使用班级权重和 WKappa。