Knowledge Discovery in Databases mit Übung - Exam
Aufgabe 1)
Du arbeitest in einem Unternehmen, das sich auf die Analyse großer Datenmengen spezialisiert hat. Deine Aufgabe ist es, den Data-Mining-Prozess zu verfeinern und die Anwendungsbereiche besser zu verstehen. Basierend auf dem folgenden Szenario: Das Unternehmen erhält Rohdaten, darunter Kaufverhalten von Kunden, Transaktionsprotokolle und Nutzungsdaten einer Mobilanwendung, um betrügerische Aktivitäten zu identifizieren und personalisierte Marketingkampagnen zu entwickeln.
a)
Beschreibe die Schritte des Data-Mining-Prozesses für dieses Szenario. Gehe dabei auf die Datenaufbereitung, Modellbildung und Evaluation ein. Was sind die Herausforderungen und welche Techniken können verwendet werden?
Lösung:
Schritte des Data-Mining-Prozesses für das gegebene Szenario:
- DatenaufbereitungDie Datenaufbereitung ist ein kritischer Schritt, in dem die Rohdaten in ein Format umgewandelt werden, das für die Analyse geeignet ist. Dazu gehören:
- Datenerfassung: Sammeln der Kaufverhalten-Daten, Transaktionsprotokolle und Nutzungsdaten der Mobilanwendung.
- Datenbereinigung: Entfernen von Duplikaten, Umgang mit fehlenden Werten und Korrektur von Inkonsistenzen.
- Datenintegration: Kombinieren der verschiedenen Datenquellen zu einem einheitlichen Datensatz.
- Feature-Auswahl und -Engineering: Identifikation und Erstellung relevanter Merkmale, die für die Modellbildung nützlich sind.
- ModellbildungIn der Modellbildungsphase werden statistische und maschinelle Lernmodelle entwickelt, um Muster in den Daten zu erkennen. Die Schritte sind:
- Auswahl des Modells: Abhängig von der Art der Aufgabe (Betrugserkennung, Personalisierung von Marketingkampagnen), Auswahl geeigneter Algorithmen wie Entscheidungsbäume, Random Forests, Support Vector Machines oder neuronale Netzwerke.
- Training des Modells: Verwendung eines Teils der Daten (Trainingsdatensatz) zum Trainieren des Modells.
- Hyperparameter-Optimierung: Anpassen der Modellparameter, um die bestmögliche Leistung zu erzielen.
- Modellvalidierung: Verwendung eines unabhängigen Validierungsdatensatzes zur Beurteilung der Modellleistung und Überprüfung auf Überanpassung.
- EvaluationDie Evaluation misst die Leistung des Modells und prüft, ob es den Anforderungen entspricht. Dazu gehören:
- Modellevaluation: Bewertung der Modellleistung anhand von Metriken wie Genauigkeit, Präzision, Recall, F1-Score und ROC-AUC.
- Modellvergleich: Vergleich verschiedener Modelle und Auswahl des besten Modells für die Implementierung.
- Cross-Validation: Verwendung von Methoden wie k-facher Kreuzvalidierung, um die Verlässlichkeit der Modellergebnisse zu gewährleisten.
- Feinabstimmung: Letzte Anpassungen am Modell basierend auf den Evaluationsergebnissen.
Herausforderungen:- Datensilos: Unterschiedliche Datenquellen und -formate können die Integration erschweren.
- Qualität der Daten: Daten können unvollständig, ungenau oder verrauscht sein.
- Skalierung: Große Datenmengen erfordern effiziente Speicher- und Verarbeitungsmethoden.
- Modellüberanpassung: Gefahr, dass das Modell zu stark an das Training angepasst ist und nicht gut auf neue Daten generalisiert.
- Interpretierbarkeit: Komplexe Modelle können schwer zu interpretieren sein, was die Akzeptanz erschweren kann.
Techniken zur Bewältigung der Herausforderungen:- ETL-Prozesse: Verwendung von Extraktions-, Transformations- und Ladeprozessen, um Datensilos zu überwinden und qualitativ hochwertige Daten zu gewährleisten.
- Datenanreicherung: Ergänzen unvollständiger Datensätze durch externe Quellen oder Inferenzen.
- Skalierbare Architektur: Einsatz von verteilten Systemen und Cloud-Computing zur effizienten Datenverarbeitung.
- Regularisierung: Techniken wie L1- und L2-Regularisierung zur Vermeidung von Überanpassung.
- Erklärbare KI: Nutzung von Modellen, die gut interpretierbar sind, oder Methoden zur Erklärbarkeit von Modellentscheidungen (z. B. LIME, SHAP).
b)
Klassifikation: Angenommen, Du hast historische Transaktionsdaten, basierend auf denen Du ein Modell zur Betrugserkennung entwickeln möchtest.
- Erkläre, wie Du ein Klassifikationsmodell aufbauen würdest.
- Welche Merkmale würdest Du berücksichtigen und warum?
- Wie würdest Du die Leistung Deines Modells bewerten?
Lösung:
Klassifikation zur Betrugserkennung:
- Aufbau eines Klassifikationsmodells:Um ein Klassifikationsmodell zur Betrugserkennung zu entwickeln, würde ich die folgenden Schritte ausführen:
- Datenaufbereitung:
- Datensammlung: Erfassen der historischen Transaktionsdaten einschließlich Kennzeichnungen, ob eine Transaktion betrügerisch war oder nicht.
- Datenbereinigung: Entfernen von Unstimmigkeiten in den Daten, Umgang mit fehlenden Werten und Sicherstellen der Datenqualität.
- Datenformatierung: Umwandeln der Daten in ein geeignetes Format für maschinelles Lernen.
- Feature-Engineering: Erstellen und Auswahl relevanter Merkmale (Features), die bei der Erkennung betrügerischer Transaktionen hilfreich sind.
- Modellwahl und -training:
- Auswahl des Modells: Wählen eines geeigneten Klassifikationsalgorithmus wie Entscheidungsbäume, Random Forests, Gradient Boosting Machines oder neuronale Netze.
- Training: Aufteilen der Daten in Trainings- und Testdatensätze. Trainieren des Modells mit dem Trainingsdatensatz.
- Hyperparameter-Optimierung: Feinabstimmung der Modellparameter, um die bestmögliche Leistung zu erzielen.
- Evaluation:
- Modellbewertung: Testen und Evaluieren des Modells mit einem separaten Testdatensatz. Verwendung von Metriken wie Genauigkeit, Präzision, Recall, F1-Score und ROC-AUC, um die Leistung des Modells zu messen.
- Cross-Validation: Anwenden von Techniken wie k-facher Kreuzvalidierung zur Sicherstellung der Modellverlässlichkeit und Vermeidung von Überanpassung (Overfitting).
- Berücksichtigung von Merkmalen:Die folgenden Merkmale könnten für die Betrugserkennung nützlich sein:
- Transaktionsbetrag: Große oder unübliche Transaktionsbeträge können auf Betrug hinweisen.
- Transaktionszeitpunkt: Transaktionen zu ungewöhnlichen Tageszeiten können verdächtig sein.
- Standort des Käufers: Abweichungen vom üblichen Standort des Käufers können ein Hinweis auf Betrug sein.
- Geräteinformationen: Informationen über das Gerät, das für die Transaktion verwendet wurde.
- Kaufmuster: Historische Kaufmuster und Anomalien im Verhalten.
- Zahlungsmethode: Verwendung unbekannter oder ungewöhnlicher Zahlungsmethoden.
- Häufigkeit der Transaktionen: Ungewöhnlich hohe Frequenz von Transaktionen innerhalb kurzer Zeiträume.
- Bewertung der Modellleistung:Um die Leistung des Klassifikationsmodells zur Betrugserkennung zu bewerten, würde ich die folgenden Metriken verwenden:
- Genauigkeit (Accuracy): Der Anteil der korrekt klassifizierten Transaktionen (betrügerisch und nicht betrügerisch).
- Präzision (Precision): Der Anteil der tatsächlich betrügerischen Transaktionen unter den als betrügerisch klassifizierten Transaktionen.
- Recall: Der Anteil der korrekt identifizierten betrügerischen Transaktionen unter allen tatsächlichen betrügerischen Transaktionen.
- F1-Score: Der harmonische Mittelwert von Präzision und Recall, der ein ausgewogenes Maß der Modellleistung bietet.
- ROC-AUC (Receiver Operating Characteristic - Area Under Curve): Eine Metrik, die die Unterscheidungskraft des Modells misst und ein allgemeines Bild der Leistung bei verschiedenen Diskriminierungsschwellenwerten bietet.
- Konfusionsmatrix: Eine Tabelle, die die tatsächlichen gegenüber den vorhergesagten Klassifikationen darstellt und Einblick in die Art der Fehler gibt.
c)
Clustering: Um personalisierte Marketingkampagnen zu entwickeln, möchtest Du Kunden basierend auf ihrem Kaufverhalten segmentieren.
- Beschreibe den Einsatz von Clustering-Methoden zur Segmentierung der Kunden.
- Welche Algorithmen wären geeignet und warum?
- Wie würdest Du die Qualität der Cluster bewerten?
Lösung:
Clustering zur Kundensegmentierung:
- Einsatz von Clustering-Methoden zur Segmentierung der Kunden:Clustering-Methoden werden verwendet, um Kunden basierend auf ihrem Kaufverhalten in verschiedene Segmente zu gruppieren. Dies ermöglicht das Erkennen von Mustern und Ähnlichkeiten innerhalb der Daten, die zur Entwicklung personalisierter Marketingkampagnen genutzt werden können. Der Einsatz von Clustering bei der Kundensegmentierung umfasst folgende Schritte:
- Datenaufbereitung:
- Datensammlung: Erfassen der Daten über das Kaufverhalten der Kunden.
- Datenbereinigung: Entfernen von Unstimmigkeiten und Umgang mit fehlenden Werten.
- Feature-Engineering: Erstellung und Auswahl relevanter Merkmale, wie Anzahl der Käufe, durchschnittlicher Kaufbetrag, Kaufhäufigkeit, etc.
- Skalierung der Daten: Normalisierung oder Standardisierung der Daten, um die Auswirkungen unterschiedlicher Skalierungen der Merkmale zu minimieren.
- Clustering-Algorithmus auswählen: Wählen eines geeigneten Algorithmus zur Segmentierung der Kunden.
- Durchführung des Clustering: Anwenden des gewählten Clustering-Algorithmus auf die vorbereiteten Daten.
- Analyse der Cluster: Interpretieren und Analyisieren der resultierenden Cluster, um die Segmente zu verstehen und personalisierte Marketingstrategien abzuleiten.
- Geeignete Algorithmen und Gründe:Es gibt mehrere Clustering-Algorithmen, die für die Kundensegmentierung geeignet sind. Einige der am häufigsten verwendeten sind:
- K-Means Clustering:
- Vorteile: Einfach zu implementieren, effizient in Bezug auf Rechenzeit, gut für große Datensätze.
- Nachteile: Empfindlich gegenüber Ausreißern, erfordert die Angabe der Anzahl der Cluster im Voraus.
- Hierarchisches Clustering:
- Vorteile: Keine Notwendigkeit, die Anzahl der Cluster im Voraus zu spezifizieren, flexible Dendrogramme zur Darstellung der Clusterhierarchie.
- Nachteile: Kann rechnerisch intensiv sein, insbesondere bei großen Datensätzen.
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise):
- Vorteile: Kann Cluster beliebiger Form erkennen, robust gegenüber Ausreißern, keine Notwendigkeit, die Anzahl der Cluster im Voraus zu spezifizieren.
- Nachteile: Wahl geeigneter Parameter (z.B. Epsilon und MinPts) kann schwierig sein, weniger effizient bei sehr großen Datensätzen.
- Gaussian Mixture Models (GMM):
- Vorteile: Flexibilität, Cluster als Überlagerung von vielen Normalverteilungen darzustellen, gut geeignet für komplexe Clusterstrukturen.
- Nachteile: Kann rechnerisch aufwändig sein, erfordert die Angabe der Anzahl der Cluster im Voraus.
- Qualität der Cluster bewerten:Es gibt verschiedene Metriken und Methoden, um die Qualität der gefundenen Cluster zu bewerten:
- Silhouette-Koeffizient: Misst die Kohäsion und Trennung der Cluster. Werte reichen von -1 bis 1, wobei höhere Werte auf besser definierte Cluster hinweisen.
- Davies-Bouldin-Index: Misst das Verhältnis der Summe der Clusterabstände zur Clusterweite. Kleinere Werte deuten auf bessere Cluster hin.
- Calinski-Harabasz-Index (Variance Ratio Criterion): Misst das Verhältnis der Erklärung der Varianz zwischen den Clustern zur Varianz innerhalb der Cluster. Höhere Werte zeigen eine bessere Clustering-Performance an.
- Elbow-Methode: Eine graphische Methode zur Bestimmung der optimalen Anzahl von Clustern, indem die Summe der quadratischen Abweichungen innerhalb der Cluster gegen die Anzahl der Cluster geplottet wird.
- Visuelle Inspektion: Plotten der Clusterergebnisse zur visuellen Untersuchung und Bewertung der Trennung und Kompaktheit der Cluster (z.B. mit PCA zur Reduktion auf 2D- oder 3D-Darstellungen).
Aufgabe 2)
Datenvorverarbeitung und -bereinigungIm KDD-Prozess (Knowledge Discovery in Databases) sind die Schritte zur Sicherstellung der Datenqualität, Verbesserung der Datenkonsistenz und Reduzierung von Rauschen von zentraler Bedeutung. Diese Schritte umfassen:
- Datenbereinigung: Entfernen oder Korrigieren fehlerhafter Daten
- Datenintegration: Kombinieren von Daten aus verschiedenen Quellen
- Feature-Engineering: Erstellen neuer Merkmale aus bestehenden Daten
- Normalisierung: Transformation von Daten zu einem einheitlichen Maßstab
- Datenreduktion: Verringern der Datenmenge durch Techniken wie PCA
a)
Teilaufgabe 1: Ein Unternehmen analysiert Kundendaten aus verschiedenen Quellen, darunter Online-Bestellungen, Kundenservice-Anfragen und Marketing-Umfragen. Im Zuge der Datenvorverarbeitung stellt sich heraus, dass es viele fehlende Werte bei den Geburtsdaten der Kunden gibt. Der Analyst beschließt, für die Datenbereinigung verschiedene Techniken anzuwenden.Verwende die unten angegebenen Schritte und beschreibe detailliert, wie Du die fehlenden Werte im Feld der Geburtsdaten bereinigen würdest. Diskutiere Vor- und Nachteile der gewählten Techniken.
- Durchschnittswert (Mean) einfügen
- Medianwert einfügen
- Mit Hilfe eines prädiktiven Modells (Regression) berechnen
- Ausreißer entfernen, gefolgt von einer Ersetzungsstrategie aus den oben genannten Optionen
Lösung:
Teilaufgabe 1: Um die fehlenden Werte im Feld der Geburtsdaten der Kunden zu bereinigen, könnte man verschiedene Techniken anwenden. Ich werde die Vor- und Nachteile jeder Methode detailliert beschreiben.
- Durchschnittswert (Mean) einfügen:Diese Methode ersetzt fehlende Werte durch den Durchschnitt der vorhandenen Geburtsdaten.Vorteile:
- Einfache und schnelle Implementierung
- Reduziert Bias in der Datensatzgröße
Nachteile:- Kann die Varianz der Daten reduzieren
- Anfällig für Ausreißer, was zu ungenauen Ergebnissen führen kann
- Medianwert einfügen:Diese Methode ersetzt fehlende Werte durch den Median der vorhandenen Geburtsdaten.Vorteile:
- Robust gegenüber Ausreißern
- Erhält die Verteilung der Daten besser im Vergleich zum Durchschnitt
Nachteile:- Kann arbeitsaufwendiger sein, wenn der Datensatz groß ist
- Könnte Schwierigkeiten bei einer stark asymmetrischen Datenverteilung haben
- Mit Hilfe eines prädiktiven Modells (Regression) berechnen:Diese Methode verwendet ein prädiktives Modell, wie z.B. lineare Regression, um die fehlenden Geburtsdaten vorherzusagen.Vorteile:
- Kann sehr genaue Vorhersagen liefern, wenn das Modell gut trainiert ist
- Berücksichtigt mehrere Merkmale und deren Wechselwirkungen
Nachteile:- Erfordert umfangreiche Rechenkapazität und Zeit für das Training des Modells
- Komplexer zu implementieren als einfache statistische Methoden
- Ausreißer entfernen, gefolgt von einer Ersetzungsstrategie aus den oben genannten Optionen:Bei dieser Methode werden zuerst die Ausreißer entfernt, und dann werden die fehlenden Werte mit einer der vorherigen Methoden ersetzt.Vorteile:
- Verbessert die Genauigkeit der Ersetzungsmethode durch Beseitigung von extremen Werten
- Kann zu einer realistischeren Ersetzung führen
Nachteile:- Entfernung von Ausreißern könnte zu Informationsverlust führen
- Komplexität durch den zusätzlichen Schritt der Ausreißerbeseitigung
Insgesamt ist die Wahl der Methode abhängig von der spezifischen Situation und den vorhandenen Ressourcen. Eine Kombination aus Ausreißerentfernung und einer zuverlässigen Ersetzungsmethode wie der Medianwert könnte jedoch eine gute Balance zwischen Genauigkeit und Einfachheit bieten.
b)
Teilaufgabe 2: Nach der Bereinigung der Geburtsdaten sollen die Daten aus den verschiedenen Quellen integriert werden. Beschreibe den Prozess der Datenintegration im Kontext dieses Beispiels. Erkläre die potenziellen Herausforderungen, die bei der Integration von Daten aus unterschiedlichen Quellen auftreten können, und wie Du diesen Herausforderungen begegnen würdest.Berücksichtige folgende Aspekte:
- Schema-Matching: Wie würdest Du sicherstellen, dass die Felder aus verschiedenen Datenquellen korrekt aufeinander abgestimmt sind?
- Datenkonsistenz: Welche Strategien zur Erkennung und Bereinigung von Inkonsistenzen zwischen den Datenquellen würdest Du anwenden?
- Datenformate: Welche Probleme können bei der Kombination von Daten im unterschiedlichen Formaten auftreten und wie könntest Du diese lösen?
Lösung:
Teilaufgabe 2: Der Prozess der Datenintegration umfasst die Zusammenführung von Daten aus verschiedenen Quellen, in diesem Fall Online-Bestellungen, Kundenservice-Anfragen und Marketing-Umfragen. Dies kann eine anspruchsvolle Aufgabe sein, daher werden detaillierte Schritte und entsprechende Herausforderungen im Folgenden beschrieben:
- Schema-Matching:Das Ziel beim Schema-Matching ist es, sicherzustellen, dass die Felder aus den verschiedenen Datenquellen korrekt aufeinander abgestimmt sind.Vorgehensweise:
- Erstellen eines integrierten Datenmodells, das die Feldnamen und -typen der einzelnen Quellen berücksichtigt.
- Verwendung von Mapping-Tools, um die Felder zwischen den Quellen zuordnen (z.B. Kundennummer, Geburtsdatum, Bestelldatum).
- Manuelle Überprüfung durch Fachleute, um sicherzustellen, dass die Zuordnungen korrekt sind.
- Automatisierte Schema-Matching-Algorithmen verwenden, um potenzielle Zuordnungen vorzuschlagen und diese anschließend zu überprüfen.
Herausforderungen:- Unterschiedliche Bezeichnungen und Formate der Felder in verschiedenen Quellen.
- Verschiedene Granularität und Detailtiefe der Daten.
Lösung:- Standardisierung der Feldnamen und -formate vor der Integration.
- Detaillierte Dokumentation der Datenstruktur und der Feldzuordnungen.
- Datenkonsistenz:Erkennung und Bereinigung von Inkonsistenzen zwischen den Datenquellen ist entscheidend für die Datenqualität.Vorgehensweise:
- Durchführung von Plausibilitätsprüfungen, um Inkonsistenzen zu identifizieren (z.B. Überprüfen, ob das Geburtsdatum in allen Quellen übereinstimmt).
- Verwendung von Datendeduplizierungstechniken, um doppelte Datensätze zu identifizieren und zusammenzuführen.
- Aufbau von Regelwerken zur Priorisierung von Datenquellen, falls widersprüchliche Informationen vorliegen (z.B. Priorisierung der neuesten Datenquelle).
Herausforderungen:- Unterschiedliche Aktualisierungszeitpunkte der Datensätze.
- Verschiedene Methoden zur Datenerfassung können zu divergierenden Informationen führen.
Lösung:- Etablierung eines konsistenten Aktualisierungsmechanismus.
- Einführung einer zentralen Bewertungsmethode, um die Zuverlässigkeit der verschiedenen Quellen zu bewerten.
- Datenformate:Beim Kombinieren von Daten in unterschiedlichen Formaten können verschiedene Probleme auftreten.Vorgehensweise:
- Konvertierung aller Daten in ein einheitliches Format vor der Integration (z.B. Konvertierung aller Datumsangaben in ein ISO-Format).
- Verwendung von ETL-Tools (Extract, Transform, Load), um Datenformate zu normalisieren.
Herausforderungen:- Unterschiedliche Codierungen und Zeichensätze.
- Verschiedene Maßeinheiten und Währungseinheiten.
Lösung:- Verwendung von Standardkonvertierungstabellen und -algorithmen, um die Daten entsprechend zu normalisieren.
- Etablierung eines zentralen Repositorys für Conversion-Regeln und Einheiten, das von allen Quellen genutzt wird.
Um eine erfolgreiche Datenintegration zu gewährleisten, ist es wichtig, sowohl technische als auch organisatorische Aspekte zu berücksichtigen. Durch den Einsatz geeigneter Methoden und Werkzeuge sowie klar definierter Prozesse kann die Integration von Daten aus unterschiedlichen Quellen effektiv und konsistent erfolgen.
Aufgabe 3)
Angenommen, Du arbeitest an einem Projekt zur Entwicklung eines Klassifikationsmodells zur Erkennung von Spam-E-Mails. Du hast einen Datensatz mit E-Mail-Texten und einer binären Klasse (Spam, Nicht-Spam) und planst, verschiedene Klassifikationsalgorithmen zu verwenden sowie deren Leistung zu bewerten.
a)
Erkläre den Unterschied zwischen supervised learning und unsupervised learning. Warum ist für dieses Problem supervised learning geeignet?
Lösung:
Unterschied zwischen supervised learning und unsupervised learning:
- Supervised Learning (Überwachtes Lernen): Bei supervised learning werden die Modelle anhand eines Trainingsdatensatzes trainiert, der sowohl Eingabedaten als auch die entsprechenden Ausgabewerte (Labels) enthält. Das Ziel ist es, eine Funktion zu finden, die die Eingabedaten korrekt auf die entsprechenden Ausgabewerte abbildet. Beispiele sind Klassifikationsprobleme (wie Spam vs. Nicht-Spam) und Regressionsprobleme.
- Unsupervised Learning (Unüberwachtes Lernen): Im Gegensatz dazu hat unsupervised learning keine gelabelten Ausgabewerte. Stattdessen versucht das Modell, Muster und Strukturen in den Eingabedaten zu finden. Beispiele hierfür sind Clusterbildung und Dimensionsreduktion.
Warum supervised learning für dieses Problem geeignet ist:
- In Deinem Projekt zur Erkennung von Spam-E-Mails hast Du einen Datensatz mit Texten und einer binären Klasse (Spam, Nicht-Spam). Dieser Datensatz enthält also bereits die richtigen Labels für jedes Beispiel.
- Supervised learning verwendet diese gelabelten Daten, um ein Modell zu trainieren, das zwischen Spam und Nicht-Spam unterscheiden kann. Da die Labels die Information enthalten, welche E-Mails Spam sind und welche nicht, kann das Modell lernen, diese Unterscheidung zu treffen.
- Im Gegensatz dazu wäre unsupervised learning weniger geeignet, da es keine Informationen über die richtige Klassifizierung der E-Mails hätte. Ohne diese Labels könnte es keine zuverlässige Unterscheidung zwischen Spam und Nicht-Spam treffen.
b)
Beschreibe, wie Du bei der Datenvorbereitung für das Klassifikationsmodell vorgehen würdest. Gehe insbesondere auf Normalisierung und Kategorienkodierung ein.
Lösung:
Datenvorbereitung für ein Klassifikationsmodell zur Erkennung von Spam-E-Mails:
- Datensammlung und -säuberung:
- Sammle alle E-Mails, die als Datenquelle dienen sollen. Stelle sicher, dass jede E-Mail entweder als 'Spam' oder 'Nicht-Spam' gelabelt ist.
- Bereinige die Daten: Entferne unnötige Zeichen, HTML-Tags, und Sonderzeichen, die nicht zur Klassifikation beitragen.
- Entferne oder korrigiere fehlerhafte Daten. Zum Beispiel könnten E-Mails mit fehlenden Labels oder unvollständigem Text entfernt werden.
- Tokenisierung: Teile den Text der E-Mails in einzelne Wörter oder Tokens auf. Dies kann mit Bibliotheken wie NLTK oder spaCy erfolgen.
- Stoppwörter entfernen: Entferne häufig vorkommende, aber unbedeutende Wörter (z.B. 'und', 'oder', 'das'), die keinen Mehrwert für die Klassifikation bieten.
- Stemming und Lemmatization: Reduziere Wörter auf ihre Grundform, z.B. 'laufend', 'läuft' und 'laufen' zu 'lauf'. Dies hilft, die Dimensionalität der Daten zu reduzieren und das Modell generalisierungsfähiger zu machen.
- Kategorienkodierung: Verwende Techniken wie One-Hot-Encoding oder Label-Encoding, um kategoriale Variablen in numerische Form zu bringen. Bei E-Mails könnten z. B. bestimmte Absenderadressen oder Betreffzeilen als kategoriale Merkmale kodiert werden.
- Textrepräsentation: Verwende Techniken wie Bag of Words (BoW), Term Frequency-Inverse Document Frequency (TF-IDF) oder Word Embeddings (z. B. Word2Vec, GloVe) zur numerischen Repräsentation der textuellen Inhalte der E-Mails.
- Normalisierung: Da unterschiedliche Merkmale oft unterschiedliche Wertebereiche haben, ist es wichtig, sie auf einen gemeinsamen Bereich zu bringen. Hierfür eignen sich Verfahren wie Min-Max-Skalierung oder Z-Score-Normalisierung. Insbesondere bei TF-IDF werden die Gewichtungen bereits normalisiert.
Durch diese Schritte stellst Du sicher, dass die Daten in einer Form vorliegen, die das Klassifikationsmodell optimal nutzen kann. Dies erhöht die Genauigkeit und die Leistungsfähigkeit des Modells erheblich.
c)
Gegeben sind die folgenden Vorhersageergebnisse eines Modells auf einem Testdatensatz:
- 50 E-Mails wurden korrekt als Spam klassifiziert
- 30 E-Mails wurden fälschlicherweise als Spam klassifiziert
- 80 E-Mails wurden korrekt als Nicht-Spam klassifiziert
- 40 E-Mails wurden fälschlicherweise als Nicht-Spam klassifiziert
Berechne die Genauigkeit, Präzision, Recall und den F1-Score des Modells und erkläre jede Kennzahl kurz.
Lösung:
Berechnung der Leistungskennzahlen des Modells:
Gegeben sind die folgenden Vorhersageergebnisse:
- 50 E-Mails wurden korrekt als Spam klassifiziert (True Positives, TP)
- 30 E-Mails wurden fälschlicherweise als Spam klassifiziert (False Positives, FP)
- 80 E-Mails wurden korrekt als Nicht-Spam klassifiziert (True Negatives, TN)
- 40 E-Mails wurden fälschlicherweise als Nicht-Spam klassifiziert (False Negatives, FN)
Diese Werte können wir zur Berechnung der folgenden Kennzahlen verwenden:
- Genauigkeit (Accuracy): Die Genauigkeit ist das Verhältnis der korrekt klassifizierten E-Mails zur Gesamtzahl der E-Mails:
- Präzision (Precision): Präzision ist der Anteil der korrekt als Spam klassifizierten E-Mails an allen als Spam klassifizierten E-Mails:
- Recall (Rückruf): Recall ist der Anteil der korrekt als Spam klassifizierten E-Mails an allen tatsächlichen Spam-E-Mails:
- F1-Score: Der F1-Score ist das harmonische Mittel von Präzision und Recall:
Erklärung der Kennzahlen:
- Genauigkeit (Accuracy): Zeigt den Anteil der korrekten Vorhersagen im Verhältnis zur Gesamtzahl der Vorhersagen. Sie gibt einen allgemeinen Eindruck davon, wie gut das Modell klassifiziert.
- Präzision (Precision): Zeigt, wie viele der als Spam klassifizierten E-Mails tatsächlich Spam sind. Eine hohe Präzision bedeutet, dass das Modell nur wenige falsche Positivmeldungen macht.
- Recall (Rückruf): Zeigt, wie viele der tatsächlichen Spam-E-Mails vom Modell richtig erkannt werden. Ein hoher Recall bedeutet, dass das Modell nur wenige falsche Negativmeldungen macht.
- F1-Score: Gibt eine ausbalancierte Messung von Präzision und Recall. Er eignet sich besonders gut, wenn ein Gleichgewicht zwischen Präzision und Recall wichtig ist.
d)
Betrachte die Algorithmen Entscheidungsbäume, k-nächste Nachbarn (k-NN) und Naive Bayes. Beschreibe für jeden dieser Algorithmen, wie er für die Spam-Erkennung genutzt werden kann und diskutiere die jeweiligen Vor- und Nachteile in Bezug auf Genauigkeit und Effizienz.
Lösung:
Algorithmen zur Spam-Erkennung:
- Entscheidungsbäume:
- Nutzung: Entscheidungsbäume funktionieren durch sequentielle Aufteilung der Daten basierend auf Attributwerten. Für die Spam-Erkennung kann ein Entscheidungsbaum durch Lernen von Regeln aus den Trainingsdaten erstellt werden. Jede Entscheidungsknotenpunkte im Baum repräsentieren eine Bedingung und die Blattknoten stellen die Klassifizierungen (Spam oder Nicht-Spam) dar.
- Vorteile:
- Intuitiv und einfach zu interpretieren
- Keine Notwendigkeit zur Normalisierung der Daten
- Gut geeignet für kleine bis mittelgroße Datensätze
- Nachteile:
- Kann zu Overfitting neigen, besonders bei tiefen Bäumen
- Empfindlich gegenüber kleine Variationen in den Trainingsdaten
- Kann bei sehr großen Datensätzen ineffizient sein
- k-nächste Nachbarn (k-NN):
- Nutzung: Der k-NN-Algorithmus klassifiziert eine E-Mail basierend auf den Klassen der k am nächsten gelegenen E-Mails im Merkmalsraum. Dafür werden Merkmale wie Wortfrequenzen oder TF-IDF-Werte genutzt.
- Vorteile:
- Einfach zu implementieren und zu verstehen
- Keine explizite Trainingsphase erforderlich
- Gut geeignet für kleine Datensätze
- Nachteile:
- Hoher Speicherbedarf, da alle Trainingsdaten gespeichert werden müssen
- Langsame Vorhersagezeit bei großen Datensätzen, da alle Distanzen berechnet werden müssen
- Die Wahl des richtigen k-Werts kann schwierig sein
- Sensibel gegenüber irrelevanten oder schlecht skalierten Merkmalen
- Naive Bayes:
- Nutzung: Der Naive Bayes-Algorithmus basiert auf dem Bayes-Theorem und der Annahme, dass die Merkmale unabhängig voneinander sind. Für die Spam-Erkennung berechnet der Algorithmus die Wahrscheinlichkeit, dass eine E-Mail Spam ist, basierend auf den Frequenzen der Wörter in den E-Mails.
- Vorteile:
- Schnell in Training und Vorhersage
- Weniger Speicherbedarf
- Robust gegenüber irrelevanten Merkmalen
- Gut geeignet für sehr große Datensätze
- Nachteile:
- Die Annahme der Unabhängigkeit der Merkmale ist in der Praxis oft nicht erfüllbar
- Kann suboptimale Ergebnisse liefern, wenn die Merkmale stark korreliert sind
- Weniger intuitiv verständlich als Entscheidungsbäume
Zusammenfassung: Die Wahl des besten Algorithmus hängt von vielen Faktoren ab, einschließlich der Größe des Datensatzes, der Verfügbarkeit von Rechenressourcen und der konkreten Anforderungen an Genauigkeit und Effizienz. Entscheidungsbäume sind oft eine gute Wahl für interpretierbare Modelle und kleinere Datensätze, k-NN eignet sich gut für simple und verständliche Klassifikationen bei kleinen Datensätzen, und Naive Bayes ist effizient und leistungsfähig bei großen Datensätzen, insbesondere wenn Merkmale unabhängig voneinander sind.
Aufgabe 4)
In dieser Aufgabe geht es um die Anwendung verschiedener Clustering-Methoden auf ein gegebenes Datenset. Du bist dabei für die Erstellung und Auswertung von Clusterungsmodellen verantwortlich.
a)
Teilaufgabe 1: Du hast ein zweidimensionales Datenset gegeben mit den Punkten:
- A(1, 2)
- B(2, 1)
- C(2, 2)
- D(8, 8)
- E(9, 8)
- F(8, 9)
- Führe das K-Means Clustering mit K=2 durch. Initialisiere die Zentroiden zufällig für zwei der Punkte im Datenset. Zeige den vollständigen Clustering-Prozess mit allen Iterationen, inklusive der Berechnungen der neuen Zentroiden und der Zuordnung der Punkte zu den Clustern.
- Berechne die Silhouetten-Koeffizienten für die einzelnen Punkte und den durchschnittlichen Silhouetten-Koeffizienten für das gesamte Clustering-Ergebnis, um die Qualität der Clusterung zu bewerten.
Lösung:
Teilaufgabe 1:
Du hast ein zweidimensionales Datenset gegeben mit den Punkten:
- A(1, 2)
- B(2, 1)
- C(2, 2)
- D(8, 8)
- E(9, 8)
- F(8, 9)
- Führe das K-Means Clustering mit K=2 durch. Initialisiere die Zentroiden zufällig für zwei der Punkte im Datenset. Zeige den vollständigen Clustering-Prozess mit allen Iterationen, inklusive der Berechnungen der neuen Zentroiden und der Zuordnung der Punkte zu den Clustern.
- Berechne die Silhouetten-Koeffizienten für die einzelnen Punkte und den durchschnittlichen Silhouetten-Koeffizienten für das gesamte Clustering-Ergebnis, um die Qualität der Clusterung zu bewerten.
Um das K-Means Clustering durchzuführen, werden wir die Zentroiden zufällig initialisieren und dann dem iterativen Prozess folgen:
Initialisierung:
Nehmen wir an, wir wählen die Punkte A(1, 2) und D(8, 8) als initiale Zentroiden.
Schritt 1: Zuordnung der Punkte zu den Clustern:
Wir berechnen die Euklidischen Distanzen der anderen Punkte zu diesen Zentroiden: (alle Distanzen sind gerundet)
- Distanzen zu Zentrum A (1, 2):
- d(A, A) = 0
- d(B, A) = sqrt((2-1)2 + (1-2)2) = sqrt(1 + 1) = sqrt(2) ≈ 1.41
- d(C, A) = sqrt((2-1)2 + (2-2)2) = sqrt(1 + 0) = 1
- d(D, A) = sqrt((8-1)2 + (8-2)2) = sqrt(49 + 36) = sqrt(85) ≈ 9.22
- d(E, A) = sqrt((9-1)2 + (8-2)2) = sqrt(64 + 36) = sqrt(100) = 10
- d(F, A) = sqrt((8-1)2 + (9-2)2) = sqrt(49 + 49) = sqrt(98) ≈ 9.90
- Distanzen zu Zentrum D (8, 8):
- d(A, D) = sqrt((1-8)2 + (2-8)2) = sqrt(49 + 36) = sqrt(85) ≈ 9.22
- d(B, D) = sqrt((2-8)2 + (1-8)2) = sqrt(36 + 49) = sqrt(85) ≈ 9.22
- d(C, D) = sqrt((2-8)2 + (2-8)2) = sqrt(36 + 36) = sqrt(72) ≈ 8.49
- d(D, D) = 0
- d(E, D) = sqrt((9-8)2 + (8-8)2) = sqrt(1 + 0) = 1
- d(F, D) = sqrt((8-8)2 + (9-8)2) = sqrt(0 + 1) = 1
Nach dieser Berechnung ergibt sich die Zuordnung:
- Cluster 1 (Zentrum A): Punkte A, B, C
- Cluster 2 (Zentrum D): Punkte D, E, F
Schritt 2: Berechnung der neuen Zentroiden:
Cluster 1 (A, B, C):
- Zentroid: \(\frac{{1+2+2}}{3}, \frac{{2+1+2}}{3}\) = (1.67, 1.67)
Cluster 2 (D, E, F):
- Zentroid: \(\frac{{8+9+8}}{3}, \frac{{8+8+9}}{3}\) = (8.33, 8.33)
Schritt 3: Zuordnung der Punkte zu den neuen Zentroiden und wiederhole den Prozess:
Zum Beispiel:
Distanzen zu Zentrum (1.67, 1.67):
- d(A, (1.67, 1.67)) ≈ 0.94
- d(B, (1.67, 1.67)) ≈ 0.94
- d(C, (1.67, 1.67)) ≈ 0.47
- d(D, (1.67, 1.67)) ≈ 8.47
- d(E, (1.67, 1.67)) ≈ 9.18
- d(F, (1.67, 1.67)) ≈ 8.82
Distanzen zu Zentrum (8.33, 8.33):
- d(A, (8.33, 8.33)) ≈ 9.98
- d(B, (8.33, 8.33)) ≈ 9.98
- d(C, (8.33, 8.33)) ≈ 9.50
- d(D, (8.33, 8.33)) ≈ 0.47
- d(E, (8.33, 8.33)) ≈ 0.94
- d(F, (8.33, 8.33)) ≈ 0.94
Die Zuordnung bleibt gleich:
- Cluster 1: A, B, C
- Cluster 2: D, E, F
Schritt 4: Berechnung der Silhouetten-Koeffizienten:
Die Silhouetten-Koeffizienten messen, wie ähnlich ein Punkt zu seinem eigenen Cluster im Vergleich zum nächsten Cluster ist. Der Silhouetten-Koeffizient für einen Punkt ist gegeben durch:
\(s = \frac{b-a}{max(a, b)}\)
- \(a\): durchschnittliche Distanz des Punktes zu allen anderen Punkten im gleichen Cluster
- \(b\): durchschnittliche Distanz des Punktes zu allen Punkten im nächstgelegenen Cluster
Cluster 1 (A, B, C):
\(a_A: \frac{\text{summe der Distanzen von A zu B und C}}{2}\ ≈ \frac{(1.41+1)}{2} = 1.205\)
\(b_A: \frac{\text{summe der Distanzen von A zu D, E und F}}{3}\ ≈ \frac{(9.22+10+9.90)}{3} = 9.71\)
Berechnung \(s_A\): \(\frac{9.71-1.205}{max(1.205, 9.71)}\) ≈ 0.876
Cluster 2 (D, E, F):
\(a_D: \frac{\text{summe der Distanzen von D zu E und F}}{2}\ ≈ \frac{(1+1)}{2} = 1\)
\(b_D: \frac{\text{summe der Distanzen von D zu A, B und C}}{3}\ ≈ \frac{(9.22+9.22+8.49)}{3} = 8.98\)
Berechnung \(s_D\): \(\frac{8.98-1}{max(1, 8.98)}\) ≈ 0.888
Der durchschnittliche Silhouetten-Koeffizient für das gesamte Clustering-Ergebnis ist der Mittelwert der Silhouetten-Koeffizienten aller Punkte.
\(s_{\text{ges}} ≈ \frac{0.876 + 0.888}{2} ≈ 0.882\)
b)
Teilaufgabe 2: Du möchtest für dasselbe Datenset das agglomerative hierarchische Clustering anwenden. Führe die Clustering-Schritte durch und skizziere das Dendrogramm.
- Beschreibe und berechne die Schritte des Agglomerationsprozesses, bis alle Punkte in einem Cluster vereint sind. Dokumentiere die Abstände zwischen den Clustern, die Du im Prozess zusammenführst.
- Wie kann das Dendrogramm zur Bestimmung der optimalen Anzahl der Cluster verwendet werden? Erkläre dies anhand des Dendrogramms, das Du für das gegebene Datenset erstellt hast.
Lösung:
Teilaufgabe 2:
Du möchtest für dasselbe Datenset das agglomerative hierarchische Clustering anwenden. Führe die Clustering-Schritte durch und skizziere das Dendrogramm.
- Beschreibe und berechne die Schritte des Agglomerationsprozesses, bis alle Punkte in einem Cluster vereint sind. Dokumentiere die Abstände zwischen den Clustern, die Du im Prozess zusammenführst.
- Wie kann das Dendrogramm zur Bestimmung der optimalen Anzahl der Cluster verwendet werden? Erkläre dies anhand des Dendrogramms, das Du für das gegebene Datenset erstellt hast.
Beschreibung des Agglomerationsprozesses:
Agglomeratives hierarchisches Clustering beginnt, indem jeder Punkt als einzelner Cluster betrachtet wird. In jedem Schritt werden die beiden nächstgelegenen Cluster zu einem einzigen Cluster zusammengeführt, bis alle Punkte in einem Cluster vereint sind. Wir werden die Euklidischen Distanzen verwenden, um die Abstände zwischen den Clustern zu berechnen.
Schritt 1: Berechnung der initialen Distanzen:
- d(A, B) = sqrt((2-1)2 + (1-2)2) = sqrt(1 + 1) = sqrt(2) ≈ 1.41
- d(A, C) = sqrt((2-1)2 + (2-2)2) = sqrt(1 + 0) = 1
- d(A, D) = sqrt((8-1)2 + (8-2)2) = sqrt(49 + 36) = sqrt(85) ≈ 9.22
- d(A, E) = sqrt((9-1)2 + (8-2)2) = sqrt(64 + 36) = sqrt(100) = 10
- d(A, F) = sqrt((8-1)2 + (9-2)2) = sqrt(49 + 49) = sqrt(98) ≈ 9.90
- d(B, C) = sqrt((2-2)2 + (1-2)2) = sqrt(0 + 1) = 1
- d(B, D) = sqrt((8-2)2 + (8-1)2) = sqrt(36 + 49) = sqrt(85) ≈ 9.22
- d(B, E) = sqrt((9-2)2 + (8-1)2) = sqrt(49 + 49) = 9.90
- d(B, F) = sqrt((8-2)2 + (9-1)2) = sqrt(36 + 64) = 10
- d(C, D) = sqrt((8-2)2 + (8-2)2) = sqrt(36 + 36) = 8.49
- d(C, E) = sqrt((9-2)2 + (8-2)2) = sqrt(49 + 36) = 9.22
- d(C, F) = sqrt((8-2)2 + (9-2)2) = sqrt(36 + 49) = 9.22
- d(D, E) = sqrt((9-8)2 + (8-8)2) = sqrt(1 + 0) = 1
- d(D, F) = sqrt((8-8)2 + (9-8)2) = sqrt(0 + 1) = 1
- d(E, F) = sqrt((8-9)2 + (9-8)2) = sqrt(1 + 1) = sqrt(2) ≈ 1.41
Schritt 2: Zusammenführen der nächstgelegenen Cluster:
Die beiden nächstgelegenen Punkte sind A und C (Abstand = 1). Wir führen diese zu einem Cluster AC zusammen.
Wir aktualisieren die Abstände:
- d(AC, B) = min(d(A, B), d(C, B)) = min(1.41, 1) = 1
- d(AC, D) = min(d(A, D), d(C, D)) = min(9.22, 8.49) = 8.49
- d(AC, E) = min(d(A, E), d(C, E)) = min(10, 9.22) = 9.22
- d(AC, F) = min(d(A, F), d(C, F)) = min(9.90, 9.22) = 9.22
Schritt 3: Zusammenführen der neuen nächstgelegenen Cluster:
Die nächstgelegenen Cluster sind AC und B (Abstand = 1). Wir führen diese zu einem Cluster ACB zusammen.
- d(ACB, D) = min(d(AC, D), d(B, D)) = min(8.49, 9.22) = 8.49
- d(ACB, E) = min(d(AC, E), d(B, E)) = min(9.22, 9.90) = 9.22
- d(ACB, F) = min(d(AC, F), d(B, F)) = min(9.22, 10) = 9.22
Schritt 4: Zusammenführen der neuen nächstgelegenen Cluster:
Die nächstgelegenen Cluster sind D und E (Abstand = 1). Wir führen diese zu einem Cluster DE zusammen.
- d(DE, F) = min(d(D, F), d(E, F)) = min(1, 1.41) = 1
- d(DE, ACB) = min(d(D, ACB), d(E, ACB)) = min(8.49, 9.22) = 8.49
Schritt 5: Zusammenführen der neuen nächstgelegenen Cluster:
Die nächstgelegenen Cluster sind DE und F (Abstand = 1). Wir führen diese zu einem Cluster DEF zusammen.
Schritt 6: Zusammenführen der letzten Cluster:
Die letzten beiden Cluster sind DEF und ACB (Abstand = 8.49). Wir führen diese zu einem einzigen Cluster zusammen.
Erstellung des Dendrogramms:
Ein Dendrogramm ist ein Baumdiagramm, das die Reihenfolge und die genauen Distanzen zeigt, bei denen die Cluster zusammengeführt wurden:
- AC bei Abstand 1
- ACB bei Abstand 1
- DE bei Abstand 1
- DEF bei Abstand 1
- ACDEF bei Abstand 8.49
Das Dendrogramm sieht wie folgt aus:
\r |------ A\r | |\r | |------ C\r | |\r | |\r | |------- B\r |\r |\r |-------------------|\r |--- E\r | |----- D\r |\r |-------F\r |-------|\r
Bestimmung der optimalen Anzahl der Cluster:
Das Dendrogramm kann verwendet werden, um die Anzahl der optimalen Cluster zu bestimmen, indem man den größten vertikalen Abstand zwischen den horizontalen Linien im Diagramm findet. Der Abstand repräsentiert die Fusion zweier Cluster. Der größte vertikale Abstand zeigt den größten Unterschied in der Entfernung.
In unserem Dendrogramm fällt der größte Abstand zwischen den Zusammenführungen auf 8.49 (zwischen ACB und DEF), was darauf hindeutet, dass die optimale Anzahl von Clustern 2 ist. Daher wird das Dendrogramm zu zwei Clustern schneiden:
- Cluster 1: Punkte A, B, C
- Cluster 2: Punkte D, E, F