【发布时间】:2016-08-28 23:34:00
【问题描述】:
我正在研究一个将从主动学习协议中受益匪浅的问题(例如,与现有模型相比,给定一组未标记数据,该算法要求未标记数据的子集由“预言机”标记)。
有没有人在 SVM(最好是在 python 中)中实现主动学习(使用池抽样、委员会查询或其他方式)的任何示例?
【问题讨论】:
标签: python machine-learning svm
我正在研究一个将从主动学习协议中受益匪浅的问题(例如,与现有模型相比,给定一组未标记数据,该算法要求未标记数据的子集由“预言机”标记)。
有没有人在 SVM(最好是在 python 中)中实现主动学习(使用池抽样、委员会查询或其他方式)的任何示例?
【问题讨论】:
标签: python machine-learning svm
在 python 中实现主动学习非常简单。对于最简单的情况,您只需选择要查询的新样本,它在您学习的 SVM(简单不确定性采样)上具有最小的 decision_function 绝对值,基本上只有一行!假设你有一个二元分类,在clf 中有训练好的 svm,在X 中有一些未标记的例子,你只需选择
sample = X[np.argmin(np.abs(clf.decision_function(X)))]
你也可以在 github 上找到许多不同的实现,比如去年 ECML 中的 AL 论文:https://github.com/gmum/mlls2015
【讨论】:
基于池的抽样的两种流行查询策略是不确定性抽样和委员会查询(请参阅paper 以获得广泛的评论)。以下库实现了三种常见的不确定性策略:最小置信度、最大边际和熵以及两种委员会策略:投票熵和平均 KL 散度:https://github.com/davefernig/alp
该库与 scikit-learn 兼容,可与任何分类器一起使用。它使用随机二次抽样作为衡量主动学习效益的基准。
【讨论】: