AI-2 Systems Project - Exam.pdf

AI-2 Systems Project - Exam
AI-2 Systems Project - Exam Aufgabe 1) In einem KI-Projekt soll ein neues System zur automatischen Diagnose von medizinischen Bildern entwickelt werden. Das Team steht vor mehreren Herausforderungen, darunter technische Unsicherheiten in Bezug auf die Genauigkeit der Algorithmen, rechtliche Fragen zur Datennutzung und ethische Bedenken hinsichtlich der Verantwortung bei Fehldiagnosen. Zudem gibt e...

© StudySmarter 2024, all rights reserved.

AI-2 Systems Project - Exam

Aufgabe 1)

In einem KI-Projekt soll ein neues System zur automatischen Diagnose von medizinischen Bildern entwickelt werden. Das Team steht vor mehreren Herausforderungen, darunter technische Unsicherheiten in Bezug auf die Genauigkeit der Algorithmen, rechtliche Fragen zur Datennutzung und ethische Bedenken hinsichtlich der Verantwortung bei Fehldiagnosen. Zudem gibt es geschäftliche Risiken in Bezug auf die Investitionsrendite und den Markterfolg.

a)

Schritt 1: Risikoidentifikation und -bewertungIdentifiziere und beschreibe mindestens drei spezifische Risiken (jeweils eines aus den Kategorien: technische, rechtliche, ethische und geschäftliche Risiken) für das genannte KI-Projekt. Bewerte für jedes Risiko die Wahrscheinlichkeit ihres Eintretens (niedrig, mittel, hoch) und die möglichen Auswirkungen (gering, mittel, schwer). Stelle die Ergebnisse in einer tabellarischen Form dar.

Lösung:

Schritt 1: Risikoidentifikation und -bewertung

Risikoidentifikation und -bewertungIm Folgenden werden drei spezifische Risiken aus den Kategorien technische, rechtliche, ethische und geschäftliche Risiken für das KI-Projekt beschrieben und bewertet.
Kategorie Risiko Wahrscheinlichkeit Auswirkungen
Technische Risiken Ungenauigkeit der Algorithmen Mittel Schwer
Rechtliche Risiken Verstöße gegen Datenschutzvorschriften Hoch Mittel
Ethische Risiken Verantwortung bei Fehldiagnosen Mittel Schwer
Geschäftliche Risiken Geringe Investitionsrendite Hoch Mittel

b)

Schritt 2: Risikomatrix und PriorisierungErstelle eine Risikomatrix, in der die identifizierten Risiken nach ihrer Wahrscheinlichkeit und Auswirkung eingetragen werden. Erläutere, welche Risiken am dringendsten adressiert werden müssen und warum. Verwende zur Priorisierung ein Scoring-System (z.B. multipliziere die beiden Werte für Wahrscheinlichkeit und Auswirkung).

Lösung:

Schritt 2: Risikomatrix und Priorisierung

Risikomatrix und PriorisierungIm ersten Schritt haben wir spezifische Risiken identifiziert und bewertet. Nun erstellen wir eine Risikomatrix, in der diese Risiken nach Wahrscheinlichkeit und Auswirkung eingetragen werden. Zur Priorisierung verwenden wir ein einfaches Scoring-System, bei dem Wahrscheinlichkeit (W) und Auswirkung (A) multipliziert werden:
  • Niedrig: 1 Punkt
  • Mittel: 2 Punkte
  • Hoch: 3 Punkte
Kategorie Risiko Wahrscheinlichkeit (W) Auswirkung (A) Scoring (W x A)
Technische Risiken Ungenauigkeit der Algorithmen 2 (Mittel) 3 (Schwer) 6
Rechtliche Risiken Verstöße gegen Datenschutzvorschriften 3 (Hoch) 2 (Mittel) 6
Ethische Risiken Verantwortung bei Fehldiagnosen 2 (Mittel) 3 (Schwer) 6
Geschäftliche Risiken Geringe Investitionsrendite 3 (Hoch) 2 (Mittel) 6

Priorisierung der Risiken

Da alle Risiken in unserer Bewertung dasselbe Scoring von 6 erreicht haben, müssen alle dringend adressiert werden. Hier sind die Gründe für die Priorisierung:
  • Ungenauigkeit der Algorithmen: Ein ungenaues System könnte schwerwiegende gesundheitliche Folgen haben, was die Akzeptanz und das Vertrauen in das System massiv beeinträchtigen würde.
  • Verstöße gegen Datenschutzvorschriften: Hohe rechtliche Strafen und das Risiko von Klagen könnten das Projekt schnell unhaltbar machen.
  • Verantwortung bei Fehldiagnosen: Ethische Fragen und Verantwortung bei Fehldiagnosen können zu schwerwiegenden Konsequenzen für Patienten und rechtlichen Problemen führen.
  • Geringe Investitionsrendite: Eine niedrige Rendite könnte das gesamte Projekt gefährden und Investoren abschrecken.

c)

Schritt 3: RisikomanagementstrategienEntwickle für die zwei höchsten Risiken jeweils eine geeignete Risikomanagementstrategie. Begründe die Wahl der Strategie (Vermeidung, Minderung, Übertragung, Akzeptanz) und erläutere, wie Du diese Strategie konkret im Projekt umsetzen würdest. Berücksichtige dabei auch Monitoring und Review-Prozesse zur regelmäßigen Überprüfung der Wirksamkeit der gewählten Maßnahmen.

Lösung:

Schritt 3: Risikomanagementstrategien

RisikomanagementstrategienIm Folgenden werden zwei der höchsten Risiken identifiziert und geeignete Risikomanagementstrategien entwickelt.

1. Ungenauigkeit der Algorithmen

Risikomanagementstrategie: MinderungBegründung: Die Ungenauigkeit der Algorithmen stellt ein erhebliches technisches Risiko dar, das die Glaubwürdigkeit und das Vertrauen in das KI-System beeinträchtigen kann. Durch Minderungsstrategien können wir die Genauigkeit und Zuverlässigkeit der Algorithmen verbessern, ohne das Projekt komplett zu überarbeiten.Konkrete Maßnahmen:
  • Intensive Test- und Validierungsphasen: Führe umfangreiche Tests und Validierungen der Algorithmen mit großen, diversifizierten Datensätzen durch, um ihre Genauigkeit stetig zu verbessern.
  • Iterative Verbesserungen: Implementiere regelmäßige Aktualisierungen und Optimierungen der Algorithmen, basierend auf den Ergebnissen der Testphasen und dem Feedback der Nutzer.
  • Training mit qualitativ hochwertigen Daten: Stelle sicher, dass die Algorithmen mit hochwertigen, annotierten Daten trainiert werden, um die Genauigkeit weiter zu erhöhen.
Monitoring und Review-Prozesse:
  • Regelmäßige Überprüfungen: Führe regelmäßige Performance-Reviews durch, um die Genauigkeit der Algorithmen zu überwachen und Verbesserungen zu identifizieren.
  • Benchmark-Tests: Nutze Benchmark-Tests mit standardisierten Datensätzen, um die Leistung der Algorithmen im Zeitverlauf zu bewerten.

2. Verstöße gegen Datenschutzvorschriften

Risikomanagementstrategie: VermeidungBegründung: Verstöße gegen Datenschutzvorschriften können zu erheblichen rechtlichen und finanziellen Folgen führen. Daher ist es am besten, dieses Risiko durch präventive Maßnahmen komplett zu vermeiden.Konkrete Maßnahmen:
  • Implementierung datenschutzkonformer Prozesse: Entwickle und implementiere Prozesse, die sicherstellen, dass alle Datenverarbeitungsaktivitäten den geltenden Datenschutzgesetzen und -vorschriften entsprechen.
  • Schulung der Mitarbeiter: Führe regelmäßige Schulungen und Sensibilisierungsmaßnahmen für alle mit dem Projekt betrauten Mitarbeiter durch, um sicherzustellen, dass sie die Bedeutung des Datenschutzes verstehen und einhalten.
  • Datenschutzbeauftragter: Bestimme einen Datenschutzbeauftragten, der die Einhaltung der Datenschutzvorschriften überwacht und als Ansprechpartner für Datenschutzfragen dient.
Monitoring und Review-Prozesse:
  • Regelmäßige Audits: Führe regelmäßige Datenschutz-Audits durch, um sicherzustellen, dass alle Prozesse den Datenschutzanforderungen entsprechen.
  • Feedback-Mechanismen: Implementiere Mechanismen zur Einholung von Feedback von Patienten und Nutzern, um mögliche Datenschutzbedenken frühzeitig zu identifizieren.
Durch die Umsetzung dieser Risikomanagementstrategien und die kontinuierliche Überwachung und Überprüfung der Maßnahmen können technische und rechtliche Risiken im KI-Projekt effektiv gemanagt werden.

Aufgabe 2)

In einem KI-Projekt sollen Zeitplanung und Ressourcenmanagement optimiert werden, um den Projekterfolg sicherzustellen. Dabei müssen verschiedene Aspekte wie die Planung von Projektphasen, die Allokation von Ressourcen, der Einsatz von Projektmanagement-Tools, das Risikomanagement, die Implementierung agiler Methoden sowie die Überwachung und Kommunikation berücksichtigt werden. Du leitest in diesem Szenario ein Team, das eine KI-basierte Kundenfeedback-Analyse für ein großes Unternehmen entwickelt.

a)

Beschreibe, wie Du die Projektphasen, Milestones und Deadlines für die Entwicklung der KI-basierten Kundenfeedback-Analyse festlegen würdest. Berücksichtige dabei die verschiedenen Entwicklungszyklen und geplanten Tests. Nutze spezifische Zeitrahmen und Phasenbeispiele.

Lösung:

Projektphasen, Milestones und Deadlines für die Entwicklung einer KI-basierten Kundenfeedback-Analyse

