Préparer les données
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 51 sur 58.
Un modèle ne lit que des lignes complètes de nombres. Les manchots ont des valeurs manquantes et deux colonnes textuelles, alors chaque colonne suit une voie :
Les valeurs textuelles manquantes reçoivent le mot "unknown" : un pingouin dont le sexe n’a pas été enregistré obtient sa propre colonne au lieu qu’on fasse une supposition.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())Ajustez les transformations uniquement sur les lignes d’entraînement. Une médiane calculée à partir des manchots de test les ferait fuiter dans l’entraînement.
Défi
MoyenLes manchots ont besoin des voies de l’image. Le code de départ les sépare et lit un numéro de ligne.
- Construis
prep, unColumnTransformerqui envoienumbersdans la voie numérique ettextdans la voie textuelle. - Ajuste-le sur les lignes d’entraînement et transforme-les en un seul appel.
- Affiche la taille et les valeurs manquantes avant, la taille après, puis la ligne préparée, avec 2 décimales.
Pour une autre colonie et la ligne 3 :
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]La ligne 14 correspond à un manchot que personne n’a pu mesurer. Que devient-il ?
Essayez vous-même
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
# La colonie de Meet the Penguins, ses caractéristiques et son étiquette
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
# Commencez par séparer les données : les manchots de test restent à l’écart jusqu’à Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(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 supervisé
1Votre premier modèle
Apprendre à partir d’exemplesJeux d’entraînement et de testAjuster et prédireÉvaluer un modèleRécapitulatif : trieur de graines4Régression logistique
Prédictions oui ou nonLe seuil de décisionLes poids comme indicesPlusieurs classesRécapitulatif : filtre anti-spam2Plus proches voisins
Comment k-NN prend ses décisionsChoisir kFrontières de décisionMettre les voisins à l’échelleRécapitulatif : voisins et vin5Évaluer les classificateurs
La matrice de confusionPrécision et rappelLe score F1Classes déséquilibréesCourbes ROCRécapitulatif : test de dépistage8Validation croisée
Validation K-foldComparer les modèles équitablementRecherche par grilleRécapitulatif : réparations de skateboard11Projet : espèces de manchots
À la rencontre des manchotsPréparer les donnéesChoisir un modèleOptimiser le modèle gagnantDéployer le modèle3Régression linéaire
Prédire des nombresPlusieurs caractéristiquesMesurer les erreursGraphiques des résidusRécapitulatif : locations de vélos6Arbres de décision
Les arbres posent des questionsLire un arbreProfondeur de l’arbreImportance des caractéristiquesRécapitulatif : décisions de prêtEntraînez-vous par vous-même : Compilateur Python en ligne