Archives par mot-clé : Projet

Projet : Chance de survivre au naufrage du Titanic ?


Présentation du projet :

Vous allez travailler sur le jeu de données suivant (à télécharger): 

Ce jeu de données contient des informations sur une partie des passagers (plus exactement sur 891 passagers) du Titanic. Pour un petit rappel historique, vous pouvez consulter la page Wikipédia consacrée à ce paquebot : ici

Ouvrez le fichier « titanic.csv » à l’aide d’un tableur.

Vous devriez obtenir quelque chose qui ressemble à ceci :

Trouvez la signification des différents descripteurs : « PassengerId », « Survived », « Pclass »… Aide : 

L’objectif de ce projet est d’utiliser l’algorithme des k plus proches voisins afin de déterminer si les passagers ci-dessous auraient survécus au naufrage du Titanic.

PclassNameSexAgeSibSpParchTicketFareEmbarked
2Mr. Bidochon Robertmale371424437721.075C
2Mrs. Bidochon Raymondefemale361424437920.2175C
2Mrs. Bidochon Gisèlefemale113224438215.045C
2Mr. Bidochon René.male83224438312.945C
2Mr. Bidochon Eugène.male43213738310.17C
2Mr. Bidochon Louis.male132373811.13C

PARTIE 1 : Analyse des données (Data scientist)

Un travail de préparation des données va être nécessaire , vous allez donc devoir passer par quelques étapes que voici :

– Pour ceux qui ne souhaitent pas poursuivre la spécialité N.S.I vous pouvez opérer les changements directement avec le tableur.

– Pour ceux qui souhaitent poursuivre la spécialité N.S.I vous devez opérer les changements directement avec python.
Le fichier python ci-dessous, vous aidera faire les manipulations nécessaires).

Analyser ce fichier, combien y a t’il de fonctions,que font elles?

Pour la suite du projet vous pouvez travailler soit avec la liste de dictionnaire créé avec le programme, soit avec le fichier csv.

Toutes les colonnes ne vont pas forcement être pertinentes, par exemple, d’après vous, lors du naufrage, le nom du passager a-t-il eu une quelconque importance sur le fait qu’il ait ou non survécu ? (nous ne tiendrons pas compte du fait que certaines personnes aient pu être privilégié au vu de leur nom de famille, sur les 891 passagers présents dans le fichier titanic.csv, ce phénomène est négligeable).

Solution 1 avec le tableur:

En analysant le contenu du fichier titanic.csv (par exemple à l’aide d’un tableur), choisissez les descripteurs ( c’est à dire les colonnes) qui vous paraissent les plus pertinents. Vous effacerez les colonnes qui vous semblent inutiles directement dans le tableur ou avec python pour obtenir soit une liste de dictionnaire (comme Data dans le fichier donné ci dessus), soit un nouveau fichier titanic_V2.csv

Solution 2, avec python :

Nettoyer la liste de dictionnaire, en ne gardant pour chaque dictionnaire que les clés que vous jugez nécessaire.
Enregistrer votre fichier python.

Pour certains passagers, il manque des données. Par exemple, l’âge de certains passagers n’est pas renseigné. Une solution est de supprimer du fichier les passagers ayant des données incomplètes.

Supprimer du fichier les passagers ayant des données incomplètes pour obtenir un nouveau fichier titanic_V3.csv ou une nouvelle liste de dictionnaire avec les données incomplètes supprimées.


L’utilisation de l’algorithme des k plus proches voisins nous oblige à proscrire les données non numériques.
Par exemple, la colonne « Sex » ne peut pas être utilisée telle quelle, l’algorithme n’est pas capable de traiter les « male » et « female ».

Proposer une alternative pour remplacer les chaines de caracteres « male » et « female ».
Modifier certaines colonnes directement dans le tableur ou avec un script python pour obtenir un nouveau fichier titanic_V4.csv ou une nouvelle liste de dictionnaire.


Avec l’algorithme des k plus proches voisins nous sommes amenés à calculer des distances.
Comparer l’amplitude des valeurs de la colonne Pclass avec l’amplitude des valeurs de la colonne Age.

