double[] cs = {0.001, 0.01, 0.1, 1, 10, 100, 1000};
PropertyPredictionDataSet dataset;
PropertyPredictionExperiment exp;
Experimenter experimenter = new Experimenter(NUMBER_OF_PROC);
Thread expT = new Thread(experimenter);
expT.setDaemon(true);
expT.start();
ResultsTable resultsWL = new ResultsTable();
ResultsTable resultsSTF = new ResultsTable();
ResultsTable resultsSTP = new ResultsTable();
ResultsTable resultsIGW = new ResultsTable();
ResultsTable resultsIGP = new ResultsTable();
ResultsTable resultsWLadd = new ResultsTable();
ResultsTable resultsSTFadd = new ResultsTable();
ResultsTable resultsSTPadd = new ResultsTable();
ResultsTable resultsIGWadd = new ResultsTable();
ResultsTable resultsIGPadd = new ResultsTable();
/**
* FIRST EXPERIMENT, STANDARD SETTINGS
*
*/
List<PropertyPredictionDataSetParameters> dataSetsParams = new ArrayList<PropertyPredictionDataSetParameters>();
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, true, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, true, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, true, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, true, true));
/*
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, true, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, true, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, true, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetB, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, true, true));
//*/
try {
for (PropertyPredictionDataSetParameters params : dataSetsParams) {
dataset = DataSetFactory.createPropertyPredictionDataSet(params);
dataset.removeSmallClasses(5);
dataset.removeVertexAndEdgeLabels();
resultsWL.newRow(dataset.getLabel() + " WLSubTreeKernel");
for (int i = 0; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "WL" + "_" + i + ".txt");
WLSubTreeKernel kernel = new WLSubTreeKernel(i, true);
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), kernel, seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsWL.addResult(exp.getResults().getAccuracy());
resultsWL.addResult(exp.getResults().getF1());
System.out.println("Running WL, it " + i + " on " + dataset.getLabel());
}
}
resultsSTF.newRow(dataset.getLabel() + " IntersectionFullSubTree");
for (int i = 0; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionFullSubTree" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionSubTreeKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsSTF.addResult(exp.getResults().getAccuracy());
resultsSTF.addResult(exp.getResults().getF1());
System.out.println("Running STF, it " + i + " on " + dataset.getLabel());
}
}
resultsSTP.newRow(dataset.getLabel() + " IntersectionPartialSubTree");
for (int i = 0; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionPartialSubTree" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionPartialSubTreeKernel(i, 0.01), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsSTP.addResult(exp.getResults().getAccuracy());
resultsSTP.addResult(exp.getResults().getF1());
System.out.println("Running STP, it " + i + " on " + dataset.getLabel());
}
}
resultsIGP.newRow(dataset.getLabel() + " IntersectionGraphPath");
for (int i = 1; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionGraphPath" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionGraphPathKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsIGP.addResult(exp.getResults().getAccuracy());
resultsIGP.addResult(exp.getResults().getF1());
System.out.println("Running IGP, it " + i + " on " + dataset.getLabel());
}
}
resultsIGW.newRow(dataset.getLabel() + " IntersectionGraphWalk");
for (int i = 1; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionGraphWalk" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionGraphWalkKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsIGW.addResult(exp.getResults().getAccuracy());
resultsIGW.addResult(exp.getResults().getF1());
System.out.println("Running IGW, it " + i + " on " + dataset.getLabel());
}
}
}
//*/
/******
* ADDITIONAL EXPERIMENTS
*/
dataSetsParams = new ArrayList<PropertyPredictionDataSetParameters>();
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 3, false, false));
//dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 4, false, false));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 1, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 2, false, true));
dataSetsParams.add(new PropertyPredictionDataSetParameters(testSetA, "http://swrc.ontoware.org/ontology#affiliation", "http://swrc.ontoware.org/ontology#employs", 3, false, true));
for (PropertyPredictionDataSetParameters params : dataSetsParams) {
dataset = DataSetFactory.createPropertyPredictionDataSet(params);
dataset.removeSmallClasses(5);
dataset.removeVertexAndEdgeLabels();
resultsWLadd.newRow(dataset.getLabel() + " WLSubTreeKernel");
for (int i = 0; i < 4; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "WL" + "_" + i + ".txt");
WLSubTreeKernel kernel = new WLSubTreeKernel(i, true);
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), kernel, seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsWLadd.addResult(exp.getResults().getAccuracy());
resultsWLadd.addResult(exp.getResults().getF1());
System.out.println("Running WL, it " + i + " on " + dataset.getLabel());
}
}
resultsSTFadd.newRow(dataset.getLabel() + " IntersectionFullSubTree");
for (int i = 0; i < 4; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionFullSubTree" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionSubTreeKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsSTFadd.addResult(exp.getResults().getAccuracy());
resultsSTFadd.addResult(exp.getResults().getF1());
System.out.println("Running STF, it " + i + " on " + dataset.getLabel());
}
}
resultsSTPadd.newRow(dataset.getLabel() + " IntersectionPartialSubTree");
for (int i = 0; i < 4; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionPartialSubTree" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionPartialSubTreeKernel(i, 0.01), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsSTPadd.addResult(exp.getResults().getAccuracy());
resultsSTPadd.addResult(exp.getResults().getF1());
System.out.println("Running STP, it " + i + " on " + dataset.getLabel());
}
}
resultsIGPadd.newRow(dataset.getLabel() + " IntersectionGraphPath");
for (int i = 1; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionGraphPath" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionGraphPathKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsIGPadd.addResult(exp.getResults().getAccuracy());
resultsIGPadd.addResult(exp.getResults().getF1());
System.out.println("Running IGP, it " + i + " on " + dataset.getLabel());
}
}
resultsIGWadd.newRow(dataset.getLabel() + " IntersectionGraphWalk");
for (int i = 1; i < 3; i++) {
if (experimenter.hasSpace()) {
int fileId = (int) (Math.random() * 100000000);
File file = new File(DATA_DIR + fileId + "_" + "IntersectionGraphWalk" + "_" + i + ".txt");
exp = new PropertyPredictionExperiment(new PropertyPredictionDataSet(dataset), new IntersectionGraphWalkKernel(i, 1), seeds, cs, new FileOutputStream(file));
experimenter.addExperiment(exp);
resultsIGWadd.addResult(exp.getResults().getAccuracy());
resultsIGWadd.addResult(exp.getResults().getF1());
System.out.println("Running IGW, it " + i + " on " + dataset.getLabel());
}
}
}
/***********
* END OF EXPERIMENTER
*
*
*/
} catch (Exception e) {
e.printStackTrace();
}
experimenter.stop();
while (expT.isAlive()) {
try {
Thread.sleep(1000);
} catch (Exception e) {