Ich muss ein Regressionsmodell über eine große Reihe von Trainings Beispiele, mit dem Potenzial, beliebige Funktionen zu integrieren trainieren. Was Lernalgorithmen sollte ich berücksichtigen und warum?Welche Lernalgorithmus (e) sollte ich in Erwägung ziehen, um ein logarithmisches lineares Regressionsmodell zu trainieren?
Eine kurze Zusammenfassung des Problems:
- Etwa 5 Millionen Trainingsbeispiele
- mit einer Rate Trainingsbeispiele von 2-4 Millionen pro Jahr
- Trainingsbeispiele derzeit 10 Funktionen enthalten Hinzufügen jedes
- Ungefähr 400k belegte Merkmale (von einem viel größeren Gesamtmerkmal)
- Zusätzliche Funktionen im Laufe der Zeit hinzugefügt
- Retraining oder das Modell (mindestens) tägliche Anpassung
- Optimierungskriterien neue Beispiele zu übernehmen: Mindestanteil Fehler quadriert
- Ausgang: eine einzige reelle Zahl
ich einige Erfahrung Ausbildung Log- haben lineare Modelle für Klassifizierungsprobleme ähnlicher Größe (mit SVMs, gemittelten und gewichteten Perzeptrons usw.) Die Fähigkeit, beliebige Merkmale hinzuzufügen, ist wichtig, aber in diesem Fall ist auch die Trainingszeit wertvoll.
Zum Beispiel brauchte mein bisheriges Experiment mit SVMLight mehrere Wochen, um auf eine Teilmenge dieser Daten zu konvergieren. Wir könnten parallel zu einer Multicore-Maschine oder (möglicherweise) einem Cluster arbeiten, aber wir müssen Modelle in Minuten trainieren. Online-Training wäre noch besser.
Ich trainierte ein Averaged Perceptron Modell erfolgreich (und schnell). Nach meinem Wissen wird der AP normalerweise nicht auf die Regression angewendet. Bietet der AP Konvergenzgarantien für ein Regressionsmodell? Gibt es einen anderen formellen Grund, warum es nicht anwendbar sein sollte? Oder ist das eine angemessene Übereinstimmung für meine Anforderungen?
Welche anderen Optionen sollte ich erforschen? Eine SVM würde wahrscheinlich eine höhere Genauigkeit bieten, aber eine quadratische Trainingszeit ist nicht akzeptabel. Wenn lineare SVM-Algorithmen zugänglich sind, könnte das gut funktionieren.
Potential Plus:
- Online-Training
- Open-Source-Implementierung zur Verfügung (idealerweise in Java). Wir können bei Bedarf eine eigene Implementierung durchführen, aber das werde ich nach Möglichkeit vermeiden.
Vielen Dank für Ihre Eingabe.
Für die Klassifizierung hatte ich viel Erfolg mit stochastischen Gradienten-Abstieg SVMs (http://leon.bottou.org/projects/sgd#) - Sie könnten sehen, es für die Regression anzupassen. – etarion