Algorithmen für maschinelles Lernen verstehen: Interaktionseffekte | Dresdner Statistik (2023)

Das Verständnis von Algorithmen für maschinelles Lernen ist eine Herausforderung. Mit folgendem Text möchte ich einen Beitrag zu einem speziellen Thema leisten: Wie anders istAlgorithmen für maschinelles Lernenmit Interaktionseffekten?

Die folgenden maschinellen Lernalgorithmen werden betrachtet:

  • Lineare Regression
  • GAM = Verallgemeinertes additives Modell
  • KNN = K nächste Nachbarn = k nächste Nachbarn
  • Ein einzelner Entscheidungsbaum (rpart)
  • Ein Random-Forest-Modell, das viele einzelne Entscheidungsbäume kombiniert

Die Daten: Boston

Wir verwenden die Boston-Daten, die in der Standardinstallation von R im MASS-Paket enthalten sind.

Bibliothek(MASA)Daten(Boston)str(Boston)

Die unabhängige Variable, die wir modellieren wollen (je nach Fragestellung: erklären oder vorhersagen), ist der Medianpreis von Eigentumswohnungen in 506 Bostoner Stadtteilen (Variablenname: medv). Das bedeutet, dass eine Analyseeinheit („Fall“, „Beobachtung“, Zeile im Datensatz) einem Bezirk entspricht.

Der Einfachheit halber verwenden wir nur zwei Prädiktoren = unabhängige Variablen: den Anteil der Bevölkerung mit niedrigem Status in Prozent (lstat) und Lage am Charles River (chas) mit den Werten no (kein Ort am Fluss) und yes ( Nachbarschaft liegt im Fluss).

(Video) Machine Learning-Algorithmen verstehen: Interaktionseffekte

Was sind Interaktionseffekte?

Kurz gesagt, der Einfluss einer unabhängigen Variablen auf eine abhängige Variable sinkt um einsInteraktion in unterschiedlichem Maße je nach Zustand einer anderen unabhängigen Variablen. Es ist einfacher, grafisch zu denken: Stellen Sie sich ein Streudiagramm mit einer kontinuierlichen unabhängigen Variablen auf der x-Achse und der abhängigen Variablen auf der y-Achse vor. Als zweiter Prädiktor steht eine kategoriale Variable mit zwei Werten zur Verfügung. Wir zeichnen die Regressionslinie für jedes dieser Merkmale. Ohne Interaktion sieht es so aus:

Hier ist der Code dafür:

library(dplyr)library(broom)library(ggplot2)library(caret)theme_set(theme_grey(base_size = 14)) # Schriftgröße erhöhen# Lineare Regression mit zwei unabhängigen VariablenBoston$chas <- recode(Boston$chas , "0" = "nein", "1" = "ja") mod_lm <- lm(medv ~ lstat + chas, data = Boston)summary(mod_lm)ggplot(augment(mod_lm), aes(x = lstat, y = medv, color = chas)) +geom_point(alpha = 0.8) +geom_line(aes(y = .fitted), size = 1) +labs(x = "Beliebter niedriger Statusprozentsatz", y = "Durchschnittlicher Hauspreis von 1000 $ ", Titel = "Modell : lm(medv ~ lstat + chas, date = Boston)") +scale_color_discrete(name = "Charles River location?") +theme(legend.position = "bottom")ggsave ("lm_sin -interaction.png ")

„Technisch“ sind hier die beiden Prädiktoren mit „+“ verknüpft. Das Modell ist additiv, die Variablen sind exakt parallel. Dies ist keine empirische Aussage, sondern eine Modellannahme, dh H. Das Modell wird so berechnet, dass die Geraden parallel verlaufen müssen. Mit anderen Worten: Es gibt nur einen Gradientenparameter für lstat, der für die Fälle ja und nein Flussposition identisch sein soll. Die Lage des Flusses beeinflusst nur das Niveau, nicht das Gefälle. Ist das realistisch? Um dies zu beweisen, lassen wir das ModellInteraktionZu bedenken: Daher eine Wechselwirkung zwischen der Lage des Flusses und dem Bevölkerungsanteil mit niedrigem Status. Sieht es so aus:

# Lineare Regression mit Interaktionseffekten ggplot(Boston, aes(x = lstat, y = medv, color = chas)) +geom_point(alpha = 0.8) +geom_smooth(method = "lm", se = FALSE) +labs(x = „Untergeordneter Bevölkerungsanteil in Prozent“, y = „Median Home Price $1000“, title = „Model: lm(medv ~ lstat * chas, date = Boston)“) +scale_color_discrete(name = „Location in Charles River?“) + theme(legend.position = "unten")ggsave("lm_with-interaction.png")

Tatsächlich sind die Linien nicht mehr parallel, sie schneiden sich. Inhaltlich interpretiert: In Stadtteilen mit Wasserlage sinken die Hauspreise mit zunehmendem Anteil der Bevölkerung mit niedrigerem Status schneller als in Stadtteilen ohne Wasserlage. Grafisch: Die rote Linie ist steiler als die türkise Linie.

Technische Umsetzung: siehe Modellformel in Legende: Prädiktoren sind mit "*" verknüpft. R fügt dann automatisch die sogenannten Haupteffekte (die beiden Prädiktoren einzeln) und den Interaktionseffekt (die Interaktion = das Produkt der beiden Prädiktoren) ein. Du kannst auch mehr schreiben:

lm(medv ~lstat + chas + lstat:chas)

(Video) Maschinelles Lernen -- Anforderungen an ML-Systeme im praktischen Einsatz

Wenn Sie dies vollständig manuell tun möchten, können Sie eine neue Variable berechnen, die das Produkt der beiden Prädiktoren enthält, und dem Modell hinzufügen.

Wechselwirkungen bei der linearen Regression

Daher haben wir Interaktionseffekte bereits im linearen Regressionsmodell implementiert. Das bedeutet: Die lineare Regression kann Wechselwirkungen modellieren, aber nicht automatisch. Dies geschieht nur, wenn wir Interaktionsterme explizit in das Modell aufnehmen. Das Verfahren ist hier genauer beschrieben:Regressionsmodelle in R visualisieren: mit Interaktionseffekten, 3D (ggplot2, plotly).

GAM = Verallgemeinertes additives Modell

Als nächstes betrachten wir ein GAM (Generalized Additive Model; Erstellung in R mit derPaketsortierungund die "gamSpline"-Methode). Erweitert das lineare Regressionsmodell um nichtlineare Kurven. Dazu werden aus den Daten Glättungsfunktionen geschätzt. Eine ausführliche Beschreibung finden Sie unterEinführung in das statistische Lernen: mit Anwendungen in R (Springer Texts in Statistics), ausführlicher in Heavier on MathematicsThe Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics).

Schnell wird deutlich, dass die Kurven parallel verlaufen. Trotz der größeren Flexibilität gegenüber dem linearen Modell werden auch hier Interaktionseffekte nicht automatisch berücksichtigt. Sie können jedoch, ähnlich wie bei der linearen Regression, explizit angegeben werden. Das „A“ in GAM, „Additiv“, sagt uns, dass die Kurven parallel bleiben. Hier ist der Code:

# GAM = Generalized Additive Modelctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 10, verboseIter = FALSE)Boston$chas <- recode(Boston$chas, "0" = "no", "1" = "yes") Boston$chas <- factor(Boston$chas)set.seed(2018)mod_gam <- train(medv ~ lstat + chas, method = "gamSpline", data = Boston, trControl = ctrl)Boston$pred .gam <- predict(mod_gam)ggplot(Boston, aes(x = lstat, color = chas)) +geom_jitter(aes(y = medv), alpha = 0.8) +geom_line(aes(y = pred.gam), size = 1,5) +labs(title = „Model: gamSpline for (medv ~ lstat + chas)“,x = „Prozentsatz der Bevölkerung mit niedrigem Status“,y = „Median home price below $1000“, caption = „ Additive Model: No Interaktionseffekt!") +scale_color_discrete(name = "Charles River Location?") +theme(legend.position = "bottom")ggsave("GAM.png")Boston$pred.gam < -NULL

KNN = K nächste Nachbarn

KNN ist ein Modell mit einer einfachen Grundidee: Um einen Datenpunkt zu modellieren, wird der Durchschnitt der k nächsten Nachbarn verwendet, wobei der Wert von k gegeben oder verwendet wirdKreuzvalidierungkann optimiert werden (Bei einer kategorialen abhängigen Variablen wird anstelle des Medians eine Mehrheitsentscheidung für die häufigste Kategorie verwendet.) Vorteil dieses Modells: es ist nicht parametrisch, d. H. braucht keine Kurvenanpassungsformel zu schätzen.

Die Kurven unterscheiden sich nun merklich von der linearen Regression. Die türkisfarbene Kurve basiert auf mehr Datenpunkten und zeigt daher mehr „Spitzen“. Es gibt keine zugrunde liegende Vorlagenformel, die für den gesamten Wertebereich gelten würde. Das Caret-Paket ermittelte k = 9 als Best-Fit-Parameter durch 10-fache Kreuzvalidierung mit 10 Wiederholungen, d. H. Jede Modellvorhersage basiert auf den Mittelwerten der neun nächsten Nachbarn.

(Video) So lernen Maschinen: #2 Algorithmen und Daten