Um ein erfolgreiches KI-Projekt zu gewährleisten, ist eine sorgfältige Planung der Projektphasen unerlässlich. Hier ist eine mögliche Aufteilung des Projekts in Phasen, Milestones und Deadlines:
  • Phase 1: Anforderungsanalyse und Planung (0–1 Monat)
    • Milestone 1: Projektinitialisierung und Teambildung (Woche 1)
    • Milestone 2: Anforderungen und Zielsetzungen definieren (Woche 2)
    • Milestone 3: Ressourcenplanung und Zeitplanerstellung (Woche 4)
  • Phase 2: Datenbeschaffung und Vorverarbeitung (1–3 Monate)
    • Milestone 4: Datenquellen identifizieren und Zugriff sichern (Woche 6)
    • Milestone 5: Datenbereinigung und -vorverarbeitung (Woche 12)
  • Phase 3: Entwicklung des Modells (3–7 Monate)
    • Milestone 6: Auswahl der Algorithmen und Tools (Woche 14)
    • Milestone 7: Implementierung von Prototypmodellen (Woche 20)
    • Milestone 8: Erste Modelltests und Anpassungen (Woche 28)
  • Phase 4: Testen und Validierung (7-9 Monate)
    • Milestone 9: Umfangreiche Tests und Validierung des Modells (Woche 36)
    • Milestone 10: Implementierung von Anpassungen basierend auf Testergebnissen (Woche 40)
  • Phase 5: Deployment und Integration (9-10 Monate)
    • Milestone 11: Vorbereitung der Produktionsumgebung (Woche 42)
    • Milestone 12: Deployment des Modells und Integration in bestehende Systeme (Woche 44)
  • Phase 6: Monitoring und Wartung (ab Monat 10)
    • Milestone 13: Etablierung von Überwachungsmechanismen (Woche 46)
    • Milestone 14: Regelmäßige Wartung und Updates (kontinuierlich)

In jedem Schritt ist es wichtig, regelmäßige Reviews und Feedback-Schleifen einzuplanen, um auf Probleme schnell reagieren zu können. Agile Methoden wie Scrum oder Kanban können verwendet werden, um flexibel auf Änderungen zu reagieren und die Zusammenarbeit im Team zu fördern. Die Nutzung von Projektmanagement-Tools wie Jira oder Trello unterstützt hierbei die Planung und Kommunikation. Schließlich ist die kontinuierliche Überwachung des Fortschritts und eine transparente Kommunikation mit allen Stakeholdern entscheidend für den Erfolg des Projekts.

b)

Angenommen, Du hast vier Teammitglieder, ein Budget von €50.000 und Zugang zu drei High-Performance-Computing-Ressourcen. Skizziere, wie Du diese Ressourcen alle für die verschiedenen Phasen des Projekts (z.B. Datenvorbereitung, Modelltraining, Modelltest und Deployment) allokieren würdest. Berücksichtige dabei auch den Einsatz von Projektmanagement-Tools wie JIRA oder Trello und erkläre, wie diese Tools im Kontext des Projekts eingesetzt werden könnten.

Lösung:

Allokation von Ressourcen in einem KI-Projekt zur Kundenfeedback-Analyse

