Regresja liniowa wielu zmiennych - Kaggle Competition

Dla danych i opisu na stronie: https://inclass.kaggle.com/c/amu-umz-1

Należy utworzyć model regresji liniowej (a może wielomianowej?) cen mieszkań w Poznaniu. Zestaw danych to 5000 aktualnych opisów (zebranych w poniedziałek) ze strony gratka.pl.

Należy pracować w zespołach dwuosobowych, najlepszych pięć zespołów otrzyma 50 dodatkowych punktów.

Miarą błędu na danych testowych to średnia kwadratowa błędu (Root Mean Squared Error, RMSE) dla cen mieszkań, czyli:

$$ RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^n\left(y_i-\hat{y}_i\,\right)^2} $$

Format rozwiązania

Zobacz plik rowiazanie.csv, pierwsza kolumna to ID oferty, druga to przewidziana cena w PLN. Separatorem jest przecinek. Należy umieścić w pliku nagłówki "Id,Predicted".

Opis plików

  • train.csv - Dane trenujące, na ich podstawie budujemy model regresyjny.
  • testset.nosolution.csv - Dane testujące, dane bez kolumny z cenami, ceny należy wygenerować na podstawie podanych informacji.
  • rozwiazanie.csv - Testowe rozwiązanie ilustrujace wymagania formatowe, odpowiedzi wygenerowano losowo.

Pola danych

  • Id - Numer porządkowy oferty
  • Expected - Cena, którą należy przewidzieć, czyli wartości Y
  • Rooms - Liczba pokoi
  • SqrMeters - Metraż mieszkania
  • Floor - Piętro
  • Location - Dzielnica lub adres w Poznaniu
  • Description - Fragment opisu mieszkania

Zadania:

  1. Dla pierwszych 500 mieszkań z train.csv utwórz wykres złożony z trzech umieszczonych obok siebie wykresów punktowych ilustrujących po kolei korelację cech liczby pokoi, metrażu i piętra mieszkania z ceną mieszkań.
    1. Zadbaj o poprawne tytuły na osiach.
    2. Opisz w trzech zdaniach wnioski.
    3. Uwaga: Dane są danymi rzeczywistymi, może się pojawić szum. Opisz czy wystąpiły błędne dane, jak psują wykres oraz jak je usunięto.
  2. Podziel dane z train.csv na dwie części, po 4000 i 1000 wpisów.
    1. Za pomocą macierzy normalnej lub innej metody optymalizacyjnej zbuduj model regresyjny dla pierwszej większej cześci.
    2. Zastosuj tak stworzony model (parametry $\theta$) do pozostałych 1000 wierszy danych.
    3. Oblicz RMSE dla drugiej cześci danych.
    4. Eksperymentuj z doborem cech, aby uzyskać jak najmniejszy RMSE (Oprócz oczywistych cech numerycznych jak metraż, cechy mogą być kombinacjami innych cech, lub symbolicznymi cechami opisującymi występowanie wyrazów, itp.)
  3. Wykorzystując całość danych z train.csv:
    1. Stwórz nowy model regresyjny i oblicz ceny mieszkań dla danych z pliku test.nosolution.csv.
    2. Zapisz dane w takiej postaći jak w pliku przykładowym rozwiazanie.csv

In [ ]: