[PYTHON] Analyse des données Titanic 3

Aidemy 2020/10/31

introduction

Bonjour, c'est Yope! Bien que ce soit un système littéraire croustillant, j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Ceci est le troisième article de "Data Analysis Titanic". Ravi de vous rencontrer.

Quoi apprendre cette fois ・ ⑤ Modélisation, prédiction et solution de problèmes

Créer un modèle

Sélection de l'algorithme à utiliser

-Depuis que le traitement des données est terminé au chapitre 2, à partir de là, nous passerons les données au modèle __, ferons une prédiction et effectuerons le processus jusqu'à ce qu'il soit résolu. -D'abord, il est nécessaire de décider __ quel algorithme doit être utilisé pour créer le modèle. Il y a __ "classification" et "retour" __ dans le problème de prédiction. Le premier divise les données en classes et prédit à quelle "classe" les données transmises appartiennent, et le second est la "valeur" des données. Est de prédire. ・ Le problème de prédiction de ce problème Titanic est de «classer» si __Survived est 0 ou 1. L'algorithme à utiliser crée un modèle avec __ "régression logistique" "SVC" "k-NN" "arbre de décision" "forêt aléatoire" __.

Préparation des données

-Préparer __ "X_train" "y_train" "X_test" __ à passer au modèle. J'utilise habituellement __train_test_split () __ dans sklearn.model_serection, mais cette fois je l'ai divisé moi-même . -Pour X_train, remplacez train_df autre que Survived, pour y_train, remplacez train_df pour Survived uniquement, et pour X_test, remplacez test_df autre que __PassengerId.

