package org.societies.context.user.refinement.test; import java.io.File; import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.context.user.refinement.impl.BayesEngine; import org.societies.context.user.refinement.impl.bayesianLibrary.inference.structures.impl.DAG; import org.societies.context.user.refinement.impl.tools.DataFileFilter; import org.societies.context.user.refinement.impl.tools.NetworkConverter; public class ImportGenieIntoLearning { private static Logger logger = LoggerFactory.getLogger(ImportGenieIntoLearning.class); private static String inputfilePathName = "resources";//+File.separator+"ActivityQuantizationFiles"; private static String filePattern = ".*(25).*(Groundtruth)\\..*"; private static String genieFile = "celldata-discrete_customBinned_onlyStressGT_weka.xdsl";//learnt/celldata-discrete.csv.xdsl"; private static String learningFile = "celldata-discrete_customBinned_onlyStressGT_AOOG.txt";//celldata-discrete.csv"; //learning parameters private static boolean multipleFiles = false; private static boolean structureLearning = false; private static int maxNumberParentsPerNode = 5; private static int milliseconds = 1000 * 60 * 2; public static void main(String[] args){ System.out.println("Take care that logging for 'de.dlr.kn.bayesianLibrary.bayesianLearner.impl.BayesLearnerImpl=INFO'.\nOtherwise the logScore is not shown!"); DAG loadedBN = NetworkConverter.genieToJava(inputfilePathName +File.separator+ genieFile); /* StringWriter fakeFileWriter = new StringWriter(); try { genie.printToFile(fakeFileWriter); } catch (IOException e) { e.printStackTrace(); } String networkLayout = fakeFileWriter.toString(); logger.info(networkLayout); */ File[] input = new File[]{new File(inputfilePathName +File.separator+ learningFile)}; if (multipleFiles){ File dir = new File(inputfilePathName); input = dir.listFiles(new DataFileFilter(Pattern.compile(filePattern ))); if (logger.isDebugEnabled()) for (File f:input) System.out.println(f.getName()); } BayesEngine learner = BayesEngine.getInstance(); DAG neu = learner.learnDAGFromFilesGivenDAGStructure(input, milliseconds, maxNumberParentsPerNode, structureLearning, loadedBN); //logger.info(neu); } }