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

Merge branch 'dev' of git-st.inf.tu-dresden.de:OpenLicht/eraser into dev

parents e7013e72 b2efb73e
No related branches found
No related tags found
1 merge request!19dev to master
......@@ -4,8 +4,10 @@ import de.tudresden.inf.st.eraser.jastadd.model.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Optional;
import java.util.Properties;
/**
* Testing preference setting
......@@ -15,12 +17,23 @@ import java.util.Optional;
public class TestMachineLearningHandlerFactory extends MachineLearningHandlerFactory {
private static final Logger logger = LogManager.getLogger(TestMachineLearningHandlerFactory.class);
private double offset = 0;
private double multiplier = 1;
@Override
public void initializeFor(MachineLearningHandlerFactoryTarget target, URL configUrl) {
if (target != MachineLearningHandlerFactoryTarget.PREFERENCE_LEARNING) {
logger.error("Test Factory only made for preference learning, not {}", target);
}
// treat given file as properties file
try (InputStream input = configUrl.openStream()) {
Properties prop = new Properties();
prop.load(input);
offset = Double.parseDouble(prop.getProperty("offset", "0"));
multiplier = Double.parseDouble(prop.getProperty("multiplier", "1"));
} catch (IOException | IllegalArgumentException e) {
logger.catching(e);
}
}
@Override
......@@ -42,8 +55,8 @@ public class TestMachineLearningHandlerFactory extends MachineLearningHandlerFac
// dirty hack to override value based on activity during runtime
@Override
public double getNewValue() {
Optional<Activity> activityOpt = knowledgeBase.currentActivity();
return activityOpt.orElse(knowledgeBase.getMachineLearningRoot().getActivity(0)).getIdentifier();
Activity activity = knowledgeBase.currentActivity().orElse(knowledgeBase.getMachineLearningRoot().getActivity(0));
return offset + activity.getIdentifier() * multiplier;
}
};
update.setItem(item);
......
offset=4
multiplier=10
......@@ -25,7 +25,7 @@ load:
# Model for activity recognition. If dummy is true, then the file parameter is ignored.
activity:
factory: de.tudresden.inf.st.eraser.feedbackloop.learner_backup.MachineLearningHandlerFactoryImpl
# File to read in. Expected format = csv /Users/boqi/eraser/datasets
# File to read in. Expected format depends on factory
file: ../datasets/backup/activity_data.csv
external: true
# Use dummy model in which the current activity is directly editable. Default: false.
......@@ -38,8 +38,9 @@ activity:
# Model for preference learning. If dummy is true, then the file parameter is ignored.
preference:
factory: de.tudresden.inf.st.eraser.starter.TestMachineLearningHandlerFactory
# File to read in. Expected format = csv
file: ../datasets/backup/preference_data.csv
# File to read in. Expected format depends on factory
file: src/main/resources/testHandler.properties
# file: ../datasets/backup/preference_data.csv
external: true
# Use dummy model in which the current activity is directly editable. Default: false.
dummy: false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment