Mesurer la similarité
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 2 sur 51.
Dans k-NN, le plus proche désignait la plus petite distance. Pour trouver des groupes, il vous faut cette distance pour chaque paire de lignes : une table des distances. Quatre amis ont noté deux films, de 1 à 10 :
ratings = np.array([[9, 2], [8, 3], [2, 9], [3, 7]]) # Ana, Ben, Cy, Dee
n = len(ratings)
table = np.zeros((n, n))
for i in range(n):
table[i] = np.sqrt(((ratings - ratings[i]) ** 2).sum(axis=1))La ligne i contient la distance entre l’ami i et tout le monde. Voici table, représentée sous forme de grille :
Ignore la diagonale de 0, chaque ami comparé à lui-même. Le plus petit nombre restant correspond à la paire la plus semblable, le plus grand à la plus différente. Petite distance, lignes similaires.
Défi
FacileUn bar à jus ajoute à son menu le nouveau smoothie du chef, lu par le programme. Lesquels se ressemblent tellement que l’un peut disparaître ? Lesquels sont les plus différents, pour un assortiment de dégustation ?
- Construis le tableau des distances de
menu. - Trouve la paire la plus semblable et la plus différente : chaque paire une seule fois, jamais un smoothie avec lui-même.
- Affiche les deux paires, avec les noms dans l’ordre du menu et les distances à 1 décimale.
Pour un autre menu :
Most alike: Lemon Zing and Lime Twist (14.1 g apart)
Most different: Choco Shake and Cucumber Cool (212.6 g apart)Essayez vous-même
import numpy as np
names = ["Berry Blast", "Green Glow", "Mango Lassi", "Kale Kick", "Tropical Sun", "Banana Oat", "Minty Melon"]
# Une ligne par smoothie, en grammes par tasse : fruits, légumes verts, yaourt
menu = np.array([[180, 0, 120],
[90, 110, 60],
[160, 0, 150],
[60, 150, 30],
[200, 20, 40],
[100, 0, 200],
[170, 40, 0]])
# La nouvelle recette du chef est ajoutée au menu en dernière ligne
names.append(input())
new = [int(input()), int(input()), int(input())]
menu = np.concatenate([menu, [new]])
# Écrivez votre code ci-dessous
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é
1Découvrir des groupes
Apprendre sans étiquettesMesurer la similaritéK-Means à la mainK-Means avec scikit-learnRécapitulatif : les membres de la salle de sport4Classification hiérarchique
Fusion étape par étapeModèles agglomératifsDendrogrammesRécapitulatif : races de chiens7L’ACP en pratique
Visualiser 64 dimensionsLes composantes comme motifsCompresser et reconstruireL’ACP avant un modèleRécapitulatif : scanner de visages10Projet : Explorateur de chiffres
Observer les chiffresRéduire avec la PCARegrouper les chiffresNommer les groupesRepérer les intrus2Choisir k
InertieLa méthode du coudeScores de silhouetteMettre à l’échelle avant le clusteringRécapitulatif : zones de livraisonEntraînez-vous par vous-même : Compilateur Python en ligne