Machine Learning for Engineers I - Introduction to Methods and Tools - Exam.pdf

Machine Learning for Engineers I - Introduction to Methods and Tools - Exam
Machine Learning for Engineers I - Introduction to Methods and Tools - Exam Aufgabe 1) Im Verlauf der Geschichte und Entwicklung des maschinellen Lernens haben sich mehrere bedeutende Meilensteine herauskristallisiert. Dazu gehören der Turing-Test, das Perzeptron von Frank Rosenblatt, die Einführung der Backpropagation, der Durchbruch im Deep Learning durch Geoffrey Hinton und die Entwicklung von ...

© StudySmarter 2024, all rights reserved.

Machine Learning for Engineers I - Introduction to Methods and Tools - Exam

Aufgabe 1)

Im Verlauf der Geschichte und Entwicklung des maschinellen Lernens haben sich mehrere bedeutende Meilensteine herauskristallisiert. Dazu gehören der Turing-Test, das Perzeptron von Frank Rosenblatt, die Einführung der Backpropagation, der Durchbruch im Deep Learning durch Geoffrey Hinton und die Entwicklung von AlexNet. Diese Fortschritte wurden möglich durch steigende Datenmenge, Rechenleistung und technologische Innovationen. Analysiere und diskutiere die Auswirkungen dieser Entwicklungen auf das moderne maschinelle Lernen.

a)

Erkläre den Turing-Test und seine Bedeutung für das maschinelle Lernen. Inwiefern hat er die Konzeption von Künstlicher Intelligenz beeinflusst? Gehe auf die Fragestellung ein, die Alan Turing ursprünglich formuliert hat, und diskutiere, wie sie die Forschung geprägt hat.

Lösung:

Der Turing-Test wurde von dem britischen Mathematiker und Informatiker Alan Turing in seinem 1950 veröffentlichten Aufsatz „Computing Machinery and Intelligence” eingeführt. Turing stellte die Frage: „Können Maschinen denken?” um, indem er vorschlug, die Frage durch ein praktisches Experiment zu beantworten. Dieses Experiment ist als Turing-Test bekannt.

  • Der Turing-Test: In seinem ursprünglichen Vorschlag beschrieb Turing ein Szenario, bei dem ein menschlicher Prüfer durch Textkommunikation versucht, zu bestimmen, ob er mit einem Menschen oder einer Maschine spricht. Wenn die Maschine den Prüfer täuschen kann und dieser nicht in der Lage ist, zuverlässig zwischen Mensch und Maschine zu unterscheiden, dann hat die Maschine den Test bestanden.
  • Bedeutung für das maschinelle Lernen und Künstliche Intelligenz (KI): 1. Praktische Herangehensweise an KI: Der Turing-Test war eine der ersten konkreten Methoden, um die Intelligenz einer Maschine zu bewerten. Statt sich mit philosophischen Fragen darüber zu beschäftigen, was Intelligenz ist, schlug Turing vor, die Intelligenz durch beobachtbares Verhalten zu testen. 2. Fokus auf natürlichsprachige Verarbeitung: Der Test richtete die Aufmerksamkeit der Forscher auf die Fähigkeit der Maschinen, menschliche Sprache zu verstehen und zu generieren, was zur Entwicklung von Bereichen wie natürlicher Sprachverarbeitung (NLP) führte. 3. Langfristige Ziele: Der Turing-Test gilt heute als ein langfristiges Ziel für die KI-Forschung, das noch nicht vollständig erreicht wurde. Er stellt eine metaphorische „Messlatte” dar, an der sich Fortschritte messen lassen. 4. Ethik und Philosophie: Der Test hat auch ethische und philosophische Debatten darüber angestoßen, was es bedeutet, „menschlich” oder intelligent zu sein, und welche Rechte und Verantwortlichkeiten Maschinen haben.
  • Ursprüngliche Fragestellung von Alan Turing: Turing stellte die Frage nach der Denkfähigkeit von Maschinen bewusst provokativ und pragmatisch. Er wollte die Diskussion von abstrakten und schwer überprüfbaren Konzepten weglenken und hin zu konkreten, überprüfbaren Experimenten. Diese Herangehensweise hat die Forschung stark beeinflusst, indem sie klare Ziele setzte und die Messbarkeit von Fortschritten im Bereich der KI ermöglichte.
  • Einfluss auf die Forschung: Turings Ansatz hat Forschungsmethoden, Ziele und die allgemeine Wahrnehmung von KI geprägt. Der Test bleibt ein Prüfstein und ein inspirierendes Konzept in der KI-Forschung und hilft dabei, den Fortschritt zu bewerten und zu orientieren.

Aufgabe 2)

Betrachte ein Szenario, in dem Du ein Machine-Learning-Modell zur Klassifizierung von handgeschriebenen Ziffern entwickeln möchtest. Du hast einen Datensatz mit 10.000 Bildern von Ziffern, die jeweils einer der Ziffern von 0 bis 9 entsprechen.

a)

(a) Erkläre den Prozess der Aufteilung Deines Datensatzes in Trainings- und Testdatensätze. Wie würdest Du sicherstellen, dass die Aufteilung repräsentativ für den gesamten Datensatz ist? Begründe Deine Antwort.

Lösung:

Um ein Machine-Learning-Modell zur Klassifizierung von handgeschriebenen Ziffern erfolgreich zu entwickeln, ist es wichtig, Deinen Datensatz in Trainings- und Testdatensätze aufzuteilen. Hier ist der Prozess im Detail erklärt:

b)

(b) Du hast Dich entschieden, 70% Deiner Daten für das Training und 30% für das Testen zu verwenden. Wie viele Bilder befinden sich dann im Trainings- und wie viele im Testdatensatz? Mathematische Berechnungen sind erforderlich.

Lösung:

Um zu berechnen, wie viele Bilder sich im Trainings- und wie viele im Testdatensatz befinden, können wir die Prozentsätze auf die Gesamtanzahl der Bilder anwenden. Gegeben sei ein Datensatz mit 10.000 Bildern.

  • Trainingsdatensatz: 70% von 10.000 Bildern
  • Testdatensatz: 30% von 10.000 Bildern

Lasst uns die Berechnungen durchführen:

  • Die Anzahl der Trainingsbilder ist:

  70% von 10.000   = \frac{70}{100} \times 10.000  = 0.7 \times 10.000  = 7.000  
  • Die Anzahl der Testbilder ist:

  30% von 10.000   = \frac{30}{100} \times 10.000  = 0.3 \times 10.000  = 3.000  
  • Also gibt es 7.000 Bilder im Trainingsdatensatz und 3.000 Bilder im Testdatensatz.

c)

(c) Diskutiere den Zweck und die Rolle einer Validierungsmenge während des Trainingsprozesses. Wie unterscheidet sich diese von der Testmenge und wieso ist sie wichtig für die Hyperparameteroptimierung?

Lösung:

(c) Die Validierungsmenge spielt eine entscheidende Rolle im Trainingsprozess eines Machine-Learning-Modells. Sie dient dazu, die Leistung des Modells während des Trainings zu bewerten und zu überwachen. Hier sind einige Punkte, die den Zweck und die Rolle der Validierungsmenge verdeutlichen:

  • Überwachung der Modellleistung: Die Validierungsmenge wird verwendet, um die Leistung des Modells nach jeder Epoche (einem vollständigen Durchgang durch den Trainingsdatensatz) zu überprüfen. Dies hilft, zu erkennen, wann das Modell anfängt, zu überfitten, d.h. sich zu sehr an die Trainingsdaten anzupassen und dabei die Fähigkeit zur Verallgemeinerung auf neue Daten zu verlieren.
  • Unterschied zur Testmenge: Die Validierungsmenge wird im Gegensatz zur Testmenge nicht erst am Ende des Trainingsprozesses verwendet. Während die Validierungsmenge zur Überwachung und Anpassung während des Trainings genutzt wird, wird die Testmenge ausschließlich dazu verwendet, die endgültige Modellleistung zu bewerten. Die Testmenge bleibt dabei unangetastet, um eine unverfälschte Beurteilung des Modells zu ermöglichen.
  • Wichtigkeit für die Hyperparameteroptimierung: Die Validierungsmenge ist besonders wichtig für die Optimierung der Hyperparameter des Modells, wie z.B. die Lernrate, die Anzahl der Schichten oder die Regularisierungsparameter. Durch die Bewertung der Modellleistung auf der Validierungsmenge können optimale Hyperparameter ermittelt werden, um die Modelleffizienz und die Genauigkeit zu maximieren.

Zusammengefasst hilft die Validierungsmenge dabei, die Trainingsphasen zu steuern und sicherzustellen, dass das Modell nicht nur auf trainierten, sondern auch auf neuen, ungesehenen Daten gut abschneidet. Dies ist ein kritischer Schritt, um ein robustes und verallgemeinerbares Modell zu entwickeln.

d)

(d) Angenommen, Du verwendest Kreuzvalidierung zur Bewertung der Modellleistung. Diskutiere die Vorgehensweise der K-Fold Kreuzvalidierung und wie sie hilft, Überfitting zu vermeiden. Was wäre ein geeigneter Wert für K, und warum?

Lösung:

(d) Die K-Fold Kreuzvalidierung ist eine wirkungsvolle Methode zur Bewertung der Modellleistung und zur Vermeidung von Überfitting. Hier ist die Vorgehensweise im Detail:

  • Vorgehensweise der K-Fold Kreuzvalidierung:
    • Der Datensatz wird in K gleich große Teile (Folds) aufgeteilt.
    • Das Modell wird K Mal trainiert, wobei jedes Mal ein anderer Fold als Testdaten verwendet wird und die restlichen K-1 Folds als Trainingsdaten genutzt werden.
    • Die Modellleistung wird für jede der K Runden bewertet und am Ende wird der Durchschnitt dieser K Bewertungen berechnet.
  • Wie es hilft, Überfitting zu vermeiden:
    • Durch die Aufteilung des Datensatzes in verschiedene Folds wird sichergestellt, dass das Modell auf unterschiedlichen Teilmengen der Daten trainiert und getestet wird.
    • Dies verringert die Wahrscheinlichkeit, dass sich das Modell zu sehr an eine bestimmte Teilmenge der Daten lehnt, und fördert stattdessen seine Fähigkeit, auf verschiedenen Teilmengen gut zu generalisieren.
    • Die Durchschnittsleistung über alle K Folds bietet eine robustere Einschätzung der Modellleistung auf ungesehenen Daten.
  • Geeigneter Wert für K:
    • Ein üblicher Wert für K ist 10, daher die Bezeichnung 10-Fold Kreuzvalidierung. Dies bietet ein gutes Gleichgewicht zwischen Bias und Varianz.
    • Bei kleinen Datensätzen kann ein größerer Wert für K (wie z.B. 20) verwendet werden, um die Modelle auf möglichst vielen Daten zu trainieren.
    • Bei sehr großen Datensätzen kann ein kleinerer Wert für K (wie z.B. 5) ausreichen, da die Datenvielfalt innerhalb jedes Folds ohnehin hoch ist.

Zusammenfassend bietet die K-Fold Kreuzvalidierung eine umfassende Methode zur Einschätzung der Modellleistung und zur Gewährleistung der Generalisierung auf verschiedene Datenmuster. Ein Wert von K=10 ist oft eine gute Wahl, da er eine ausgewogene Einschätzung der Modellleistung ermöglicht und mit vertretbarem Rechenaufwand einhergeht.

Aufgabe 3)

Kontext: Du arbeitest als Datenanalyst für ein Unternehmen, das große Mengen an Kundeninformationen sammelt. Deine Aufgabe ist es, unbeschriftete Daten zu analysieren, um Muster und Gruppierungen zu identifizieren, die das Marketingteam nutzen kann, um gezieltere Kampagnen zu erstellen. Um dies zu erreichen, musst du Clustering-Algorithmen und Methoden der Dimensionalitätsreduktion anwenden. Gegeben sind dir die Kundendaten in Form eines Datensatzes mit verschiedenen Merkmalen, wie z.B. Alter, Einkommen, Ausgaben, Wohnort etc.

a)

Teilaufgabe 1: Wende das K-means Clustering auf den Datensatz an und bestimme die geeignete Anzahl von Clustern. Beschreibe die Schritte des Algorithmus und die Kriterien zur Bestimmung der Clusteranzahl. Stelle sicher, dass du den durchgeführten Prozess klar erläuterst.

Anweisungen:

  • Führe eine Normalisierung der Daten durch.
  • Initialisiere den K-means Algorithmus mit einer vorgeschlagenen Anzahl von Clustern (k) und erkläre, warum du diesen Wert gewählt hast.
  • Berechne die Clusterzentren und ordne die Datenpunkte zu.
  • Nutze das Elbow-Verfahren oder den Silhouettenkoeffizienten, um die optimale Anzahl der Cluster zu ermitteln.
  • Visualisiere das Endergebnis.
  • Optional: Nutze PCA zur Visualisierung der Cluster in 2 Dimensionen.

Formelsammlung:

  • Zentrenberechnung: \(\textbf{c}_i = \frac{1}{|C_i|} \sum_{\textbf{x}_j \in C_i} \textbf{x}_j \)
  • Elbow-Methode: Betrachte \(W_k = \sum_{i=1}^{k} \sum_{\textbf{x}_j \in C_i} ||\textbf{x}_j - \textbf{c}_i||^2\)

Lösung:

