Accéder au contenu principal

Introduction au Machine Learning avec Python : Votre Premier Modèle IA de A à Z

L'intelligence artificielle, souvent associée à des concepts abstraits et complexes, devient accessible grâce à Python. Aujourd’hui, vous allez découvrir comment créer un modèle de machine learning qui apprend à prédire si un passager du Titanic a survécu ou non. Ce projet concret vous donnera une vraie compréhension de ce qu’est l’IA appliquée.

Étape 1 : Comprendre les données et le rôle de df

Dans ce tutoriel, nous utilisons un jeu de données très célèbre : celui du Titanic. Chaque ligne représente un passager, avec des colonnes comme son âge, son sexe, sa classe dans le bateau, le prix payé pour son billet, et surtout, s’il a survécu (Survived = 1) ou non (Survived = 0).

Quand on lit ce fichier CSV avec pandas, on stocke les données dans une structure appelée DataFrame, abrégée en df. Un DataFrame est un tableau à deux dimensions : les colonnes sont les variables (âge, sexe…), et chaque ligne est un exemple (un passager). Voici comment on charge ce fichier :

import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
print(df.head())

Étape 2 : Nettoyage des colonnes – pourquoi et comment

Le jeu de données brut contient beaucoup de colonnes inutiles ou incomplètes. Par exemple, les colonnes Name, Ticket, ou Cabin sont peu pertinentes pour notre tâche. De plus, certaines lignes n’ont pas de valeur dans la colonne Age.

Nous allons donc :

  • Sélectionner les colonnes pertinentes : Pclass (classe sociale), Sex, Age, Fare, et la cible Survived.
  • Remplacer les valeurs manquantes dans la colonne Age par la médiane.
  • Convertir les valeurs textuelles (comme "male" et "female") en nombres.
df = df[['Pclass', 'Sex', 'Age', 'Fare', 'Survived']]
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Sex'] = df['Sex'].map({'male': 0, 'female': 1})

Étape 3 : Séparation entre variables explicatives et cible

Le machine learning fonctionne ainsi : on donne au modèle des entrées (par exemple Age, Sex, Fare) et on lui demande d’apprendre à prédire une sortie (Survived). On sépare donc notre tableau en deux :

X = df[['Pclass', 'Sex', 'Age', 'Fare']]
y = df['Survived']

Ensuite, pour bien évaluer notre modèle, on le teste sur des données qu’il n’a jamais vues :

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Étape 4 : Entraînement du modèle

On utilise ici un arbre de décision, un algorithme simple mais très efficace pour des jeux de données de ce type :

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
model.fit(X_train, y_train)

Étape 5 : Évaluation de la précision

On peut maintenant mesurer la qualité de notre modèle :

from sklearn.metrics import accuracy_score

y_pred = model.predict(X_test)
print("Précision :", accuracy_score(y_test, y_pred))

Étape 6 : Utilisation du modèle sur un cas réel

Imaginons que vous ayez un nouveau passager et que vous vouliez prédire s’il aurait survécu. Voici un exemple :

import numpy as np

# Exemple : femme de 29 ans, en 2e classe, billet à 25 €
nouveau_passager = np.array([[2, 1, 29, 25]])
prediction = model.predict(nouveau_passager)
print("Survivante" if prediction[0] == 1 else "Non survivante")

Conclusion : vous venez de construire une intelligence artificielle

Vous avez vu comment charger des données, les nettoyer, entraîner un modèle, le tester, puis l’utiliser. Ce n’est pas de la théorie : c’est le cœur même du machine learning. Python rend cela accessible à tous, même sans être mathématicien ou ingénieur.

Le monde de l’IA ne vous est plus fermé. Il vous appartient maintenant de continuer à explorer, tester, modifier les paramètres, changer d’algorithme, et surtout : pratiquer.

Commentaires

Posts les plus consultés de ce blog

Comprendre les Buffer Overflows - Analyse Technique 🗂️ Table des matières 🧠 Introduction 📚 Comprendre la vulnérabilité 🛠️ Compilation sans protections 🔎 Mécanisme d'exploitation 🛡️ Protections modernes 🧰 Outils à connaître 🔧 Environnement Docker 📌 Rappel sur les registres : Lorsqu'une fonction est exécutée, plusieurs registres processeur sont utilisés. Parmi eux : RIP (x86_64) : registre d'instruction, contient l'adresse de la prochaine instruction à exécuter. EIP (x86 32-bit) : équivalent de RIP sur les systèmes 32 bits. RBP / EBP : pointeur de base de la pile, souvent utilisé pour référencer les variables locales et les arguments. RSP / ESP : pointeur de sommet de la pile, toujours à jour avec l'adresse actuelle du haut de pile. Ces registres sont au cœur des méca...

🛡️ Analyse de faille avec Nikto : exploitation et protection contre Shellshock via CGI

Introduction : pourquoi analyser les failles ? Dans le monde de la cybersécurité, l’analyse de faille est un processus indispensable. Elle permet d’identifier et corriger les vulnérabilités avant qu’elles ne soient exploitées. Un attaquant n’a besoin que d’un seul point faible : à nous de le détecter avant lui. Dans cet article, nous allons nous intéresser à une faille emblématique : Shellshock (CVE-2014-6271), qui a touché Bash en 2014. Nous verrons comment utiliser Nikto , un scanner de vulnérabilités web, pour la détecter, comment l’exploiter manuellement, et surtout comment s’en prémunir. Pour cela, il est essentiel de comprendre le rôle joué par CGI (Common Gateway Interface) dans l’exploitation. 🧠 CGI : le chaînon faible de Shellshock Qu’est-ce que CGI ? CGI (Common Gateway Interface) est une spécification permettant à un serveur web d’exécuter des programmes externes – appelés scripts CGI – pour générer dynamiquement des réponses HTTP. Ces scripts peuvent être écrits e...