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.