cd Empfehlungsalgorithmen durch Matrixfaktorisierung
cd Empfehlungsalgorithmen durch Matrixfaktorisierung
## Verwendung
## Verwendung
1. **Daten vorbereiten**:
1. **Daten herunterladen**:
- Stellen Sie sicher, dass die benötigten Eingabedaten vorhanden sind. Falls das Projekt mit externen Datensätzen (z. B. von Kaggle) arbeitet, platzieren Sie diese in den vorgesehenen Ordnern oder geben Sie deren Pfade an.
- 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.
- Falls Kaggle-Daten verwendet werden, melden Sie sich mit der Bibliothek `kagglehub` an, um Daten herunterzuladen.
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.
2. **Skript ausführen**:
5. **Visualisierungen**:
- Starten Sie das Hauptskript `bachelorarbeit_1-2.py`:
- Es werden verschiedene Diagramme und Analysen erstellt:
```bash
- Vergleich von MAE und RMSE zwischen ALS und SVD.
python bachelorarbeit_1-2.py
- 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.
3. **Parameter anpassen**:
6. **Zusätzliche Analysen**:
- Öffnen Sie das Skript in einem Code-Editor und passen Sie die Konfigurationsparameter an, falls erforderlich. Typische Anpassungen können sein:
- Rekonstruktion mit variierenden latenten Dimensionen (z. B. k=5, 10, 15, ...).
- Dateipfade für Eingabedaten
- Untersuchung des Speicherverbrauchs und der Laufzeit für SVD.
- Auswahl der zu analysierenden Spalten
- Visualisierung latenter Dimensionen in 2D-Scatterplots.
- Parameter für Machine-Learning-Modelle (z. B. Testgröße, Algorithmenwahl)
4. **Funktionen verwenden**:
7. **3D-Visualisierung**:
- Das Skript führt die folgenden Schritte aus:
- Ein 3D-Plot zeigt den Zusammenhang zwischen latenten Dimensionen, Iterationen und RMSE.
- **Datenbereinigung**: Automatisches Behandeln von fehlenden Werten und Ausreißern.
- **Explorative Datenanalyse (EDA)**: Erstellung von Statistiken und Visualisierungen.
- **Modelltraining**: Training eines Machine-Learning-Modells (z. B. Klassifikation oder Regression).
- **Evaluation**: Anzeige von Modellmetriken wie Genauigkeit, Präzision oder F1-Score.
- **Visualisierung**: Darstellung von Ergebnissen, wie z. B. Diagramme oder Modellvorhersagen.
5. **Ergebnisse interpretieren**:
8. **Konfusionsmatrix**:
- Nach Abschluss des Skripts werden die Ergebnisse (z. B. Visualisierungen, Metriken) im Terminal ausgegeben oder als Dateien gespeichert.
- Es werden Konfusionsmatrizen erstellt, um die Vorhersagegenauigkeit für jede Bewertung (1–5) zu visualisieren.
6. **Erweiterung des Codes**:
9. **Long-Tail-Analyse**:
- Falls spezifische Analysen oder Modelle erforderlich sind, kann der Code leicht erweitert werden. Nutzen Sie die Dokumentation der verwendeten Bibliotheken (`numpy`, `pandas`, `scikit-learn`, etc.) für weitere Funktionen.
- 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
## Funktionen
...
@@ -76,18 +94,13 @@ Die folgenden Pakete werden verwendet:
...
@@ -76,18 +94,13 @@ Die folgenden Pakete werden verwendet:
- Erstellung von Histogrammen, Boxplots und Korrelationsmatrizen
- Erstellung von Histogrammen, Boxplots und Korrelationsmatrizen
- Identifikation von Datenmustern und Anomalien
- Identifikation von Datenmustern und Anomalien
- **Machine-Learning-Modelle**:
- Unterstützung für Klassifikations- und Regressionsmodelle
- Modelle wie Entscheidungsbäume, Random Forests, Support Vector Machines und mehr
- Cross-Validation zur Evaluierung der Modelle
-**Ergebnisvisualisierung**:
-**Ergebnisvisualisierung**:
- Diagramme zur Darstellung von Modellmetriken
- Diagramme zur Darstellung von Modellmetriken
- Visualisierung der Vorhersagen
- Visualisierung der Vorhersagen
## Hinweise
## Hinweise
- **Datenquellen**: Stellen Sie sicher, dass die Daten korrekt formatiert sind. Verwenden Sie CSV-, JSON- oder ähnliche Dateiformate.
-**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.
-**Leistungsoptimierung**: Für größere Datensätze können Sie parallele Verarbeitung oder GPU-Beschleunigung verwenden, falls erforderlich.