Les poids comme indices
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 18 sur 58.
Qu’est-ce qui pousse un visiteur à acheter dans une boutique ? Mettez les caractéristiques à l’échelle, afin que chaque poids soit exprimé par écart-type, puis interprétez les poids comme des indices :
X_scaled = StandardScaler().fit_transform(visits)
model = LogisticRegression(max_iter=1000)
model.fit(X_scaled, bought)
print(np.round(model.coef_[0], 2)) # une ligne de poidsCela affiche les poids dans l’ordre des colonnes :
[ 0.87 0.12 -0.3 -0.72]Le signe indique la direction : une valeur positive pousse vers la classe 1, l’achat ; une valeur négative, à l’opposé. La valeur absolue indique l’intensité.
La mise à l’échelle rend les tailles comparables : sans mise à l’échelle, un prix en centimes aurait un poids 100 fois inférieur à un prix en dollars.
Défi
MoyenUne application d’apprentissage des langues cherche à savoir quelles habitudes sont associées au maintien d’une série de 30 jours ou à la fin d’un cours. learners.csv contient six caractéristiques et les deux étiquettes ; le programme lit l’étiquette à étudier. Le code de départ sépare les données et les met à l’échelle.
- Entraîne un
LogisticRegressionsur les lignes d’entraînement mises à l’échelle. - Affiche chaque poids, du plus élevé au plus faible (2 décimales), avec sa direction.
- Affiche l’indice le plus fort, quel que soit son sens.
Pour une autre application :
friends: 1.02, pushes toward yes
reminder_on: 0.42, pushes toward yes
age: 0.06, pushes toward yes
daily_goal_min: -0.11, pushes toward no
lessons_week1: -0.2, pushes toward no
night_owl: -0.64, pushes toward no
Strongest evidence: friendsEssayez vous-même
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
learners = pd.read_csv("learners.csv")
features = ["daily_goal_min", "friends", "reminder_on", "lessons_week1", "night_owl", "age"]
label = input() # kept_streak ou finished_course
X_train, X_test, y_train, y_test = train_test_split(learners[features], learners[label], test_size=0.25, random_state=0)
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
# É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