[PYTHON] J'ai essayé de prédire la survie du Titanic avec PyCaret

introduction

J'ai essayé d'utiliser la bibliothèque d'apprentissage automatique PyCaret qui a été publiée l'autre jour. L'analyse des caractéristiques des données et la comparaison des performances avec plusieurs modèles seront automatisées et je pense que le temps de travail des scientifiques des données jusqu'à présent sera considérablement réduit.

Cette fois, je vais appliquer le problème de prédiction de survie du Titanic à PyCaret, soumettre le résultat de la prédiction à Kaggle et voir le résultat.

** Cet article fait suite à l'article précédent j'ai essayé de classer la qualité du vin avec PyCaret. ** **

1. Installez PyCaret

Exécutez le code ci-dessous pour l'installer. J'utilise Anaconda, mais j'ai lancé et installé un environnement virtuel dédié à PyCaret. Dans un environnement virtuel géré par un Conda existant, une erreur peut se produire. (Probablement à cause de la collision entre pip et conda)

pip install pycaret

2. Acquisition de données

Train.csv et test.csv sont disponibles en téléchargement sur le site Titanic de Kaggle. https://www.kaggle.com/c/titanic/data

import pandas as pd
train_data = pd.read_csv("train.csv")
train_data.head()

Résultats image.png

Jetons un coup d'œil au contenu des données en utilisant le profile_report () de Pandas.

import pandas_profiling
train_data.profile_report()

Résultats image.png

3. Prétraitement des données

Utilisez setup () pour prétraiter les données. À ce moment, spécifiez la variable objective comme Survived en tant qu'argument.

from pycaret.classification import *
exp_titanic = setup(data = train_data, target = 'Survived')

Résultat (jusqu'à 10 éléments)

image.png

4. Comparaison de modèles

Utilisez compare_models () pour analyser l'ensemble de données à l'aide de plusieurs modèles de classification et résumer les résultats dans un tableau. C'est une fonctionnalité très utile pour déterminer le modèle de classification à utiliser.

Il existe plus de 10 modèles de classification fournis par Pycaret, qui peuvent être confirmés via les liens ci-dessous.

https://pycaret.org/classification/

compare_models()

La précision du classificateur catBoost était de 83,63%. Cette fois, nous parlerons de l'évaluation des performances de PyCaret avec le classificateur Random Forest à la 9e place.

résultat

image.png

5. Génération d'un modèle analytique

Sélectionnez un modèle de classification et modélisez-le. Utilisez create_model (). Cette fois, nous utiliserons le modèle Random Forest Classifier.

dt = create_model('rf', round=2)

résultat

image.png

6. Réglage du modèle analytique

Vous pouvez également régler le modèle à l'aide de tune_model.

tuned_rf = tune_model('rf',round=2)

résultat

La précision moyenne avant le réglage était de 0,80 et la précision moyenne après le réglage était de 0,81.

image.png

7. Visualisation du modèle analytique

Visualisez les résultats de l'analyse à l'aide de plot_model.

Tout d'abord, tracez la courbe AUC.

plot_model(tuned_rf, plot = 'auc')

résultat

!image.png

Tracez ensuite la matrice de confusion.

plot_model(tuned_lightgbm, plot = 'confusion_matrix')

résultat

!image.png

8. Évaluation du modèle analytique

Il est possible d'effectuer plusieurs évaluations en même temps à l'aide de evaluer_model ().

evaluate_model(tuned_rf)

Si vous appuyez sur le bouton dans le cadre jaune, chaque résultat d'évaluation sera affiché.

résultat

!image.png

9. Prévisions

Après avoir finalisé le modèle avec finalize_model (), faites une prédiction avec predict_model (). Au moment de la prédiction, les données de test (ici, test.csv) sont utilisées.

final_rf = finalize_model(tuned_rf)
data_unseen = pd.read_csv('test.csv')
result = predict_model(final_rf, data = data_unseen)

La colonne Label représente le résultat de la prédiction.

résultat

!image.png

J'ai téléchargé ce résultat sur Kaggle. Le score était de 0,76076. image.png

10. Résumé

  1. À l'aide du jeu de données de prédiction de survie du Titanic, nous avons effectué une analyse avec PyCaret.
  2. Très facile à utiliser. Je pense qu'il a une fonction d'analyse élevée comparable aux outils d'analyse commerciaux Alteryx et DataRobot.

10.1 Liste des fonctions Pycaret utilisées pour l'analyse

  1. Prétraitement des données: setup ()
  2. Comparez les modèles: compare_models ()
  3. Générer un modèle analytique: create_model ()
  4. Réglage: tune_model ()
  5. Visualisation: plot_model ()
  6. Évaluation: evaluer_model ()
  7. Prédiction: finalize_model (), predict_model ()

11. Références

1.PyCaret Home Page , http://www.pycaret.org/ 2.PyCaret Classification, https://pycaret.org/classification/ 3. J'ai essayé d'utiliser PyCaret à la vitesse la plus rapide, https://qiita.com/s_fukuzawa/items/5dd40a008dac76595eea 4. J'ai essayé de classer la qualité du vin avec PyCaret. Https://qiita.com/kotai2003/items/c8fa7e55230d0fa0cc8e

Recommended Posts

J'ai essayé de prédire la survie du Titanic avec PyCaret
J'ai essayé de prédire et de soumettre les survivants du Titanic avec Kaggle
J'ai essayé de prédire le prix de l'immobilier à Boston avec PyCaret
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé le clustering avec PyCaret
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé de commencer avec Hy
J'ai essayé l'analyse factorielle avec des données Titanic!
J'ai essayé d'apprendre avec le Titanic de Kaggle (kaggle②)
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé de résoudre TSP avec QAOA
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'utiliser lightGBM, xg boost avec Boruta
J'ai essayé d'apprendre le fonctionnement logique avec TF Learn
J'ai essayé de déplacer GAN (mnist) avec keras
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de détecter rapidement un mouvement avec OpenCV
J'ai essayé d'intégrer Keras dans TFv1.1
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé PyCaret2.0 (pycaret-nightly)
J'ai essayé de déboguer.
J'ai essayé d'utiliser PyCaret
J'ai essayé de détecter un objet avec M2Det!
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé de visualiser le modèle avec la bibliothèque d'apprentissage automatique low-code "PyCaret"
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai essayé d'étudier DP avec séquence de Fibonacci
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
J'ai essayé de juger Tundele avec Naive Bays
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
J'ai essayé de prédire les chevaux qui seront dans le top 3 avec LightGBM
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé d'extraire des fonctionnalités avec SIFT d'OpenCV
J'ai essayé de déplacer Faster R-CNN rapidement avec pytorch
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de prédire le match de la J League (analyse des données)
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé de générer ObjectId (clé primaire) avec pymongo
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé de créer un pipeline ML avec Cloud Composer
J'ai essayé de découvrir notre obscurité avec l'API Chatwork
[Introduction à Pytorch] J'ai essayé de catégoriser Cifar10 avec VGG16 ♬
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow