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 {
private static final Logger logger = LogManager.getLogger(Benchmark.class);
private static final String ERASER_ITEM_URI = "http://localhost:4567/model/items/";
//TODO ITEM_NAME HAS TO BE DISCUSSED
private static final String[] ACTIVITY_ITEM_NAME = {
"m_accel_x", "m_accel_y", "m_accel_z", "m_rotation_x",
"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 String[] ACTIVITY_ITEM_NAME;
private static String[] PREFERENCE_ITEM_NAME;
private static boolean flag2 = true;
//csv_type is activity or preference
Benchmark(String a_csv_file_path, String p_csv_file_path) {
this.a_csv_file_path = a_csv_file_path;
this.p_csv_file_path = p_csv_file_path;
}
void start(){
String PREFERENCE_URL = "http://localhost:4567/model/items/iris1_item/state";
String ACTIVITY_URL = "http://localhost:4567/activity/current";
......@@ -72,7 +66,13 @@ public class Benchmark {
p_file_reader=new FileReader(p_file);
a_csv_reader = new CSVReader(a_file_reader);
p_csv_reader = new CSVReader(p_file_reader);
int i = 0;
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();}
String[] values = Arrays.copyOf(a_next_record,12);
setNewValue(values, ACTIVITY_ITEM_NAME,"activity");
......@@ -88,7 +88,12 @@ public class Benchmark {
flag2 = false;
logger.info("can not get the activity from the web server");
}
int j = 0;
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();}
String[] values1 = Arrays.copyOf(p_next_record,2);
setNewValue(values1, PREFERENCE_ITEM_NAME,"preference");
......@@ -103,10 +108,13 @@ public class Benchmark {
}
}
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
private void setNewValue(String[] values, String[] name, String file_typ){
if(file_typ.equals("activity"))
{
......@@ -131,6 +139,8 @@ public class Benchmark {
}else{
String uri= ERASER_ITEM_URI + "w_brightness" +"/state";
try {
logger.info("debug for w_brigntess");
logger.info(values[1]);
HttpResponse httpResponse = Request.Put(uri)
.bodyString(values[1], ContentType.TEXT_PLAIN)
.execute().returnResponse();
......@@ -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 {
machineLearningModel.setEncoder(handler);
machineLearningModel.setDecoder(handler);
root.getMachineLearningRoot().setActivityRecognition(machineLearningModel);
/**
//Begin the Integration
Item item1=model.resolveItem("m_accel_x").get();
Item item2=model.resolveItem("m_accel_y").get();
......@@ -172,7 +172,7 @@ public class EraserStarter {
List<ItemPreference> preference=handler.classify().getPreferences();
for(ItemPreference preference1 : preference){
preference1.apply();
}
}*/
}
// initialize preference learning
......@@ -189,7 +189,7 @@ public class EraserStarter {
machineLearningModel.setDecoder(handler);
root.getMachineLearningRoot().setPreferenceLearning(machineLearningModel);
//working,medium,240,70
Item activity_item = model.resolveItem("activity").get();
/**Item activity_item = model.resolveItem("activity").get();
String activity=activity_item.getStateAsString();
activity_item.setStateFromString(activity);
Item brightness_item = model.resolveItem("w_brightness").get();
......@@ -201,7 +201,7 @@ public class EraserStarter {
List<ItemPreference> preference=handler.classify().getPreferences();
for(ItemPreference preference1 : preference){
preference1.apply();
}
}*/
}
machineLearningRoot.getPreferenceLearning().connectItems(settings.preference.items);
......
......@@ -63,13 +63,14 @@ public class Learner {
String csv_url_activity;
csv_url_activity = activity_csv_url;
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);
String[] activity_inputs={"m_accel_x","m_accel_y", "m_accel_z",
"m_rotation_x","m_rotation_y", "m_rotation_z",
"w_accel_x","w_accel_y", "w_accel_z",
"w_rotation_x","w_rotation_y","w_rotation_z"
};
for(int i=0; i < activity_inputs.length; i++){
a_data.defineSourceColumn(activity_inputs[i], i, ColumnType.continuous);
}
......@@ -87,7 +88,7 @@ public class Learner {
String csv_url_preference;
csv_url_preference = preference_csv_url;
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.defineSourceColumn("activity", 0, ColumnType.nominal);
p_data.defineSourceColumn("w_brightness", 1, ColumnType.nominal);
......@@ -108,7 +109,6 @@ public class Learner {
activity_train(activity_url);
preference_train(preference_url);
Encog.getInstance().shutdown();
}
void activity_train(String activity_csv_url){
......@@ -151,7 +151,7 @@ public class Learner {
String activity_predictor(String[] new_data){
logger.info("Activity predicting ... ...");
String activity_result;
activityDataAnalyser("../datasets/backup/activity_data.csv");
activityDataAnalyser("datasets/backup/activity_data.csv");
BasicNetwork activity_method = (BasicNetwork) loadObject(save_activity_model_file);
MLData input = activity_helper.allocateInputVector();
activity_helper.normalizeInputVector(new_data,input.getData(),false);
......@@ -166,7 +166,7 @@ public class Learner {
logger.info("Activity predicting ... ...");
String[] preference_result;
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);
MLData input = preference_helper.allocateInputVector();
preference_helper.normalizeInputVector(new_data, input.getData(),false);
......
......@@ -132,6 +132,8 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn
new_data[1]=item.getStateAsString();
}
}
logger.info("debug for p");
logger.info(Arrays.toString(preference_result));
this.preference_result=learner.preference_predictor(new_data);
}
}
......@@ -182,7 +184,6 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn
color = Math.round(Float.valueOf(preference_result[0]));
brightness = Math.round(Float.valueOf(preference_result[1]));
}
ItemPreference classifiedPreference = new ItemPreferenceColor(iris1, TupleHSB.of(color, 100, brightness));
return new MachineLearningResultImpl(classifiedPreference);
default:
......
......@@ -15,9 +15,9 @@ public class Main {
//reader.updater();
Learner learner=new Learner();
//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
/**String[] new_data = new String[12];
String[] new_data = new String[12];
new_data[0]="0.5793968";
new_data[1]="1.2126632";
new_data[2]="-4.6244006";
......@@ -34,9 +34,12 @@ public class Main {
String result =learner.activity_predictor(new_data);
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.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv");
......@@ -45,7 +48,7 @@ public class Main {
//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
String[] new_data = new String[12];
/**String[] new_data = new String[12];
new_data[0]="0.010773907";
new_data[1]="8.610746";
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