Search in sources :

Example 16 with ModelConfig

use of ml.shifu.shifu.container.obj.ModelConfig in project shifu by ShifuML.

the class ValidationConductorTest method testRunValidate.

@Test
public void testRunValidate() throws IOException {
    ModelConfig modelConfig = CommonUtils.loadModelConfig("src/test/resources/example/cancer-judgement/ModelStore/ModelSet1/ModelConfig.json", RawSourceData.SourceType.LOCAL);
    List<ColumnConfig> columnConfigList = CommonUtils.loadColumnConfigList("src/test/resources/example/cancer-judgement/ModelStore/ModelSet1/ColumnConfig.json", RawSourceData.SourceType.LOCAL);
    List<Integer> columnIdList = new ArrayList<Integer>();
    boolean hasCandidates = CommonUtils.hasCandidateColumns(columnConfigList);
    for (ColumnConfig columnConfig : columnConfigList) {
        if (columnConfig.isCandidate(hasCandidates)) {
            columnIdList.add(columnConfig.getColumnNum());
        }
    }
    TrainingDataSet trainingDataSet = new TrainingDataSet(columnIdList);
    List<String> recordsList = IOUtils.readLines(new FileInputStream("src/test/resources/example/cancer-judgement/DataStore/DataSet1/part-00"));
    for (String record : recordsList) {
        addRecordIntoTrainDataSet(modelConfig, columnConfigList, trainingDataSet, record);
    }
    Set<Integer> workingList = new HashSet<Integer>();
    for (Integer columnId : trainingDataSet.getDataColumnIdList()) {
        workingList.clear();
        workingList.add(columnId);
        ValidationConductor conductor = new ValidationConductor(modelConfig, columnConfigList, workingList, trainingDataSet);
        double error = conductor.runValidate();
        System.out.println("The error is - " + error + ", for columnId - " + columnId);
    }
}
Also used : ColumnConfig(ml.shifu.shifu.container.obj.ColumnConfig) ArrayList(java.util.ArrayList) FileInputStream(java.io.FileInputStream) ModelConfig(ml.shifu.shifu.container.obj.ModelConfig) TrainingDataSet(ml.shifu.shifu.core.dvarsel.dataset.TrainingDataSet) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 17 with ModelConfig

use of ml.shifu.shifu.container.obj.ModelConfig in project shifu by ShifuML.

the class WrapperWorkerConductorTest method testWrapperConductor.

@Test
public void testWrapperConductor() throws IOException {
    ModelConfig modelConfig = CommonUtils.loadModelConfig("src/test/resources/example/cancer-judgement/ModelStore/ModelSet1/ModelConfig.json", RawSourceData.SourceType.LOCAL);
    List<ColumnConfig> columnConfigList = CommonUtils.loadColumnConfigList("src/test/resources/example/cancer-judgement/ModelStore/ModelSet1/ColumnConfig.json", RawSourceData.SourceType.LOCAL);
    WrapperWorkerConductor wrapper = new WrapperWorkerConductor(modelConfig, columnConfigList);
    TrainingDataSet trainingDataSet = genTrainingDataSet(modelConfig, columnConfigList);
    wrapper.retainData(trainingDataSet);
    List<Integer> columnIdList = new ArrayList<Integer>();
    for (int i = 2; i < 30; i++) {
        columnIdList.add(i);
    }
    List<CandidateSeed> seedList = new ArrayList<CandidateSeed>();
    for (int i = 0; i < 10; i++) {
        seedList.add(new CandidateSeed(0, columnIdList.subList(i + 1, i + 7)));
    }
    wrapper.consumeMasterResult(new VarSelMasterResult(seedList));
    VarSelWorkerResult workerResult = wrapper.generateVarSelResult();
    Assert.assertNotNull(workerResult);
    Assert.assertTrue(workerResult.getSeedPerfList().size() > 0);
}
Also used : ColumnConfig(ml.shifu.shifu.container.obj.ColumnConfig) ArrayList(java.util.ArrayList) VarSelWorkerResult(ml.shifu.shifu.core.dvarsel.VarSelWorkerResult) CandidateSeed(ml.shifu.shifu.core.dvarsel.CandidateSeed) ModelConfig(ml.shifu.shifu.container.obj.ModelConfig) VarSelMasterResult(ml.shifu.shifu.core.dvarsel.VarSelMasterResult) TrainingDataSet(ml.shifu.shifu.core.dvarsel.dataset.TrainingDataSet) Test(org.testng.annotations.Test)

Example 18 with ModelConfig

use of ml.shifu.shifu.container.obj.ModelConfig in project shifu by ShifuML.

the class ModelInspectorTest method testValidateVarSelect.

@Test
public void testValidateVarSelect() throws Exception {
    ModelConfig config = CommonUtils.loadModelConfig();
    ValidateResult result = instance.probe(config, ModelStep.VARSELECT);
    Assert.assertTrue(result.getStatus());
    config.getVarSelect().setForceRemoveColumnNameFile("not-exists");
    config.getVarSelect().setForceSelectColumnNameFile("~/not-exists");
    result = instance.probe(config, ModelStep.VARSELECT);
    Assert.assertFalse(result.getStatus());
}
Also used : ModelConfig(ml.shifu.shifu.container.obj.ModelConfig) ValidateResult(ml.shifu.shifu.container.meta.ValidateResult) Test(org.testng.annotations.Test)

Example 19 with ModelConfig

use of ml.shifu.shifu.container.obj.ModelConfig in project shifu by ShifuML.

the class ModelInspectorTest method testValidateTrain.

@Test
public void testValidateTrain() throws Exception {
    ModelConfig config = CommonUtils.loadModelConfig();
    ValidateResult result = instance.probe(config, ModelStep.TRAIN);
    Assert.assertTrue(result.getStatus());
    config.getTrain().getParams().put(CommonConstants.NUM_HIDDEN_LAYERS, -1);
    result = instance.probe(config, ModelStep.TRAIN);
    Assert.assertFalse(result.getStatus());
    config.getTrain().getParams().put(CommonConstants.NUM_HIDDEN_LAYERS, 2);
    List<Integer> hiddenNodes = new ArrayList<Integer>();
    hiddenNodes.add(10);
    hiddenNodes.add(10);
    config.getTrain().getParams().put(CommonConstants.NUM_HIDDEN_NODES, hiddenNodes);
    List<String> activateFuncs = new ArrayList<String>();
    activateFuncs.add("tanh");
    activateFuncs.add("sigmoid");
    activateFuncs.add("tanh");
    config.getTrain().getParams().put(CommonConstants.ACTIVATION_FUNC, activateFuncs);
    result = instance.probe(config, ModelStep.TRAIN);
    Assert.assertFalse(result.getStatus());
}
Also used : ModelConfig(ml.shifu.shifu.container.obj.ModelConfig) ValidateResult(ml.shifu.shifu.container.meta.ValidateResult) ArrayList(java.util.ArrayList) Test(org.testng.annotations.Test)

Example 20 with ModelConfig

use of ml.shifu.shifu.container.obj.ModelConfig in project shifu by ShifuML.

the class ModelInspectorTest method testValidateInit.

@Test
public void testValidateInit() throws Exception {
    ModelConfig config = CommonUtils.loadModelConfig();
    ValidateResult result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    config.getDataSet().setCategoricalColumnNameFile("not-exists");
    config.getDataSet().setMetaColumnNameFile("~/not-exists");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    config.getDataSet().setMetaColumnNameFile(" ");
    config.getDataSet().setCategoricalColumnNameFile("");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    config.getDataSet().setTargetColumnName(null);
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    config.getDataSet().setTargetColumnName("  ");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    config.getDataSet().setTargetColumnName("a");
    config.getDataSet().setMetaColumnNameFile("meta.names");
    FileUtils.write(new File("meta.names"), "a");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    FileUtils.write(new File("meta.names"), "");
    config.getDataSet().setTargetColumnName("a");
    config.getVarSelect().setForceRemoveColumnNameFile("force.remove.names");
    FileUtils.write(new File("force.remove.names"), "a");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    FileUtils.write(new File("force.remove.names"), "");
    config.getDataSet().setTargetColumnName("a");
    config.getVarSelect().setForceSelectColumnNameFile("force.select.names");
    FileUtils.write(new File("force.select.names"), "a");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    FileUtils.write(new File("force.select.names"), "");
    FileUtils.write(new File("force.remove.names"), "");
    FileUtils.write(new File("meta.names"), "b\nc");
    FileUtils.write(new File("force.select.names"), "c\nd");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    FileUtils.write(new File("force.select.names"), "");
    FileUtils.write(new File("force.remove.names"), "");
    FileUtils.write(new File("meta.names"), "b\nc");
    FileUtils.write(new File("force.remove.names"), "c\nd");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    FileUtils.write(new File("meta.names"), "");
    FileUtils.write(new File("force.remove.names"), "b\nc");
    FileUtils.write(new File("force.select.names"), "c\nd");
    result = instance.probe(config, ModelStep.INIT);
    Assert.assertTrue(result.getStatus());
    Assert.assertEquals("[true]", result.toString());
    FileUtils.deleteQuietly(new File("meta.names"));
    FileUtils.deleteQuietly(new File("force.remove.names"));
    FileUtils.deleteQuietly(new File("force.select.names"));
}
Also used : ModelConfig(ml.shifu.shifu.container.obj.ModelConfig) ValidateResult(ml.shifu.shifu.container.meta.ValidateResult) File(java.io.File) Test(org.testng.annotations.Test)

Aggregations

ModelConfig (ml.shifu.shifu.container.obj.ModelConfig)33 Test (org.testng.annotations.Test)18 ArrayList (java.util.ArrayList)9 File (java.io.File)8 ValidateResult (ml.shifu.shifu.container.meta.ValidateResult)8 ColumnConfig (ml.shifu.shifu.container.obj.ColumnConfig)8 TrainingDataSet (ml.shifu.shifu.core.dvarsel.dataset.TrainingDataSet)4 IOException (java.io.IOException)3 EvalConfig (ml.shifu.shifu.container.obj.EvalConfig)3 NNTrainer (ml.shifu.shifu.core.alg.NNTrainer)3 BeforeClass (org.testng.annotations.BeforeClass)3 FileInputStream (java.io.FileInputStream)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 HashSet (java.util.HashSet)2 List (java.util.List)2 Properties (java.util.Properties)2 RawSourceData (ml.shifu.shifu.container.obj.RawSourceData)2 PathFinder (ml.shifu.shifu.fs.PathFinder)2 MLDataPair (org.encog.ml.data.MLDataPair)2 BasicMLDataPair (org.encog.ml.data.basic.BasicMLDataPair)2