Prześlij pliki do ''
Decision Tree
This commit is contained in:
parent
8396b810bb
commit
9a6768a89d
56
TaskQueuing.md
Normal file
56
TaskQueuing.md
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# Kolejkowanie zadań
|
||||||
|
|
||||||
|
**Metoda uczenia:** Drzewa decyzyjne
|
||||||
|
**Autor:** Dominik Zawadzki
|
||||||
|
|
||||||
|
Funkcja kolejkowania zadań jak i drzewo decyzyjne znajdują się w pliku:
|
||||||
|
```sh
|
||||||
|
decisionTree.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Funkcje drzewa decyzyjnego:
|
||||||
|
```sh
|
||||||
|
BuildDf(self)
|
||||||
|
```
|
||||||
|
Buduje Data Frame złożony z trzech atrybutów:
|
||||||
|
1. actionName - nazwa zadania
|
||||||
|
2. distance - dystans pomiędzy kelnerem a stolikiem
|
||||||
|
3. priority - priorytet danej akcji
|
||||||
|
|
||||||
|
```sh
|
||||||
|
FindPriorityEntropy(self,df)
|
||||||
|
```
|
||||||
|
Oblicza entropie dla priorytetu za pomocą wzoru:
|
||||||
|
* ent = pi * log2pi
|
||||||
|
gdzie i oznacza wartośc priorytetu i = {0, 1, 2, 3, 4}
|
||||||
|
|
||||||
|
```sh
|
||||||
|
FindAttributesEntropy(self, df, attribute)
|
||||||
|
```
|
||||||
|
Zwraca entropie danego w parametrze atrybutu, gdzie jako prawdopodobieństwo liczona jest ilość wystąpień tego atrybutu w kolejnych priorytetach.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
FindWinner(self, df):
|
||||||
|
```
|
||||||
|
Zwraca atrubut o najwyższym info gain wyliczanym na podstawie wzoru:
|
||||||
|
* ent(pr) - ent(atr)
|
||||||
|
gdzie ent(pr) - entropia po priorytecie
|
||||||
|
a ent(atr) - entropia atrybutu po uwzględnieniu priorytetu
|
||||||
|
|
||||||
|
```sh
|
||||||
|
BuildTree(self, df, tree=None)
|
||||||
|
```
|
||||||
|
Rekurencyjna funkcja budująca drzewo decyzyjne. Na początek wyznaczamy atrybut o najwyższym info gain, a następnie budowane jest z niego poddrzewo, jeśli dane poddrzewo jest "puste", dodajemy je do drzewa i kończymy, bo drzewo zostało zbudowane, jesli nie to funkcja wywołuje samą siebie biorąc za parametr poddrzewo.
|
||||||
|
|
||||||
|
## Funkcje kolejkowania zadań:
|
||||||
|
```sh
|
||||||
|
TasksList(self, name, coordinate):
|
||||||
|
```
|
||||||
|
Funkcja oblicza dystans dzielący kelnera od stolika i razem z nazwą zadania dodawane jest do listy zadań.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Queue(self, tasksList):
|
||||||
|
```
|
||||||
|
W tej funkcji wykorzystywane jest drzewo decyzyjne.
|
||||||
|
Dla każdego zadanie z listy zadań pętla idzie po odpowiednich wierzchołkach i odnajduje priorytet, który z poprzednimi parametrami dodawany jest do listy stanowiącej kolejkę zadań.
|
||||||
|
Na koniec funkcji kolejka jest sortowana po priorytecie.
|
Loading…
Reference in New Issue
Block a user