2016-03-27 7 views
0

Ich möchte eine SVM-Klassifizierung (mit binärer Antwort) für relativ große Datenmenge (150M) ausführen. Also testete ich einen Trainingsdatensatz (sprich etwa 50.000) und baute das Modell unter Verwendung von svm{e1071} in R. Jetzt möchte ich das Ergebnis auf den gesamten Datensatz anwenden. Ich habe keine Ahnung, wie man einen solch großen Datensatz in R laden und ausführen kann. Also, was ich brauche ist, die Modellparameter von R zu extrahieren und es in einer anderen Plattform laufen zu lassen. Mit anderen Worten, ich mag die gleichen weight.svm (Wahrscheinlichkeiten) für die gesamten Daten erhalten:SVM-Vorhersage für große Datenmenge

model.svm = svm(as.factor(response) ~.,data=predictors, probability=TRUE) 
predict.svm= predict(model.svm,predictors,probability=TRUE) 
weight.svm = data.frame(attr(predict.svm,"probabilities")) 

Jeden Vorschlag? Ein einfacher Text/Verweis, der zeigt, wie diese Vorhersagefunktion in SVM funktioniert? Welche Werte soll ich aus dem Objekt model.svm z. model.svm$SV usw.?

+0

Sie könnten PMML untersuchen: https://support.zementis.com/entries/21197842-PMML-Export-Funktionality-in-R-Supported-Packages. Ich habe keine Geschichte mit dieser Firma und kann nicht dafür bürgen, aber sie behauptet, in der Lage zu sein, die Struktur von verschiedenen Modellen zu exportieren und dann Voraussagen mit ihnen zu machen. –

Antwort

0

Wenn Ihr Kernel linear ist, können Sie die Pegasos algorithm verwenden. Sie finden den Algorithmus in Seite 7 des Artikels, er ist weniger als 10 Zeilen Code und ist einer der schnellsten Algorithmen zur Lösung des SVM-Optimierungsproblems.