Outils pour utilisateurs

Outils du site


nsi:tds:ia:knn_et_titanic

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

KNN et Titanic

Base de données utilisée

Une base de données nous fournit toutes les informations connues concernant les passagers à bord du Titanic, lors de son naufrage en avril 1912.

Voici un aperçu du fichier titanic.train.csv, seulement les 10 première lignes.

Le séparateur utilisé dans le fichier csv est ,.

PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
103Braund, Mr. Owen Harrismale2210A/5 211717.25S
211Cumings, Mrs. John Bradley (Florence Briggs Thayer)female3810PC 1759971.2833C85C
313Heikkinen, Miss. Lainafemale2600STON/O2. 31012827.925S
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female351011380353.1C123S
503Allen, Mr. William Henrymale35003734508.05S
603Moran, Mr. Jamesmale003308778.4583Q
701McCarthy, Mr. Timothy Jmale54001746351.8625E46S
803Palsson, Master. Gosta Leonardmale23134990921.075S
913Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)female270234774211.1333S
1012Nasser, Mrs. Nicholas (Adele Achem)female141023773630.0708C

L'information qui nous intéressera particulièrement est Survived qui vaut 1 quand l'individu a survécu et 0 sinon.

SibSp = Sibling - Spouse et Parch = Parent - Children, ensemble ces deux colonnes désignent le nombre de membres de la famille également passagers
Embarked désigne le port d'embarquement parmi Southampton, Cherbourg, Queenstown
Pclass désigne la classe, 1ere, 2e ou 3e

Pour vous faire une idée, aspect du fichier titanic.train.csv (quelques lignes)

PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
6,0,3,"Moran, Mr. James",male,0,0,0,330877,8.4583,,Q
7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S

Objectif

Soit un individu non présent dans le fichier précédent, pour lequel on a toutes les informations sauf celle concernant sa survie. On souhaite, sur la base des informations contenues dans titanic.train.csv, deviner si cet individu a survécu ou non.

Il faut répéter cette manœuvre sur les individus de titanic.test.csv qui est un fichier semblable au précédent mais sans la colonne Survived.

Pour vous faire une idée, aspect du fichier titanic.test.csv (quelques lignes)

PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q
893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47.0,1,0,363272,7.0,,S
894,2,"Myles, Mr. Thomas Francis",male,62.0,0,0,240276,9.6875,,Q
895,3,"Wirz, Mr. Albert",male,27.0,0,0,315154,8.6625,,S
896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22.0,1,1,3101298,12.2875,,S
897,3,"Svensson, Mr. Johan Cervin",male,14.0,0,0,7538,9.225,,S
898,3,"Connolly, Miss. Kate",female,30.0,0,0,330972,7.6292,,Q
899,2,"Caldwell, Mr. Albert Francis",male,26.0,1,1,248738,29.0,,S
900,3,"Abrahim, Mrs. Joseph (Sophie Halaut Easu)",female,18.0,0,0,2657,7.2292,,C

Méthode

Je vous propose d'utiliser un algorithme KNN qui sélectionnera les données qui vous semblent pertinentes dans titanic.train.csv, les ajuste éventuellement et qui permettra de déterminer pour un individu inconnu dont on ne sait pas la valeur de l'attribut Survived à quelle classe il appartient.

Par classe, comprenez survivant (Survived = 1) ou non survivant (Survived = 0)

Vérification

Je vous fournit le fichier test avec sa colonne Survived ce qui vous permettra de voir à quel point votre algorithme a deviné juste.

titanic.test.complet.csv

On peut aussi se contenter du fichier ne contant que la colonne Survived pour les mêmes individus :

titanic.test.result.csv

nsi/tds/ia/knn_et_titanic.txt · Dernière modification : de goupillwiki