Vowpal Wabbit 不预测二进制值,可能是过度训练?

     2023-03-13     101

关键词:

【中文标题】Vowpal Wabbit 不预测二进制值,可能是过度训练?【英文标题】:Vowpal Wabbit not predicting binary values, maybe overtraining? 【发布时间】:2016-11-29 03:50:00 【问题描述】:

我正在尝试使用 Vowpal Wabbit 进行二进制分类,即给定特征值 vw 会将其分类为 1 或 0。这就是我对训练数据进行格式化的方式。

1 'name | feature1:0 feature2:1 feature3:48 feature4:4881 ...
-1 'name2 | feature1:1 feature2:0 feature3:5 feature4:2565 ...
etc

我有大约 30,000 个 1 数据点和大约 3,000 0 个数据点。创建模型后,我有 100 1 和 100 0 个数据点用于测试。这些测试数据点默认分类为 1。这是我如何格式化预测集:

1 'name | feature1:0 feature2:1 feature3:48 feature4:4881 ...

根据我对 VW 文档的理解,我需要使用逻辑损失函数或铰链损失函数进行二元分类。这就是我创建模型的方式:

vw -d ../training_set.txt --loss_function logistic/hinge -f model

这就是我尝试预测的方式:

vw -d ../test_set.txt --loss_function logistic/hinge -i model -t -p /dev/stdout

但是,这是我遇到问题的地方。如果我使用铰链损失函数,所有预测都是-1。当我使用逻辑损失函数时,我得到介于 5 和 11 之间的任意值。应该为 0 的数据点从 5 到 7 具有一般趋势,而应该为 1 的数据点从 6 -11。我究竟做错了什么?我查看了文档并查看了一堆关于 VW 的文章,看看我是否可以确定我的问题是什么,但我无法弄清楚。理想情况下,我会得到一个 0,1 值,或 0 到 1 之间的值,这对应于大众认为结果的强度。任何帮助将不胜感激!

【问题讨论】:

你洗牌过训练数据吗? 不,这是必需的吗?我不认为数据的顺序有什么重要性,只有特征值。 如果训练数据首先包含所有负样本,然后是所有正样本,那么在线学习(默认情况下在 vw 中使用,除非您指定 --bfgs)将无法训练任何内容,并且只会(几乎)预测正面标签。训练数据的随机洗牌可以防止这种常见的陷阱。如果您的训练数据已经被打乱(或者如果它们遵循某种自然的时间顺序),则不是严格要求。 问题描述中的第一个问题是它违反了“在测试时训练”的原则。您不能使用 1,-1 标签进行训练和使用 0,1 标签进行测试。 #2 示例订单在在线学习中至关重要(不清楚您的订单是什么)。 #3 权重为 0 的输入特征被忽略。也可以看看类似的Q:***.com/questions/24822288/…和***.com/questions/24634602/… 【参考方案1】: 如果输出应该只是-1+1 标签,请使用--binary 选项(测试时)。 如果输出应该是介于 0 和 1 之间的实数,请使用 --loss_function=logistic --link=logistic。训练时需要loss_function=logistic,所以这个数字可以理解为概率。 如果输出应该是介于 -1 和 1 之间的实数,请使用 --link=glf1

如果您的训练数据不平衡,例如正例比负例多 10 倍,但您的测试数据是平衡的(并且您希望在此测试数据上获得最佳损失),请将正例的 importance weight 设置为 0.1(因为正例多 10 倍) .

【讨论】:

【参考方案2】:

独立于您的工具和/或特定算法,您可以使用“学习曲线”和训练/交叉验证/测试拆分来诊断您的算法并确定您的问题。诊断出问题后,您可以对算法进行调整,例如,如果您发现过度拟合,您可以应用以下操作:

    添加正则化 获取更多训练数据 降低模型的复杂性 消除冗余功能。

您可以参考吴恩达。 YouTube 上的“机器学习建议”视频,了解有关此主题的更多详细信息。

【讨论】:

感谢您的建议,您是否发现我设置数据的方式或使用大众训练和运行预测的方式有任何明显错误?

在守护进程模式下从 Vowpal Wabbit 获取原始预测

】在守护进程模式下从VowpalWabbit获取原始预测【英文标题】:GetrawpredictionsfromVowpalWabbitindaemonmode【发布时间】:2014-10-0613:54:59【问题描述】:我正在使用以下命令以守护程序模式启动VowpalWabbit:vw--loss_functionhinge--ect250--quiet--passes... 查看详情

使用 Vowpal Wabbit 获得未校准的概率输出,广告转化预测

】使用VowpalWabbit获得未校准的概率输出,广告转化预测【英文标题】:GettinguncalibratedprobabilityoutputswithVowpalWabbit,ad-conversionprediction【发布时间】:2016-10-0817:17:51【问题描述】:我正在尝试使用VowpalWabbit来预测广告展示的转化率,... 查看详情

Vowpal Wabbit Logistic 回归

】VowpalWabbitLogistic回归【英文标题】:VowpalWabbitLogisticRegression【发布时间】:2015-01-0604:03:17【问题描述】:我正在使用VowpalWabbit对具有25个特征和4800万个实例的数据集执行逻辑回归。我对当前预测值有疑问。它应该在0或1以内。av... 查看详情

使用 Vowpal Wabbit 时计算 AUC

】使用VowpalWabbit时计算AUC【英文标题】:CalculatingAUCwhenusingVowpalWabbit【发布时间】:2014-08-0712:10:39【问题描述】:有没有在VowpalWabbit中计算AUC?我使用VowpalWabbit的原因之一是数据文件的大小。我可以使用VowpalWabbit的输出计算VowpalW... 查看详情

Vowpal Wabbit:不平衡的类

】VowpalWabbit:不平衡的类【英文标题】:VowpalWabbit:unbalancedclasses【发布时间】:2016-02-0812:36:24【问题描述】:我想使用VowpalWabbit执行逻辑回归。如何处理不平衡的类(例如1000/50000)?我知道我可以使用重要性加权,但我不确定... 查看详情

Vowpal Wabbit中逻辑回归的正确性?

】VowpalWabbit中逻辑回归的正确性?【英文标题】:CorrectnessoflogisticregressioninVowpalWabbit?【发布时间】:2014-09-0910:21:17【问题描述】:我已经开始使用VowpalWabbit进行逻辑回归,但是我无法重现它给出的结果。也许它确实有一些未记... 查看详情

Vowpal Wabbit:低秩矩阵分解?

】VowpalWabbit:低秩矩阵分解?【英文标题】:VowpalWabbit:Low-rankmatrixfactorization?【发布时间】:2016-12-2617:08:05【问题描述】:我有一个非常基本的问题。我想做低秩矩阵分解,我正在查看有关该主题的VowpalWabbitdocumentation。我的问题... 查看详情

Vowpal Wabbit 的梯度提升

】VowpalWabbit的梯度提升【英文标题】:GradientboostingonVowpalWabbit【发布时间】:2015-07-1214:11:02【问题描述】:有没有办法使用VowpalWabbit对回归使用梯度提升?我使用VowpalWabbit附带的各种有用的技术。我想尝试梯度提升,但我找不到... 查看详情

Vowpal Wabbit 多类线性分类

】VowpalWabbit多类线性分类【英文标题】:VowpalWabbitMulticlassLinearClassification【发布时间】:2016-09-2103:19:40【问题描述】:是否可以使用VowpalWabbit库训练多类(多项式)线性分类模型?我尝试将--oaa与--loss_function平方一起使用,但似... 查看详情

使用 Vowpal wabbit 的上下文强盗

】使用Vowpalwabbit的上下文强盗【英文标题】:ContextualBanditusingVowpalwabbit【发布时间】:2015-08-0620:42:25【问题描述】:在这种情况下,输入之一是选择手臂/动作的概率,但我们如何找到该概率?找到这个概率本身不是一项艰巨的... 查看详情

Vowpal Wabbit 模型在使用像素 RGB 值对图像进行多类分类时效果不佳

】VowpalWabbit模型在使用像素RGB值对图像进行多类分类时效果不佳【英文标题】:VowpalWabbitmodelworksbadlyonmulticlassclassificationofimagesusingpixelRGBvalues【发布时间】:2015-07-1022:12:20【问题描述】:我正在使用VowpalWabbit对多类图像进行分类... 查看详情

Vowpal Wabbit 如何表示分类特征

】VowpalWabbit如何表示分类特征【英文标题】:VowpalWabbithowtorepresentcategoricalfeatures【发布时间】:2015-04-2219:57:57【问题描述】:我有以下所有分类变量的数据:classeducationincomesocial_standing1basiclowgood0lowhighV_good1highlownot_good0v_highhighgood... 查看详情

vowpal-wabbit:使用多次通过、保持和保持期来避免过度拟合?

】vowpal-wabbit:使用多次通过、保持和保持期来避免过度拟合?【英文标题】:vowpal-wabbit:useofmultiplepasses,holdout,&holdout-periodtoavoidoverfitting?【发布时间】:2017-08-2920:01:27【问题描述】:我想使用很棒的vowpalwabbittool使用以下命令... 查看详情

Vowpal Wabbit - 精确召回 f 测量

】VowpalWabbit-精确召回f测量【英文标题】:VowpalWabbit-precisionrecallf-measure【发布时间】:2015-08-1108:16:33【问题描述】:您通常如何从VowpalWabbit中针对分类问题创建的模型获得准确率、召回率和f-measure?是否有任何可用的脚本或程序... 查看详情

在交叉验证方面需要一些关于 Vowpal Wabbit 的指示

】在交叉验证方面需要一些关于VowpalWabbit的指示【英文标题】:NeedsomepointersonVowpalWabbitwithrespecttocrossvalidation【发布时间】:2013-09-2108:21:07【问题描述】:我的目标是在参数空间中对各种VW模型进行网格搜索(尝试不同的损失函数... 查看详情

由于 vowpal wabbit 对 boost 库的依赖而导致的错误

】由于vowpalwabbit对boost库的依赖而导致的错误【英文标题】:Errorsduetovowpalwabbit\'sdependenciesonboostlibrary【发布时间】:2012-07-1108:48:55【问题描述】:我正在努力安装vowpalwobbit,但当我运行make文件时它失败了,抛出:cdlibrary;make;cd..g... 查看详情

Vowpal Wabbit 中的纠错锦标赛 (ect) 多类分类

】VowpalWabbit中的纠错锦标赛(ect)多类分类【英文标题】:ErrorCorrectingTournaments(ect)MultiClassClassificationinVowpalWabbit【发布时间】:2014-08-2718:05:29【问题描述】:我试图通过描述ECT算法的thispaper来了解它,但无法从中得到太多。我知道... 查看详情

Vowpal Wabbit reverse_hash 选项产生空输出,但为啥呢?

】VowpalWabbitreverse_hash选项产生空输出,但为啥呢?【英文标题】:VowpalWabbitinverted_hashoptionproducesemptyoutput,butwhy?VowpalWabbitreverse_hash选项产生空输出,但为什么呢?【发布时间】:2014-08-1716:44:43【问题描述】:我正在尝试使用倒置... 查看详情