Menu
CoddyTech

Récapitulatif : nettoyer et prédire

Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 49 sur 58.

challenge icon

Défi

Moyen

Quels 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.

  1. Construis le pipeline complet du chapitre : encode en one-hot cabin et activity, 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.
  2. Affiche son exactitude en validation croisée à 5 plis sur les lignes d’entraînement, avec la moyenne et l’écart-type.
  3. 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.91

Le 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é

Entraînez-vous par vous-même : Compilateur Python en ligne