Die Kurven sind nicht parallel! Das bedeutet: Das einfache knn-Modell rendert den Interaktionseffekt automatisch, ohne ihn explizit im Modellaufruf angeben zu müssen. Wichtig: Standardisieren Sie die Daten, um die Auswirkungen unterschiedlicher Skalen auszuschließen; Andernfalls haben Variablen mit größerem Maßstab einen unerwünscht größeren Einfluss auf die Bestimmung von Entfernungen (wer sind die nächsten Nachbarn?). Das Muster wird zweckmäßigerweise innerhalb der Stromfunktion des verschachtelten Pakets unter Verwendung einer Vorverarbeitung (preProc) implementiert.

Oder R-Code:

# KNN = K Nächste Nachbarn set.seed(2018)mod_knn <- train(medv ~ lstat + chas, data = Boston, trControl = ctrl,preProc = c("center", "scale"), method = "knn") Boston $pred.knn <- predict(mod_knn)ggplot(Boston, aes(x = lstat, color = chas)) +geom_jitter(aes(y = medv), alpha = 0.8) +geom_line(aes(y = pred.knn ) , size = 1.5) +labs(title = "Model: knn for (medv ~ lstat + chas)",x = "Prozentsatz der Bevölkerung mit niedrigem Status",y = "Median home price below $1.000" ) +scale_color_discrete(name = "Ort am Charles River?") +theme(legend.position = "bottom")ggsave("KNN.png")Boston$pred.knn <- NULL

Ein einzelner Entscheidungsbaum (rpart)

Nun sehen wir uns eine anEntscheidungsbaum, wobei wir den rpart-Algorithmus (rekursive Partitionierung) verwenden. Entscheidungsbäume haben den Charme, sehr einfach zu interpretieren zu sein; die Ergebnisse lassen sich auch dem statistischen Laien leicht vermitteln. Uns interessiert hier allerdings nur der Interaktionseffekt:

Auch hier fällt der unregelmäßige Verlauf auf, und auch hier sind die Kurven nicht parallel, also H. Wir bekommen wieder automatische Interaktionseffekte.

Wir haben den Anpassungsparameter von cp sorgfältig optimiert, was ein Kompromiss zwischen der Anzahl der Zweige und dem Möglichen istÜberanpassung(Überanpassung, d. h. geringe Verallgemeinerung auf neue Daten).

Ein weiterer Vorteil von Entscheidungsbäumen: Sie benötigen keine vorherige Standardisierung (Vorverarbeitung).

(Video) Was ist eigentlich Maschinelles Lernen? Beispiele & Anwendungen von Machine Learning | Kurz erklärt

# Entscheidungsbaum: rpartmyGrid <- data.frame(cp = seq(from = 0.0001, to = 0.5, length.out = 20))set.seed(2018)rpart <- train(medv ~ lstat + chas, data = Boston , trControl = ctrl,method = "rpart",tuneGrid = myGrid)Boston$pred <- predict(rpart)ggplot(Boston, aes(x = lstat, color = chas)) +geom_jitter(aes(y = medv), alpha = 0,8) +geom_line(aes(y = pred), size = 1,5) +labs(title = "Modell: rpart für (medv ~ lstat + chas), cp ausgestattet mit benutzerdefiniertem Raster",x = "Prozentsatz der Bevölkerung mit niedrigem status ",y = "Durchschnittlicher Wohnungspreis 1.000 $") +scale_color_discrete(name = "Charles River location?") +theme(legend.position = "bottom")ggsave("rpart.png")Boston$ pred <-NULL

zufälliger Wald

Schließlich ein Random-Forest-Modell. Random Forests verbinden viele (z. B. 1.000 oder 2.000) einzelne Entscheidungsbäume, um die Prognosegenauigkeit zu erhöhen. Dies wird für jeden verwendeten Baum durchgeführtStartes wird eine Zufallsstichprobe der Daten gezogen (mit Zurücklegen, damit die ursprüngliche Fallzahl erhalten bleibt). Die endgültige Vorhersage für jeden Datenpunkt ergibt sich aus dem Durchschnitt der Vorhersagen aller Bäume.

Die Kurven enthalten mehr "Spitzen" als der einzelne Entscheidungsbaum. Auch hier sind die Kurven nicht parallel, sodass das Random-Forest-Modell automatisch auch Interaktionseffekte liefert. Es ist so flexibel wie ein KNN und ein einzelner Entscheidungsbaum als nicht-parametrischer Ansatz (es werden keine universellen Modellformeln erstellt oder parametrisierte Kurvenanpassungen durchgeführt). Es ist weniger interpretierbar als ein einzelner Entscheidungsbaum oder eine lineare Regression, liefert jedoch tendenziell genauere Vorhersagen.

