raport update
This commit is contained in:
parent
1231a8f914
commit
7cadde5b3d
@ -23,13 +23,13 @@ Piotr Jakub Dębski 01.06.2020
|
|||||||
- pydot
|
- pydot
|
||||||
oraz dodatkowo:
|
oraz dodatkowo:
|
||||||
- graphviz
|
- graphviz
|
||||||
za pomocą którego wygenerowane została reprezentacja wizualna drzew decyzyjnych
|
za pomocą którego wygenerowane została reprezentacja wizualna modelów drzew decyzyjnych
|
||||||
food_tree.pdf oraz drink_tree.pdf znajdujących się w folderze graphs.
|
food_tree.pdf oraz drink_tree.pdf znajdujących się w folderze graphs.
|
||||||
|
|
||||||
### Dane
|
### Dane
|
||||||
|
|
||||||
Dane na których podstawie algorytm ma stworzyć modele drzew decyzyjnych umieszczone zostały w
|
Dane na których podstawie algorytm ma stworzyć modele drzew decyzyjnych umieszczone zostały
|
||||||
pliku learning_db.py i podzielone na 6 binarnych kategorii:
|
w pliku learning_db.py i podzielone na 6 binarnych kategorii:
|
||||||
- gender - płeć ( M - mężczyzna K - kobieta )
|
- gender - płeć ( M - mężczyzna K - kobieta )
|
||||||
- age - wiek ( Adult - dorosły Child - dziecko )
|
- age - wiek ( Adult - dorosły Child - dziecko )
|
||||||
- outfit - ubiór ( Casual - codzienny Elegant - reprezentacyjny )
|
- outfit - ubiór ( Casual - codzienny Elegant - reprezentacyjny )
|
||||||
@ -37,37 +37,41 @@ Piotr Jakub Dębski 01.06.2020
|
|||||||
- vege - dieta wegetariańska ( "Yes" "No" )
|
- vege - dieta wegetariańska ( "Yes" "No" )
|
||||||
- time - czas ( "Afternoon" - popołudnie "Evening" - wieczór )
|
- time - czas ( "Afternoon" - popołudnie "Evening" - wieczór )
|
||||||
oraz na 2 kategorie, które mają zostać sklasyfikowane :
|
oraz na 2 kategorie, które mają zostać sklasyfikowane :
|
||||||
- food - dania ( 35 wyborów )
|
- food - dania ( 10 wyborów )
|
||||||
- drink - napoje ( 8 wyborów )
|
- drink - napoje ( 5 wyborów )
|
||||||
Dane zawierają 200 przykładów.
|
Dane zawierają 200 przykładów.
|
||||||
|
|
||||||
### Tworzenie drzewa
|
### Tworzenie drzewa
|
||||||
|
|
||||||
1. Za pomocą funkcji pandas.DataFrame() program łączy ze sobą wszystkie przykłady w
|
1. Za pomocą funkcji pandas.DataFrame() program łączy ze sobą wszystkie przykłady w
|
||||||
dwuwymiarową strukturę danych o wymiarach 9x200 (kategorie+index)x(przykłady).
|
dwuwymiarową strukturę danych o wymiarach 9x200 (kategorie+index)x(przykłady).
|
||||||
2. Za pomocą funkcji pandas.factorize() program dostosowuje dane w każdej kolumnie do naszych
|
2. Za pomocą funkcji pandas.factorize() program dostosowuje dane w każdej kolumnie do
|
||||||
potrzeb i obliczeń.
|
naszych potrzeb i obliczeń.
|
||||||
3. Następnie model danych zostaje podzielony na X - zbiór przykładów oraz y - odpowiadający
|
3. Następnie model danych zostaje podzielony na X - zbiór przykładów oraz y - odpowiadający
|
||||||
przykładom wynik czyli rodzaj dania.
|
przykładom wynik czyli rodzaj dania.
|
||||||
4. Zestaw danych zostaje podzielony na testowy dzięki funkcji train_test_split()
|
4. Zestaw danych zostaje podzielony na testowy dzięki funkcji train_test_split()
|
||||||
( 25% - food , 40% - drink) i treningowy ( 75% - food , 60% - drink )
|
( 10% - food , 40% - drink) i treningowy ( 55% - food , 45% - drink )
|
||||||
5. Dzięki funkcji DecisionTreeClassifier() oraz tą samą funkcją z argumentem wymagającym przyjęcia
|
5. Dzięki funkcji DecisionTreeClassifier() oraz tą samą funkcją z argumentem wymagającym
|
||||||
do kryterium entropii tworzą się dwa klasyfikatory (wyniki będą porównywane by wybrać
|
przyjęcia do kryterium entropii tworzą się dwa klasyfikatory (wyniki będą porównywane by
|
||||||
dokładniejszą metodę)
|
wybrać dokładniejszą metodę)
|
||||||
6. Zestaw treningowy przekazany zostaje do funkcji fit() dzięki czemu można teraz
|
6. Zestaw treningowy przekazany zostaje do funkcji fit() dzięki czemu można teraz
|
||||||
przeprowadzić predykcję za pomocą funkcji predict(), której w miejsce argumentu wprowadzamy
|
przeprowadzić predykcję za pomocą funkcji predict(), której w miejsce argumentu wprowadzamy
|
||||||
zestaw testowy.
|
zestaw testowy.
|
||||||
7. W wyniku wielokrotnych porównań dokładności funkcji predict() na klasyfikatorach, entropia
|
7. W wyniku wielokrotnych porównań dokładności funkcji predict() na klasyfikatorach,
|
||||||
okazuje się lepszym kryterium od indeksu Giniego na zadanym zestawie danych, więc model drzewa
|
entropia okazuje się lepszym kryterium od indeksu Giniego na zadanym zestawie danych, więc
|
||||||
korzystający z tego kryterium zostaje zapisany do użycia w głównym ciele projektu.
|
model drzewa korzystający z tego kryterium zostaje zapisany do późniejszego stosowania.
|
||||||
8. Kroki 3-7 zostały powtórzone dla drzewa napojów, a odpowiednie wizualizacje drzew decyzyjnych
|
8. Kroki 3-7 zostały powtórzone dla drzewa napojów, a odpowiednie wizualizacje drzew
|
||||||
zapisane są w folderze graphs.
|
decyzyjnych zapisane są w folderze graphs.
|
||||||
|
|
||||||
### Synchronizacja w projekcie
|
### Synchronizacja w projekcie
|
||||||
|
|
||||||
Modele food_model i drink_model zostaną załadowane do programu z folderu models.
|
Modele food_model i drink_model zostaną załadowane do programu z folderu models.
|
||||||
Do obsługi stworzonego modelu stworzona jest klasa Client oraz funkcja client_ordering(ctr)
|
Do obsługi stworzonego modelu stworzona jest klasa Client oraz funkcja client_ordering(clt)
|
||||||
Klasa Client poprzez swój konstruktor automatycznie losuje wszystkie cechy, na podstawie
|
Klasa Client poprzez swój konstruktor automatycznie losuje wszystkie cechy oraz pobiera
|
||||||
których funkcja predict() wybiera danie oraz napój, natomiast funkcja client_ordering(ctr) wymaga
|
aktualną godzinę, natomiast funkcja client_ordering(clt) wymaga w swoim argumencie
|
||||||
w swoim argumencie posiadania obiektu klasy Client, z której pobierze wszystkie wartości cech
|
posiadania obiektu klasy Client, z której pobierze wszystkie wartości cech i przeniesie je
|
||||||
i przeniesie je do funkcji predict() zwracając otrzymane wyniki.
|
do funkcji predict() zwracając otrzymane przez klienta zamówienie.
|
||||||
|
<!--stackedit_data:
|
||||||
|
eyJoaXN0b3J5IjpbLTc0NzY1NDM0MiwxMDUxMDAwNjk2LDExNT
|
||||||
|
Q5MzU2MTZdfQ==
|
||||||
|
-->
|
Loading…
Reference in New Issue
Block a user