[PYTHON] Expérience d'apprentissage automatique en quelques lignes (deuxième partie). Expliquez PyCaret en détail. Construction de modèles et analyse d'évaluation.

Concernant les données invisibles

Lors de l'étude de PyCaret, il semble que les données invisibles soient confondues avec les données de test, mais les données invisibles sont des données de test, mais si vous expliquez en détail,

Créer un modèle prédictif avec des données d'entraînement Créer un modèle de prédiction final en combinant des données d'entraînement avec des données de test Enfin, entrez des données invisibles dans le modèle pour vérifier l'exactitude du modèle

Ce sera le flux.

Dernier examen

Expérience d'apprentissage automatique en quelques lignes (partie 1). Expliquez PyCaret en détail. De la préparation des ensembles de données à la comparaison de précision de plusieurs modèles. se poursuit. La dernière fois, nous avons tout fait, de la préparation du jeu de données à la comparaison de la précision des modèles.

But de cette fois

Dans la partie 2, nous allons créer le modèle, le tracer et créer le modèle final.

Créer un modèle à l'aide des données d'entraînement

Le but de compare_models () n'est pas de créer des modèles entraînés, mais d'évaluer des modèles hautes performances et de sélectionner des modèles candidats. Cette fois, nous allons entraîner le modèle en utilisant une forêt aléatoire.

code.py


rf = create_model('rf')

image.png

tune_model () est une recherche de grille aléatoire par hyperparamètres. Par défaut, il est configuré pour optimiser la précision.

code.py


tuned_rf = tune_model('rf')

image.png

Par exemple, dans une forêt aléatoire, si vous souhaitez créer un modèle qui augmente la valeur AUC, le code est le suivant.

code.py


tuned_rf_auc = tune_model('rf', optimize = 'AUC')

Le modèle créé avec tuned_model est 1,45% plus précis, je vais donc l'utiliser.

Tracer la précision du modèle

Exécuter le tracé AUC

code.py


plot_model(tuned_rf, plot = 'auc')

image.png

Precision-Recall Curve

code.py


plot_model(tuned_rf, plot = 'pr')

image.png

Feature Importance Plot

code.py


plot_model(tuned_rf, plot='feature')

image.png

code.py


evaluate_model(tuned_rf)

image.png

Confusion Matrix

code.py


plot_model(tuned_rf, plot = 'confusion_matrix')

image.png

Pour créer un modèle de prédiction en combinant des données d'entraînement et des données de test

Avant de terminer le modèle prédictif, utilisez les données de test pour vérifier que le modèle d'apprentissage n'est pas surajusté. Ici, si la différence de précision devient grande, il faut la considérer, mais cette fois il n'y a pas de grande différence de précision, nous allons donc procéder.

code.py


predict_model(tuned_rf);

image.png

Enfin, la version finale du modèle de prédiction est terminée. Le modèle ici est une combinaison de données d'entraînement et de test.

code.py


final_rf = finalize_model(tuned_rf)
print(final_rf)

RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None, criterion='gini', max_depth=10, max_features='auto', max_leaf_nodes=None, max_samples=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=2, min_samples_split=10, min_weight_fraction_leaf=0.0, n_estimators=70, n_jobs=None, oob_score=False, random_state=123, verbose=0, warm_start=False)

code.py


predict_model(final_rf);

image.png

La précision et les performances AUC sont élevées. En effet, les données de test ont été combinées pour améliorer la qualité du modèle prédictif.

Évaluation du modèle à l'aide de données invisibles

Enfin, nous utiliserons des données invisibles (1200 jeux de données) pour évaluer le modèle prédictif.

code.py


unseen_predictions = predict_model(final_rf, data=data_unseen)
unseen_predictions.head()

image.png

L'étiquette et le score ont été ajoutés à l'ensemble de données. L'étiquette sera l'étiquette prédite par le modèle. Le score est la probabilité de prédiction.

Enregistrer le modèle

Il est difficile de recommencer lorsque vous avez plus de nouvelles données à prévoir. Save_model est préparé dans PyCaret et vous pouvez enregistrer le modèle.

code.py


save_model(final_rf,'Final RF Model')

Transformation Pipeline and Model Succesfully Saved

Chargement du modèle enregistré

Pour charger le modèle, procédez comme suit:

code.py


saved_final_rf = load_model('Final RF Model')

Transformation Pipeline and Model Sucessfully Loaded

Utilisez les données invisibles de plus tôt. Le résultat est le même qu'avant, je vais donc l'omettre.

code.py


new_prediction = predict_model(saved_final_rf, data=data_unseen)

code.py


new_prediction.head()

à la fin

J'ai essayé d'exécuter l'explication du tutoriel de niveau débutant. Je suis surpris que cela puisse être fait jusqu'à présent avec une douzaine de lignes. Je pense que les obstacles à l'apprentissage automatique sont devenus encore plus faibles.

Si vous avez des suggestions, veuillez commenter. Merci pour la lecture.

Recommended Posts

Expérience d'apprentissage automatique en quelques lignes (deuxième partie). Expliquez PyCaret en détail. Construction de modèles et analyse d'évaluation.
Expérience d'apprentissage automatique (première partie) en quelques lignes. Expliquez PyCaret en détail. De la préparation des ensembles de données à la comparaison de précision de plusieurs modèles.
Activez Django https en quelques lignes
Que diriez-vous d'Anaconda pour créer un environnement d'apprentissage automatique avec Python?
Devenez bientôt un ingénieur IA! Apprenez complètement Python / AI / Machine learning / Deep learning / Analyse statistique en quelques jours!
Classification et régression dans l'apprentissage automatique
Analyse inverse du modèle d'apprentissage automatique
[Apprentissage automatique] Résumé et exécution de l'évaluation / des indicateurs du modèle (avec jeu de données Titanic)