Lösung von Teilaufgabe 1:

  • Schritt 1: Normalisierung der Daten
  • Um die Daten auf eine vergleichbare Skala zu bringen, normalisieren wir sie. Das bedeutet, wir transformieren die Daten so, dass jedes Merkmal einen Mittelwert von 0 und eine Standardabweichung von 1 hat. Dies kann in Python mit der StandardScaler-Funktion aus dem sklearn.preprocessing-Modul durchgeführt werden.

 import pandas as pd from sklearn.preprocessing import StandardScaler daten = pd.read_csv('kundendaten.csv') scaler = StandardScaler() normierte_daten = scaler.fit_transform(daten) 
  • Schritt 2: Initialisiere den K-means Algorithmus
  • Wir initialisieren den K-means Algorithmus und wählen als Startwert z.B. k = 3. Dieser Wert kann basierend auf Vorwissen oder einer ersten Analyse gewählt werden.

     from sklearn.cluster import KMeans k = 3 kmeans = KMeans(n_clusters=k, random_state=42) daten_cluster = kmeans.fit_predict(normierte_daten) 
  • Schritt 3: Berechne die Clusterzentren
  • Die Berechnung der Clusterzentren erfolgt nach folgender Formel:

    zentren = kmeans.cluster_centers_

    \[\textbf{c}_i = \frac{1}{|C_i|} \sum_{\textbf{x}_j \in C_i} \textbf{x}_j \]

    Wir ordnen die Datenpunkte den entsprechenden Clustern zu:

     datenzuordnung = kmeans.labels_ 
  • Schritt 4: Bestimmung der optimalen Anzahl der Cluster
  • Um die optimale Anzahl der Cluster (k) zu bestimmen, können wir das Elbow-Verfahren anwenden. Dabei betrachten wir die Summe der Quadratsummen der Abstände innerhalb der Cluster für verschiedene k-Werte.

     import matplotlib.pyplot as plt ks = range(1, 11) inertias = [] for k in ks:    kmeans = KMeans(n_clusters=k, random_state=42)     kmeans.fit(normierte_daten)     inertias.append(kmeans.inertia_) plt.plot(ks, inertias, '-o') plt.xlabel('Anzahl der Cluster, k') plt.ylabel('Inertia') plt.title('Elbow-Methode') plt.show() 

    Ein Knick im Plot zeigt die optimale Clusteranzahl an.

    Alternativ kann der Silhouettenkoeffizient berechnet werden:

     from sklearn.metrics import silhouette_score silhouetten = [] for k in range(2, 11):     kmeans = KMeans(n_clusters=k, random_state=42)    clusters = kmeans.fit_predict(normierte_daten)    silhouetten.append(silhouette_score(normierte_daten, clusters)) plt.plot(range(2, 11), silhouetten, '-o') plt.xlabel('Anzahl der Cluster, k') plt.ylabel('Silhouettenkoeffizient') plt.title('Silhouetten-Methode') plt.show() 

    Der höchste Silhouettenkoeffizient gibt die optimale Anzahl von Clustern an.

  • Schritt 5: Visualisiere das Endergebnis
  • Um die Cluster zu visualisieren, reduzieren wir die Daten mit PCA (Principal Component Analysis) auf 2 Dimensionen und plotten diese.

     from sklearn.decomposition import PCA pca = PCA(n_components=2) reduzierte_daten = pca.fit_transform(normierte_daten) plt.scatter(reduzierte_daten[:, 0], reduzierte_daten[:, 1], c=daten_cluster) plt.xlabel('PCA 1') plt.ylabel('PCA 2') plt.title('K-means Cluster Visualisierung') plt.show() 

    b)

    Teilaufgabe 2: Vergleiche die Ergebnisse von K-means und Hierarchical Clustering. Diskutiere die Unterschiede und Gemeinsamkeiten der beiden Methoden. Beziehe dich insbesondere auf folgende Aspekte:

    • Kriterien für die Gruppierung von Punkten
    • Rechenaufwand und Skalierbarkeit
    • Möglichkeit zur Identifikation unterschiedlicher Clustergrößen und -formen
    • Stabilität der Ergebnisse
    • Praktische Anwendung auf den gegebenen Datensatz und Interpretierbarkeit der Ergebnisse

    Anweisungen:

    • Implementiere und wende Hierarchical Clustering auf denselben Datensatz an.
    • Erstelle Dendrogramme zur Visualisierung.
    • Gib eine Empfehlung ab, welche der beiden Methoden für diesen spezifischen Anwendungsfall geeigneter ist und warum.

    Lösung:

    Lösung von Teilaufgabe 2:

    • Implementierung und Anwendung von Hierarchical Clustering
    • Beginnen wir mit der Implementierung und Anwendung des hierarchischen Clusterings auf denselben Datensatz. Dabei verwenden wir die scipy.cluster.hierarchy Bibliothek zur Erstellung von Dendrogrammen.

     import pandas as pd from sklearn.preprocessing import StandardScaler from scipy.cluster.hierarchy import linkage, dendrogram import matplotlib.pyplot as plt # Laden und Skalieren der Daten daten = pd.read_csv('kundendaten.csv') scaler = StandardScaler() normierte_daten = scaler.fit_transform(daten) # Hierarchisches Clustering (Agnes-Methode) linked = linkage(normierte_daten, method='ward') # Erstellung des Dendrogramms plt.figure(figsize=(10, 7)) dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True) plt.title('Dendrogramm') plt.show() 

    Das Dendrogramm visualisiert die Hierarchie der Cluster und hilft uns, die Anzahl der Cluster zu bestimmen.

  • Vergleich von K-means und Hierarchical Clustering
  • Nun vergleichen wir die beiden Methoden anhand der vorgegebenen Aspekte:

    • Kriterien für die Gruppierung von Punkten
      • K-means: Basierend auf der Minimierung der Summe der quadratischen Abstände zwischen den Datenpunkten und ihren entsprechenden Clusterzentren.
      • Hierarchical Clustering: Basierend auf einer hierarchischen oder agglomerativen Strategie, bei der die Abstände zwischen den Clustern minimiert werden.
    • Rechenaufwand und Skalierbarkeit
      • K-means: Hat eine Zeitkomplexität von \(O(n \cdot k \cdot t)\), wobei \(n\) die Anzahl der Datenpunkte, \(k\) die Anzahl der Cluster und \(t\) die Anzahl der Iterationen ist. Dies macht es relativ skalierbar.
      • Hierarchical Clustering: Hat eine Zeitkomplexität von \(O(n^3)\), was es unpraktisch für sehr große Datensätze macht.
    • Möglichkeit zur Identifikation unterschiedlicher Clustergrößen und -formen
      • K-means: Funktioniert gut bei kugelförmigen Clustern und ähnlichen Größen.
      • Hierarchical Clustering: Kann Cluster unterschiedlicher Größen und Formen identifizieren, insbesondere wenn keine klare Kluft zwischen den Clustern besteht.
    • Stabilität der Ergebnisse
      • K-means: Kann aufgrund der zufälligen Initialisierung der Clusterzentren variieren. Mehrfache Ausführungen sind notwendig, um stabile Ergebnisse zu gewährleisten.
      • Hierarchical Clustering: Im Allgemeinen stabilere Ergebnisse, da es keine Zufälligkeit bei der Initialisierung gibt.
    • Praktische Anwendung auf den gegebenen Datensatz und Interpretierbarkeit der Ergebnisse
      • K-means: Einfach zu interpretieren, vor allem bei gut getrennten Clustern. Die Clusterzentren können als repräsentative 'Mittelwerte' der jeweiligen Gruppen betrachtet werden.
      • Hierarchical Clustering: Bietet eine detailliertere Sicht der Einkaufsmuster der Kunden, hilfreich bei der Identifikation von Unterclustern, ist jedoch komplexer bei der Interpretation.
  • Empfehlung
  • Für diesen spezifischen Anwendungsfall würde ich K-means empfehlen, da:

    • Es effizienter und skalierbarer für große Datenmengen ist.
    • Die Ergebnisse leichter zu interpretieren und zu kommunizieren sind.
    • Es gut mit der Normalisierung der Daten und den Anforderungen des Marketingsteams harmoniert.

    Hierarchical Clustering kann jedoch als ergänzende Methode verwendet werden, um zusätzliche Muster zu entdecken oder um eine detaillierte Analyse der bestehenden Cluster durchzuführen.

    Aufgabe 4)

    Ein Unternehmen möchte ein Machine-Learning-Modell entwickeln, um die Kundenabwanderung vorherzusagen. Die verfügbaren Daten umfassen zahlreiche Merkmale wie demografische Informationen, Transaktionshistorie, Kundeninteraktionen und vieles mehr. Um die Modellleistung zu optimieren, sollen Techniken zur Merkmalsextraktion und Merkmalsauswahl angewendet werden.

    a)

    Erkläre den Unterschied zwischen Merkmalsextraktion und Merkmalsauswahl. Nenne jeweils ein Beispiel für eine Technik aus beiden Bereichen und erläutere, wie sie in diesem Kontext angewendet werden könnten.

    Lösung:

    Unterschied zwischen Merkmalsextraktion und Merkmalsauswahl

    • Merkmalsextraktion: Bei der Merkmalsextraktion werden neue Merkmale aus den vorhandenen Daten generiert. Dabei werden die ursprünglichen Merkmale transformiert oder kombiniert, um informativere und relevantere Eigenschaften zu erhalten. Dies kann dazu beitragen, die Leistung des Machine-Learning-Modells zu verbessern, indem es aussagekräftigere und komprimierte Merkmalsräume schafft.
    • Merkmalsauswahl: Bei der Merkmalsauswahl werden aus den vorhandenen Merkmalen diejenigen ausgewählt, die für das Modell am wichtigsten sind. Ziel ist es, irrelevante oder redundante Merkmale zu entfernen, um die Modellkomplexität zu reduzieren und Überanpassung zu verhindern. Merkmalsauswahl hilft auch dabei, die Interpretierbarkeit des Modells zu erhöhen.

    Beispieltechniken und Anwendung im Kontext der Kundenabwanderung

    • Merkmalsextraktion: Eine gängige Technik der Merkmalsextraktion ist die Hauptkomponentenanalyse (PCA). PCA reduziert die Dimension des Datenraums, indem es die wichtigsten Komponenten identifiziert und die Merkmale entlang dieser Komponenten projiziert. Im Kontext der Kundenabwanderung könnten demografische Daten, Transaktionshistorie und Kundeninteraktionen in mehrere Komponenten transformiert werden, die die Varianz in den Daten maximieren. Dies kann dazu beitragen, einen kompakteren und dennoch informativen Merkmalsraum zu schaffen.
    • Merkmalsauswahl: Eine bekannte Technik der Merkmalsauswahl ist der Chi-Quadrat-Test. Dieser Test bewertet die Abhängigkeit zwischen jedem Merkmal und der Zielvariable (in diesem Fall die Kundenabwanderung). Merkmale, die eine signifikante Abhängigkeit zur Zielvariable zeigen, werden beibehalten, während weniger relevante Merkmale entfernt werden. Im Kontext der Kundenabwanderung kann der Chi-Quadrat-Test helfen, jene demografischen Informationen und Transaktionsmuster zu identifizieren, die am stärksten mit der Wahrscheinlichkeit der Abwanderung korrelieren.

    b)

    Das Unternehmen entscheidet sich für eine PCA (Principal Component Analysis), um die Dimensionalität der Rohdaten zu reduzieren. Beschreibe den PCA-Prozess und erkläre mathematisch, wie die Hauptkomponenten berechnet werden. Zeige an einem fiktiven Beispiel mit drei Merkmalen (A, B, C), wie dieser Prozess aussehen würde.

    Lösung:

    PCA-Prozess (Principal Component Analysis)

    • Schritt 1: Zentrierung der Daten Die Datenmatrix wird so transformiert, dass jedes Merkmal einen Mittelwert von null hat. Dies bedeutet, dass wir von jedem Wert den Mittelwert des jeweiligen Merkmals abziehen:
     C = X - \bar{X} 
    • Schritt 2: Berechnung der Kovarianzmatrix Wir berechnen die Kovarianzmatrix der zentrierten Daten. Die Kovarianzmatrix gibt die Kovarianzen zwischen den Merkmalen an:
     \text{Kov} = \frac{1}{n-1} C^T C 
    • Schritt 3: Berechnung der Eigenvektoren und Eigenwerte Die Eigenvektoren und entsprechenden Eigenwerte der Kovarianzmatrix werden berechnet. Eigenvektoren zeigen die Richtung der Hauptkomponenten und Eigenwerte die Varianz, die jede Hauptkomponente erklärt:
     \text{Kov} \textbf{v}_i = \textbf{v}_i \boldsymbol{\lambda}_i 
    • Schritt 4: Auswahl der Hauptkomponenten Die Hauptkomponenten werden nach abnehmender Reihenfolge der Eigenwerte sortiert. Die Hauptkomponenten mit den höchsten Eigenwerten erklären die meiste Varianz in den Daten. Üblicherweise wird ein Schwellenwert oder eine bestimmte Anzahl von Komponenten gewählt, um die Dimension zu reduzieren.
    • Schritt 5: Projektion der Daten Die ursprünglichen Daten werden auf die neuen Hauptkomponenten projiziert, was eine Reduktion der Dimensionierung ergibt:
     Z = X \boldsymbol{V} 

    Fiktives Beispiel mit drei Merkmalen (A, B, C)

    Angenommen, wir haben eine Datenmatrix X mit drei Merkmalen A, B und C und drei Datenpunkten:

     X = \begin{pmatrix} 2 & 0 & 4 \ 1 & -1 & 3 \ 0 & 2 & 1 \end{pmatrix} 
    • Schritt 1: Zentrierung der Daten
     \bar{X} = \begin{pmatrix} 1 \ 0.33 \ 2.67 \end{pmatrix} 
     X_{zentralisiert} = X - \bar{X} = \begin{pmatrix} 2-1 & 0-0.33 & 4-2.67 \ 1-1 & -1-0.33 & 3-2.67 \ 0-1 & 2-0.33 & 1-2.67 \end{pmatrix} = \begin{pmatrix} 1 & -0.33 & 1.33 \ 0 & -1.33 & 0.33 \ -1 & 1.67 & -1.67 \end{pmatrix} 
    • Schritt 2: Berechnung der Kovarianzmatrix
     \text{Kov} = \frac{1}{n-1} X_{zentralisiert}^T X_{zentralisiert} 
     \text{Kov} = \frac{1}{2} \begin{pmatrix} 1 & 0 & -1 \ -0.33 & -1.33 & 1.67 \ 1.33 & 0.33 & -1.67 \end{pmatrix} \begin{pmatrix} 1 & -0.33 & 1.33 \ 0 & -1.33 & 0.33 \ -1 & 1.67 & -1.67 \end{pmatrix} = \begin{pmatrix} 1 & -0.33 & -1.33 \ -0.33 & 1.86 & -0.53 \ -1.33 & -0.53 & 3.01 \end{pmatrix} 
    • Schritt 3: Berechnung der Eigenvektoren und Eigenwerte
     \text{Kov} \textbf{v}_i = \textbf{v}_i \boldsymbol{\lambda}_i 

    Angenommen, wir berechnen die Eigenvektoren und Eigenwerte der Kovarianzmatrix und erhalten:

     \boldsymbol{V} = \begin{pmatrix} 0.5 & 0.7 & -0.5 \ -0.3 & 0.1 & 0.94 \ 0.8 & -0.7 & 0.1 \end{pmatrix} 
     \boldsymbol{\lambda} = \begin{pmatrix} 2.91 & 1.12 & 0.84 \end{pmatrix} 
    • Schritt 4: Auswahl der Hauptkomponenten

    Wir wählen die ersten zwei Hauptkomponenten, da sie die meiste Varianz erklären (Eigenwerte: 2.91 und 1.12).

    • Schritt 5: Projektion der Daten
     Z = X \boldsymbol{V} = \begin{pmatrix} 2 & 0 & 4 \ 1 & -1 & 3 \ 0 & 2 & 1 \end{pmatrix} \begin{pmatrix} 0.5 & 0.7 \ -0.3 & 0.1 \ 0.8 & -0.7 \end{pmatrix} = \begin{pmatrix} 2.1 & -2.5 \ 0.4 & -2.0 \ -0.6 & 1.7 \end{pmatrix} 

    Die resultierenden Daten sind jetzt auf zwei Dimensionen reduziert, was die Rechenleistung und Interpretierbarkeit für das Machine-Learning-Modell verbessert.

    c)

    Ein weiterer Ansatz zur Merkmalsreduktion ist die Verwendung von Wrappermethoden. Erläutere den Unterschied zwischen Forward Selection und Backward Elimination. Diskutiere die Vor- und Nachteile beider Methoden in Bezug auf Performance und Rechenaufwand.

    Lösung:

    Unterschied zwischen Forward Selection und Backward Elimination

    • Forward Selection (Vorwärtsselektion): Diese Methode beginnt mit einem leeren Modell und fügt nach und nach Merkmale hinzu. Der Algorithmus wählt bei jedem Schritt das Merkmal aus, das die größte Verbesserung der Modellleistung bewirkt. Dieser Prozess wird fortgesetzt, bis keine signifikanten Verbesserungen mehr erzielt werden können.
    • Backward Elimination (Rückwärtselimination): Diese Methode beginnt mit einem Modell, das alle verfügbaren Merkmale enthält. Bei jedem Schritt wird das Merkmal entfernt, das die geringste Auswirkung auf die Modellleistung hat. Der Prozess wird fortgesetzt, bis weitere Merkmalsentfernungen die Modellleistung signifikant verschlechtern.

    Vor- und Nachteile beider Methoden

    • Forward Selection:
      • Vorteile:
        • Effizient bei Datensätzen mit vielen irrelevanten Merkmalen, da unnötige Merkmale von Anfang an weggelassen werden.
        • Führt oft zu einem sparsamen Modell mit besserer Interpretierbarkeit.
      • Nachteile:
        • Kann bei Datensätzen mit stark korrelierten Merkmalen ineffizient sein, da es schwierig ist, die Bedeutung einzelner Merkmale zu isolieren.
        • Der iterative Hinzufügungsprozess kann zeitaufwendig sein, besonders bei einer großen Anzahl von Merkmalen.
    • Backward Elimination:
      • Vorteile:
        • Bietet eine umfassendere Betrachtung der Merkmale, da alle Merkmale zu Beginn eingeschlossen sind und dann systematisch entfernt werden.
        • Nützlich, wenn viele Merkmale anfangs relevant erscheinen und potenziell wichtig sind, da keine relevanten Merkmale übersehen werden.
      • Nachteile:
        • Kann rechnerisch intensiv und zeitaufwendig sein, besonders bei großen Datensätzen, da das gesamte Modell mit allen Merkmalen zu Beginn erstellt wird.
        • Kann zu Overfitting führen, da es dazu neigt, zunächst mit einem sehr komplexen Modell zu arbeiten.

    d)

    Das Unternehmen erwägt den Einsatz von LASSO (Least Absolute Shrinkage and Selection Operator) für die Kundendatenanalyse. Erkläre, wie LASSO funktioniert und wie es zur Merkmalsauswahl beiträgt. Zeige mathematisch, wie der LASSO-Schätzer durch Minimierung der L1-norm bestimmt wird und diskutiere den Einfluss des Regularisierungsparameters.

    Lösung:

    Funktionsweise von LASSO (Least Absolute Shrinkage and Selection Operator)

    LASSO ist eine Regularisierungstechnik, die bei der linearen Regression eingesetzt wird, um die Modellkomplexität zu verringern und die Auswahl der relevanten Merkmale zu automatisieren. Der Hauptunterschied zu anderen Regressionsmethoden besteht darin, dass LASSO eine L1-Normen-Regularisierung (auch bekannt als Lasso-Regularisierung) hinzufügt, die die Koeffizienten der weniger wichtigen Merkmale auf genau Null setzen kann. Dadurch wird eine Auswahl der wichtigsten Merkmale erreicht.

    Mathematische Darstellung des LASSO-Schätzers

    Die Kostenfunktion für eine lineare Regression ohne Regularisierung lautet:

     J(\beta) = \frac{1}{2n} \sum_{i=1}^{n} (y_i - \beta_0 - \sum_{j=1}^{p} \beta_j x_{ij})^2 

    Hierbei steht \( y_i \) für die Zielvariable, \( x_{ij} \) für die Merkmale und \( \beta_j \) für die geschätzten Koeffizienten. Die LASSO-Regressionskostenfunktion fügt der obigen Gleichung eine L1-Norm-Strafterm hinzu:

     J(\beta) = \frac{1}{2n} \sum_{i=1}^{n} (y_i - \beta_0 - \sum_{j=1}^{p} \beta_j x_{ij})^2 + \lambda \sum_{j=1}^{p} | \beta_j | 

    Hierbei ist \( \lambda \) der Regularisierungsparameter, der die Stärke der Regularisierung steuert.

    Einfluss des Regularisierungsparameters \( \lambda \)

    • Niedrige \(\lambda\)-Werte: Bei niedrigen \(\lambda\)-Werten ist der Strafterm klein, und die LASSO-Regressionsfunktion nähert sich der gewöhnlichen linearen Regression an. Dies führt zu einem Modell mit vielen Merkmalen.
    • Hohe \(\lambda\)-Werte: Bei hohen \(\lambda\)-Werten wird der Strafterm stärker, und viele Koeffizienten \(\beta_j\) werden auf genau Null gesetzt. Dies führt zu einem sparsamen Modell mit weniger, aber relevanteren Merkmalen.

    LASSO in der Kundenabwanderungsanalyse

    Für die Analyse der Kundenabwanderung könnte das Unternehmen LASSO verwenden, um aus den zahlreichen verfügbaren Merkmalen (demografische Informationen, Transaktionshistorie, Kundeninteraktionen usw.) diejenigen auszuwählen, die am meisten zur Erklärung der Abwanderung beitragen. Durch die Einführung des Regularisierungsparameters \(\lambda\) kann LASSO eine übermäßige Komplexität des Modells vermeiden und die Prognosegenauigkeit verbessern.

    Zusammengefasst hilft LASSO dabei:

    • Relevante Merkmale automatisch auszuwählen.
    • Unwichtige Merkmale zu eliminieren, indem ihre Koeffizienten auf Null gesetzt werden.
    • Overfitting zu reduzieren und die Generalisierungsfähigkeit des Modells zu verbessern.
    Sign Up

    Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

    Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

    Kostenloses Konto erstellen

    Du hast bereits ein Konto? Anmelden