I pesi come evidenze
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 18 di 58.
Cosa spinge un visitatore del negozio ad acquistare? Scala le caratteristiche, così ogni peso è per deviazione standard, poi leggi i pesi come indizi:
X_scaled = StandardScaler().fit_transform(visits)
model = LogisticRegression(max_iter=1000)
model.fit(X_scaled, bought)
print(np.round(model.coef_[0], 2)) # una riga di pesiQuesto stampa i pesi nell’ordine delle colonne:
[ 0.87 0.12 -0.3 -0.72]Il segno indica la direzione: positivo spinge verso la classe 1, cioè l'acquisto; negativo, in direzione opposta. La grandezza indica l'intensità.
La scalatura rende le dimensioni confrontabili: senza scalatura, un prezzo in centesimi avrebbe un peso 100 volte inferiore rispetto a uno in dollari.
Sfida
MedioUn'app per l'apprendimento delle lingue chiede quali abitudini siano associate al mantenimento di una serie di 30 giorni o al completamento di un corso. learners.csv contiene sei caratteristiche e entrambe le etichette; il programma legge quale etichetta analizzare. Il codice iniziale suddivide i dati e li ridimensiona.
- Addestra un modello
LogisticRegressionsulle righe di addestramento ridimensionate. - Stampa tutti i pesi, dal più grande al più piccolo (2 decimali), indicando la direzione.
- Stampa la prova più forte, in un senso o nell'altro.
Per un'altra app:
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: friendsProvalo tu
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 o 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)
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestitiEsercitati da solo: Compilatore Python online