Im gegebenen Szenario stehen Dir vier Teammitglieder, ein Budget von €50.000 und drei High-Performance-Computing-Ressourcen (HPC-Ressourcen) zur Verfügung. Hier ist eine Skizze, wie Du diese Ressourcen in den verschiedenen Phasen des Projekts effizient einsetzt:

  • Phase 1: Anforderungsanalyse und Planung
    • Teammitglieder:
      • 1 Projektmanager - Koordination und Projektplanung
      • 1 Data Scientist - Anforderungen spezifizieren
      • 2 Entwickler - Technische Machbarkeitsanalyse und Systemarchitektur
    • Budget-Nutzung:
      • €2.000 - Software-Tools und Lizenzen
      • €1.000 - Schulungen und Workshops
    • Einsatz von HPC-Ressourcen: Nicht erforderlich
    • Projektmanagement-Tools:
      • JIRA - Aufgabenverwaltung und Sprint-Planung
      • Trello - Visualisierung des Projektplans und Meilensteine
    • Phase 2: Datenbeschaffung und Vorverarbeitung
      • Teammitglieder:
        • 1 Data Scientist - Datensammlung und Bereinigung
        • 1 Entwickler - Datenvorverarbeitung
        • 1 Projektmanager - Überwachung und Kommunikation
        • 1 Entwickler - Unterstützung bei Datenintegration
      • Budget-Nutzung:
        • €5.000 - Datenbeschaffungskosten
        • €5.000 - Externe Beratungsdienste
      • Einsatz von HPC-Ressourcen: 1 Resource - Datenverarbeitung und Bereinigung
      • Projektmanagement-Tools:
        • JIRA - Fortschrittsverfolgung und Issue-Tracking
        • Trello - Dokumentation der Datenquellen und Vorverarbeitungsprozesse
      • Phase 3: Entwicklung des Modells
        • Teammitglieder:
          • 2 Data Scientists - Algorithmenauswahl und Modellentwicklung
          • 1 Entwickler - Unterstützung bei der Implementierung
          • 1 Projektmanager - Koordination und Überwachung
        • Budget-Nutzung:
          • €10.000 - Hardware-Upgrade oder zusätzliche HPC-Zeit
          • €5.000 - Software-Tools und Lizenzen
        • Einsatz von HPC-Ressourcen: 2 Resources - Modelltraining und -tunings
        • Projektmanagement-Tools:
          • JIRA - Task-Management und Fortschrittsverfolgung
          • Trello - Kalendarische Übersicht und Deadlines
        • Phase 4: Testen und Validierung
          • Teammitglieder:
            • 2 Data Scientists - Modelltests und Validierung
            • 1 Entwickler - Testautomatisierung
            • 1 Projektmanager - Risikomanagement
          • Budget-Nutzung:
            • €8.000 - Testumgebungen und validierungsbezogene Kosten
          • Einsatz von HPC-Ressourcen: 2 Resources - Umfangreiche Modelltests
          • Projektmanagement-Tools:
            • JIRA - Testergebnisse und Bug-Tracking
            • Trello - Dokumentation und Feedback
          • Phase 5: Deployment und Integration
            • Teammitglieder:
              • 1 Entwickler - Vorbereitung der Produktionsumgebung
              • 1 Data Scientist - Modellintegration
              • 1 Projektmanager - Sicherstellen der Einhaltung von Deadlines
              • 1 Entwickler - Systemintegration und Monitoring
            • Budget-Nutzung:
              • €4.000 - Deployment-Kosten
              • €5.000 - Notfallpuffer
            • Einsatz von HPC-Ressourcen: 1 Resource - Endgültige Optimierungen und Anpassungen
            • Projektmanagement-Tools:
              • JIRA - Rollout-Planung und Aufgabenverwaltung
              • Trello - Schrittweise Deployment-Übersicht
            • Phase 6: Monitoring und Wartung
              • Teammitglieder:
                • 2 Entwickler - Laufende Wartung und Updates
                • 1 Data Scientist - Monitoring und Optimierungen
                • 1 Projektmanager - Kontinuierliche Überwachung und Berichtswesen
              • Budget-Nutzung:
                • €5.000 - Wartung und Updates
              • Einsatz von HPC-Ressourcen: 1 Resource - Kontinuierliches Monitoring
              • Projektmanagement-Tools:
                • JIRA - Wartungsplanung und Issue-Tracking
                • Trello - Dokumentation von Wartungsprozessen

              Der Einsatz von Projektmanagement-Tools wie JIRA und Trello hilft dabei, die Aufgaben und den Fortschritt jedes Teammitglieds zu verfolgen und sicherzustellen, dass alle Phasen und Meilensteine im Rahmen des Budgets und des Zeitplans eingehalten werden. Durch die Kombination dieser Tools kann eine effiziente und transparente Kommunikation gewährleistet und das Risiko von Fehlplanungen minimiert werden.

              c)

              Identifiziere potenzielle Risiken, die während der Entwicklung des KI-Projekts auftreten könnten. Diskutiere konkrete Maßnahmen, die Du ergreifen würdest, um diese Risiken frühzeitig zu identifizieren und zu bewältigen. Beziehe dabei auch den Einsatz agiler Methoden wie Scrum und Kanban mit ein.

              Lösung:

              Risikomanagement in einem KI-Projekt zur Kundenfeedback-Analyse

              Im Rahmen eines KI-Projekts können diverse Risiken auftreten, die den Projekterfolg gefährden. Hier sind einige potenzielle Risiken sowie Maßnahmen zur Risikominderung, einschließlich des Einsatzes agiler Methoden wie Scrum und Kanban:

              • Risiko 1: Datenqualität und Verfügbarkeit

              Schlechte Datenqualität oder mangelnde Verfügbarkeit von Daten können die Entwicklung der KI behindern.

                • Maßnahmen:
                  • Frühe Datenerhebung und -überprüfung, um Datenprobleme rechtzeitig zu erkennen.
                  • Datenaufräum-Workshops und Vorverarbeitungsprozeduren definieren und einhalten.
                  • Verwendung von Datenaufbereitungs-Tools und Techniken zur Sicherstellung einer hohen Datenqualität.
                  • Implementierung von Datenvalidierungs-Mechanismen.
                  • Nutzung von Kanban zur Visualisierung des Datenflusses und zur Verfolgung des Fortschritts bei der Datenaufbereitung.
                • Risiko 2: Überschreiten des Budgets

                Das Projekt könnte mehr Kosten verursachen als geplant.

                  • Maßnahmen:
                    • Regelmäßige Budgetkontrollen und Berichterstattung.
                    • Einsatz von Scrum-Sprints, um Aufgaben in kleinere, budgetüberprüfbare Teile zu unterteilen.
                    • Erstellung eines Budgetpuffers für unerwartete Ausgaben.
                    • Engen Kontakt mit den Finanzverantwortlichen halten.
                  • Risiko 3: Technische Herausforderungen und Komplexität

                  Technische Probleme könnten die Entwicklung verzögern oder gar stoppen.

                    • Maßnahmen:
                      • Fortlaufende Team-Schulungen und Wissensaustausch.
                      • Pair-Programming und Code-Reviews zur Sicherstellung der Code-Qualität.
                      • Nutzung von Kanban-Boards, um technische Aufgaben zu organisieren und das Auffinden von Blockierungen zu erleichtern.
                      • Regelmäßige technische Reviews und Retrospektiven im Rahmen von Scrum.
                    • Risiko 4: Änderungen der Projektanforderungen

                    Neue oder geänderte Anforderungen könnten zu Verzögerungen führen.

                      • Maßnahmen:
                        • Regelmäßige Treffen mit den Stakeholdern, um Anforderungen früh zu klären und Änderungen zu besprechen.
                        • Nutzung der agilen Methode Scrum, um flexibel auf Änderungen reagieren zu können.
                        • Einführung eines Change-Management-Prozesses.
                      • Risiko 5: Kommunikation und Zusammenarbeit im Team

                      Missverständnisse oder mangelnde Kommunikation können das Projekt verlangsamen.

                        • Maßnahmen:
                          • Regelmäßige Daily Stand-Ups nach Scrum, um den Informationsfluss im Team zu gewährleisten.
                          • Nutzung von Projektmanagement-Tools wie JIRA und Trello zur zentralen Aufgabenverwaltung und Kommunikation.
                          • Regelmäßige Retrospektiven, um die Zusammenarbeit zu reflektieren und zu verbessern.
                          • Förderung einer offenen Kommunikationskultur im Team.
                        • Risiko 6: Unzureichende Test- und Validierungsprozesse

                        Fehlerhafte Modelle können zu unzuverlässigen Ergebnissen führen.

                          • Maßnahmen:
                            • Etablierung gründlicher Testprotokolle und automatisierter Tests.
                            • Regelmäßiges Peer-Review der Testergebnisse.
                            • Nutzung von Scrum-Sprints zur Verfolgung des Testfortschritts und zur kontinuierlichen Verbesserung der Teststrategien.
                            • Einführung von Validierungs-Richtlinien und Überprüfungsmechanismen.

                          Durch den Einsatz agiler Methoden wie Scrum und Kanban können diese Risiken frühzeitig identifiziert und effizient gemanagt werden. Regelmäßige Meetings, Reviews und eine iterative Entwicklungsweise ermöglichen es, flexibel auf Probleme zu reagieren und rechtzeitig geeignete Maßnahmen zu ergreifen.

                          Aufgabe 3)

                          Du hast einen Datensatz mit Kundendaten, welcher Informationen über deren Kaufverhalten enthält. Du willst verschiedene Machine Learning Algorithmen in Python implementieren, um eine Vorhersage zu treffen, ob ein Kunde einen bestimmten Artikel kaufen wird oder nicht. Dabei soll der komplette Prozess von Datenvorverarbeitung über Modelltraining bis hin zur Modellbewertung berücksichtigt werden.

                          a)

                          (a) Beschreibe die Schritte der Datenvorverarbeitung, die Du für diesen Datensatz anwenden würdest. Gehe dabei auf die Notwendigkeit der Normalisierung, das Splitten der Daten und die Bedeutung dieser Schritte für das Modelltraining ein. Du kannst hierbei Python-Bibliotheken wie NumPy und pandas verwenden. Zeige einen kurzen Code-Schnipsel, der die Anwendung dieser Schritte illustriert.

