Menu
CoddyTech

Projections

Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 25 sur 51.

Une projection projette chaque point directement sur une droite, comme une ombre. Voici les jumeaux du vin de « Trop de caractéristiques », centrés sur leur moyenne, sur deux droites :

Deux graphiques des mêmes vins représentés par des points bleus autour du centre. À gauche, une droite suivant le nuage : les ombres orange s’étalent largement le long de celle-ci, dispersion 1.14. À droite, une droite traversant le nuage : les ombres se regroupent, dispersion 0.30

Le long du nuage, les ombres conservent l’essentiel de la dispersion, si bien qu’un seul nombre par vin en dit presque autant que deux.

Une direction est composée de deux nombres dont les carrés ont une somme égale à 1, comme (0.6, 0.8). Une projection est une somme pondérée :

centered = X - X.mean(axis=0)
shadow = centered[:, 0] * 0.6 + centered[:, 1] * 0.8
print(round(shadow.std(), 3))

Cela affiche 1.136. La meilleure direction conserve la plus grande dispersion.

challenge icon

Défi

Moyen

Un forestier veut un seul nombre par pomme de pin au lieu de sa longueur et de sa largeur. Laquelle de ces deux directions conserve le mieux la dispersion des pommes de pin ? Le programme lit deux directions, chacune composée de deux nombres.

  1. Écris spread_along(direction) : l’écart type des projections des pommes de pin sur cette direction.
  2. Affiche les deux écarts types avec 3 décimales.
  3. Affiche la direction à conserver.

Pour d’autres pommes de pin :

Along [0.6, 0.8]: spread 2.104
Along [0.8, -0.6]: spread 0.412
Keep [0.6, 0.8]

Essayez vous-même

import numpy as np
import pandas as pd

# Un forestier a mesuré 70 pommes de pin : leur longueur et leur largeur en cm
cones = pd.read_csv("cones.csv")
X = np.column_stack([cones["length_cm"], cones["width_cm"]])
first = [float(input()), float(input())]
second = [float(input()), float(input())]

# Écrivez votre code ci-dessous
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Apprentissage non supervisé

Entraînez-vous par vous-même : Compilateur Python en ligne