Fiches Mémo IA
🧠 Concepts Fondamentaux
- Machine Learning (ML) : Algorithmes apprenant des modèles à partir de données.
- Deep Learning (DL) : ML utilisant des réseaux de neurones profonds.
- Supervisé : Données étiquetées (X, y). Ex: Classification, Régression.
- Non Supervisé : Données non étiquetées (X). Ex: Clustering, Réduction de dimension.
- Train / Test Split : Toujours séparer les données (80% entraînement, 20% test) pour évaluer la généralisation.
- Overfitting : Le modèle apprend le bruit par cœur (Bon en train, mauvais en test).
🛠️ Scikit-Learn (Machine Learning)
La bibliothèque standard pour le ML classique.
Imports Classiques
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error
Algorithmes Principaux
| Algorithme | Type | Utilisation | Classe Sklearn |
|---|---|---|---|
| K-NN | Classif/Reg | Basé sur les voisins proches. Simple mais lent sur gros datasets. | KNeighborsClassifier |
| Régression Linéaire | Régression | Prédire une valeur continue. | LinearRegression |
| Régression Logistique | Classification | Prédire une classe binaire (0/1). | LogisticRegression |
| Arbres de Décision | Classif/Reg | Règles if/else interprétables. | DecisionTreeClassifier |
| Random Forest | Classif/Reg | Ensemble d'arbres. Robuste et puissant. | RandomForestClassifier |
| SVM | Classification | Trouve la meilleure marge de séparation. | SVC |
| K-Means | Clustering | Groupe les données en K paquets. | KMeans |
Workflow Type
# 1. Préparer les données
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 2. Choisir le modèle
model = RandomForestClassifier()
# 3. Entraîner
model.fit(X_train, y_train)
# 4. Prédire et Évaluer
predictions = model.predict(X_test)
print(accuracy_score(y_test, predictions))
🔥 TensorFlow & Keras (Deep Learning)
Pour les tâches complexes (Vision, NLP, Audio).
Architecture de Base (MLP)
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten
model = Sequential([
Dense(64, activation='relu', input_shape=(10,)), # Couche cachée
Dense(1, activation='sigmoid') # Sortie
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10)
Couches Spéciales
- Conv2D : Convolution (pour les images).
- MaxPooling2D : Réduit la taille des images.
- Flatten : Aplatit les tenseurs multidimensionnels.
- Dropout : Désactive aléatoirement des neurones (anti-overfitting).