Menu
CoddyTech

Gewichte als Indizien

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 18 von 58.

Was bringt einen Ladenbesucher zum Kauf? Skaliere die Merkmale, sodass jedes Gewicht pro Standardabweichung gilt, und lies die Gewichte dann als Hinweise:

Horizontale Balken für vier skalierte Gewichte. In Richtung Kauf, blau: pages_viewed 0.87, minutes 0.12. Weg vom Kauf, orange: from_ad -0.30, price_seen -0.72

X_scaled = StandardScaler().fit_transform(visits)
model = LogisticRegression(max_iter=1000)
model.fit(X_scaled, bought)
print(np.round(model.coef_[0], 2))  # eine Zeile mit Gewichten

Dies gibt die Gewichte in der Reihenfolge der Spalten aus:

[ 0.87  0.12 -0.3  -0.72]

Das Vorzeichen gibt die Richtung an: Ein positives Vorzeichen drängt in Richtung Klasse 1, also Kaufen; ein negatives davon weg. Der Betrag gibt die Stärke an.

Durch Skalierung werden Größen vergleichbar: Ohne Skalierung wäre das Gewicht eines Preises in Cent 100-mal kleiner als in Dollar.

challenge icon

Aufgabe

Mittel

Eine Sprachlern-App fragt, welche Gewohnheiten damit einhergehen, eine 30-Tage-Serie aufrechtzuerhalten oder einen Kurs abzuschließen. learners.csv enthält sechs Merkmale und beide Zielvariablen; das Programm liest ein, welche Zielvariable untersucht werden soll. Der vorgegebene Code teilt die Daten auf und skaliert sie.

  1. Trainiere ein LogisticRegression-Modell mit den skalierten Trainingszeilen.
  2. Gib alle Gewichte mit ihrer Richtung aus, beginnend mit dem größten (2 Dezimalstellen).
  3. Gib den stärksten Hinweis aus, unabhängig von der Richtung.

Für eine andere 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: friends

Probier es selbst

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 oder 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)

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler