Scikit学习中被动攻击性网络学习者的课堂失衡处理

2024-05-15 04:13:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在研究一个大规模的多类图像分类问题。我目前正在使用一种在线学习策略,利用scikit learn中的被动攻击性算法实现。 (因为它比SGD实现更快地收敛)。我遵循一对一(OVA)的方法,通过构建N(类数)OVA分类器。在

为了处理大量的训练数据,我基本上把数据集分成分层的小批量,并在在线学习者(每个OVA)中运行它们,经过几次迭代,直到验证批的性能趋于稳定。(模型初始化和超参数选择在第一批完成) 我的衡量标准主要是地图或平均精度。 (平均得分高于sklearn.metrics.average_precision_分数每个OVA模型)。在

有了这个框架,每当我有新标签可用时,我就可以创建一个新的批处理,并通过部分拟合操作运行它们,从而进一步提高模型性能。在

我担心的是,这种方法是否能够处理小批量中出现的类不平衡,或者将来会添加更多的小批量。我怀疑,由于阶级不平衡,模型会偏向于多数阶级,导致少数民族阶级的低召回率。在

一个快速的解决方法是在学习过程中使用class_ntight='auto',但这只支持“SGD”实现,而不支持被动主动实现?如果两者都使用相同的基础sgd实现,这有任何原因。在

我能想到的另一个选择是制作均衡的小批量,从而确保模型不会偏向大多数类。在

最好能对架构和它可能的缺点有看法。 -地图测量正确吗? -如何处理不平衡课堂情境下的线上学习。 -任何其他的线性算法,而不是被动攻击和SGD,可能更适合这个问题

谢谢


Tags: 数据方法模型图像算法利用地图分类
1条回答
网友
1楼 · 发布于 2024-05-15 04:13:14

被动攻击性分类器不像你习惯的大多数算法那样“收敛”。事实上,如果你读了这篇文章,PA的重点是进行更新,完全纠正损失,同时使权重向量的范数变化最小。请注意,PA中的正则化参数使其无法在每个示例的基础上进行完全校正。在

通过这种方式,PA专门用于在线培训,而不是批量培训,因此,在小批量上运行PA,直到其稳定下来,可能不会帮助(也可能损害)您的泛化精度。在

is MAP the right measure

完全取决于您的数据和需求。在

Any other linear algorithm instead of Passive Aggressive and SGD that might better suit the problem

完全取决于您的数据和需求

One quick fix is to use class_weight='auto' during the learning but this is only supported with "SGD" implementation and not with passive aggressive implementation. ? Any reason for this given that both use the same underlying sgd implementation.

是的,请看我对爸爸的描述。爸爸的学习方法不允许这样。虽然您可以通过在每个类的基础上修改正则化来实现它,但我认为这没有任何意义。如果你想知道更多的话,请看原稿。在

你可以搜索“类不平衡”来找到更多的方法来解决这个问题,但这一切都取决于你的数据。在

如果您愿意使用Java,JSAT有一个名为SPA的PA的直接多类实现。对于您的问题,它可能更准确,也可能不更准确。在

相关问题 更多 >

    热门问题