【问题标题】:Vowpal Wabbit unbalanced classesVowpal Wabbit 不平衡类
【发布时间】:2015-12-10 04:40:38
【问题描述】:

我正在尝试拟合二元分类模型并预测属于这些类的值的概率。

我的第一个问题是我无法解释结果。我有一个训练集,其中labels=0labels=1(不是-1 and +1)。

我运行模型:

vw train.vw -f model.vw --link=logistic

下一步:

vw test.vw -t -i model.vw -p pred.txt

然后我有一个文件pred.txt,其中包含这些值:

0.5 0.5111 0.5002 0.5093 0.5

我不明白 0.5 是什么意思? pred.txt 中的所有值约为 0.5。我写了脚本并从结果中扣除了 0.5。我明白了:

0 0.111 0.002 0.093 0

这是我想要的概率吗?

这是我的第二个问题 - 我的目标类不平衡。我有 95% 的阴性 (0) 和 5% 的阳性结果 (1)。我怎么能规定大众制造了阶级的不平衡,比如{class 0:0.1, class 1:0.9}

还是应该在准备数据集的时候做?

【问题讨论】:

    标签: classification vowpalwabbit


    【解决方案1】:

    对于 VW 中的二进制分类,需要将标签(从 0 和 1)转换为 -1 和 +1,例如sed -e 's/^0/-1/'

    如果您想将预测解释为概率,除了--link=logistic,您还需要使用--loss_function=logistic

    对于不平衡的类,您需要使用 importance weighting 并使用您选择的一些外部评估指标(例如 AUC 或 F1)调整保留集(或交叉验证)上的重要性权重常数。

    另见:

    Calculating AUC when using Vowpal Wabbit

    Vowpal Wabbit Logistic Regression

    How to perform logistic regression using vowpal wabbit on very imbalanced dataset

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 2016-09-21
      • 2018-01-20
      • 2017-10-07
      • 2020-11-11
      • 2015-01-06
      • 2013-12-15
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多