L’ACP avant un modèle
Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 32 sur 51.
Moins de caractéristiques rendent un modèle plus rapide et lui donnent moins de bruit à poursuivre. PCA peut s’intégrer dans un pipeline, juste avant le modèle :
for n in [2, 5, 10, 20, 40, 64]:
model = make_pipeline(PCA(n_components=n), KNeighborsClassifier())
print(n, f"{cross_val_score(model, X, y, cv=5).mean():.3f}")Sur les chiffres :
L’exactitude plafonne autour de 20 : les 44 autres directions n’apportent presque rien. Chaque pli ajuste PCA sur ses propres lignes d’entraînement, donc aucune fuite de données ne se produit.
Des unités mixtes ? Placez StandardScaler() en premier, comme toujours.
Défi
MoyenUn laboratoire d’huile d’olive classe les huiles selon la lumière qu’elles absorbent à 36 longueurs d’onde, ainsi que selon 4 tests de laboratoire. Quel est le plus petit nombre de caractéristiques nécessaire ? Le programme lit une marge.
- Pour chaque
ndanssizes, effectue une validation croisée (5 plis) d’un pipeline : normaliseur, PCA avecncomposantes,LogisticRegression(max_iter=1000). Affiche chaque score. - Affiche le plus petit nombre de composantes dont le score est dans la marge par rapport au meilleur.
Pour un autre laboratoire et 0.05 :
2 components: 0.817
3 components: 0.833
4 components: 0.889
5 components: 0.928
10 components: 0.928
20 components: 0.917
40 components: 0.922
Fewest within 0.05 of the best: 4 componentsEssayez vous-même
import pandas as pd
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
# 180 huiles d’olive : lumière absorbée à 36 longueurs d’onde, 4 tests en laboratoire et la catégorie
oils = pd.read_csv("oils.csv")
X = oils.drop(columns=["oil", "grade"])
y = oils["grade"]
sizes = [2, 3, 4, 5, 10, 20, 40]
slack = float(input())
# É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