0% ont trouvé ce document utile (0 vote)
90 vues13 pages

Titanic Machine Learning

Transféré par

samba macinanke
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
90 vues13 pages

Titanic Machine Learning

Transféré par

samba macinanke
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Initiation au

Machine Learning:
Initiation Python &
Titanic training
COULIBALY ISSA, PhD candidate, engineer
and CCEO at City-Skill
1. C’est quoi Python ?
Python est un langage de programmation interprété,
multi-paradigme et multiplateformes.

Il est particulièrement répandu dans le monde scientifique,


et possède de nombreuses bibliothèques optimisées
destinées au calcul numérique.
Les importations nécessaires

#les imports

import numpy as np # calculs numérique

import pandas as pd # manipulation et analyse de données

import seaborn as sns #librairie de visaulisation des données

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from [Link] import accuracy_score

import [Link] as plt #affichage des graphes


Qu’est-ce qu’on a besoin pour faire du Machine
Learning(prédire un événement en informatique
?)
Initiation à Python

1. Comment obtenir les données?


● Les données sont généralement publiées par les grands laboratoires de recherches
● Il y a deux types de données : données libre(c’est-à-dire gratuites) et données privées
● Comment lire les données

Pratique:
a. Télécharger les données sur kaggle:
[Link]
b. Charger les données dans python:
import pandas as pd
titanic_data = pd.read_csv('[Link]')
Initiation à Python

Comment analyser les données ?


Voir le contenu des données et les valeurs statistiques de chaque elements

Pratique:
1. Les n premières lignes de la donnée:
titanic_data.head(n)
2. Voir les parties non renseignées de la donnée: titanic_data.isnull().sum()
3. Supprimer la colonne Cabine des données vu qu’il n’est pas important dans notre étude: titanic_data =
titanic_data.drop(columns='Cabin', axis=1)
4. Remplacer les valeurs manquantes de la colone Age par la moyenne des âges:
titanic_data['Age'].fillna(titanic_data['Age'].mean(), inplace=True)
5. Remplacez les valeurs manquantes dans la colonne « Embarqué » par la valeur du mode:
titanic_data['Embarked'].fillna(titanic_data['Embarked'].mode()[0], inplace=True)
Initiation à Python

Comment analyser les données ?


6. Convertir les chaînes de caractères en valeurs catégorielles:(Nous avons déjà remarqué dans le tableau qu'il
y a deux colonnes qui contiennent des valeurs de type chaîne : la colonne "'Sex'" et la colonne "'Embarked'".)
titanic_data.replace({'Sex':{'male':0,'female':1},'Embarked':{'S':0,'C':1,'Q':2}}, inplace=True)

7. Maintenant, si nous exécutons à nouveau la commande titanic_data.head(), nous constatons que les valeurs
ont été remplacées avec succès.

8. On voit aussi qu'il y a quelques colonnes, qui n'ont pas beaucoup d'importance dans ce processus.
Débarrassons-nous d'eux.
titanic_data= titanic_data.drop(columns = ['PassengerId','Name','Ticket'],axis=1)

Ces étapes dépendent de l’analyse de chaque ingénieur.


Initiation à Python

Comment préparer nos données d’entraînement (X_train, Y_train) ?


Ici, X est la variable de fonctionnalité, contenant toutes les fonctionnalités telles que Pclass, Age, Sex,
Embarked, etc. à l'exception de la colonne Survived.

Y, d'autre part, est la variable cible, car c'est le résultat que nous voulons déterminer, c'est-à-dire si
une personne est en vie.

Maintenant, nous allons diviser les données en quatre variables, à savoir X_train, Y_train, X_test,
Y_test.
X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size=0.2, random_state=2)
Initiation à Python

Comprenons les variables :

X_train : contient un ensemble de valeurs de la variable 'X'

Y_train : contient la sortie (si la personne est vivante ou morte) de la valeur correspondante de
X_train.

X_test : contient un ensemble de valeurs de la variable 'X', à l'exclusion de celles de X_train.

Y_train : contient la sortie (que la personne soit vivante ou morte) de la valeur correspondante de
X_test.

test_size : représente le rapport en pourcentage de X_train:X_test (ici 0,2 signifie que les données
seront séparées dans les variables X_train et X_test dans un rapport 80:20). Vous pouvez utiliser
n'importe quelle valeur que vous voulez. Une valeur <0,3 est préférée
Initiation à Python

Modèles d’entraînements:

Logistic Regression :

1. Création du modèle: model = LogisticRegression(solver='liblinear')


2. Entraînement du modèle: model.fit(X_train, Y_train)
3. Verifier la performance: Y_train_prediction = [Link](X_train)
4. Maintenant pour verifier la précision de sa prédiction, nous comparons les valeurs de Y_train_prediction et
Y_train qui étaient les données d’origine.

training_data_accuracy = accuracy_score(Y_train, Y_train_prediction)

print('Accuracy score of training data : ', training_data_accuracy)

5. Maintenant, essayons à nouveau avec X_test et Y_test :

Y_test_prediction = [Link](X_test)

test_data_accuracy = accuracy_score(Y_test, Y_test_prediction)

print('Accuracy score of test data : ', test_data_accuracy)

La sortie est de 0,7821229050279329, ce qui est très proche de notre prédiction de données de test.
Faisons un test sur une personne au hasard

Vérifions maintenant une personne aléatoire en utilisant des données aléatoires.

1. input_data = (3,0,35,0,0,8.05,0)

# Notez que ces données excluent les données Survived, car elles doivent être déterminées à partir du
modèle lui-même(c’est le résultat)

2. Changeons cette valeur en tableau utilisable par le système:

input_data_as_numpy_array = [Link](input_data)

3. Comme notre modèle a été formé dans différentes dimensions, nous devons le remodeler en
fonction de nos dimensions cibles.

input_data_reshaped = input_data_as_numpy_array.reshape(1,-1)
Faisons un test sur une personne au hasard

Vérifions maintenant une personne aléatoire en utilisant des données aléatoires.

prediction = [Link](input_data_reshaped)

if prediction[0]==0:

print("Dead")

if prediction[0]==1:

print("Alive")

Lors de l'exécution du code, nous obtenons exactement le même résultat, que celui donné, dans le
tableau.

Nous pouvons donc conclure que notre modèle fonctionne bien. Vous pouvez entraîner le modèle à
l'aide d'un ensemble de données plus volumineux pour obtenir de meilleurs résultats.
Le résultat de tout modèle d'apprentissage automatique peut être rendu plus précis à l'aide d'un
ensemble de données plus volumineux, mais ce sera beaucoup plus fastidieux et chronophage.
N'hésitez pas à ajouter tout type de modifications nécessaires à ce code et à le personnaliser
selon vos besoins. Une logique similaire peut être appliquée pour effectuer divers types de
prédictions.

Vous aimerez peut-être aussi