0

我有一个大数据集,我正在尝试为它构建一个 DAgger 分类器。如您所知,在训练时,我需要在训练实例上运行初始学习分类器(预测它们),一次一个实例。

即使是最初的学习,Libsvm 也太慢了。

我正在使用 OLL,但这需要将每个实例写入一个文件,然后在其上运行测试代码并获得预测,这涉及许多磁盘 I/O。

我考虑过使用 vowpal_wabbit(但我不确定它是否有助于磁盘 I/O),但我没有权限将它安装在我正在使用的集群上。

Liblinear 太慢了,相信又需要磁盘 I/OI。我可以使用哪些其他替代方案?

4

1 回答 1

1

我建议尝试 Vowpal Wabbit (VW)。如果集群上安装了 Boost(和 gcc 或 clang),您可以简单地自己编译 VW(参见教程)。如果没有安装 Boost,你也可以自己编译。

VW 包含比OLL更多的现代算法。此外,它包含几个结构化预测算法(SEARN、DAgger)以及一个 C++ 和Python 接口。请参阅iPython 笔记本教程

至于磁盘 I/O:对于一次性学习,您可以将输入数据直接通过管道传输到 vw( cat data | vw) 或 run vw --daemon。对于多遍学习,您必须使用缓存文件(二进制快速加载格式的输入数据),这需要一些时间来创建(在第一遍期间,除非它已经存在),但随后的遍数要快得多因为二进制格式。

于 2015-05-23T21:02:00.717 回答