Standardisation
Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 49 sur 64.
De nombreux modèles apprennent mieux lorsque chaque caractéristique est centrée sur 0 et présente un écart-type de 1. La standardisation fait cela : chaque valeur devient son score z dans sa colonne.
Cinq citrouilles, poids en kg et largeur en cm :
La diffusion standardise chaque colonne en une seule fois :
pumpkins = np.array([[30, 60],
[8, 30],
[22, 55],
[40, 65],
[15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))Cela affiche :
[0. 0.]
[1. 1.]Arrondissez avant de vérifier : sans arrondi, une moyenne de 0 peut s’afficher sous la forme 2.22044605e-17, à cause d’une infime erreur d’arrondi.
Contrairement à min-max, il n’y a pas de plage fixe : la plupart des valeurs se situent entre -2 et 2.
Défi
MoyenUne ferme laitière repère des vaches inhabituelles. Chaque ligne de cows correspond à une vache : la production de lait (litres par jour), le poids (kg) et l’âge (années), désignés dans features. Le programme lit la position d’une vache k.
- Complète
standardize(X). Les lignes de vérification affichent ensuite[0. 0. 0.]et[1. 1. 1.]. - Trouve le score z de la vache
kle plus éloigné de 0, sans tenir compte du signe, et affiche-le comme ci-dessous, avec 2 décimales.
Pour une vache d’une autre ferme :
Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herdEssayez vous-même
import numpy as np
features = ["milk", "weight", "age"]
# Une ligne par vache : lait en litres par jour, poids en kg, âge en années
cows = np.array([[28, 610, 6],
[22, 540, 3],
[35, 680, 6],
[31, 590, 9],
[19, 650, 4],
[26, 520, 2],
[30, 600, 7]])
k = int(input())
# Renvoie X avec chaque colonne standardisée : moyenne 0 et écart-type 1
def standardize(X):
# Remplacez la ligne ci-dessous par la standardisation
return X
# Ne modifiez pas les trois lignes ci-dessous : elles vérifient votre fonction
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))
# Écrivez votre code ci-dessous : qu’est-ce qui distingue la vache k ?
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Statistiques pour le ML
1Centre et dispersion
Moyenne et médianePercentiles et quartilesVariance et écart-typeÉchantillon ou population ?La valeur la plus fréquenteRécapitulatif : délais de livraison4Échantillons et populations
Population et échantillonLes moyennes d’échantillon varientLa distribution d’échantillonnageDes échantillons plus grands, moins de bruitRécapitulatif : sonder une ville2Distributions
Histogrammes de densitéFormes des donnéesLa courbe normaleLa règle des 68-95-99,7Scores zRécapitulatif : autonomie de la batterie5Valeurs aberrantes
Diagrammes en boîteLa règle de l’écart interquartileLa règle du score ZTraiter les valeurs aberrantesRécapitulatif : anomalies des capteurs3Les probabilités par simulation
La probabilité comme fréquenceLa loi des grands nombresSommes de désEspérance mathématiqueProbabilité conditionnelleRécapitulatif : les chances au stand de dés6Relations
Lire des nuages de pointsCorrélationMatrice de corrélationCartes thermiques de corrélationCorrélation n’est pas causalitéRécapitulatif : glace et soleil9Mise à l’échelle des caractéristiques
Pourquoi mettre les caractéristiques à l’échelleMise à l’échelle Min-MaxStandardisationStandardScalerRécapitulatif : partenaires d’escaladeEntraînez-vous par vous-même : Compilateur Python en ligne