Diabetes Prediction · Machine Learning · MATLAB

Entwicklung eines Neural Network Klassifikators zur Vorhersage von Diabetes — Training, Validierung und Evaluierung mit Confusion Matrix und ROC-Kurve.

GitHub Repository

Kontext & Motivation

Diabetes ist eine der häufigsten chronischen Erkrankungen weltweit — mit über 500 Millionen Betroffenen. Eine frühzeitige Diagnose ist entscheidend, um Komplikationen wie Herzerkrankungen, Nierenversagen und Erblindung zu verhindern. Machine Learning bietet hier eine vielversprechende Unterstützung für medizinische Fachkräfte.

Ziel dieses Projekts war es, ein binäres Klassifikationsmodell in MATLAB zu entwickeln, das auf Basis klinischer Patientendaten vorhersagt, ob ein Patient an Diabetes leidet.

Anwendungsbereich

Medizinische Diagnostik, klinische Entscheidungsunterstützung

Modelltyp

Neural Network — binäre Klassifikation (patternnet)

Werkzeuge

MATLAB, Deep Learning Toolbox, Statistics Toolbox

Dataset

Pima Indians Diabetes Dataset — 768 Patientinnen, 8 Features

1 — Datenbeschreibung

Der verwendete Datensatz basiert auf diagnostischen Messwerten von Patientinnen der Pima-Indianer-Bevölkerung (mindestens 21 Jahre alt).

Feature Einheit Beschreibung
PregnanciesAnzahlAnzahl der Schwangerschaften
Glucosemg/dlPlasmaglukose nach oralem Glukosetoleranztest
BloodPressuremm HgDiastolischer Blutdruck
SkinThicknessmmDicke der Trizeps-Hautfalte
InsulinμU/mlSerum-Insulin 2h nach Nahrungsaufnahme
BMIkg/m²Body-Mass-Index
DiabetesPedigreeMaß für familiäre Diabetesbelastung
AgeJahreAlter der Patientin
Outcome0 / 10 = kein Diabetes, 1 = Diabetes
Datensatz in MATLAB

2 — Modellentwicklung

Das Modell basiert auf einem künstlichen Neuron mit Sigmoid-Aktivierungsfunktion — dem Grundbaustein neuronaler Netze für binäre Klassifikation.

Künstliches Neuron \[ y = f\left(\sum_{i=1}^{n} x_i \cdot w_i + b\right) \]

wobei \( f \) die Sigmoid-Funktion ist:

\[ f(z) = \frac{1}{1 + e^{-z}} \]
SymbolBedeutungBeschreibung
\( x_i \)EingangsvariablenKlinische Patientendaten
\( w_i \)GewichteLernbare Parameter
\( b \)BiasVerschiebt die Entscheidungsgrenze
\( f \)AktivierungsfunktionSigmoid → Ausgabe zwischen 0 und 1
\( y \)AusgabeWahrscheinlichkeit für Diabetes

Netzwerkarchitektur

3 — Training, Validierung & Test

Der Datensatz wurde in drei Teile aufgeteilt, um Overfitting zu erkennen und die Generalisierungsfähigkeit des Modells zu bewerten.

Train / Validation / Test Split Training in MATLAB
SplitAnteilZweck
Training70 %Modell lernt Gewichte und Bias
Validation15 %Overfitting-Kontrolle während Training
Test15 %Finale Evaluierung auf ungesehenen Daten

4 — Ergebnisse & Evaluierung

Accuracy pro Dataset

78.1 %
Training Accuracy
78.3 %
Validation Accuracy
82.6 %
Test Accuracy
78.8 %
Overall Accuracy

Confusion Matrix

Confusion Matrix
DatasetAccuracyKlasse 0 (gesund)Klasse 1 (diabetisch)Bewertung
Training78.1 %57.1 %21.0 %Gutes Lernen, Klasse 1 schwach
Validation78.3 %59.1 %19.1 %Kein Overfitting
Test82.6 %55.7 %27.0 %Gute Generalisierung
Overall78.8 %57.2 %21.6 %Robustes Modell

ROC-Kurve

ROC All ROC Details
Das Modell zeigt kein Overfitting — Training, Validation und Test Accuracy sind ähnlich. Klasse 1 (diabetisch) wird schlechter erkannt als Klasse 0, was auf ein Klassenungleichgewicht im Datensatz hinweist. Dies ist ein bekanntes Problem beim Pima-Dataset.

5 — Zusammenfassung

Grenzen des Modells

Skills

MATLAB Machine Learning Neural Network Klassifikation Confusion Matrix ROC-Kurve Train/Val/Test Split Datennormalisierung Medizinische Daten Technische Dokumentation

6 — Ausblick