From 63596f20f272130b2884bae522e220903dc2ece4 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 26 May 2023 10:52:02 +0200 Subject: [PATCH] trained decision tree --- .gitignore | 1 + collect | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ collect.pdf | Bin 0 -> 13985 bytes main.py | 22 +++++++++++- 4 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 collect create mode 100644 collect.pdf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d7901e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/__pycache__ \ No newline at end of file diff --git a/collect b/collect new file mode 100644 index 0000000..668d904 --- /dev/null +++ b/collect @@ -0,0 +1,101 @@ +digraph Tree { +node [shape=box, fontname="helvetica"] ; +edge [fontname="helvetica"] ; +0 [label="distance <= 14.5\ngini = 0.484\nsamples = 200\nvalue = [118, 82]\nclass = collect"] ; +1 [label="paid_on_time <= 0.5\ngini = 0.437\nsamples = 93\nvalue = [30, 63]\nclass = no-collect"] ; +0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ; +2 [label="gini = 0.0\nsamples = 9\nvalue = [9, 0]\nclass = collect"] ; +1 -> 2 ; +3 [label="fuel <= 1508.0\ngini = 0.375\nsamples = 84\nvalue = [21, 63]\nclass = no-collect"] ; +1 -> 3 ; +4 [label="gini = 0.0\nsamples = 7\nvalue = [7, 0]\nclass = collect"] ; +3 -> 4 ; +5 [label="space_occupied <= 0.856\ngini = 0.298\nsamples = 77\nvalue = [14, 63]\nclass = no-collect"] ; +3 -> 5 ; +6 [label="days_since_last_collection <= 4.5\ngini = 0.187\nsamples = 67\nvalue = [7, 60]\nclass = no-collect"] ; +5 -> 6 ; +7 [label="fuel <= 11519.5\ngini = 0.48\nsamples = 5\nvalue = [3, 2]\nclass = collect"] ; +6 -> 7 ; +8 [label="gini = 0.0\nsamples = 3\nvalue = [3, 0]\nclass = collect"] ; +7 -> 8 ; +9 [label="gini = 0.0\nsamples = 2\nvalue = [0, 2]\nclass = no-collect"] ; +7 -> 9 ; +10 [label="fuel <= 16955.0\ngini = 0.121\nsamples = 62\nvalue = [4, 58]\nclass = no-collect"] ; +6 -> 10 ; +11 [label="garbage_weight <= 0.612\ngini = 0.094\nsamples = 61\nvalue = [3, 58]\nclass = no-collect"] ; +10 -> 11 ; +12 [label="odour_intensity <= 5.682\ngini = 0.5\nsamples = 2\nvalue = [1, 1]\nclass = collect"] ; +11 -> 12 ; +13 [label="gini = 0.0\nsamples = 1\nvalue = [1, 0]\nclass = collect"] ; +12 -> 13 ; +14 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1]\nclass = no-collect"] ; +12 -> 14 ; +15 [label="garbage_type <= 2.5\ngini = 0.065\nsamples = 59\nvalue = [2, 57]\nclass = no-collect"] ; +11 -> 15 ; +16 [label="gini = 0.0\nsamples = 46\nvalue = [0, 46]\nclass = no-collect"] ; +15 -> 16 ; +17 [label="garbage_weight <= 15.925\ngini = 0.26\nsamples = 13\nvalue = [2, 11]\nclass = no-collect"] ; +15 -> 17 ; +18 [label="fuel <= 13561.0\ngini = 0.444\nsamples = 3\nvalue = [2, 1]\nclass = collect"] ; +17 -> 18 ; +19 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0]\nclass = collect"] ; +18 -> 19 ; +20 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1]\nclass = no-collect"] ; +18 -> 20 ; +21 [label="gini = 0.0\nsamples = 10\nvalue = [0, 10]\nclass = no-collect"] ; +17 -> 21 ; +22 [label="gini = 0.0\nsamples = 1\nvalue = [1, 0]\nclass = collect"] ; +10 -> 22 ; +23 [label="garbage_type <= 1.0\ngini = 0.42\nsamples = 10\nvalue = [7, 3]\nclass = collect"] ; +5 -> 23 ; +24 [label="gini = 0.0\nsamples = 2\nvalue = [0, 2]\nclass = no-collect"] ; +23 -> 24 ; +25 [label="odour_intensity <= 8.841\ngini = 0.219\nsamples = 8\nvalue = [7, 1]\nclass = collect"] ; +23 -> 25 ; +26 [label="gini = 0.0\nsamples = 6\nvalue = [6, 0]\nclass = collect"] ; +25 -> 26 ; +27 [label="distance <= 7.0\ngini = 0.5\nsamples = 2\nvalue = [1, 1]\nclass = collect"] ; +25 -> 27 ; +28 [label="gini = 0.0\nsamples = 1\nvalue = [1, 0]\nclass = collect"] ; +27 -> 28 ; +29 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1]\nclass = no-collect"] ; +27 -> 29 ; +30 [label="odour_intensity <= 7.156\ngini = 0.292\nsamples = 107\nvalue = [88, 19]\nclass = collect"] ; +0 -> 30 [labeldistance=2.5, labelangle=-45, headlabel="False"] ; +31 [label="garbage_weight <= 49.659\ngini = 0.116\nsamples = 81\nvalue = [76, 5]\nclass = collect"] ; +30 -> 31 ; +32 [label="days_since_last_collection <= 24.5\ngini = 0.095\nsamples = 80\nvalue = [76, 4]\nclass = collect"] ; +31 -> 32 ; +33 [label="gini = 0.0\nsamples = 65\nvalue = [65, 0]\nclass = collect"] ; +32 -> 33 ; +34 [label="distance <= 19.0\ngini = 0.391\nsamples = 15\nvalue = [11, 4]\nclass = collect"] ; +32 -> 34 ; +35 [label="fuel <= 6122.0\ngini = 0.444\nsamples = 6\nvalue = [2, 4]\nclass = no-collect"] ; +34 -> 35 ; +36 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0]\nclass = collect"] ; +35 -> 36 ; +37 [label="gini = 0.0\nsamples = 4\nvalue = [0, 4]\nclass = no-collect"] ; +35 -> 37 ; +38 [label="gini = 0.0\nsamples = 9\nvalue = [9, 0]\nclass = collect"] ; +34 -> 38 ; +39 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1]\nclass = no-collect"] ; +31 -> 39 ; +40 [label="days_since_last_collection <= 13.5\ngini = 0.497\nsamples = 26\nvalue = [12, 14]\nclass = no-collect"] ; +30 -> 40 ; +41 [label="gini = 0.0\nsamples = 8\nvalue = [8, 0]\nclass = collect"] ; +40 -> 41 ; +42 [label="distance <= 20.0\ngini = 0.346\nsamples = 18\nvalue = [4, 14]\nclass = no-collect"] ; +40 -> 42 ; +43 [label="gini = 0.0\nsamples = 8\nvalue = [0, 8]\nclass = no-collect"] ; +42 -> 43 ; +44 [label="distance <= 24.0\ngini = 0.48\nsamples = 10\nvalue = [4, 6]\nclass = no-collect"] ; +42 -> 44 ; +45 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0]\nclass = collect"] ; +44 -> 45 ; +46 [label="space_occupied <= 0.243\ngini = 0.375\nsamples = 8\nvalue = [2, 6]\nclass = no-collect"] ; +44 -> 46 ; +47 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0]\nclass = collect"] ; +46 -> 47 ; +48 [label="gini = 0.0\nsamples = 6\nvalue = [0, 6]\nclass = no-collect"] ; +46 -> 48 ; +} diff --git a/collect.pdf b/collect.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0bc379927db21cbde9a5f095addac35482cbcb4f GIT binary patch literal 13985 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 VtNnYQ=owiV-*=>u2+0V;{U16f^3VVP literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 2c9e7a5..3123f69 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,11 @@ import pygame import random +import pandas as pd +from sklearn import tree +from sklearn.preprocessing import LabelEncoder +import graphviz + + from astar import astar from state import State import time @@ -71,12 +77,26 @@ def draw_window(agent, fields, flip): def main(): + train_data = pd.read_csv('./data_set.csv') + attributes = train_data.drop('collect', axis='columns') + e_type = LabelEncoder() + attributes['type_num'] = e_type.fit_transform(attributes['garbage_type']) + attr_encoded = attributes.drop(['garbage_type'], axis='columns') + attr_names = ['fuel','distance','space_occupied','days_since_last_collection','paid_on_time','odour_intensity','garbage_weight', 'garbage_type'] + label_names = ['collect', 'no-collect'] + label = train_data['collect'] + print(attr_encoded) + print(label) + classifier = tree.DecisionTreeClassifier() + classifier.fit(attr_encoded, label) + dot_data = tree.export_graphviz(classifier, out_file=None, feature_names=attr_names, class_names=label_names) + graph = graphviz.Source(dot_data) + graph.render('collect') clock = pygame.time.Clock() run = True x, y = [0, 0] agent = GarbageTruck(0, 0, pygame.Rect(x, y, 50, 50), 0) # tworzenie pola dla agenta fields, priority_array = randomize_map() - print(priority_array) final_x, final_y = [100, 300] while run: clock.tick(FPS)