1
votes

Comment utiliser le cornichon pour enregistrer le modèle sklearn

Je suis nouveau dans l'apprentissage automatique, maintenant j'apprends le clustering k-means Je veux vider et charger mon modèle entraîné en utilisant pickle comment faire cela.

Mon code est:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import pickle
from sklearn.cluster import KMeans
from sklearn.externals import joblib

# importing our dataset
dataset = pd.read_csv("Mall_Customers.csv")
X = dataset.iloc[:, [3,4]].values

# Applying k-means to the mall dataset
kmeans = KMeans(n_clusters=5, init='k-means++',random_state=0)
y_kmeans = kmeans.fit_predict(X)

# Visualising the clusters
plt.scatter(X[y_kmeans == 0, 0], X[y_kmeans == 0, 1], s = 100, c = 'red', label = 'Cluster 1')
plt.scatter(X[y_kmeans == 1, 0], X[y_kmeans == 1, 1], s = 100, c = 'blue', label = 'Cluster 2')
plt.scatter(X[y_kmeans == 2, 0], X[y_kmeans == 2, 1], s = 100, c = 'green', label = 'Cluster 3')
plt.scatter(X[y_kmeans == 3, 0], X[y_kmeans == 3, 1], s = 100, c = 'cyan', label = 'Cluster 4')
plt.scatter(X[y_kmeans == 4, 0], X[y_kmeans == 4, 1], s = 100, c = 'magenta', label = 'Cluster 5')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s = 300, c = 'yellow', label = 'Centroids')
plt.title('Clusters of customers')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.legend()
plt.show()

Mes questions:

  1. Comment effectuer un vidage et un chargement avec pickle?
  2. Comment prédire les nouvelles valeurs de cluster à l'aide de pickle. ce qui veut dire que je veux pour passer deux valeurs entières un => salaire, deux => score en fonction de cela J'ai besoin d'une nouvelle sortie comme celle-ci sous quel cluster comme celui-ci


2 commentaires

1) Avez-vous essayé de lire la documentation pickle? 2) Pickle n'a rien à voir avec les prédictions.


Consultez la documentation sur la persistance du modèle.


3 Réponses :


4
votes

Enregistrer:

kmeans = pickle.load(open("save.pkl", "rb"))

Charger:

pickle.dump(kmeans, open("save.pkl", "wb"))


3 commentaires

Salut @Mykola pensez-vous que le cornichon est meilleur que le joblib en termes de sauvegarde du modèle? car j'ai utilisé joblib et malheureusement lorsque je charge le modèle pour la prédiction, j'obtiens toujours le même cluster prédit. il semble que le modèle lors de l'enregistrement n'est pas formé!


Salut, je n'ai jamais travaillé avec joblib et je ne peux pas répondre à votre question. Mais vous pouvez poser cette question ici.


déjà fait: stats. stackexchange.com/questions/439968/…



4
votes

L'utilisation de pickle est la même pour tous les modèles d'apprentissage automatique quel que soit le type, à savoir le clustering, la régression, etc.

Pour enregistrer votre modèle dans dump est utilisé où «wb» signifie écrire binaire. p >

model = pickle.load(open(filename, 'rb')) #To load saved model from local directory

Pour charger le modèle enregistré là où le besoin de charger est utilisé où «rb» signifie lire le binaire.

pickle.dump(model, open(filename, 'wb')) #Saving the model

Ici, le modèle est kmeans et le nom de fichier est n'importe quel fichier local, alors utilisez-le en conséquence.


0 commentaires

3
votes

On peut aussi utiliser joblib

from joblib import dump, load
dump(model, model_save_path) 


0 commentaires