Concepts d'IA en Python

Préparation des données pour l'apprentissage automatique en Python

Les modèles d'apprentissage automatique apprennent à partir de nombres, et ils apprennent mieux quand les variables ont des échelles similaires. La normalisation et la standardisation remettent les données à l'échelle, et la multiplication de matrices permet aux modèles de combiner de nombreuses variables à la fois.

Le concept en termes simples

Les modèles d'apprentissage automatique apprennent à partir de nombres, et ils apprennent mieux quand les variables ont des échelles similaires. La normalisation et la standardisation remettent les données à l'échelle, et la multiplication de matrices permet aux modèles de combiner de nombreuses variables à la fois.

Mettez les variables à l'échelle avec la normalisation min-max et la standardisation par score z, et multipliez des matrices à la main.

Idées clés

  • Des variables aux échelles très différentes laissent les grands nombres dominer le modèle.
  • Min-max garde les valeurs entre 0 et 1 ; les scores z conservent la forme mais la centrent sur 0.
  • Calculez les valeurs de mise à l'échelle sur les données d'entraînement et réutilisez-les pour les nouvelles données.
  • Un produit matriciel A × B exige que le nombre de colonnes de A égale le nombre de lignes de B.

Quand l’utiliser ?

  • Comprendre ce qui se passe à l'intérieur des réseaux de neurones et des bibliothèques d'IA.
  • Apprendre l'idée avant de l'implémenter dans les défis correspondants.
  • Se préparer aux cours d'apprentissage automatique, aux entretiens et aux projets.

À vous de jouer

Faites glisser x5 pour créer une valeur aberrante et comparez la réaction de min-max et du score z. Pointez une case de A·B pour voir quelle ligne et quelle colonne elle utilise.

Code d’exemple

Exécuter le code →
main.py
import statistics

heights = [150, 160, 170, 180, 190]

# Min-max scaling squeezes values into the range 0..1.
low, high = min(heights), max(heights)
print("min-max:", [round((h - low) / (high - low), 2) for h in heights])

# Z-score standardization centres values on 0 with a spread of 1.
mean = statistics.mean(heights)
std = statistics.pstdev(heights)
print("z-scores:", [round((h - mean) / std, 2) for h in heights])

# Matrix multiplication: each output is a row of A dotted with a column of B.
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
product = [[sum(A[i][k] * B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]
print("A x B:", product)

Résultat attendu

min-max: [0.0, 0.25, 0.5, 0.75, 1.0]
z-scores: [-1.41, -0.71, 0.0, 0.71, 1.41]
A x B: [[19, 22], [43, 50]]

Fonctionnement

La mise à l'échelle min-max ramène la plus petite taille à 0 et la plus grande à 1. Les scores z soustraient la moyenne et divisent par l'écart-type, si bien que les valeurs sont centrées sur 0. Dans le produit matriciel, chaque case est une ligne de A multipliée élément par élément par une colonne de B, puis additionnée.

Modifiez les valeurs et exécutez le programme avec le compilateur Python en ligne CodeUtility, sans installation locale.

Exercices pratiques

Modifiez les entrées et testez les cas limites avant d’utiliser des données plus volumineuses.

  1. Modifiez les entrées ou les poids et prédisez la sortie avant d'exécuter.
  2. Affichez les valeurs intermédiaires pour suivre chaque étape du calcul.
  3. Résolvez les défis liés ci-dessous pour implémenter l'idée vous-même.
Exécuter dans l’IDE Python →

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis