Vowpal Wabbit不平衡课程

时间:2015-09-14 08:34:09

标签: classification vowpalwabbit

我试图使模型适合二元分类并预测属于这些类的值的概率。

我的第一个问题是我无法解释结果。我有一套训练集,其中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}

或者在准备数据集时应该这样做?

1 个答案:

答案 0 :(得分:3)

对于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