・ Code![Capture d'écran 2020-10-24 18.32.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/57f40d79-e73c-3912- e3be-ea8389d5e6fb.png)

Retour logistique

・ (Review) __Régression logistique __ utilise __ la fonction sigmoïde __ pour classer les valeurs binaires La fonction sigmoïde est une fonction __ qui prend une valeur comprise entre __0 et 1. Créez un modèle à l'aide de __LogidticRegression () __. -Cette fois, prédire si la variable objective __Survivé est 0 ou 1 en utilisant les variables explicatives Age et Pclass.

-De plus, en ce qui concerne les données à transmettre au modèle, uniquement pour la régression logistique, __X_train et Y_train sont ensuite divisés en données d'entraînement et données de test dans un rapport de 8: 2 __.

-Code (y compris les résultats)![Capture d'écran 2020-10-24 19.03.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/79db1564 -18c1-c397-80b0-e236333cad58.png)

Visualisez quelles variables explicatives (caractéristiques) sont susceptibles d'influencer les résultats

-__ Pour savoir «Quelle variable explicative (valeur de caractéristique) a tendance à influencer le résultat» _, calculez le __ coefficient de régression partielle __ entre la variable objective et la variable explicative. On peut dire que plus la valeur est élevée, plus il est facile d'influencer le résultat. -Calculer le coefficient de régression partielle avec __ "model.corf" __. Puisque je veux le gérer dans DataFrame, créez un DataFrame qui a des colonnes de train_df dans la ligne ("Feature"), créez un "Coefficient de régression partiel" en tant que nouvelle colonne, et stockez le coefficient de régression partiel là. -La raison pour laquelle delete (0) est défini lors de la création d'un DataFrame est que si 0 apparaît dans le processus de calcul du coefficient de régression partielle, le calcul ne peut pas être effectué et il devient NaN.

・ Code![Capture d'écran 2020-10-24 19.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/1cd46828-9fcd-bec9- 0851-275745c732b3.png)

・ Résultat![Capture d'écran 2020-10-24 19.26.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/efd82e96-a574-36ea- 80ac-2bc177a5ed6f.png)

SVM

・ Code (Si vous créez LinearSVC de la même manière, c'est OK. Ce résultat est "83.84") スクリーンショット 2020-10-24 19.48.48.png

k-NN

・ Code![Capture d'écran 2020-10-24 19.56.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/04b20121-5e79-cf72- 9d79-4d5c9ce7018d.png)

Arbre de décision

Forêt aléatoire

Évaluation du modèle

-Déterminer quel modèle doit être utilisé en listant la précision (acc) __ de chaque __ modèle créé ci-dessus dans DataFrame.

・ Code![Capture d'écran 2020-10-24 21.52.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/5140731d-b25a-73c6- 2b77-0780d617f121.png)

・ Résultat![Capture d'écran 2020-10-24 22.10.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/c7ac0fac-5ba4-f9e3- 3939-cc0a12fe92c1.png)

Enregistrer le modèle

-Comme vu dans les résultats de la section précédente, il a été constaté que la précision du modèle utilisant __ arbre de détermination et forêt aléatoire est la plus élevée __. Cette fois, j'ai décidé d'utiliser le modèle de forêt __random, qui semble être plus généralisé, et de sauvegarder ce modèle sous forme de fichier csv. -Exporter et enregistrer les fichiers csv peut être fait avec __ "to_csv" __. Dans le fichier, créez un fichier en tant que DataFrame qui a une colonne qui stocke le PassengerId de test_df comme «PassengerId» et une colonne qui stocke le résultat de la prédiction «Y_pred» de la forêt aléatoire (arbre de décision) comme «survécu».

・ Code (le chemin du fichier est fictif) スクリーンショット 2020-10-24 22.24.47.png

Sommaire

-Split les données créées jusqu'à la dernière fois dans __train_X, train_y, test_X . Créez un modèle en utilisant ces données. - Pour savoir «quelle variable explicative (valeur de caractéristique) a tendance à influencer le résultat» __, il est préférable de calculer et de visualiser le __ coefficient de régression partielle __. -Comparez quel modèle a la __précision (acc) __ la plus élevée à partir du score de chaque modèle, et enregistrez la __précision (acc) __ la plus élevée dans un fichier csv.

Cette fois, c'est fini. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Analyse des données Titanic 1
Analyse des données Titanic 3
Analyse de données python
Analyse des données avant la génération de fonctionnalités titanesques de Kaggle
Analyse de données avec python 2
Analyse des données à l'aide de xarray
Analyse de données avec Python
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
Mon conteneur d'analyse de données python
Xarray de bibliothèque d'analyse de données multidimensionnelle
Python pour l'analyse des données Chapitre 4
[Python] Notes sur l'analyse des données
Notes d'apprentissage sur l'analyse des données Python
Python pour l'analyse des données Chapitre 2
Wrap Analysis part1 (préparation des données)
Analyse de données à l'aide de pandas python
Conseils et précautions lors de l'analyse des données
Python pour l'analyse des données Chapitre 3
Analyse des données Twitter | Analyse des tendances
Faisons l'analyse des données de naufrage du Titanic comme ça
Première analyse de données satellitaires par Tellus
Concours de prédiction de données en 3 étapes (titanesque)
Modèle de prétraitement pour l'analyse des données (Python)
Expérience de réussite du test d'analyse des données de la version de novembre 2020
Analyse de données pour améliorer POG 3 ~ Analyse de régression ~
Recommandation d'analyse des données à l'aide de MessagePack
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Traitement des données 2 Analyse de divers formats de données
Bibliothèque d'analyse de données multidimensionnelle xarray Partie 2
Visualisation et analyse des informations de localisation des données Twitter Stava
Outil de visualisation Python pour le travail d'analyse de données
Vérifiez les données brutes avec Kaggle's Titanic (Kaggle ⑥)
Analyse des données, que faites-vous après tout?
Le traitement des données
[Python] Première analyse de données / apprentissage automatique (Kaggle)
Création d'une application d'analyse de données à l'aide de Streamlit
Analyse parabolique
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
[Analyse des données] Analysons les actions automobiles américaines
J'ai suivi une formation à l'analyse de données Python à distance
Environnement d'analyse de données centré sur Datalab (+ GCP)
Préparation à l'examen d'analyse de données certifié Python 3 Engineer
Prétraitement dans l'apprentissage automatique 1 Processus d'analyse des données
JupyterLab Basic Setting 2 pour l'analyse des données (pip)
Configuration de base de JupyterLab pour l'analyse des données (pip)
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Préparer un environnement de langage de programmation pour l'analyse des données
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
Formation préalable à l'examen d'analyse des données de certification d'ingénieur Python 3
Introduction à la modélisation statistique pour l'analyse des données
[Python] Analyse de données, pratique du machine learning (Kaggle) -Prétraitement des données-
Comment utiliser les outils d'analyse de données pour les débutants
Analyse de données en Python: une note sur line_profiler
[Introduction à minimiser] Analyse des données avec le modèle SEIR ♬