Les deux meilleures caractéristiques
Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 59 sur 64.
Voici l’image promise dans ce chapitre : les deux caractéristiques moyennes les plus discriminantes sur un même nuage de points, une couleur par classe.
Les échantillons bénins se concentrent en bas à gauche, tandis que les échantillons malins s’étendent vers le haut et la droite. Là où les nuages se rejoignent, un modèle utilisant cette paire fera ses erreurs.
Une dernière vérification : les deux sont-elles presque identiques ?
first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))Cela affiche 0.85 : des caractéristiques liées, mais pas identiques. À 0.99, la deuxième caractéristique répéterait la première et n’apporterait presque rien de nouveau.
Défi
MoyenLes caractéristiques d’error mesurent à quel point une mesure a varié entre les cellules d’un même échantillon. Les deux plus fortes permettent-elles de distinguer les classes ? Le code de départ les classe dans first et second ; label(ax) nomme le graphique.
- Affiche
r between them:et leur r, avec 2 décimales. - Trace un nuage de points par classe, avec
firsten abscisse, et indique le nom de chaque classe dans la légende. - Appelle
label(ax), ajoute une légende et affiche le graphique.
Comme ceci, pour la paire worst la plus forte (r 0.82) :
Ensuite, évalue ton graphique : les nuages sont-ils séparés ? Et avec ton r, s’agit-il de copies ?
Essayez vous-même
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Les dix caractéristiques d’erreur : la variation de chaque mesure entre les cellules d’un même échantillon
X = cancer.data[cancer.feature_names[10:20]]
# Classées par force : first et second sont les deux plus fortes
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]
# Définit le titre du graphique et nomme les axes d’après cette paire
def label(ax):
ax.set_title("Error Features")
ax.set_xlabel(first)
ax.set_ylabel(second)
# É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 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 capteurs8Comparer des groupes
Diagrammes en boîte par groupeDifférence entre les moyennesEst-ce dû au hasard ?Valeurs pLe test tRécapitulatif : test A/B11Explorer un jeu de données
Un premier aperçuToutes les caractéristiques à la foisCaractéristiques et étiquetteLes deux meilleures caractéristiquesRécapitulatif : données sur le diabète3Les 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