import pandas as pd  from sklearn.model_selection import train_test_split  from sklearn.preprocessing import StandardScaler  # Laden des Datensatzes  df = pd.read_csv('kunden_daten.csv')  # Normalisierung der Features  scaler = StandardScaler()  df_normalisiert = scaler.fit_transform(df.drop('Ziel', axis=1))  # Splitten in Trainings- und Testdaten  X_train, X_test, y_train, y_test = train_test_split(df_normalisiert, df['Ziel'], test_size=0.2, random_state=42) 

Lösung:

Schritte der Datenvorverarbeitung

Die Datenvorverarbeitung ist ein entscheidender Schritt im Machine Learning Prozess, da sie die Qualität und Performance des Modells maßgeblich beeinflusst. Nachfolgend werden die wichtigsten Schritte der Datenvorverarbeitung beschrieben, die für den gegebenen Datensatz notwendig sind:

  • Datenbereinigung: Entfernen von unnötigen oder fehlerhaften Daten, die das Modelltraining negativ beeinflussen könnten. Dies könnte das Entfernen von fehlenden Werten oder Dubletten umfassen.
  • Feature-Auswahl: Es ist wichtig, nur die relevanten Features (Eigenschaften) des Datensatzes zu verwenden, um Overfitting zu vermeiden und die Effizienz des Modells zu erhöhen.
  • Normalisierung: Die Normalisierung (Standardisierung) der Features stellt sicher, dass alle Features in derselben Skala liegen und keiner der Features aufgrund seiner Skala dominiert. Dies ist besonders wichtig für Algorithmen, die auf Entfernungen basieren, wie z.B. K-Nearest Neighbors.
  • Splitten der Daten: Aufteilung des Datensatzes in Trainings- und Testdaten ist essenziell, um das Modell zu evaluieren und sicherzustellen, dass es gut generalisiert. Häufig wird eine 80-20 oder 70-30 Aufteilung verwendet.

Notwendigkeit der Normalisierung

Die Normalisierung sorgt dafür, dass alle Features vergleichbare Skalen haben, insbesondere wenn die Features unterschiedliche Einheiten oder Größenordnungen haben. Dies ermöglicht es dem Modell, die Features gleichberechtigt zu behandeln und führt zu schnelleren und stabileren Konvergenzraten während des Trainings.

Bedeutung des Splitten der Daten

Das Splitten der Daten in Trainings- und Testdaten erlaubt es uns, die Performance des Modells objektiv zu bewerten. Indem wir das Modell auf einem Teil der Daten trainieren und auf einem anderen Teil testen, können wir sicherstellen, dass das Modell nicht nur die Trainingsdaten „auswendig gelernt“ hat, sondern auch auf unbekannten Daten gut performt.

Python Code-Schnipsel

Im Folgenden wird ein kurzer Code-Schnipsel gezeigt, welcher die genannten Schritte der Datenvorverarbeitung illustriert:

import pandas as pd\rfrom sklearn.model_selection import train_test_split\rfrom sklearn.preprocessing import StandardScaler\r\r# Laden des Datensatzes\rdf = pd.read_csv('kunden_daten.csv')\r\r# Normalisierung der Features\rscaler = StandardScaler()\rdf_normalisiert = scaler.fit_transform(df.drop('Ziel', axis=1))\r\r# Splitten in Trainings- und Testdaten\rX_train, X_test, y_train, y_test = train_test_split(df_normalisiert, df['Ziel'], test_size=0.2, random_state=42)\r

b)

(b) Implementiere und trainiere ein Modell zur Vorhersage des Kaufverhaltens unter Verwendung eines Decision-Tree Algorithmus. Zeige den Python-Code für die Implementierung unter Verwendung von scikit-learn. Gehe auf die Auswahl und das Tuning von Hyperparametern ein und beschreibe, wie Du die besten Hyperparameter auswählen würdest.

from sklearn.tree import DecisionTreeClassifier  from sklearn.model_selection import GridSearchCV  # Modellinitialisierung  dt_clf = DecisionTreeClassifier()  # Hyperparameter-Tuning  param_grid = {'max_depth': [3, 5, 7, 10], 'min_samples_leaf': [1, 2, 4]}  grid_search = GridSearchCV(dt_clf, param_grid, cv=5, scoring='accuracy')  # Finden der besten Hyperparameter  grid_search.fit(X_train, y_train)  best_model = grid_search.best_estimator_ 

Lösung:

Implementierung und Training eines Decision-Tree Modells

Im Folgenden wird beschrieben, wie Du ein Modell zur Vorhersage des Kaufverhaltens eines Kunden mit einem Decision-Tree-Algorithmus implementieren und trainieren kannst. Dabei verwenden wir die Python-Bibliothek scikit-learn.

Modellinitialisierung

Um ein Decision-Tree-Modell zu initialisieren, verwenden wir die Klasse DecisionTreeClassifier aus scikit-learn:

 from sklearn.tree import DecisionTreeClassifier 

Hyperparameter-Tuning

Hyperparameter sind Parameter, deren Werte nicht aus den Trainingsdaten gelernt werden, sondern vor dem Training festgelegt werden. Für den Decision-Tree-Algorithmus sind einige wichtige Hyperparameter:

  • max_depth: Die maximale Tiefe des Baumes. Eine Begrenzung hilft, das Overfitting zu verhindern.
  • min_samples_leaf: Die minimale Anzahl von Samples, die für ein Blattknoten erforderlich sind.

Wir verwenden GridSearchCV, um die besten Hyperparameter zu finden. Hier definieren wir einen Parametergrid, der verschiedene Kombinationen der Hyperparameter enthält:

 from sklearn.model_selection import GridSearchCV# Modellinitialisierung dt_clf = DecisionTreeClassifier() # Hyperparameter-Tuning  param_grid = {'max_depth': [3, 5, 7, 10], 'min_samples_leaf': [1, 2, 4]}   grid_search = GridSearchCV(dt_clf, param_grid, cv=5, scoring='accuracy') 

Finden der besten Hyperparameter und Modelltraining

Mit der Methode fit führen wir das Training durch und suchen gleichzeitig nach den besten Hyperparametern:

 grid_search.fit(X_train, y_train)best_model = grid_search.best_estimator_ 

Das Modell best_model enthält jetzt die besten Hyperparameter, die während des GridSearchCV gefunden wurden. Dieses Modell kann nun verwendet werden, um Vorhersagen auf neuen Daten zu treffen.

Kompletter Code

 import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import GridSearchCV# Laden des Datensatzesdf = pd.read_csv('kunden_daten.csv')# Normalisierung der Featuresscaler = StandardScaler()df_normalisiert = scaler.fit_transform(df.drop('Ziel', axis=1))# Splitten in Trainings- und TestdatenX_train, X_test, y_train, y_test = train_test_split(df_normalisiert,                                                     df['Ziel'],test_size=0.2,  random_state=42)# Modellinitialisierungdt_clf = DecisionTreeClassifier()# Hyperparameter-Tuningparam_grid = {'max_depth': [3, 5, 7, 10], 'min_samples_leaf': [1, 2, 4]}grid_search = GridSearchCV(dt_clf, param_grid, cv=5, scoring='accuracy')# Finden der besten Hyperparametergrid_search.fit(X_train, y_train)best_model = grid_search.best_estimator_ 

Auswahl der besten Hyperparameter

Die besten Hyperparameter werden basierend auf der besten Genauigkeit während der Cross-Validation (cv) ausgewählt, die durch GridSearchCV durchgeführt wird. Es untersucht alle möglichen Kombinationen der definierten Hyperparameter und wählt diejenigen aus, die den besten Score (hier 'accuracy') liefern.

c)

(c) Bewerte Dein Modell auf dem Testdatensatz unter Verwendung von Metriken wie Genauigkeit, Präzision und Recall. Beschreibe, wie diese Metriken berechnet werden und was sie bedeuten. Implementiere den Code zur Berechnung dieser Metriken in Python. Visualisiere anschließend die Ergebnisse mit Matplotlib oder Seaborn.

from sklearn.metrics import accuracy_score, precision_score, recall_score, confusion_matrix  import matplotlib.pyplot as plt  import seaborn as sns  y_pred = best_model.predict(X_test)  # Berechnung der Metriken  accuracy = accuracy_score(y_test, y_pred)  precision = precision_score(y_test, y_pred)  recall = recall_score(y_test, y_pred)  print(f'Genauigkeit: {accuracy}')  print(f'Präzision: {precision}')  print(f'Recall: {recall}')  # Visualisierung der Konfusionsmatrix  cm = confusion_matrix(y_test, y_pred)  sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')  plt.xlabel('Vorhergesagt')  plt.ylabel('Wahr')  plt.show() 

