如何使用自定义丢失功能(PU学习)

时间:2014-10-14 01:17:48

标签: vowpalwabbit

我正在探索PU learning。这只是从积极和未标记的数据中学习。其中一个出版物[Zhang, 2009]声称可以通过修改具有概率输出的二元分类器算法的损失函数来学习(例如Logistic回归)。论文指出,人们应该优化平衡准确度。

Vowpal Wabbit目前支持五种丢失函数[listed here]。我想添加一个自定义丢失函数,我在其中优化AUC(ROC),或等效地,遵循以下论文:1 - Balanced_Accuracy。

我不确定从哪里开始。查看代码显示我需要提供第一,第二衍生物和其他一些信息。我也可以运行Logistic损失的标准算法,但是试图根据我的目标调整l1和l2(不确定这是否合适)。我很乐意得到关于如何继续的任何指示或建议。

UPDATE 更多搜索显示,在线学习中对AUC进行优化是不可能/困难的:answer

1 个答案:

答案 0 :(得分:1)

我找到了两个可以立即做PU学习的软件套件:

(1)来自Joachims的SVM perf

在这里使用``-l 10''选项!

(2)Sofia-ml

在这里使用``--loop_type roc''选项!

通常,您将+1'' labels to your positive examples and - 1'设置为所有未标记的标记。然后启动训练程序,然后进行预测。

这两个软件都为您提供了一些性能指标。我建议使用KDD`04杯的标准化和完善的二进制文件:``perf''。得到它here

希望对那些想知道这在实践中如何运作的人有所帮助。也许我阻止了案件XKCD