Skip to content
Snippets Groups Projects
Commit cd59cdb6 authored by BBQ's avatar BBQ
Browse files

upate learner

parent 32c522e8
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,9 @@ dependencies {
compile group: 'org.encog', name: 'encog-core', version: '3.4'
implementation group: 'com.opencsv', name: 'opencsv', version: '4.1'
implementation group: 'commons-io', name: 'commons-io', version: '2.5'
// https://mvnrepository.com/artifact/org.apache.spark/spark-mllib
//runtime group: 'org.apache.spark', name: 'spark-mllib_2.10', version: '1.3.0'
compile group: 'com.sparkjava', name: 'spark-core', version: '2.9.0'
}
run {
......
......@@ -8,7 +8,13 @@ import com.opencsv.CSVWriter;
public class CsvTransfer {
private static final String CSV_FILE_PATH
public static void main(String[] args){
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");
/**private static final String CSV_FILE_PATH
= "datasets/backup/activity_data_example.csv";
private static final String OUTPUT_FILE_PATH
= "datasets/backup/activity_data.csv";
......@@ -48,7 +54,7 @@ public class CsvTransfer {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}*/
}
......@@ -4,6 +4,7 @@ import java.io.File;
//import com.sun.javafx.tools.packager.Log;
import org.encog.ConsoleStatusReportable;
import org.encog.Encog;
import org.encog.ml.MLClassification;
import org.encog.ml.MLRegression;
import org.encog.ml.data.MLData;
import org.encog.ml.data.versatile.NormalizationHelper;
......@@ -36,7 +37,7 @@ public class Learner {
private EncogModel p_model;
private NormalizationHelper activity_helper;
private NormalizationHelper preference_helper;
private MLRegression a_best_method;
private MLClassification a_best_method;
private MLRegression p_best_method;
private String[] new_data;
private String[] preference_result;
......@@ -67,6 +68,7 @@ public class Learner {
a_model.selectMethod(a_data, MLMethodFactory.TYPE_FEEDFORWARD);
a_data.normalize();
activity_helper = a_data.getNormHelper();
//System.out.println(activity_helper.toString());
}
......@@ -90,7 +92,7 @@ public class Learner {
p_model.setReport(new ConsoleStatusReportable());
p_data.normalize();
preference_helper = p_data.getNormHelper();
System.out.println(preference_helper.toString());
//System.out.println(preference_helper.toString());
}
void train(String activity_url,String preference_url){
......@@ -105,7 +107,7 @@ public class Learner {
activityDataAnalyser(activity_csv_url);
a_model.holdBackValidation(0.3, true, 1001);
a_model.selectTrainingType(a_data);
a_best_method = (MLRegression)a_model.crossvalidate(5, true);
a_best_method = (MLClassification)a_model.crossvalidate(5, true);
System.out.println(a_best_method);
saveEncogModel(save_activity_model_file);
Encog.getInstance().shutdown();
......@@ -115,7 +117,7 @@ public class Learner {
p_model.holdBackValidation(0.3, true, 1001);
p_model.selectTrainingType(p_data);
p_best_method = (MLRegression)p_model.crossvalidate(5, true);
System.out.println(p_best_method);
//System.out.println(p_best_method);
saveEncogModel(save_preference_model_file);
Encog.getInstance().shutdown();
}
......@@ -149,6 +151,7 @@ public class Learner {
activityDataAnalyser("datasets/backup/activity_data.csv");
BasicNetwork activity_method = (BasicNetwork) loadObject(new File(save_activity_model_file));
MLData input = activity_helper.allocateInputVector();
System.out.println("input"+activity_helper);
String[] activity_new_data = new String[12];
activity_new_data[0] = new_data[0];
activity_new_data[1] = new_data[1];
......@@ -163,7 +166,24 @@ public class Learner {
activity_new_data[10] = new_data[10];
activity_new_data[11] = new_data[11];
activity_helper.normalizeInputVector(activity_new_data,input.getData(),false);
//System.out.println("activity output "+activity_method.getLayerOutput(2,1));
//System.out.println("activity output "+activity_method.getLayerOutput(2,0));
// System.out.println("helper" + activity_helper);
/**System.out.println("activity output "+activity_method.getLayerOutput(2,0));
System.out.println("activity output "+activity_method.getLayerOutput(2,1));
System.out.println("activity output "+activity_method.getLayerOutput(2,2));
System.out.println("activity output "+activity_method.getLayerOutput(2,3));
System.out.println("activity output "+activity_method.getLayerOutput(2,4));
System.out.println("activity output "+activity_method.getLayerOutput(2,5));
System.out.println("activity output "+activity_method.getLayerOutput(2,6));
System.out.println("activity output "+activity_method.getLayerOutput(2,10));
System.out.println("activity"+activity_method.getLayerNeuronCount(2));
System.out.println("activity"+activity_method.getLayerNeuronCount(1));
System.out.println("activity count"+activity_method.getOutputCount());
System.out.println(activity_method.getLayerTotalNeuronCount(2));*/
System.out.println("input"+input);
MLData output = activity_method.compute(input);
System.out.println("output:"+output);
activity_result = activity_helper.denormalizeOutputVectorToString(output)[0];
return activity_result;
}
......@@ -173,13 +193,14 @@ public class Learner {
preferenceDataAnalyser("datasets/backup/preference_data.csv");
BasicNetwork preference_method = (BasicNetwork)loadObject(new File(save_preference_model_file));
MLData input = preference_helper.allocateInputVector();
System.out.print("input: "+input);
//
// System.out.print("input: "+input);
String[] preference_new_data = new String[2];
//preference_new_data[0] = activity_result;
preference_new_data[0] = new_data[0];
preference_new_data[1] = new_data[1];
preference_helper.normalizeInputVector(preference_new_data, input.getData(),false);
System.out.println(preference_helper);
//System.out.println(preference_helper);
MLData output = preference_method.compute(input);
preference_result[0] = preference_helper.denormalizeOutputVectorToString(output)[0];
preference_result[1] = preference_helper.denormalizeOutputVectorToString(output)[1];
......
......@@ -15,29 +15,32 @@ public class Main {
/**
* new data from KB
* */
String[] new_data = new String[13];
new_data[0]="0.10654198";
new_data[1]="8.6574335";
new_data[2]="4.414908";
new_data[3]="0.040269";
new_data[4]="0.516884";
new_data[5]="0.853285";
new_data[6]="1.2066777";
new_data[7]="-1.1444284";
new_data[8]="9.648633";
new_data[9]="1.2207031E-4";
new_data[10]="-0.055358887";
new_data[11]="0.5834961";
new_data[12]="bright";
Learner learner = new Learner();
String[] result =learner.predictor(new_data);
System.out.println(result[0]);
System.out.println(result[1]);
System.out.println(result[2]);
ReaderCSV reader = new ReaderCSV("datasets/backup/activity_data.csv");
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");
//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];
new_data[0]="0.5793968";
new_data[1]="1.2126632";
new_data[2]="-4.6244006";
new_data[3]="-0.030779";
new_data[4]="0.801127";
new_data[5]="0.590978";
new_data[6]="-3.1411927";
new_data[7]="-0.93373865";
new_data[8]="-0.31124622";
new_data[9]="-0.35992432";
new_data[10]="0.33746338";
new_data[11]="-0.79608154";
String result =learner.activity_predictor(new_data);
System.out.println(result);
List k=new ArrayList();
k.add(new_data);
k.add(new_data);*/
//learner.preference_train("datasets/backup/preference_data.csv");
//learner.train("datasets/backup/activity_data.csv","datasets/backup/preference_data.csv");
......@@ -46,21 +49,26 @@ 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];
new_data[0]="0.10654198";
new_data[1]="8.6574335";
new_data[2]="4.414908";
new_data[3]="0.040269";
new_data[4]="0.516884";
new_data[5]="0.853285";
new_data[6]="1.2066777";
new_data[7]="-1.1444284";
new_data[8]="9.648633";
new_data[9]="1.2207031E-4";
new_data[10]="-0.055358887";
new_data[11]="0.5834961";
String[] new_data = new String[12];
new_data[0]="0.010773907";
new_data[1]="8.610746";
new_data[2]="4.4963107";
new_data[3]="0.047136";
new_data[4]="0.515427";
new_data[5]="0.852877";
new_data[6]="0.9720459";
new_data[7]="-1.3694834";
new_data[8]="9.696517";
new_data[9]="-0.0056152344";
new_data[10]="-0.049438477";
new_data[11]="0.5576782";
//0.010773907,8.610746,4.4963107,0.047136,0.515427,0.852877,0.9720459,-1.3694834,9.696517,-0.0056152344,-0.049438477,0.5576782 working
//0.9999999988939648,-0.9995820798966354,-0.9999999999999997,-0.9999988062118802,-0.9974031940544938,-1.0
//String result =learner.activity_predictor(new_data);
//System.out.println(result);
String[] new_data_1 =new String[12];
/**String[] new_data_1 =new String[12];
//-2.6252422,8.619126,-2.7030537,0.552147,0.5078,0.450302,-8.1881695,-1.2641385,0.038307227,-0.34222412,0.49102783,-0.016540527,walking
new_data_1[0]="-2.6252422";
new_data_1[1]="8.619126";
......@@ -74,6 +82,8 @@ public class Main {
new_data_1[9]="-0.34222412";
new_data_1[10]="0.49102783";
new_data_1[11]="-0.016540527";
String result1 =learner.activity_predictor(new_data_1);
System.out.println(result1);
/**
* learner.train(activity_csv_url, preference_data_url)
* learner.predictor get the result from predictor for new data
......
package de.tudresden.inf.st.eraser.feedbackloop.learner_backup;
import java.io.FileReader;
import java.io.*;
import com.opencsv.CSVReader;
import org.apache.http.client.fluent.Request;
public class ReaderCSV {
//read every 3 s from csv
private static int TIME_PERIOD = 5000;
private String csv_file_path;
private File file;
private FileReader file_reader;
private CSVReader csv_reader;
private String[] next_record;
private static final String ERASER_ITEM_URI = "http://localhost:4567/model/items/";
public ReaderCSV(String csv_file_path) {
this.csv_file_path=csv_file_path;
}
public void updater(){
file=new File(csv_file_path);
try {
file_reader =new FileReader(file);
csv_reader = new CSVReader(file_reader);
while ((next_record = csv_reader.readNext()) != null) {
//data.add(next_record);
Thread.currentThread().sleep(TIME_PERIOD);
System.out.println("this is a wait" );
for (String value : next_record) {
System.out.print(value + "\t");
//TODO identifier for different items
Request.Put(ERASER_ITEM_URI+"/:itentifider/state" + value);
}
System.out.println();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
{"last_check":"2019-05-08T08:33:39Z","pypi_version":"19.1.1"}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment