2016-11-22 24 views
1

http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html我讀:scikit-learn支持大量樣本/小批量的SVM嗎?

「的合適時間複雜度是一個比平方與這使得它很難與規模比一對夫婦的10000個樣本更多的數據集的樣本數量更多。」

我目前有350,000個樣本和4,500個班級,這個數字將進一步增長到1-2百萬個樣本和10k +個班級。

我的問題是我內存不足。當我使用少於1000個類別的20萬個樣本時,所有工作都應該如此。

有沒有一種方法可以在SVM中內置或使用類似minibatches的東西?我看到存在MiniBatchKMeans,但我不認爲它支持SVM?

歡迎任何輸入!

+0

[sklearn中的SVM是否支持增量(在線)學習?](http://stackoverflow.com/questions/23056460/does-the-svm-in-sklearn-support-incremental-online-learning ) –

+0

出於好奇,爲什麼它有10k +課程?聽起來像太多課程。 – Aaron

回答

0

我在我的answerthis的問題中提到過這個問題。

您可以將大數據集拆分成SVM算法可以安全使用的批次,然後分別爲每個批次查找支持向量,然後在由所有支持向量組成的數據集上構建一個結果SVM模型批次。

另外,如果在你的情況下沒有必要使用內核,那麼你可以使用sklearn的SGDClassifier,它實現了隨機梯度下降。它默認符合線性SVM。