diff --git a/Andrzej_Preibisz.md b/Andrzej_Preibisz.md new file mode 100644 index 0000000..9e018ed --- /dev/null +++ b/Andrzej_Preibisz.md @@ -0,0 +1,47 @@ +#### Opis problemu +Metodą uczenia, którą postanowiłem zaimplementować w projekcie były +drzewa decyzyjne. Pola reprezentujące regały, lub chłodziarki +różnią się między sobą temperaturą, oraz wilgotnością powietrza w danym miejscu. +Paczki z kolei mogą zawierać towary następujących rodzajów: + - towar zwykły(normal) + - mrożony(freezed) + - kruchy(fragile) + - łatwo niszczejący pod wpływem wilgoci (keep_dry) + - łatwopalne(flammable) + +Paczki zawierające określony rodzaj towarów mają pewne parametry +środowiskowe, w których zdecydowanie nie powinno się danego typu towaru +przechowywać. Jako przykład może posłużyć mrożone jedzenie, którego +stosunkowo szybko ulegnie pogorszeniu w temperaturze dodatniej, lub lakier, +który zdecydowanie nie powinien znaleźć się w części magazynu, gdzie panuje temperatura 30 stopni. + +Celem drzewa decyzyjnego jest w tym wypadku przewidzenie prawdopodobnej szansy na to, że towar po przechowywaniu +na danym regale przez dłuższy czas będzie w dobrym stanie. + +##### Zastosowane drzewo +Drzewa decyzyjne dzielą się ogólnie na dwa rodzaje - drzew klasyfikujących, lub drzew regresyjnych. +Drzewo klasyfikujące pozwala podzielić zmienna przewidywaną na kategorie, na przykład Tak i Nie. + +Drzewo regresyjne z kolei dostarczy nam informacji o średniej wartości zmiennej estymowanej przy +danej wartości atrybutów. + +W świecie projektu różny rodzaj towarów ma różne "progi", od których można go kłaść na regale X, +na przykład kładąc paczkę z lakierem/benzyną na regale lepiej mieć trochę większą pewność, że towar nie nagrzeje się nadmiernie, aniżeli +kładąc książkę - że nie zniszczeje od wilgoci. W związku z tym zamiast prostej odpowiedzi Tak/Nie na pytanie +czy dany obiekt można położyć na danym regale potrzebna była przewidywana wartość prawdopodobieństwa że w danym miejscu +zachowa się on w dobrym stanie. Wszystkie te progi wynoszą odpowiednio: +`` +PACKAGE_PLACE_TRESHOLD = { + "normal": 0.8, + "freezed": 0.85, + "fragile": 0.85, + "flammable": 0.9, + "keep_dry": 0.8 +} +`` +Zdecydowałem się więc na wybór drzewa regresyjnego. +Biblioteką której użyłem w celu implementacji drzewa jest scikit-learn. +Najważniejszym problemem oprócz dokładności oszacowań dokonanych przy pomocy drzewa było uniknięcie overfittingu(przepasowania), +czyli sytuacji, w której drzewo perfekcyjnie dopasuje się do danych ze zbioru uczącego, jednak +z danymi spoza tego zbioru poradzi sobie już dużo gorzej. Oprócz błędnej oceny danych innych niż ze zbioru uczącego sygnałem wskazującym na overfitting drzewa +jest zbyt duża jego głębokość drzewa (odległość od korzenia do najdalszego liścia), oraz liście zawierające tylko 1 rekord. \ No newline at end of file