Newer
Older
Dieses Projekt ist Teil einer Bachelorarbeit und implementiert eine Datenanalyse. Es verwendet verschiedene Python-Bibliotheken zur Verarbeitung von Daten, zur Erstellung von Visualisierungen und zur Modellierung von Empfehlungsalgorithmen.
Die Ziele des Projekts umfassen:
- Verarbeitung und Bereinigung von Datensätzen
- Analyse der Daten mit statistischen und visuellen Methoden
Um dieses Projekt auszuführen, benötigen Sie:
- Python 3.9 oder höher
- Zugriff auf die in `requirements.txt` definierten Python-Bibliotheken
Die folgenden Pakete werden verwendet:
- `numpy==1.24.3`: Numerische Berechnungen
- `pandas==1.5.3`: Datenverarbeitung und Manipulation
- `matplotlib==3.7.1`: Erstellung von Diagrammen und Visualisierungen
- `seaborn==0.12.2`: Erweiterte Datenvisualisierung
- `scikit-learn==1.2.2`: Machine-Learning-Bibliothek
- `kagglehub==0.1.4`: Zugriff auf Kaggle-Daten
git clone https://git.imp.fu-berlin.de/alhamdam94/empfehlungsalgorithmen-durch-matrixfaktorisierung.git
cd Empfehlungsalgorithmen durch Matrixfaktorisierung
1. **Daten herunterladen**:
- Das Skript lädt den MovieLens 1M-Datensatz automatisch aus dem Internet herunter und bereitet ihn für die Analyse vor. Dafür wird die Datei `ratings.dat` extrahiert und in einen DataFrame konvertiert.
2. **Matrix vorbereiten**:
- Die ursprüngliche Bewertungsmatrix wird erstellt und NaN-Werte werden behandelt:
- Für ALS (Alternating Least Squares) bleiben NaN-Werte erhalten, um fehlende Daten zu modellieren.
- Für SVD (Singular Value Decomposition) werden NaN-Werte durch den Spaltenmittelwert ersetzt.
3. **Rekonstruktionsalgorithmen**:
- **Alternating Least Squares (ALS)**:
- Es wird ein einfacher ALS-Algorithmus implementiert, der latente Benutzer- und Item-Features optimiert.
- **Singular Value Decomposition (SVD)**:
- Es wird eine klassische SVD durchgeführt, um die Matrix zu rekonstruieren.
4. **Bewertungsmessung**:
- Die Güte der rekonstruierten Matrix wird anhand von MAE (Mean Absolute Error) und RMSE (Root Mean Squared Error) auf einem Testdatensatz gemessen.
5. **Visualisierungen**:
- Es werden verschiedene Diagramme und Analysen erstellt:
- Vergleich von MAE und RMSE zwischen ALS und SVD.
- Scatterplots der tatsächlichen Bewertungen vs. vorhergesagten Bewertungen.
- Verteilungen der vorhergesagten Bewertungen und Residuenanalyse.
- Heatmaps der Differenzen zwischen Original- und rekonstruierten Bewertungen.
- Korrektheit der Vorhersagen in einer binären Heatmap.
- Beliebtheit von Filmen und Bewertungen pro Benutzer.
- Zeitverlauf der abgegebenen Bewertungen pro Monat.
6. **Zusätzliche Analysen**:
- Rekonstruktion mit variierenden latenten Dimensionen (z. B. k=5, 10, 15, ...).
- Untersuchung des Speicherverbrauchs und der Laufzeit für SVD.
- Visualisierung latenter Dimensionen in 2D-Scatterplots.
7. **3D-Visualisierung**:
- Ein 3D-Plot zeigt den Zusammenhang zwischen latenten Dimensionen, Iterationen und RMSE.
8. **Konfusionsmatrix**:
- Es werden Konfusionsmatrizen erstellt, um die Vorhersagegenauigkeit für jede Bewertung (1–5) zu visualisieren.
9. **Long-Tail-Analyse**:
- Untersuchung der Popularität von Filmen und des Bewertungsverhaltens von Benutzern, einschließlich einer Zeitreihenanalyse.
### Ausführung
- Führen Sie das Skript direkt aus:
```bash
python bachelorarbeit_1.py
## Funktionen
- **Datenbereinigung**:
- Entfernen von Ausreißern
- Umgang mit fehlenden Werten (z. B. Imputation)
- Normalisierung oder Standardisierung von Daten
- **Explorative Datenanalyse (EDA)**:
- Erstellung von Histogrammen, Boxplots und Korrelationsmatrizen
- Identifikation von Datenmustern und Anomalien
- **Ergebnisvisualisierung**:
- Diagramme zur Darstellung von Modellmetriken
- Visualisierung der Vorhersagen
## Hinweise
- **Datenquellen**: Stellen Sie sicher, dass die Daten korrekt formatiert sind.
- **Leistungsoptimierung**: Für größere Datensätze können Sie parallele Verarbeitung oder GPU-Beschleunigung verwenden, falls erforderlich.