Skip to content
Snippets Groups Projects
Commit e81f3469 authored by BBQ's avatar BBQ Committed by René Schöne
Browse files

update benchmark und learner for csv header

parent 9d6583f0
No related branches found
No related tags found
1 merge request!19dev to master
...@@ -38,20 +38,14 @@ public class Benchmark { ...@@ -38,20 +38,14 @@ public class Benchmark {
private static final Logger logger = LogManager.getLogger(Benchmark.class); private static final Logger logger = LogManager.getLogger(Benchmark.class);
private static final String ERASER_ITEM_URI = "http://localhost:4567/model/items/"; private static final String ERASER_ITEM_URI = "http://localhost:4567/model/items/";
//TODO ITEM_NAME HAS TO BE DISCUSSED //TODO ITEM_NAME HAS TO BE DISCUSSED
private static final String[] ACTIVITY_ITEM_NAME = { private static String[] ACTIVITY_ITEM_NAME;
"m_accel_x", "m_accel_y", "m_accel_z", "m_rotation_x", private static String[] PREFERENCE_ITEM_NAME;
"m_rotation_y", "m_rotation_z", "w_accel_x", "w_accel_y",
"w_accel_z", "w_rotation_x", "w_rotation_y", "w_rotation_z"};
private static final String[] PREFERENCE_ITEM_NAME = {
"w_brightness"
};
private static boolean flag2 = true; private static boolean flag2 = true;
//csv_type is activity or preference //csv_type is activity or preference
Benchmark(String a_csv_file_path, String p_csv_file_path) { Benchmark(String a_csv_file_path, String p_csv_file_path) {
this.a_csv_file_path = a_csv_file_path; this.a_csv_file_path = a_csv_file_path;
this.p_csv_file_path = p_csv_file_path; this.p_csv_file_path = p_csv_file_path;
} }
void start(){ void start(){
String PREFERENCE_URL = "http://localhost:4567/model/items/iris1_item/state"; String PREFERENCE_URL = "http://localhost:4567/model/items/iris1_item/state";
String ACTIVITY_URL = "http://localhost:4567/activity/current"; String ACTIVITY_URL = "http://localhost:4567/activity/current";
...@@ -72,7 +66,13 @@ public class Benchmark { ...@@ -72,7 +66,13 @@ public class Benchmark {
p_file_reader=new FileReader(p_file); p_file_reader=new FileReader(p_file);
a_csv_reader = new CSVReader(a_file_reader); a_csv_reader = new CSVReader(a_file_reader);
p_csv_reader = new CSVReader(p_file_reader); p_csv_reader = new CSVReader(p_file_reader);
int i = 0;
while ((((a_next_record = a_csv_reader.readNext())!= null) && flag2)){ while ((((a_next_record = a_csv_reader.readNext())!= null) && flag2)){
if( i==0 ){
getCSVHeader(Arrays.copyOf(a_next_record,12),"a");
i++;
}
else{
try{Thread.sleep(TIME_PERIOD);}catch (InterruptedException e){e.printStackTrace();} try{Thread.sleep(TIME_PERIOD);}catch (InterruptedException e){e.printStackTrace();}
String[] values = Arrays.copyOf(a_next_record,12); String[] values = Arrays.copyOf(a_next_record,12);
setNewValue(values, ACTIVITY_ITEM_NAME,"activity"); setNewValue(values, ACTIVITY_ITEM_NAME,"activity");
...@@ -88,7 +88,12 @@ public class Benchmark { ...@@ -88,7 +88,12 @@ public class Benchmark {
flag2 = false; flag2 = false;
logger.info("can not get the activity from the web server"); logger.info("can not get the activity from the web server");
} }
int j = 0;
while((((p_next_record = p_csv_reader.readNext()) != null) && flag1)) { while((((p_next_record = p_csv_reader.readNext()) != null) && flag1)) {
if( j==0 ){
getCSVHeader(Arrays.copyOf(p_next_record,2),"p");
j++;
}else{
try{Thread.sleep(TIME_PERIOD);}catch (InterruptedException e){e.printStackTrace();} try{Thread.sleep(TIME_PERIOD);}catch (InterruptedException e){e.printStackTrace();}
String[] values1 = Arrays.copyOf(p_next_record,2); String[] values1 = Arrays.copyOf(p_next_record,2);
setNewValue(values1, PREFERENCE_ITEM_NAME,"preference"); setNewValue(values1, PREFERENCE_ITEM_NAME,"preference");
...@@ -103,10 +108,13 @@ public class Benchmark { ...@@ -103,10 +108,13 @@ public class Benchmark {
} }
} }
} }
}
}
catch (Exception e){ catch (Exception e){
e.printStackTrace(); e.printStackTrace();
} }
} }
private void setNewValue(String[] values, String[] name, String file_typ){ private void setNewValue(String[] values, String[] name, String file_typ){
if(file_typ.equals("activity")) if(file_typ.equals("activity"))
{ {
...@@ -131,6 +139,8 @@ public class Benchmark { ...@@ -131,6 +139,8 @@ public class Benchmark {
}else{ }else{
String uri= ERASER_ITEM_URI + "w_brightness" +"/state"; String uri= ERASER_ITEM_URI + "w_brightness" +"/state";
try { try {
logger.info("debug for w_brigntess");
logger.info(values[1]);
HttpResponse httpResponse = Request.Put(uri) HttpResponse httpResponse = Request.Put(uri)
.bodyString(values[1], ContentType.TEXT_PLAIN) .bodyString(values[1], ContentType.TEXT_PLAIN)
.execute().returnResponse(); .execute().returnResponse();
...@@ -143,4 +153,12 @@ public class Benchmark { ...@@ -143,4 +153,12 @@ public class Benchmark {
} }
} }
} }
private void getCSVHeader(String[] a_values,String csv_typ){
if (csv_typ.equals("a")){
ACTIVITY_ITEM_NAME = a_values;
}else{
PREFERENCE_ITEM_NAME = a_values;
}
}
} }
\ No newline at end of file
...@@ -127,7 +127,7 @@ public class EraserStarter { ...@@ -127,7 +127,7 @@ public class EraserStarter {
machineLearningModel.setEncoder(handler); machineLearningModel.setEncoder(handler);
machineLearningModel.setDecoder(handler); machineLearningModel.setDecoder(handler);
root.getMachineLearningRoot().setActivityRecognition(machineLearningModel); root.getMachineLearningRoot().setActivityRecognition(machineLearningModel);
/**
//Begin the Integration //Begin the Integration
Item item1=model.resolveItem("m_accel_x").get(); Item item1=model.resolveItem("m_accel_x").get();
Item item2=model.resolveItem("m_accel_y").get(); Item item2=model.resolveItem("m_accel_y").get();
...@@ -172,7 +172,7 @@ public class EraserStarter { ...@@ -172,7 +172,7 @@ public class EraserStarter {
List<ItemPreference> preference=handler.classify().getPreferences(); List<ItemPreference> preference=handler.classify().getPreferences();
for(ItemPreference preference1 : preference){ for(ItemPreference preference1 : preference){
preference1.apply(); preference1.apply();
} }*/
} }
// initialize preference learning // initialize preference learning
...@@ -189,7 +189,7 @@ public class EraserStarter { ...@@ -189,7 +189,7 @@ public class EraserStarter {
machineLearningModel.setDecoder(handler); machineLearningModel.setDecoder(handler);
root.getMachineLearningRoot().setPreferenceLearning(machineLearningModel); root.getMachineLearningRoot().setPreferenceLearning(machineLearningModel);
//working,medium,240,70 //working,medium,240,70
Item activity_item = model.resolveItem("activity").get(); /**Item activity_item = model.resolveItem("activity").get();
String activity=activity_item.getStateAsString(); String activity=activity_item.getStateAsString();
activity_item.setStateFromString(activity); activity_item.setStateFromString(activity);
Item brightness_item = model.resolveItem("w_brightness").get(); Item brightness_item = model.resolveItem("w_brightness").get();
...@@ -201,7 +201,7 @@ public class EraserStarter { ...@@ -201,7 +201,7 @@ public class EraserStarter {
List<ItemPreference> preference=handler.classify().getPreferences(); List<ItemPreference> preference=handler.classify().getPreferences();
for(ItemPreference preference1 : preference){ for(ItemPreference preference1 : preference){
preference1.apply(); preference1.apply();
} }*/
} }
machineLearningRoot.getPreferenceLearning().connectItems(settings.preference.items); machineLearningRoot.getPreferenceLearning().connectItems(settings.preference.items);
......
...@@ -63,13 +63,14 @@ public class Learner { ...@@ -63,13 +63,14 @@ public class Learner {
String csv_url_activity; String csv_url_activity;
csv_url_activity = activity_csv_url; csv_url_activity = activity_csv_url;
this.csv_file = new File(csv_url_activity); this.csv_file = new File(csv_url_activity);
a_souce = new CSVDataSource(csv_file,false,CSVFormat.DECIMAL_POINT); a_souce = new CSVDataSource(csv_file,true,CSVFormat.DECIMAL_POINT);
a_data = new VersatileMLDataSet(a_souce); a_data = new VersatileMLDataSet(a_souce);
String[] activity_inputs={"m_accel_x","m_accel_y", "m_accel_z", String[] activity_inputs={"m_accel_x","m_accel_y", "m_accel_z",
"m_rotation_x","m_rotation_y", "m_rotation_z", "m_rotation_x","m_rotation_y", "m_rotation_z",
"w_accel_x","w_accel_y", "w_accel_z", "w_accel_x","w_accel_y", "w_accel_z",
"w_rotation_x","w_rotation_y","w_rotation_z" "w_rotation_x","w_rotation_y","w_rotation_z"
}; };
for(int i=0; i < activity_inputs.length; i++){ for(int i=0; i < activity_inputs.length; i++){
a_data.defineSourceColumn(activity_inputs[i], i, ColumnType.continuous); a_data.defineSourceColumn(activity_inputs[i], i, ColumnType.continuous);
} }
...@@ -87,7 +88,7 @@ public class Learner { ...@@ -87,7 +88,7 @@ public class Learner {
String csv_url_preference; String csv_url_preference;
csv_url_preference = preference_csv_url; csv_url_preference = preference_csv_url;
this.csv_file = new File(csv_url_preference); this.csv_file = new File(csv_url_preference);
p_source = new CSVDataSource(csv_file,false,CSVFormat.DECIMAL_POINT); p_source = new CSVDataSource(csv_file,true,CSVFormat.DECIMAL_POINT);
p_data = new VersatileMLDataSet(p_source); p_data = new VersatileMLDataSet(p_source);
p_data.defineSourceColumn("activity", 0, ColumnType.nominal); p_data.defineSourceColumn("activity", 0, ColumnType.nominal);
p_data.defineSourceColumn("w_brightness", 1, ColumnType.nominal); p_data.defineSourceColumn("w_brightness", 1, ColumnType.nominal);
...@@ -108,7 +109,6 @@ public class Learner { ...@@ -108,7 +109,6 @@ public class Learner {
activity_train(activity_url); activity_train(activity_url);
preference_train(preference_url); preference_train(preference_url);
Encog.getInstance().shutdown(); Encog.getInstance().shutdown();
} }
void activity_train(String activity_csv_url){ void activity_train(String activity_csv_url){
...@@ -151,7 +151,7 @@ public class Learner { ...@@ -151,7 +151,7 @@ public class Learner {
String activity_predictor(String[] new_data){ String activity_predictor(String[] new_data){
logger.info("Activity predicting ... ..."); logger.info("Activity predicting ... ...");
String activity_result; String activity_result;
activityDataAnalyser("../datasets/backup/activity_data.csv"); activityDataAnalyser("datasets/backup/activity_data.csv");
BasicNetwork activity_method = (BasicNetwork) loadObject(save_activity_model_file); BasicNetwork activity_method = (BasicNetwork) loadObject(save_activity_model_file);
MLData input = activity_helper.allocateInputVector(); MLData input = activity_helper.allocateInputVector();
activity_helper.normalizeInputVector(new_data,input.getData(),false); activity_helper.normalizeInputVector(new_data,input.getData(),false);
...@@ -166,7 +166,7 @@ public class Learner { ...@@ -166,7 +166,7 @@ public class Learner {
logger.info("Activity predicting ... ..."); logger.info("Activity predicting ... ...");
String[] preference_result; String[] preference_result;
preference_result = new String[2]; preference_result = new String[2];
preferenceDataAnalyser("../datasets/backup/preference_data.csv"); preferenceDataAnalyser("datasets/backup/preference_data.csv");
BasicNetwork preference_method = (BasicNetwork)loadObject(save_preference_model_file); BasicNetwork preference_method = (BasicNetwork)loadObject(save_preference_model_file);
MLData input = preference_helper.allocateInputVector(); MLData input = preference_helper.allocateInputVector();
preference_helper.normalizeInputVector(new_data, input.getData(),false); preference_helper.normalizeInputVector(new_data, input.getData(),false);
......
...@@ -132,6 +132,8 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn ...@@ -132,6 +132,8 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn
new_data[1]=item.getStateAsString(); new_data[1]=item.getStateAsString();
} }
} }
logger.info("debug for p");
logger.info(Arrays.toString(preference_result));
this.preference_result=learner.preference_predictor(new_data); this.preference_result=learner.preference_predictor(new_data);
} }
} }
...@@ -182,7 +184,6 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn ...@@ -182,7 +184,6 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn
color = Math.round(Float.valueOf(preference_result[0])); color = Math.round(Float.valueOf(preference_result[0]));
brightness = Math.round(Float.valueOf(preference_result[1])); brightness = Math.round(Float.valueOf(preference_result[1]));
} }
ItemPreference classifiedPreference = new ItemPreferenceColor(iris1, TupleHSB.of(color, 100, brightness)); ItemPreference classifiedPreference = new ItemPreferenceColor(iris1, TupleHSB.of(color, 100, brightness));
return new MachineLearningResultImpl(classifiedPreference); return new MachineLearningResultImpl(classifiedPreference);
default: default:
......
...@@ -15,9 +15,9 @@ public class Main { ...@@ -15,9 +15,9 @@ public class Main {
//reader.updater(); //reader.updater();
Learner learner=new Learner(); Learner learner=new Learner();
//learner.preference_train("../datasets/backup/preference_data.csv"); //learner.preference_train("../datasets/backup/preference_data.csv");
//learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv"); learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv");
//0.5793968,1.2126632,-4.6244006,-0.030779,0.801127,0.590978,-3.1411927,-0.93373865,-0.31124622,-0.35992432,0.33746338,-0.79608154,dancing //0.5793968,1.2126632,-4.6244006,-0.030779,0.801127,0.590978,-3.1411927,-0.93373865,-0.31124622,-0.35992432,0.33746338,-0.79608154,dancing
/**String[] new_data = new String[12]; String[] new_data = new String[12];
new_data[0]="0.5793968"; new_data[0]="0.5793968";
new_data[1]="1.2126632"; new_data[1]="1.2126632";
new_data[2]="-4.6244006"; new_data[2]="-4.6244006";
...@@ -34,9 +34,12 @@ public class Main { ...@@ -34,9 +34,12 @@ public class Main {
String result =learner.activity_predictor(new_data); String result =learner.activity_predictor(new_data);
System.out.println(result); System.out.println(result);
List k=new ArrayList(); String[] new_data_1={result,"medium"};
learner.preference_predictor(new_data_1);
k.add(new_data);*/ //List k=new ArrayList();
//k.add(new_data);*/
//learner.preference_train("datasets/backup/preference_data.csv"); //learner.preference_train("datasets/backup/preference_data.csv");
//learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv"); //learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv");
...@@ -45,7 +48,7 @@ public class Main { ...@@ -45,7 +48,7 @@ public class Main {
//activity_validation_learner(); //activity_validation_learner();
//0.10654198,8.6574335,4.414908,0.040269,0.516884,0.853285,1.2066777,-1.1444284,9.648633,1.2207031E-4,-0.055358887,0.5834961 working //0.10654198,8.6574335,4.414908,0.040269,0.516884,0.853285,1.2066777,-1.1444284,9.648633,1.2207031E-4,-0.055358887,0.5834961 working
String[] new_data = new String[12]; /**String[] new_data = new String[12];
new_data[0]="0.010773907"; new_data[0]="0.010773907";
new_data[1]="8.610746"; new_data[1]="8.610746";
new_data[2]="4.4963107"; new_data[2]="4.4963107";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment