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:
3 Réponses :
Enregistrer:
kmeans = pickle.load(open("save.pkl", "rb"))
Charger:
pickle.dump(kmeans, open("save.pkl", "wb"))
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/…
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.
On peut aussi utiliser joblib
from joblib import dump, load dump(model, model_save_path)
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.