我正在研究一个可以从主动学习协议中获益的问题(例如,与现有模型相比,给定一组未标记的数据,该算法要求将未标记数据的子集标记为& #39;预言&#39)。
是否有人在SVM(最好是在python中)中实现主动学习(使用池抽样,委员会查询或其他)的任何示例?
答案 0 :(得分:9)
在python中实现主动学习非常简单。对于最简单的情况,您只需选择要查询的新样本,其在您学习的SVM(简单不确定性采样)上具有最小的decision_function绝对值,这基本上是单行长!假设你有一个二进制分类,clf
中训练有素的svm和X
中的一些未标记的例子,你只需选择
sample = X[np.argmin(np.abs(clf.decision_function(X)))]
您也可以在github上找到许多不同的实现,比如去年的EC论文的ECML:https://github.com/gmum/mlls2015
答案 1 :(得分:0)
基于池的抽样的两种流行的查询策略是不确定性抽样和委员会的查询(参见paper进行广泛的审查)。以下库实现了三种常见的不确定性策略:最小信心,最大边际和熵以及两种委员会策略:投票熵和平均KL差异:https://github.com/davefernig/alp
该库与scikit-learn兼容,可与任何分类器一起使用。它使用随机子采样作为衡量主动学习效益的基线。