Der Anpassungsparameter mtry, die Anzahl der Prädiktoren, aus denen in jedem Zweig ausgewählt werden kann, wurde hier auf den Wert 2 gesetzt. Eine Feinabstimmung wäre ähnlich wie beim obigen rpart-Modell möglich.

# Random Forestctrl <- trainControl(método = "cv", número = 10)set.seed(2018)rf <- train(medv ~ lstat + chas, data = Boston,método = "rf",tuneGrid = data.frame( mtry = 2),trControl = ctrl)Boston$pred <- predecir(rf)ggplot(Boston, aes(x = lstat, color = chas)) +geom_jitter(aes(y = medv), alpha = 0.8) +geom_line( aes(y = pred), size = 1) +labs(title = "Modelo: Random Forest für (medv ~ lstat + chas), mtry = 2",x = "Bevölkerungsanteil mit niedrigem Status in Prozent",y = "Median Wohnungspreis en 1.000 USD") +scale_color_discrete(name = "¿Lage am Charles River?") +theme(legend.position = "bottom")ggsave("rf.png")Boston$pred <- NULL

Fazit: Algorithmen des maschinellen Lernens und Interaktionseffekte

Der Umgang mit Interaktionseffekten ist ein Kriterium, anhand dessen sich verschiedene Machine-Learning-Algorithmen vergleichen lassen. Grafische Darstellungen helfen zu verstehen, wie die Algorithmen funktionieren. Parametrische Methoden wielineare Regression(liefert Regressionslinien) undGAM(liefert nichtlineare Kurven) Wechselwirkungen können nur modelliert werden, wenn dies explizit im Modellaufruf angegeben ist. ENTWEDERnichtparametrischDie Verfahren (ANN, Decision Tree, Random Forest) modellieren aufgrund ihrer Flexibilität automatisch die Interaktionseffekte, da es keine festen Gradientenparameter über den gesamten Wertebereich gibt.

Hier sind drei empfehlenswerte Lektüre. Die beiden linken sind eng verwandt: Hastie und Tibshiranie haben einige ihrer eigenen Methoden (zB Bootstrapping, GAM) (weiter)entwickelt.Elementeer ist älter und anspruchsvoller;Einführunger kam später, um seine Leserschaft auf Kreise auszudehnen, die in der Mathematik weniger versiert waren. Rechts: Max Kuhn ist der Mastermind dahinterPaketsortierung; Das Buch ist dank zahlreicher Codebeispiele sehr praxisorientiert.

Man sieht hier deutlich die Widersprüchlichkeit in der Verwendung des Begriffs.maschinelles LernenIch lese öfter;Statistisches Lernenmiprädiktive ModellierungIch verstehe sie weitgehend als Synonyme, ersteres bezieht sich auf den Bereich der Statistik, auf dem viele Methoden basieren. Andere Methoden kommen eher aus dem Bereich Informatik/Künstliche Intelligenz; In unserer aufregenden Zeit ist der Werkzeugkasten voll mit ganz unterschiedlichen Abteilungen...

(Video) Maschinenlernen anno 2015

Algorithmen für maschinelles Lernen verstehen: Interaktionseffekte | Dresdner Statistik (7)Algorithmen für maschinelles Lernen verstehen: Interaktionseffekte | Dresdner Statistik (8)Algorithmen für maschinelles Lernen verstehen: Interaktionseffekte | Dresdner Statistik (9)

ähnliche Beiträge

Videos

1. Regression [Crashkurs in 40 min]
(DATAtab)
2. Künstliche Intelligenz, Maschinelles Lernen – Entstehung, Forschungsstand & Ausblick
(Fraunhofer InnoVisions)
3. Neuronale Netze, SVM usw. mit scikit-learn
(Jörn Loviscach)
4. KI in der Produktion: Potenziale Vom Maschinellem Lernen in der Produktion
(Mittelstand-Digital Zentrum Saarbrücken)
5. Wie schätze und interpretiere ich ein univariates lineares Modell?
(Dr. Benjamin Schlegel)
6. Sachverständige klären Begriffe rund um „Künstliche Intelligenz“
(Deutscher Bundestag)
Top Articles
Latest Posts
Article information

Author: Terence Hammes MD

Last Updated: 01/21/2023

Views: 5652

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Terence Hammes MD

Birthday: 1992-04-11

Address: Suite 408 9446 Mercy Mews, West Roxie, CT 04904

Phone: +50312511349175

Job: Product Consulting Liaison

Hobby: Jogging, Motor sports, Nordic skating, Jigsaw puzzles, Bird watching, Nordic skating, Sculpting

Introduction: My name is Terence Hammes MD, I am a inexpensive, energetic, jolly, faithful, cheerful, proud, rich person who loves writing and wants to share my knowledge and understanding with you.