Amplitude des valeurs de la colonne Pclass :
Amplitude des valeurs de la colonne Age :

Code python pour obtenir cette amplitude à partir de titanic_V4.csv ou avec la liste de dictionnaire :
Une des conséquence de l’observation précédente est que le calcul de la distance ne va pas traiter de facon égalitaire les colonnes.
Pour rétablir l’équité nous allons procéder ainsi :
Pour chaque colonne :

  1. On repère la valeur minimale (v_min) et la valeur maximale ( v_max)
  2. On va diviser chacune des valeurs de la colonne par la diffrence v_max-v_min
    Exemple : Si une colonne contient les valeurs [5,4,1,11,7]
    v_min=1 et v_max=11
    Alors on divise toutes les valeurs par 8 ce qui donne [0.5,0.4,0.1,1.1,0.7]

Remarque :
Toutes les valeurs de toutes les colonnes seront comprises entre 0 et 1.
Cela nous garantie un traitement équitable entre les colonnes.

Faire les modifications nécessaires au fichier titanic_V4.csv pour garantir un équitable entre les colonnes. On nommera titanic_V5.csv le nouveau fichier obtenu. Vous devriez avoir un fichier comme celui-ci:

Partie 2: Graphique 3D

A l’aide du TP sur les k plus proches voisins, construire le graphique 3D à partir du fichier titanicV5.csv

Les survivants devront être en vert et les disparus en rouge, les personnes que vous testerez seront en bleu.

voici quelques liens ou faire des recherches:

1 er lien Les fiches CPGE

2 éme lien Machine learnia

Partie 3: Utilisation de l’algorithme des K plus proche voisins

A l’aide du TP sur les k plus proches voisins, (avec k=5) prédire quel(s) membre(s) de la famille Bidochons aurait(ent) survécu(s) au naufrage du Titanic ?

En utilisant l’algorithme proposé par scikit-learn
des k plus proches voisins établir votre programme python et donnez la liste des survivants en faisant varier k de 3 à 19 ( valeur impaire).

( c’est la ligne : from sklearn.neighbors import KNeighborsClassifier qui charge l’algorithme)

Projet : Compteur de point à la coinche

Fonctionnalités attendues

  1. Créer la partie, joueurs, équipe.
  2. Enregistrer les mises et annonces de départ.
  3. Créer interface résultats de la donne.
  4. Faire des statistiques, donneur, etc .
  5. Calculer les points de la donne.
  6. Faire les totaux pour chaque équipe.
  7. Développer interface Android.
  8. Arrêter la partie sur valeur maximum (à définir) ou sur demande.
  9. Préciser l’atout de la donne.
  10. Créer un rappel des règles et annonces du jeu.

Exemple de comptage en ligne

https://www.compteur-carte.net/belote/index.htm

Projet : Escape game

Fonctionnalités attendues

  1. Le but du jeu est de résoudre un certain nombre d’énigmes pour sortir d’un lieu en temps limité. Pour simplifier, le lieu est seulement composé de deux pièces.
  2. Le programme sera réaliser en Python avec l’interface graphique tkinter.
  3. Le jeu se joue à la souris. Le joueur indique l’action qu’il souhaite exécuter et le programme lui donne le résultat.
  4. L’écran du jeu est partagé en plusieurs parties :
    • la vue sur la pièce en cours (vu de dessus)
    • une liste de verbe d’action (regarder, ouvrir, utiliser, ramasser, associer etc.)
    • l’inventaire des objets détenus par le joueur
    • une zone de résultat de l’action en cours
    • l’affichage du temps restant.
  5. Chaque action est l’association d’un verbe d’action et soit d’un objet de l’inventaire, soit d’un objet de la pièce. Le résultat de l’action apparaîtra dans la zone de résultat (par exemple : « La porte s’ouvre »). Une réponse sera donné à chaque action du joueur, quelque soit la combinaison verbe + objet (prévoir une réponse générique, du type « il ne se passe rien »).
  6. L’inventaire doit pouvoir évoluer, en gagnant ou en perdant des objets. Il est possible d’associer des objets (par exemple « Associer les pile et la lampe sans piles »).
  7. La solution au jeu sera composé de deux quêtes distincts qui devront être réalisée toutes les deux avant de sortir (par exemple trouver un document secret et le code d’ouverture de la porte). La réalisation de ces deux quêtes peut être réalisée dans n’importe quel ordre. Chacune comportera un certain nombre d’étapes à réaliser dans un certain ordre.
  8. À la fin du temps le joueur a perdu. S’il termine avant la fin il gagne.
  9. Les meilleurs temps sont enregistrés et peuvent être affichés, même après avoir fermé puis rouvert le programme.

Projet : Cryptage/décryptage

Fonctionnalités attendues

  1. Le programme permettra de réaliser le codage et le décodage de messages.
  2. Le programme sera réalisé en python avec la bibliothèque tkinter pour interface.
  3. La fenêtre sera composée de deux zones, avec le message crypté et le message décrypté.
  4. Les algorithmes suivants seront pris en charge :
    • cryptage César
    • cryptage Vernam
  5. Le programme sera capable de deviner le type de codage utilisé, parmi ceux disponibles.
  6. Un générateur de mot de passe sera également proposé. Celui-ci créera des mots de passes composés d’un nom, d’un adjectif et d’un verbe, avec minuscule/majuscule et modifications (par exemple s→5, o→0 etc.)
  7. Un bouton permettra d’envoyer le message codé par mail (voir : http://apprendre-python.com/page-python-envoyer-mail-smtp).

Projet : Visualisation de données

Fonctionnalités attendues

  1. Le programme permet d’afficher un même jeu de donnée de différentes manières et ainsi de comparer différentes représentation du même jeu de données.
  2. Le programme sera réalisé en Python, avec les bibliothèques matplotlib (pour le tracé) et tkinter (pour l’interface).
  3. Le programme pourra lire un jeu de donnée (format à déterminer, par exemple csv). Ces données contiendront, pour différentes années, le PIB et le nombre d’habitants de différents pays.
  4. Il sera possible :
    • d’étudier soit le PIB, soit la population, soit le PIB/habitant
    • de sélectionner les pays que l’on veut afficher à l’aide de cases à cocher
    • d’afficher l’évolution dans le temps de ces grandeurs soit sous forme de courbes, soit sous forme d’histogramme
    • de comparer différents pays à une date donnée soit sous forme de diagramme circulaire, soit sous forme d’histogramme
    • de sélectionner la plage de temps tracée
    • de changer les valeurs min et max utilisée en ordonnée
  5. Un bouton permettra de sauvegarder le graphique en cours sous forme d’image.
  6. Si possible : un clic à la souris sur un point permettra de l’afficher (voir https://matplotlib.org/users/event_handling.html).

Radar vélo

Vous allez réaliser un radar de vélo .

Garmin commercialise un accessoire de ce type voir la vidéo  .

Radar de vélo Varia™

Ce radar détecte les véhicules arrivant de l’arrière,  l’avertisseur lumineux se modifie lorsque un véhicule se rapproche et la distance entre le véhicule et le cycliste s’affiche sur le compteur Garmin.

Pour cela vous réaliser un projet avec une carte Arduino un capteur ultrason et un afficheur lcd ou autre.

 

pour commencer vous aller devoir concevoir un chenillard de Leds et mesurer une distance avec le capteur ultrason .

Répartissez vous les taches et au travail.

Projet: Voir comme un daltonien

Fonctionnalités attendues :

  1. Le projet sera réalisé en javascript avec la bibliothèque p5.js.
  2. L’application devra fonctionner aussi bien sur PC ou smartphone et s’adapter à la taille de l’écran.
  3. Capturer une image ou une vidéo avec soit une webcam soit le capteur intégré de votre tablette ou smartphone.
  4. Modifier une image ou une vidéo pour en faire un rendu correspondant à la vision d’un daltonien.
  5. Proposer un test de dépistage du daltonisme.

Ressources :