Machine learning Vowpal Wabbit能否处理约90 GB的数据?

Machine learning Vowpal Wabbit能否处理约90 GB的数据?,machine-learning,scalability,bigdata,logistic-regression,vowpalwabbit,Machine Learning,Scalability,Bigdata,Logistic Regression,Vowpalwabbit,我们从搜索引擎查询日志数据中提取了特征,特征文件(按照Vowpal Wabbit的输入格式)达到90.5 GB。如此庞大的规模是因为我们的功能构建中存在必要的冗余。Vowpal Wabbit声称能够在几个小时内处理TBs的数据。除此之外,VW使用一个几乎不占用RAM的哈希函数。但当我们在数据上使用VW进行逻辑回归时,在几分钟内,它会耗尽所有RAM,然后停止。 这是我们使用的命令- vw -d train_output --power_t 1 --cache_file train.cache -

我们从搜索引擎查询日志数据中提取了特征,特征文件(按照Vowpal Wabbit的输入格式)达到90.5 GB。如此庞大的规模是因为我们的功能构建中存在必要的冗余。Vowpal Wabbit声称能够在几个小时内处理TBs的数据。除此之外,VW使用一个几乎不占用RAM的哈希函数。但当我们在数据上使用VW进行逻辑回归时,在几分钟内,它会耗尽所有RAM,然后停止。 这是我们使用的命令-

vw -d train_output --power_t 1  --cache_file train.cache -f data.model 
--compressed --loss_function logistic --adaptive --invariant 
--l2 0.8e-8 --invert_hash train.model
train_output是我们想要训练VW的输入文件,train.model是训练后获得的预期模型

欢迎任何帮助

我发现
--invert_hash
选项的成本非常高;尝试在没有该选项的情况下运行。您还可以尝试启用
--l1
正则化选项以减少模型中的系数数量


您的模型中有多少功能?每行有多少个功能?

我们已经从命令中删除了--invert_hash选项,它工作正常。培训在半小时内完成。非常感谢!我们总共有几百万个特性,每行大约有15个特性。这些特征是在牢记我们数据的稀疏性的情况下呈现出来的。@Satarupa Guha很高兴听到这一点!每行15个(总共几百万个)应该不会有问题。@Zach,我想你的意思是
--l1
,而不是
--l2
。虽然两者都可以降低模型复杂度(从而减少系数的数量),
--l1
对保存系数数量的影响要大得多。我刚刚尝试了一个具有大约320个特性的小示例,
--l1
将系数减少了约30倍,而
--l2 1
仅将系数减少了约0.3倍-两个数量级的差异。@arielf你是对的
l1
是套索正则化,
l2
是脊正则化。我总是把它们弄糊涂。@smci最好的解决方案是用要映射到它们的散列的变量创建一个“虚拟记录”。然后使用
--invert_hash
对该虚拟记录进行预测。预测会非常快,因为它是一条记录,并且您将得到您关心的变量的散列到变量的映射。