Diabetes Prediction · Machine Learning · MATLAB

Entwicklung eines Neural Network Klassifikators zur Vorhersage von Diabetes(auf Basis klinischer Dataset 768 Patientinnen) : Training, Validierung und Evaluierung mit Confusion Matrix und ROC-Kurve.

GitHub Repository

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
DiabetesPedigree—Maß 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

Techs

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