Lösung:

Bewertung des Modells

Nachdem das Modell trainiert und die besten Hyperparameter gefunden wurden, müssen wir die Performance des Modells auf dem Testdatensatz bewerten. Dies erfolgt durch verschiedene Metriken wie Genauigkeit, Präzision und Recall.

Wichtige Metriken

  • Genauigkeit (Accuracy): Der Anteil der korrekt vorhergesagten Instanzen an allen Instanzen. Sie wird berechnet als:
\[ \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} \]
  • Präzision (Precision): Der Anteil der korrekt vorhergesagten positiven Instanzen an allen Instanzen, die als positiv vorhergesagt wurden. Sie wird berechnet als:
\[ \text{Precision} = \frac{TP}{TP + FP} \]
  • Recall (Sensitivität oder Trefferquote): Der Anteil der korrekt vorhergesagten positiven Instanzen an allen tatsächlich positiven Instanzen. Sie wird berechnet als:
\[ \text{Recall} = \frac{TP}{TP + FN} \]

Hierbei steht:

  • TP (True Positives): Die Anzahl der echten positiven Instanzen, die korrekt als positiv vorhergesagt wurden.
  • TN (True Negatives): Die Anzahl der echten negativen Instanzen, die korrekt als negativ vorhergesagt wurden.
  • FP (False Positives): Die Anzahl der negativen Instanzen, die fälschlicherweise als positiv vorhergesagt wurden.
  • FN (False Negatives): Die Anzahl der positiven Instanzen, die fälschlicherweise als negativ vorhergesagt wurden.

Berechnung der Metriken und Visualisierung

Wir berechnen die genannten Metriken mit scikit-learn und visualisieren die Konfusionsmatrix mit Matplotlib und Seaborn:

 from sklearn.metrics import accuracy_score, precision_score, recall_score, confusion_matrix import matplotlib.pyplot as plt import seaborn as sns # Vorhersagen y_pred = best_model.predict(X_test) # Berechnung der Metriken accuracy = accuracy_score(y_test, y_pred) precision = precision_score(y_test, y_pred) recall = recall_score(y_test, y_pred) print(f'Genauigkeit: {accuracy}') print(f'Präzision: {precision}') print(f'Recall: {recall}') # Visualisierung der Konfusionsmatrix cm = confusion_matrix(y_test, y_pred) sns.heatmap(cm, annot=True, fmt='d', cmap='Blues') plt.xlabel('Vorhergesagt') plt.ylabel('Wahr') plt.show() 

Der obige Code wird die Genauigkeit, Präzision und den Recall des Vorhersagemodells ausgeben und eine Konfusionsmatrix visualisieren.

Beschreibung der Metriken

  • Genauigkeit (Accuracy): Dieser Wert zeigt, wie gut das Modell insgesamt ist. Eine hohe Genauigkeit bedeutet, dass das Modell die meisten Instanzen korrekt klassifiziert.
  • Präzision (Precision): Dieser Wert ist besonders wichtig, wenn die Kosten für falsche Positive (FP) hoch sind. Eine hohe Präzision bedeutet, dass das Modell bei der Vorhersage positiver Instanzen wenig Fehler macht.
  • Recall (Sensitivität oder Trefferquote): Dieser Wert ist besonders wichtig, wenn die Kosten für falsche Negative (FN) hoch sind. Hoher Recall bedeutet, dass das Modell die meisten der tatsächlichen positiven Instanzen erkennt.

Diese Metriken geben uns einen umfassenden Überblick über die Performance des Modells und helfen uns, seine Stärken und Schwächen besser zu verstehen.

Aufgabe 4)

Du arbeitest an einem Machine Learning (ML) Projekt zur Vorhersage der Housing Prices in einer bestimmten Region. Du hast verschiedene Modelle in Betracht gezogen und möchtest nun eine fundierte Entscheidung über das beste Modell treffen, einschließlich der Optimierung der Hyperparameter und der Auswahl von relevanten Features.

a)

Analysiere die folgenden Modelle für die Aufgabe der Regression: Lineare Regression, Entscheidungsbäume und Random Forest. Diskutiere die jeweilgen Vor- und Nachteile der verschiedenen Modelle im Kontext der Housing Prices Vorhersage. Welche Modellmerkmale ergeben sich aus Deinen Überlegungen als besonders geeignet und warum?

Lösung:

