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.
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.
Dans la partie 2, nous allons créer le modèle, le tracer et créer le modèle final.
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')
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')
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.
Exécuter le tracé AUC
code.py
plot_model(tuned_rf, plot = 'auc')
Precision-Recall Curve
code.py
plot_model(tuned_rf, plot = 'pr')
Feature Importance Plot
code.py
plot_model(tuned_rf, plot='feature')
code.py
evaluate_model(tuned_rf)
Confusion Matrix
code.py
plot_model(tuned_rf, plot = 'confusion_matrix')
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);
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);
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.
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()
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.
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
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()
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