Wie der Kommentator vorgeschlagen, sollten Sie pickle
verwenden. Speziell für ML, was Sie suchen, ist Model persistence. Und mit Scikit-Learn:
Nach dem Training eines Scikit-Learn-Modells, ist es wünschenswert, eine Möglichkeit zu haben, das Modell für die zukünftige Verwendung zu beharren, ohne umschulen zu müssen.
Und ihr Beispiel:
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0
Im speziellen Fall des scikit kann es interessant sein, zu JOBLIB Nachfolger von Gurke (joblib.dump
& joblib.load
) zu verwenden, die auf Objekte effizienten die intern große numpy arrays tragen, wie es oft bei angepassten scikit-learn Schätzern der Fall ist, aber nur auf der Platte und nicht auf einer Zeichenkette pelletieren können:
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')
Dies sind sehr allgemeine Fragen. Ich denke, du solltest einfach im Web nach Tutorials suchen. Als Einstieg möchten Sie sich jedoch vielleicht damit befassen, Ihr Modell mit Pickle zu speichern und es dann als API zu verwenden, indem Sie flask verwenden. – Payman