Merge pull request 'complete decision tree' (#23) from d_tree into main
Reviewed-on: s473601/Machine_learning_2023#23 Reviewed-by: Tim Barvenov <timbar@st.amu.edu.pl>
This commit is contained in:
commit
3fe4b6f2e1
@ -1,22 +1,200 @@
|
|||||||
1-2-3-4-5;1-green 2-yellow 3-orange 4-black 5-while 6-blue;in dB 0-100;0-24;0/1;in cm;in C;0/1
|
1 2 3 4 5;1 2 3 4 5 6 7 8 9;in db 0-100;0/1;0/1;in cm;in C;0-7;0/1
|
||||||
Size;Color;Sound;Time;Smell;Height;Temperature;ToRemove
|
Size;Color;Sound;Sharp;Smell;Length;Temperature;Weight;ToRemove
|
||||||
1;2;0;16;1;10;25;1
|
1;1;0;0;0;2;22;0;1
|
||||||
2;1;0;12;0;50;24;0
|
1;2;0;0;0;2;22;0;1
|
||||||
2;3;30;13;1;38;38;0
|
1;3;0;0;0;2;22;0;1
|
||||||
1;4;0;7;1;5;27;1
|
1;4;0;0;0;2;22;0;1
|
||||||
1;2;0;16;1;10;25;1
|
1;5;0;0;0;2;22;0;1
|
||||||
2;1;0;12;0;50;24;0
|
1;6;0;0;0;2;22;0;1
|
||||||
2;3;30;13;1;38;38;0
|
1;7;0;0;0;2;22;0;1
|
||||||
1;4;0;7;1;5;27;1
|
1;8;0;0;0;2;22;0;1
|
||||||
1;2;0;16;1;10;25;1
|
1;9;0;0;0;2;22;0;1
|
||||||
2;1;0;12;0;50;24;0
|
1;2;0;0;1;3;25;0;1
|
||||||
2;3;30;13;1;38;38;0
|
1;2;0;0;1;4;25;0;1
|
||||||
1;4;0;7;1;5;27;1
|
1;2;0;0;1;5;25;0;1
|
||||||
1;2;0;16;1;10;25;1
|
2;2;0;0;1;3;25;0;1
|
||||||
2;1;0;12;0;50;24;0
|
2;2;0;0;1;4;25;0;1
|
||||||
2;3;30;13;1;38;38;0
|
2;2;0;0;1;5;25;0;1
|
||||||
1;4;0;7;1;5;27;1
|
2;2;0;0;1;6;25;0;1
|
||||||
1;2;0;16;1;10;25;1
|
3;2;0;0;1;3;25;0;1
|
||||||
2;1;0;12;0;50;24;0
|
1;7;0;0;1;3;25;2;1
|
||||||
2;3;30;13;1;38;38;0
|
1;6;0;0;1;4;25;2;1
|
||||||
1;4;0;7;1;5;27;1
|
1;6;0;0;1;5;25;2;1
|
||||||
|
1;6;0;0;1;2;25;2;1
|
||||||
|
2;6;0;0;1;2;25;3;1
|
||||||
|
2;6;0;0;1;3;25;3;1
|
||||||
|
2;6;0;0;1;4;25;3;1
|
||||||
|
2;6;0;0;1;5;25;3;1
|
||||||
|
3;6;0;0;1;2;25;4;1
|
||||||
|
2;1;0;0;0;20;24;1;0
|
||||||
|
2;2;0;0;0;20;24;1;0
|
||||||
|
2;3;0;0;0;20;24;1;0
|
||||||
|
2;4;0;0;0;20;24;1;0
|
||||||
|
2;5;0;0;0;20;24;1;0
|
||||||
|
2;6;0;0;0;20;24;1;0
|
||||||
|
2;7;0;0;0;20;24;1;0
|
||||||
|
2;8;0;0;0;20;24;1;0
|
||||||
|
2;9;0;0;0;20;24;1;0
|
||||||
|
1;1;0;1;0;1;20;0;0
|
||||||
|
1;2;0;1;0;1;20;0;0
|
||||||
|
1;3;0;1;0;1;20;0;0
|
||||||
|
1;4;0;1;0;1;20;0;0
|
||||||
|
1;5;0;1;0;1;20;0;0
|
||||||
|
1;6;0;1;0;1;20;0;0
|
||||||
|
1;7;0;1;0;1;20;0;0
|
||||||
|
1;8;0;1;0;1;20;0;0
|
||||||
|
2;4;0;0;0;14;22;1;0
|
||||||
|
1;2;0;0;1;6;24;1;1
|
||||||
|
2;2;0;0;1;6;24;1;1
|
||||||
|
1;2;0;0;1;5;24;1;1
|
||||||
|
3;1;4;0;0;18;24;2;0
|
||||||
|
3;2;4;0;0;18;24;2;0
|
||||||
|
3;3;4;0;0;18;24;2;0
|
||||||
|
3;4;4;0;0;18;24;2;0
|
||||||
|
3;5;4;0;0;18;24;2;0
|
||||||
|
3;6;4;0;0;18;24;2;0
|
||||||
|
3;7;4;0;0;18;24;2;0
|
||||||
|
3;8;4;0;0;18;24;2;0
|
||||||
|
3;9;4;0;0;18;24;2;0
|
||||||
|
4;3;20;0;1;32;37;5;0
|
||||||
|
4;4;20;0;1;32;37;5;0
|
||||||
|
4;5;20;0;1;32;37;5;0
|
||||||
|
4;6;20;0;1;32;37;5;0
|
||||||
|
5;3;25;0;1;40;37;6;0
|
||||||
|
5;4;25;0;1;40;37;6;0
|
||||||
|
5;5;25;0;1;40;37;6;0
|
||||||
|
5;6;25;0;1;40;37;6;0
|
||||||
|
1;5;0;0;0;20;22;2;0
|
||||||
|
1;5;0;0;0;30;22;2;0
|
||||||
|
1;5;0;0;0;40;22;2;0
|
||||||
|
1;5;0;0;0;50;22;2;0
|
||||||
|
1;4;0;0;0;20;22;2;0
|
||||||
|
1;4;0;0;0;30;22;2;0
|
||||||
|
1;4;0;0;0;40;22;2;0
|
||||||
|
1;4;0;0;0;50;22;2;0
|
||||||
|
2;5;0;0;0;20;22;2;0
|
||||||
|
2;5;0;0;0;30;22;2;0
|
||||||
|
2;5;0;0;0;40;22;2;0
|
||||||
|
2;4;0;0;0;20;22;2;0
|
||||||
|
2;4;0;0;0;30;22;2;0
|
||||||
|
2;4;0;0;0;40;22;2;0
|
||||||
|
1;5;0;0;1;2;24;0;1
|
||||||
|
1;3;0;0;0;13;23;0;1
|
||||||
|
1;4;0;0;0;13;23;0;1
|
||||||
|
1;5;0;0;0;13;23;0;1
|
||||||
|
1;6;0;0;0;13;23;0;1
|
||||||
|
1;3;0;0;0;14;23;0;1
|
||||||
|
1;4;0;0;0;14;23;0;1
|
||||||
|
1;5;0;0;0;14;23;0;1
|
||||||
|
1;6;0;0;0;14;23;0;1
|
||||||
|
1;3;0;0;0;15;23;0;1
|
||||||
|
1;4;0;0;0;15;23;0;1
|
||||||
|
1;5;0;0;0;15;23;0;1
|
||||||
|
1;6;0;0;0;15;23;0;1
|
||||||
|
1;1;0;1;0;3;22;1;1
|
||||||
|
1;2;0;1;0;3;22;1;1
|
||||||
|
1;3;0;1;0;3;22;1;1
|
||||||
|
1;4;0;1;0;3;22;1;1
|
||||||
|
1;5;0;1;0;3;22;1;1
|
||||||
|
1;6;0;1;0;3;22;1;1
|
||||||
|
1;7;0;1;0;3;22;1;1
|
||||||
|
1;8;0;1;0;3;22;1;1
|
||||||
|
1;9;0;1;0;3;22;1;1
|
||||||
|
2;1;0;1;0;7;22;1;0
|
||||||
|
2;2;0;1;0;7;22;1;0
|
||||||
|
2;3;0;1;0;7;22;1;0
|
||||||
|
2;4;0;1;0;7;22;1;0
|
||||||
|
2;5;0;1;0;7;22;1;0
|
||||||
|
2;6;0;1;0;7;22;1;0
|
||||||
|
2;7;0;1;0;7;22;1;0
|
||||||
|
2;8;0;1;0;7;22;1;0
|
||||||
|
2;9;0;1;0;7;22;1;0
|
||||||
|
3;3;10;0;1;24;36;3;0
|
||||||
|
3;4;10;0;1;24;36;3;0
|
||||||
|
3;5;10;0;1;24;36;3;0
|
||||||
|
3;6;10;0;1;24;36;3;0
|
||||||
|
1;1;0;0;0;2;20;1;0
|
||||||
|
1;2;0;0;0;2;20;1;0
|
||||||
|
1;3;0;0;0;2;20;1;0
|
||||||
|
1;4;0;0;0;2;20;1;0
|
||||||
|
1;5;0;0;0;2;20;1;0
|
||||||
|
1;6;0;0;0;2;20;1;0
|
||||||
|
1;7;0;0;0;2;20;1;0
|
||||||
|
1;8;0;0;0;2;20;1;0
|
||||||
|
1;9;0;0;0;2;20;1;0
|
||||||
|
2;1;0;0;1;2;24;0;1
|
||||||
|
2;2;0;0;1;2;24;0;1
|
||||||
|
2;3;0;0;1;2;24;0;1
|
||||||
|
2;7;0;0;1;2;24;0;1
|
||||||
|
2;8;0;0;1;2;24;0;1
|
||||||
|
2;9;0;0;1;2;24;0;1
|
||||||
|
1;5;0;0;0;2;22;0;1
|
||||||
|
1;5;0;0;0;3;22;0;1
|
||||||
|
1;5;0;0;0;4;22;0;1
|
||||||
|
1;6;0;0;0;2;22;0;1
|
||||||
|
1;6;0;0;0;3;22;0;1
|
||||||
|
1;6;0;0;0;4;22;0;1
|
||||||
|
2;5;0;0;0;2;22;0;1
|
||||||
|
2;5;0;0;0;3;22;0;1
|
||||||
|
2;5;0;0;0;4;22;0;1
|
||||||
|
2;6;0;0;0;2;22;0;1
|
||||||
|
2;6;0;0;0;3;22;0;1
|
||||||
|
2;6;0;0;0;4;22;0;1
|
||||||
|
2;1;0;0;0;2;20;0;0
|
||||||
|
2;2;0;0;0;2;20;0;0
|
||||||
|
2;3;0;0;0;2;20;0;0
|
||||||
|
2;4;0;0;0;2;20;0;0
|
||||||
|
2;5;0;0;0;2;20;0;0
|
||||||
|
2;6;0;0;0;2;20;0;0
|
||||||
|
2;7;0;0;0;2;20;0;0
|
||||||
|
2;8;0;0;0;2;20;0;0
|
||||||
|
2;9;0;0;0;2;20;0;0
|
||||||
|
2;1;0;0;1;3;22;0;1
|
||||||
|
2;2;0;0;1;3;22;0;1
|
||||||
|
2;3;0;0;1;3;22;0;1
|
||||||
|
2;4;0;0;1;3;22;0;1
|
||||||
|
2;5;0;0;1;3;22;0;1
|
||||||
|
2;6;0;0;1;3;22;0;1
|
||||||
|
2;7;0;0;1;3;22;0;1
|
||||||
|
2;8;0;0;1;3;22;0;1
|
||||||
|
2;9;0;0;1;3;22;0;1
|
||||||
|
3;1;0;0;0;16;23;3;0
|
||||||
|
3;2;0;0;0;16;23;3;0
|
||||||
|
3;3;0;0;0;16;23;3;0
|
||||||
|
3;4;0;0;0;16;23;3;0
|
||||||
|
3;5;0;0;0;16;23;3;0
|
||||||
|
3;6;0;0;0;16;23;3;0
|
||||||
|
3;7;0;0;0;16;23;3;0
|
||||||
|
3;8;0;0;0;16;23;3;0
|
||||||
|
3;9;0;0;0;16;23;3;0
|
||||||
|
1;5;0;0;0;2;23;0;1
|
||||||
|
1;5;0;0;0;3;23;0;1
|
||||||
|
1;5;0;0;0;4;23;0;1
|
||||||
|
1;5;0;0;0;5;23;0;1
|
||||||
|
1;5;0;0;0;6;23;0;1
|
||||||
|
2;5;0;0;0;3;23;0;1
|
||||||
|
2;5;0;0;0;4;23;0;1
|
||||||
|
2;5;0;0;0;5;23;0;1
|
||||||
|
2;5;0;0;0;6;23;0;1
|
||||||
|
2;5;0;0;0;2;23;0;1
|
||||||
|
2;5;0;0;1;4;26;1;1
|
||||||
|
3;5;0;0;1;4;26;2;1
|
||||||
|
1;7;0;1;0;1;22;0;1
|
||||||
|
1;7;0;1;0;1;22;0;1
|
||||||
|
4;1;0;0;1;30;21;4;0
|
||||||
|
4;1;0;0;1;25;21;4;0
|
||||||
|
1;6;0;0;1;1;22;0;1
|
||||||
|
1;6;0;0;1;1;22;1;1
|
||||||
|
4;3;30;0;1;50;36;4;0
|
||||||
|
5;3;30;0;1;50;36;4;0
|
||||||
|
1;1;0;0;0;9;22;0;0
|
||||||
|
1;8;0;0;0;9;22;0;0
|
||||||
|
3;1;0;0;0;25;22;2;0
|
||||||
|
3;2;0;0;0;25;22;2;0
|
||||||
|
3;3;0;0;0;25;22;2;0
|
||||||
|
3;4;0;0;0;25;22;2;0
|
||||||
|
3;5;0;0;0;25;22;2;0
|
||||||
|
3;6;0;0;0;25;22;2;0
|
||||||
|
3;7;0;0;0;25;22;2;0
|
||||||
|
3;8;0;0;0;25;22;2;0
|
||||||
|
3;9;0;0;0;25;22;2;0
|
||||||
|
|
Binary file not shown.
@ -6,13 +6,13 @@ import joblib
|
|||||||
|
|
||||||
pima = pd.read_csv("data.csv", header=1, delimiter=';')
|
pima = pd.read_csv("data.csv", header=1, delimiter=';')
|
||||||
|
|
||||||
feature_cols = ['Size', 'Color', 'Sound', 'Time','Smell', 'Height','Temperature']
|
feature_cols = ['Size', 'Color', 'Sound', 'Sharp','Smell', 'Length','Temperature', 'Weight']
|
||||||
X = pima[feature_cols]
|
X = pima[feature_cols]
|
||||||
y = pima.ToRemove
|
y = pima.ToRemove
|
||||||
|
|
||||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
|
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
|
||||||
clf = DecisionTreeClassifier()
|
clf = DecisionTreeClassifier()
|
||||||
clf = clf.fit(X_train,y_train)
|
clf = clf.fit(X_train.values, y_train)
|
||||||
|
|
||||||
joblib.dump(clf, 'decision_tree_model.pkl')
|
joblib.dump(clf, 'decision_tree_model.pkl')
|
||||||
|
|
||||||
|
@ -21,10 +21,12 @@ class VacuumMoveCommand(Command):
|
|||||||
if not self.world.accepted_move(end_x, end_y):
|
if not self.world.accepted_move(end_x, end_y):
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.world.is_garbage_at(end_x, end_y):
|
tmp = self.world.is_garbage_at(end_x, end_y)
|
||||||
if self.vacuum.get_container_filling() < 100:
|
if len(tmp) > 0:
|
||||||
self.vacuum.increase_container_filling()
|
for t in tmp:
|
||||||
self.world.dust[end_x][end_y].pop()
|
if self.vacuum.get_container_filling() < 1000:
|
||||||
|
self.vacuum.increase_container_filling()
|
||||||
|
self.world.dust[end_x][end_y].remove(t)
|
||||||
|
|
||||||
if self.world.is_docking_station_at(end_x, end_y):
|
if self.world.is_docking_station_at(end_x, end_y):
|
||||||
self.vacuum.dump_trash()
|
self.vacuum.dump_trash()
|
||||||
|
@ -14,4 +14,4 @@ class Cat(Entity):
|
|||||||
self.sleeping = False
|
self.sleeping = False
|
||||||
self.direction = 0
|
self.direction = 0
|
||||||
|
|
||||||
self.props = [1,2,0,16,1,10,25]
|
self.props = [4,2,20,0,1,32,37,5]
|
@ -5,4 +5,4 @@ from domain.world import World
|
|||||||
class Earring(Entity):
|
class Earring(Entity):
|
||||||
def __init__(self, x: int, y: int):
|
def __init__(self, x: int, y: int):
|
||||||
super().__init__(x, y, "EARRING")
|
super().__init__(x, y, "EARRING")
|
||||||
self.props = [2,1,0,12,0,50,24]
|
self.props = [1,9,0,1,0,1,20,0]
|
@ -6,6 +6,6 @@ class Garbage(Entity):
|
|||||||
super().__init__(x, y, "PEEL")
|
super().__init__(x, y, "PEEL")
|
||||||
self.wet = False
|
self.wet = False
|
||||||
self.size = 0
|
self.size = 0
|
||||||
self.props = [1,2,0,16,1,10,25]
|
self.props = [2,2,0,0,1,4,24,1]
|
||||||
|
|
||||||
# TODO GARBAGE: add more properties
|
# TODO GARBAGE: add more properties
|
||||||
|
@ -32,11 +32,10 @@ class World:
|
|||||||
def is_obstacle_at(self, x: int, y: int) -> bool:
|
def is_obstacle_at(self, x: int, y: int) -> bool:
|
||||||
return bool(self.obstacles[x][y])
|
return bool(self.obstacles[x][y])
|
||||||
|
|
||||||
def is_garbage_at(self, x: int, y: int) -> bool:
|
def is_garbage_at(self, x: int, y: int):
|
||||||
if len(self.dust[x][y]) == 0:
|
if len(self.dust[x][y]) == 0:
|
||||||
return False
|
return []
|
||||||
tmp = evaluate([self.dust[x][y][0].props])
|
return [i for i in self.dust[x][y] if evaluate([i.props])[0] == 1]
|
||||||
return bool(tmp[0])
|
|
||||||
|
|
||||||
def is_docking_station_at(self, x: int, y: int) -> bool:
|
def is_docking_station_at(self, x: int, y: int) -> bool:
|
||||||
return bool(self.doc_station.x == x and self.doc_station.y == y)
|
return bool(self.doc_station.x == x and self.doc_station.y == y)
|
||||||
|
2
main.py
2
main.py
@ -150,7 +150,9 @@ def generate_world(tiles_x: int, tiles_y: int) -> World:
|
|||||||
world.add_entity(Entity(3, 4, "PLANT2"))
|
world.add_entity(Entity(3, 4, "PLANT2"))
|
||||||
world.add_entity(Entity(8, 8, "PLANT2"))
|
world.add_entity(Entity(8, 8, "PLANT2"))
|
||||||
world.add_entity(Entity(9, 3, "PLANT3"))
|
world.add_entity(Entity(9, 3, "PLANT3"))
|
||||||
|
world.add_entity(Earring(9, 7))
|
||||||
world.add_entity(Earring(5, 5))
|
world.add_entity(Earring(5, 5))
|
||||||
|
world.add_entity(Earring(4, 6))
|
||||||
|
|
||||||
|
|
||||||
for x in range(world.width):
|
for x in range(world.width):
|
||||||
|
Loading…
Reference in New Issue
Block a user