2016-05-04 7 views
0

Ich bin daran interessiert, das in Sklearn erstellte Modell (z. B. EmpiricalCovariance, MinCovDet oder OneClassSVM) zu speichern und später erneut anzuwenden. Ich bin vertraut mit der Option zum Speichern einer PKL-Datei und Joblib, aber ich würde lieber das Modell explizit und nicht ein serialisiertes Python-Objekt speichern. Die Hauptmotivation dafür ist, dass die Modellparameter einfach angezeigt werden können.Sklearn - Modell Persistenz ohne pkl-Datei

fand ich einen Hinweis, dies zu tun: http://thiagomarzagao.com/2015/12/07/model-persistence-without-pickles/

Die Frage ist: Kann ich auf diesem Arbeits im Laufe der Zeit zählen (das heißt, neue Versionen von sklearn)? Ist das zu viel "Hacky" -Lösung?

Hat jemand Erfahrung damit?

Dank Jonathan

+0

Warum funktioniert das nicht für Sie? http://stackoverflow.com/questions/10592605/save-classifier-to-disk-in-sikit-learn Ich glaube nicht, dass Sie die Parameter verlieren, wenn Sie pickle und neu laden ... In dem Beispiel, das Sie gaben, gingen sie das Route, weil die Daten riesig waren. Arbeiten Sie mit riesigen Datenmengen? Wenn dies der Fall ist, kann sklearn funktionieren oder nicht. Google hat eine persistente Tabelle für Abfragen, und sie sind nicht beizen, aber sie arbeiten im Maßstab. Ihre Hauptmotivation für das Nichtbeizen sollte sein, dass es zu langsam wäre, und nicht, dass Sie erneut auf die Parameter zugreifen möchten. – flyingmeatball

Antwort

1

Ich glaube nicht, es ist eine hacky Lösung ist, hat ein Kollege ein ähnliches getan, wo er ein Modell exportiert durch einen weiteren Treffer verbraucht werden, die in golang geschrieben wird, und ist viel schneller als der Scikit-Lern-Scorer. Wenn Sie Bedenken hinsichtlich der Kompatibilität mit zukünftigen Versionen von sklearn haben, sollten Sie einen Umgebungsmanager wie conda oder virtualenv in Erwägung ziehen; In der Tat ist dies nur eine gute Software-Engineering-Praxis und etwas, an das Sie sich sowieso gewöhnen sollten.