Analyse der verschiedenen Modelle zur Vorhersage von Housing Prices

  • Lineare Regression:
    • Vorteile:
      • Einfach und schnell zu implementieren.
      • Gut interpretierbare Ergebnisse, da die Beziehung zwischen den Zielvariable und den Features linear ist.
      • Benötigt nur wenige Hyperparameter, was die Optimierung vereinfacht.
    • Nachteile:
      • Kann die Beziehung zwischen Variablen nur linear modellieren, was möglicherweise nicht komplex genug ist.
      • Anfällig für Ausreißer.
      • Kann bei Multikollinearität und nicht-linearen Beziehungen zu ungenauen Vorhersagen führen.
  • Entscheidungsbäume:
    • Vorteile:
      • Können nicht-lineare und komplexe Beziehungen zwischen Variablen erfassen.
      • Einfach zu visualisieren und interpretieren.
      • Keine Notwendigkeit von Skalierung der Daten.
    • Nachteile:
      • Neigen dazu, zu überanpassen, insbesondere bei tiefen Bäumen.
      • Sind empfindlich gegenüber kleinen Änderungen in den Daten.
      • Benötigen Hyperparameter-Tuning (z. B. max_depth, min_samples_split), um Überanpassung zu vermeiden.
  • Random Forest:
    • Vorteile:
      • Reduziert Überanpassung durch Aggregation der Vorhersagen mehrerer Bäume.
      • Hohe Genauigkeit und Robustheit gegenüber Ausreißern.
      • Kann mit nicht-linearen und komplexen Beziehungen umgehen.
      • Liefert Feature-Wichtigkeit-Scores, die bei der Feature-Auswahl helfen können.
    • Nachteile:
      • Höhere Berechnungskosten im Vergleich zu Einzelbaummodellen.
      • Schwerer zu interpretieren als Einzelentscheidungsbäume.
      • Benötigt Hyperparameter-Tuning (z. B. Anzahl der Bäume, max_features), um die Leistung zu maximieren.
Besonders geeignete Modellmerkmale: Nach Berücksichtigung der oben genannten Vor- und Nachteile ergeben sich Random Forests als besonders geeignet für die Vorhersage von Housing Prices. Dies liegt an ihrer hohen Genauigkeit, ihrer Fähigkeit, mit komplexen und nicht-linearen Beziehungen umzugehen, und ihrer Robustheit gegenüber Ausreißern. Zudem bieten sie eine eingebaute Methode zur Bewertung der Feature-Wichtigkeit, was sehr nützlich für die Feature-Auswahl sein kann.

b)

Beschreibe die Notwendigkeit des Hyperparameter-Tunings und die Methoden, die dafür verwendet werden können. Wähle eine Methode aus (z.B., Grid Search) und erkläre detailliert, wie Du sie für eines der oben genannten Modelle anwenden würdest, um die Leistung zu maximieren. Führe die notwendigen Schritte explizit aus und gehe auf potenzielle Herausforderungen bei der Implementierung ein.

Lösung:

Notwendigkeit des Hyperparameter-Tunings

  • Hyperparameter sind Parameter, deren Werte vor dem Training des Modells festgelegt werden und nicht aus den Trainingsdaten gelernt werden können.
  • Das richtige Tunen der Hyperparameter kann die Leistung des ML-Modells erheblich verbessern, indem es besser an die Daten angepasst wird und die Überanpassung reduziert wird.
Methoden des Hyperparameter-Tunings
  • Grid Search: Eine systematische Methode, die alle möglichen Kombinationen von Hyperparameter-Werten durchsucht.
  • Random Search: Eine zufällige Auswahl von Hyperparameter-Werten innerhalb eines definierten Bereichs.
  • Bayesian Optimization: Eine probabilistische Methode, die frühere Ergebnisse verwendet, um die nächsten Hyperparameter-Werte zu bestimmen.
  • Hyperband: Eine verbesserte Version der Random Search, die leistungsschwache Modelle während des Prozesses eliminiert, um Rechenzeit zu sparen.
Detailierte Erklärung der Grid Search Methode

Grid Search ist eine weit verbreitete Methode des Hyperparameter-Tunings, bei der alle möglichen Kombinationen von Hyperparameter-Werten aus einem vordefinierten Gitter durchsucht werden. Der Algorithmus trainiert das Modell für jede Kombination und bewertet die Leistung, meist durch Kreuzvalidierung. Hier sind die detaillierten Schritte, um Grid Search auf einen Random Forest anzuwenden:

  • Schritt 1: Importiere die nötigen Bibliotheken:
import numpy as npfrom sklearn.model_selection import GridSearchCVfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.datasets import load_bostonfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error
  • Schritt 2: Lade und teile die Daten:
  • # Beispiel funktioniert mit dem Boston Housing Datensatzdata = load_boston()X = data.datay = data.targetX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  • Schritt 3: Definiere den Random Forest Regressor und das Hyperparameter-Gitter:
  • rf = RandomForestRegressor()param_grid = {    'n_estimators': [50, 100, 200],    'max_features': ['auto', 'sqrt', 'log2'],    'max_depth' : [4, 6, 8],    'criterion' :['mse', 'mae']}
  • Schritt 4: Führe Grid Search durch:
  • grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')grid_search.fit(X_train, y_train)
  • Schritt 5: Analysiere die Ergebnisse:
  • print(f'Beste Parameter: {grid_search.best_params_}')best_rf = grid_search.best_estimator_y_pred = best_rf.predict(X_test)print(f'Mean Squared Error: {mean_squared_error(y_test, y_pred)}')
    Mögliche Herausforderungen
    • Rechenzeit: Grid Search kann sehr zeitaufwendig sein, insbesondere bei großen Datensätzen und vielen Hyperparametern.
    • Speicherbedarf: Bei großen Datensätzen kann das Speichern mehrerer Modelle einen erheblichen Speicherbedarf erfordern.
    • Kombinatorische Explosion: Die Anzahl der möglichen Hyperparameter-Kombinationen kann schnell wachsen, was das Grid Search Verfahren ineffizient machen kann.
    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