google traduit http://scikit-learn.org/0.18/modules/model_persistence.html [scikit-learn 0.18 Guide de l'utilisateur 3. Sélection et évaluation du modèle](http://qiita.com/nazoking@github/items/267f2371757516f8c168#3-%E3%83%A2%E3%83%87%E3%83] À partir de% AB% E3% 81% AE% E9% 81% B8% E6% 8A% 9E% E3% 81% A8% E8% A9% 95% E4% BE% A1)
Après avoir entraîné le modèle scikit-learn, une méthode de pérennisation du modèle pour une utilisation future sans recyclage est souhaitable. La section suivante montre un exemple de persistance d'un modèle avec pickle. Nous identifions également certains problèmes de sécurité et de maintenabilité lorsque nous travaillons avec la sérialisation pickle.
Il est possible de sauvegarder le modèle scicit en utilisant le module de persistance intégré de Python, pickle:
>>> 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=None, 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
Dans certains cas de scikit, il peut être plus intéressant d'utiliser le remplacement de pickle pour joblib (joblib.dump
& joblib.load
). Ceci est plus efficace pour les objets évaluateur scikit-learn (souvent en interne avec de grands tableaux numpy). Cependant, il n'y a pas de méthode dumps
, vous ne pouvez donc enregistrer que sur disque.
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')
Vous pouvez ensuite charger le modèle pickled (peut-être dans un autre processus Python):
>>> clf = joblib.load('filename.pkl')
** Remarque: ** Les fonctions joblib.dump et joblib.load acceptent également des objets de type fichier au lieu de noms de fichier. Pour plus d'informations sur la persistance des données dans Joblib, voir ici (https://pythonhosted.org/joblib/persistence.html).
pickle (et l'extension joblib) a des problèmes de maintenabilité et de sécurité. Pour cette raison,
Pour reconstruire un modèle similaire dans une future version de scicit-learn, vous devrez enregistrer des métadonnées supplémentaires avec le modèle pickled.
--Référence aux instantanés invariants des données d'entraînement
Cela permet de s'assurer que le score de validation croisée est dans la même plage qu'auparavant. Si vous souhaitez en savoir plus sur ces problèmes ou découvrir d'autres méthodes de sérialisation possibles, This Story of Alex Gaynor Voir -logiciel).
[scikit-learn 0.18 Guide de l'utilisateur 3. Sélection et évaluation du modèle](http://qiita.com/nazoking@github/items/267f2371757516f8c168#3-%E3%83%A2%E3%83%87%E3%83] À partir de% AB% E3% 81% AE% E9% 81% B8% E6% 8A% 9E% E3% 81% A8% E8% A9% 95% E4% BE% A1)
© 2010 --2016, développeurs scikit-learn (licence BSD).
Recommended Posts