python中支持向量机的主动学习(如池采样)

2024-04-19 04:23:15 发布

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

我正在研究一个从主动学习协议中受益匪浅的问题(例如,与现有模型相比,给定一组未标记数据,算法要求将未标记数据的子集标记为“oracle”)。在

有没有人有在支持向量机(最好是python)中实现的主动学习(使用pool sampling、committee查询或其他方法)的例子?在


Tags: 数据方法标记模型算法协议向量子集
2条回答

基于池的抽样的两种常用查询策略是不确定性抽样和委员会查询(请参阅paper以获得广泛的评论)。下面的库实现了三种常见的不确定性策略:最小置信度、最大利润率和熵,以及两种委员会策略:投票熵和平均KL散度:https://github.com/davefernig/alp

该库与scikit learn兼容,可以与任何分类器一起使用。它使用随机子抽样作为衡量主动学习效益的基线。在

在python中实现主动学习非常简单。对于最简单的情况,您只需选择要查询的新样本,它在您学习的SVM(简单不确定抽样)上具有最小的决策函数绝对值,基本上是一行长!。假设您有一个二进制分类,clf中有经过训练的svm,X中有一些未标记的示例,您只需选择

sample = X[np.argmin(np.abs(clf.decision_function(X)))] 

您也可以在github上找到许多不同的实现,比如去年ECML中针对AL论文的实现:https://github.com/gmum/mlls2015

相关问题 更多 >