https://github.com/benjikazzooe/brustkrebs_vorhersage
Brustkrebs-Diagnose mit ML
https://github.com/benjikazzooe/brustkrebs_vorhersage
classification confusion-matrix data-science k-nearest-neighbours logistic-regression machine-learning medical random-forest support-vector-machine
Last synced: 2 months ago
JSON representation
Brustkrebs-Diagnose mit ML
- Host: GitHub
- URL: https://github.com/benjikazzooe/brustkrebs_vorhersage
- Owner: BenjiKazzooe
- Created: 2025-01-29T18:04:04.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-01-29T18:19:40.000Z (8 months ago)
- Last Synced: 2025-04-06T21:16:54.716Z (6 months ago)
- Topics: classification, confusion-matrix, data-science, k-nearest-neighbours, logistic-regression, machine-learning, medical, random-forest, support-vector-machine
- Homepage:
- Size: 5.86 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Brustkrebs-Diagnose mit Maschinellem Lernen
Dieses Projekt nutzt verschiedene Machine-Learning-Modelle zur Diagnose von Brustkrebs basierend auf dem **Breast Cancer Wisconsin (Diagnostic) Data Set**. Es werden **Logistische Regression, Support Vector Machine, Random Forest und K-Nearest Neighbors** verwendet, um die Klassifikationsleistung zu vergleichen.
## đ Daten
Die Daten stammen aus dem Kaggle-Datensatz: [Breast Cancer Wisconsin (Diagnostic) Data Set](https://www.kaggle.com/uciml/breast-cancer-wisconsin-data).- **Merkmale (Features):**
- Dies sind verschiedene diagnostische Messwerte aus einer Zellkernanalyse, die dabei helfen, zwischen gutartigen (harmlosen) und bösartigen (gefÀhrlichen) Tumoren zu unterscheiden.
- Wichtigste Merkmale laut Feature-Importance-Analyse:
1. `area_worst` â GröĂte gemessene ZellkernflĂ€che.
2. `radius_worst` â GröĂter gemessener Radius des Zellkerns.
3. `concave points_worst` â Anzahl der konkaven (nach innen gewölbten) Punkte des Zellkerns.
4. `perimeter_worst` â GröĂter gemessener Umfang des Zellkerns.
5. `concave points_mean` â Durchschnittliche Anzahl der konkaven Punkte.
Diese Merkmale sind besonders wichtig, weil gröĂere und unregelmĂ€Ăig geformte Zellkerne oft ein Hinweis auf bösartige Tumoren sind.- **Zielvariable (Target):**
- `diagnosis` (B = gutartig, M = bösartig)## đ Modellierung & Ergebnisse
Die Daten wurden in **80% Trainings- und 20% Testdaten** aufgeteilt und normalisiert. FĂŒr Random Forest wurde eine **Grid Search** zur Optimierung der Hyperparameter durchgefĂŒhrt.### đ Confusion Matrices
Eine Confusion Matrix zeigt die Leistung eines Klassifikationsmodells, indem sie die richtigen und falschen Vorhersagen in einer Tabelle zusammenfasst.- **True Positives (TP):** Richtig als bösartig erkannt
- **False Positives (FP):** FÀlschlicherweise als bösartig erkannt
- **True Negatives (TN):** Richtig als gutartig erkannt
- **False Negatives (FN):** FĂ€lschlicherweise als gutartig erkannt**Logistische Regression:**
```
[[70 1]
[ 2 41]]
```
- 70 gutartige FĂ€lle richtig erkannt (TN)
- 1 gutartiger Fall fÀlschlicherweise als bösartig klassifiziert (FP)
- 2 bösartige FÀlle nicht erkannt (FN)
- 41 bösartige FÀlle richtig erkannt (TP)**Support Vector Machine:**
```
[[71 0]
[ 2 41]]
```
- Perfekte Klassifikation der gutartigen FĂ€lle (71 TN, 0 FP)
- 2 bösartige FÀlle wurden nicht erkannt (FN)
- 41 bösartige FÀlle korrekt erkannt (TP)**Random Forest:**
```
[[70 1]
[ 3 40]]
```
- 70 gutartige FĂ€lle richtig erkannt (TN)
- 1 gutartiger Fall fÀlschlicherweise als bösartig klassifiziert (FP)
- 3 bösartige FÀlle nicht erkannt (FN)
- 40 bösartige FÀlle richtig erkannt (TP)**K-Nearest Neighbors:**
```
[[68 3]
[ 3 40]]
```
- 68 gutartige FĂ€lle richtig erkannt (TN)
- 3 gutartige FÀlle fÀlschlicherweise als bösartig klassifiziert (FP)
- 3 bösartige FÀlle nicht erkannt (FN)
- 40 bösartige FĂ€lle richtig erkannt (TP)### đ Modellevaluation
Die Leistung der Modelle wurde anhand verschiedener Metriken bewertet:- **Train Accuracy (Trainingsgenauigkeit):** Gibt an, wie gut das Modell auf den Trainingsdaten funktioniert.
- **Test Accuracy (Testgenauigkeit):** Zeigt, wie gut das Modell auf neuen (unbekannten) Daten arbeitet.
- **Precision (PrÀzision):** Wie viele der vorhergesagten bösartigen Tumore tatsÀchlich bösartig sind.
- **Recall (Empfindlichkeit):** Wie viele der tatsÀchlichen bösartigen Tumore richtig erkannt wurden.
- **F1 Score:** Eine Kombination aus PrĂ€zision und Recall â ein guter Indikator fĂŒr das Gleichgewicht zwischen den beiden.
- **AUC-ROC:** Zeigt, wie gut das Modell zwischen gutartigen und bösartigen Tumoren unterscheiden kann.| Model | Train Accuracy | Test Accuracy | Precision | Recall | F1 Score | AUC-ROC |
|------------------------|---------------|--------------|-----------|--------|----------|---------|
| Logistic Regression | 0.987 | 0.974 | 0.976 | 0.953 | 0.965 | 0.997 |
| Support Vector Machine| 0.989 | 0.982 | 1.000 | 0.953 | 0.976 | 0.997 |
| Random Forest | 1.000 | 0.965 | 0.976 | 0.930 | 0.952 | 0.997 |
| K-Nearest Neighbors | 0.982 | 0.947 | 0.930 | 0.930 | 0.930 | 0.981 |## đ Nutzung
1. **Installiere AbhÀngigkeiten:**
```bash
pip install -r requirements.txt
```
2. **FĂŒhre das Skript aus:**
```bash
python breast_cancer_classification.py
```## đ Technologien
- **Python (3.x)**
- `pandas`, `numpy`, `scikit-learn`
- `GridSearchCV` zur Hyperparameter-Optimierung## đ Fazit
Die **Support Vector Machine (SVM)** erzielte die höchste Testgenauigkeit (98.2%) mit einer perfekten PrÀzision (1.0). Auch die anderen Modelle lieferten starke Ergebnisse, insbesondere **Random Forest**, das mit AUC-ROC 0.997 gut abschnitt.---
đ **Autor:** Sir Mölli