From e7013e72dcb0775b70053296cc0a980bbfd71dbb Mon Sep 17 00:00:00 2001 From: BBQ <renboqi@gmail.com> Date: Thu, 15 Aug 2019 13:44:58 +0200 Subject: [PATCH] fix activity inputs --- .../src/main/resources/starter.eraser | 2 +- .../MachineLearningImpl.java | 44 ++++++++++++++----- .../feedbackloop.learner_backup/Main.java | 4 +- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/eraser.starter/src/main/resources/starter.eraser b/eraser.starter/src/main/resources/starter.eraser index 54c810b1..e5a685fa 100644 --- a/eraser.starter/src/main/resources/starter.eraser +++ b/eraser.starter/src/main/resources/starter.eraser @@ -18,7 +18,7 @@ String Item: id="w_accel_y" label="" state="4.9320555" topic="w_accel_y"; String Item: id="w_accel_z" label="" state="8.145074" topic="w_accel_z"; String Item: id="w_rotation_x" label="" state="0.2374878" topic="w_rotation_x"; String Item: id="w_rotation_y" label="" state="-0.032836914" topic="w_rotation_y"; -String Item: id="w_rotation_z" label="" state="0.3381958" topic="w_rotation_y"; +String Item: id="w_rotation_z" label="" state="0.3381958" topic="w_rotation_z"; String Item: id="w_brightness" label="" state="bright" topic="w_brightness"; //String Item: id="activity" label="" state="lying" topic="activity"; Activity Item: id="activity" topic="activity"; diff --git a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java index eebc330d..65005d8b 100644 --- a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java +++ b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java @@ -25,6 +25,12 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn private List<Item> relevant_item_list; private String[] preference_result; + private String[] a_new_data = new String[12]; + private String[] p_new_data = new String[2]; + + private int a_length = 0; + boolean empty; + private Root root; private String activity_result; @@ -98,36 +104,52 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn or let knowledge base pass all relevant items <- push model */ if (this.goal == GOAL_ACTIVITY_PHONE_AND_WATCH) { - String[] new_data = new String[12]; - for (int i = 0; i < new_data.length; i++) { - new_data[i] = "0"; - } + for (Item item : changedItems) { + if(item.getID().equals("m_accel_x")) + { + a_length = 0; + } int i = 0; for (Item item1 : relevant_item_list) { if (item.getTopic().toString().equals(item1.getTopic().toString())) { - new_data[i] = item.getStateAsString(); + this.a_new_data[i] = item.getStateAsString(); } i++; } + a_length++; + } + if(a_length == 12){ + for (String value : a_new_data){ + if(value == null){ + empty = true; + } + } + if(!empty){ + this.activity_result = learner.activity_predictor(a_new_data); + } + a_length = 0; + for (int j=0; j < this.a_new_data.length; j++){ + this.a_new_data[j] = null; + } } - this.activity_result = learner.activity_predictor(new_data); } else if (this.goal == GOAL_PREFERENCE_BRIGHTNESS_IRIS) { - String[] new_data = new String[2]; for (Item item : changedItems) { if (root.getSmartHomeEntityModel().getActivityItem().equals(item)) { String test = item.getStateAsString(); int index = Math.round(Float.valueOf(test)); - new_data[0] = root.getMachineLearningRoot().getActivity(index).getLabel(); + this.p_new_data[0] = root.getMachineLearningRoot().getActivity(index).getLabel(); } if (item.getID().equals("w_brightness")) { - new_data[1] = item.getStateAsString(); + this.p_new_data[1] = item.getStateAsString(); } } - this.preference_result = learner.preference_predictor(new_data); + logger.info("debug_preference_new_data"); + logger.info(Arrays.toString(this.p_new_data)); + this.preference_result = learner.preference_predictor(this.p_new_data); logger.info("debug for p"); - logger.info(Arrays.toString(preference_result)); + logger.info(Arrays.toString(this.preference_result)); } } diff --git a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/Main.java b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/Main.java index f6de59fb..2759c6a8 100644 --- a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/Main.java +++ b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/Main.java @@ -124,10 +124,10 @@ public class Main { //System.out.println("perference is: "+ result[1]);**/ } public static void activity_validation_learner(){ - ReadCSV csv = new ReadCSV("datasets/backup/activity_data.csv", true, CSVFormat.DECIMAL_POINT); + ReadCSV csv = new ReadCSV("../datasets/backup/activity_data.csv", true, CSVFormat.DECIMAL_POINT); String[] line = new String[11]; Learner learner = new Learner(); - learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv"); + learner.train("../datasets/backup/activity_data.csv","../datasets/backup/preference_data.csv"); int wrong=0; int right=0; int i =0; -- GitLab