Cześć,

Machine Learning przydaje się do rozwiązywania skomplikowanych problemów. Możemy je podzielić na główne grupy. Jedną z tych grup jest regresja (ang. regression), czyli znajdowanie zależności jakiegoś parametru od innych. Wykorzystywane jest to na przykład do określenia od czego i jak zależą ceny mieszkań. Zrobimy właśnie taki projekt.

Na stronie Kaggle dostępny jest krótki kurs, oparty na danych z amerykańskiego rynku nieruchomości. Zawiera on dane o cenach mieszkań w różnych miastach i różnych parametrach tych mieszkań (jak np. rok budowy czy liczba łazienek). Pokazany jest proces znajdowania zależności cen takich mieszkań za pomocą modeli Machine Learning.

Omówione są w nim takie zagadnienia jak:

Eksploracja danych 

Musimy dokładnie poznać i zrozumieć dostępne dane, jakie cechy są dostępne (np. rok budowy, liczba łazienek), czy są tam jakieś braki albo rozbieżności, jak wygląda rozkład cen (np. czy więcej jest tanich czy drogich mieszkań) – im lepiej poznamy dane tym większa szansa na stworzenie poprawnego modelu – takie dostępne cechy danych to features.

Walidacja modelu

Mając do dyspozycji dane, należy podzielić je na dwie części, dzięki temu będziemy mogli wykorzystać część danych do sprawdzenia, czy model który zrobiliśmy bazując na części danych działa też poprawnie na danych, które nie były użyte do jego trenowania. Są różne metody walidacji, tutaj poznajemy MAE (mean absolute error) – czyli średnio o ile dolarów nasz model się pomylił

  • Dane do trenowania modelu – ok 80%
  • Dane do testowania modelu – ok 20%

Under Fitting 

Sytuacja w której nasz model jest zbyt słabo wytrenowany, np. wybraliśmy za mało cech i decyzja o cenie zależy np. tylko od roku budowy (nie bierzemy pod uwagę np. lokalizacji mieszkania) – model słabo sobie radzi nawet na danych użytych do trenowania.

Overfitting 

Sytuacja w której nasz model jest “przetrenowany”, np. wybraliśmy za dużo cech i decyzja o cenie zależy np. od koloru drzwi wejściowych (bo akurat mieliśmy dostępne takie dane) – model radzi sobie super na danych użytych do trenowania ale bardzo słabo na nowych danych

Jest to pewnego rodzaju sztuka, jak dobrać parametry modelu aby model nie był wytrenowany zbyt słabo ani też “przetrenowany”. Jest to bardzo ciekawy kurs i poznajemy nowe koncepty Machine Learning. Zachęcam Cię do przejścia przez niego.

Całość jest w języku Python i poznajemy przydatne biblioteki:

  • Pandas – biblioteka do analizy i obróbki danych. Bardzo przydatna. Umożliwia np. czytanie danych z pliku CSV, wyciąganie kolumn, usuwanie błędnych danych
  • SciKit Learn – biblioteka zawierająca algorytmy do budowania modeli. Główna część projektu. Umożliwia budowanie, trenowanie, walidację modeli. W kursie stosujemy algorytmy DecisionTreeRegressor i RandomForestRegressor a także train_test_split

Link do kursu: https://www.kaggle.com/learn/intro-to-machine-learning

Jeżeli preferujesz wideo to do kursu są nagrane filmiki: https://www.youtube.com/playlist?list=PLqFaTIg4myu9-T-fat2zjC5HmTpSybNfa

Strona Kaggle jest bardzo przyjemna. Prowadzi krok po kroku przez poznawanie świata Machine Learning. Co ważne mają gotowe zbiory danych. Są także dane dla Polski (https://www.kaggle.com/datasets?search=poland). Warto rzucić okiem 🙂

Paweł

Wpis pochodzi z newslettera. Jeżeli chcesz dostawać podobne informacje na swojego mejla uzupełnij poniższy formularz. W każdej chwili możesz się wypisać.

Newsletter Droga Programisty

Informacje o nowych postach i ciekawych projektach.

Please wait...

Dziękuję za dołączenia do newslettera.