【发布时间】:2020-07-07 05:25:06
【问题描述】:
出于研究目的,我发现自己需要在大型 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的实现不符合我的逻辑?
编辑:我很清楚以不同方式训练 SVM 的替代方法,但这是出于特定的研究目的。我想知道这种思路是否可以通过 scikit-learn 的实现实现,或者您是否知道另一种方法可以让我使用 SGD 训练 SVM,而无需将整个 DS 加载到内存中。
【问题讨论】:
-
那么一次加载整个 DS 是您当前的问题吗?您是否尝试过整个 DS 的一小部分样本,看看结果对您来说是否合理?
-
这不是为了性能,而是为了研究,我确实需要能够使用整个 DS
标签: python machine-learning scikit-learn svm