Récapitulatif : nettoyer et prédire
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 49 sur 58.
Défi
MoyenQuels campeurs reviendront ? camp.csv mélange des mots, des nombres et des valeurs manquantes ; le code de départ sépare les données et lit les informations d’un campeur.
- Construis le pipeline complet du chapitre : encode en one-hot
cabinetactivity, crée une étape pour les nombres qui remplit les valeurs manquantes avec les médianes, puis les met à l’échelle, et termine par une régression logistique. - Affiche son exactitude en validation croisée à 5 plis sur les lignes d’entraînement, avec la moyenne et l’écart-type.
- Entraîne-le sur les lignes d’entraînement ; affiche l’exactitude sur les données de test et la probabilité que le campeur revienne.
Un autre camp, campeur 10, lakeside, archery, 21, -, 4 :
CV accuracy: mean 0.707, std 0.065
Test accuracy: 0.740
Chance of coming back: 0.91Le tiret indique une note manquante : ton pipeline la remplit comme toute autre valeur manquante.
Essayez vous-même
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Les campeurs de l’été dernier : sont-ils revenus cette année (1) ou non (0) ?
campers = pd.read_csv("camp.csv")
X = campers.drop(columns="came_back")
y = campers["came_back"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Un nouveau campeur, une réponse par ligne ; un tiret (-) indique un nombre manquant
answers = []
for i in range(6):
answers.append(input())
numbers = []
for i in [0, 3, 4, 5]:
if answers[i] == "-":
numbers.append(np.nan)
else:
numbers.append(float(answers[i]))
camper = pd.DataFrame({"age": [numbers[0]], "cabin": [answers[1]], "activity": [answers[2]],
"nights": [numbers[1]], "rating": [numbers[2]], "friends_made": [numbers[3]]})
# Écrivez votre code ci-dessous
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-spam7Surapprentissage
Sous-apprentissage et surapprentissageCourbes d’apprentissageRégularisationEnsembles de validationRécapitulatif : régler un arbre10Chaînes de traitement
Chaînes de traitementColonnes mixtesImputation dans une chaîne de traitementOptimisation d’une chaîne de traitementRécapitulatif : nettoyer et prédire2Plus 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