从SVM获得的平均线性分隔符

问题描述 投票:0回答:1

出于研究目的,我发现自己需要在大型DS上通过SGD训练SVM(即,大量示例)。这使使用scikit-learn的实现(SGDClassifier)成为问题,因为它需要立即加载整个DS。

[我熟悉的算法使用n步的SGD来获得n个不同的分隔符w_i,然后取它们的平均值(具体信息可以在https://www.cse.huji.ac.il/~shais/Lectures2014/lecture8.pdf的幻灯片12中看到)。

这使我认为也许我可以使用scikit-learn训练多个这样的分类器,然后取所得线性分隔符的平均值(假设没有偏差)。

这是一个合理的思路,还是scikit-learn的实现不属于我的逻辑?

python machine-learning scikit-learn svm
1个回答
0
投票

基于将所有数据加载到内存中的考虑,如果您有权访问更多计算资源,则可能要使用PySpark的SVM实现:https://spark.apache.org/docs/2.2.0/ml-classification-regression.html#linear-support-vector-machine,因为Spark是为大规模数据处理而构建的。我不知道平均多个Scikit-Learn模型的分隔符是否可以按预期工作;根据文档(https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html),没有一种使用新分隔符实例化新模型的干净方法,因此可能必须将其作为整体方法来实现。

© www.soinside.com 2019 - 2024. All rights reserved.