Skip to content

WARDROK/ML-Regression-Optimization-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SK.UMA.09 – Analiza Funkcji Uczących w Modelach Regresyjnych

Projekt zrealizowany w ramach przedmiotu Uczenie Maszynowe. Skupia się na autorskiej implementacji algorytmów optymalizacji oraz badaniu wpływu różnych hiperparametrów na proces uczenia modeli regresji liniowej (1D, nD) oraz wielomianowej.

Autorzy: Jakub Antas, Łukasz Szydlik


O Projekcie

Głównym celem projektu było zrozumienie matematycznych podstaw działania regresji. Zamiast polegać wyłącznie na gotowych rozwiązaniach, zaimplementowaliśmy własną klasę regresji obsługującą różne warianty optymalizacji i funkcje kosztu.

Kluczowe Funkcjonalności:

  • Metody optymalizacji: Batch Gradient Descent, Mini-batch Gradient Descent, Stochastic Gradient Descent (SGD).
  • Funkcje kosztu: MSE (Mean Squared Error), MAE (Mean Absolute Error), Huber Loss.
  • Transformacje: Standaryzacja cech (Z-score normalization) oraz transformacja wielomianowa cech.

Użyte Zbiory Danych

W projektach wykorzystano trzy zróżnicowane zestawy danych:

  1. Salary Dataset (1D): Prosta zależność między latami doświadczenia a wynagrodzeniem.
  2. Red Wine Quality (nD): Zbiór 11 cech fizykochemicznych określających jakość wina.
  3. Ice Cream Sales (Wielomianowa): Nieliniowa zależność sprzedaży od temperatury.

Struktura Eksperymentów

Projekt został podzielony na 8 szczegółowych eksperymentów:

  1. Walidacja 1D: Porównanie autorskiej implementacji z scikit-learn.
  2. Learning Rate ($\alpha$): Analiza stabilności zbieżności przy różnych krokach gradientu.
  3. Odporność na Outliery: Zachowanie funkcji kosztu w obecności anomalii.
  4. Warianty Gradient Descent: Porównanie stabilności Batch vs Mini-batch vs SGD.
  5. Regresja Wielowymiarowa (nD): Skalowanie modelu do wielu cech na zbiorze wina.
  6. Dynamika nD: Wpływ parametrów na złożone powierzchnie kosztu.
  7. Regresja Wielomianowa: Modelowanie krzywych stopnia 2 przy użyciu transformacji cech.
  8. Analiza Gęstości Błędów: Porównanie rozkładów residuów (KDE) dla różnych funkcji kosztu.

Kluczowe Wnioski

  • Standaryzacja: Jest absolutnie kluczowa dla regresji wielowymiarowej i wielomianowej – bez niej algorytmy gradientowe szybko stają się niestabilne.
  • Funkcja Hubera: Okazała się najbardziej wszechstronna – łączy szybkość zbieżności MSE (dla małych błędów) z odpornością na outliery charakterystyczną dla MAE.
  • Mini-batch GD: Stanowi najlepszy kompromis między stabilnością a kosztem obliczeniowym, szczególnie przy większych zbiorach danych.
  • Struktura Błędów: Analiza KDE wykazała, że modele optymalizowane pod MAE i Huber Loss mają tendencję do generowania błędów bardzo bliskich zeru częściej niż MSE.

Technologie

  • Język: Python 3.x
  • Biblioteki:
    • NumPy – obliczenia macierzowe i implementacja algorytmów.
    • Pandas – manipulacja zbiorami danych.
    • Matplotlib & Seaborn – wizualizacja wyników i rozkładów błędów.
    • Scikit-learn – wykorzystana wyłącznie do walidacji wyników (model referencyjny).

Struktura Projektu

.
├── Project.ipynb       # Pełny kod z eksperymentami i wykresami
├── images/             # Wygenerowane wykresy
└── docs/
    └── docs.pdf        # Dokumentacja końcowa
    └── docs.tex        # Źródło LaTeX dokumentacji

About

Investigating optimization algorithms, learning rate and loss functions behavior in 1D, nD, and Polynomial Regression.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors