new LatentClassificationModel(data.getAttributes()) .setClassName(classVarName) .setNumContinuousHidden(numContinuousHidden) .setNumStatesHidden(numStatesHidden); lcm.updateModel(data); for (DataOnMemory<DataInstance> batch : data.iterableOverBatches(100)) { lcm.updateModel(batch); System.out.println(lcm.getModel()); System.out.println(lcm.getDAG()); lcm.setInferenceAlgoPredict(algo); for(DataInstance d : dataTest) { d.setValue(lcm.getClassVar(), Utils.missingValue()); Multinomial posteriorProb = lcm.predict(d); System.out.println(posteriorProb.toString());
Model model = new LatentClassificationModel(data.getAttributes()) .setClassName("codrna_Y") .setNumContinuousHidden(1) .setNumStatesHidden(2) .setWindowSize(1000);
public boolean isValidConfiguration(){ boolean isValid = true; long numReal = vars.getListOfVariables().stream() .filter( v -> v.getStateSpaceTypeEnum().equals(StateSpaceTypeEnum.REAL)) .count(); long numFinite = vars.getListOfVariables().stream() .filter( v -> v.getStateSpaceTypeEnum().equals(StateSpaceTypeEnum.FINITE_SET)) .count(); if(numFinite != 1 || numReal != vars.getNumberOfVars()-1) { isValid = false; String errorMsg = "Invalid configuration: wrong number types of variables domains. It should contain 1 discrete variable and the rest shoud be real"; this.setErrorMessage(errorMsg); } return isValid; }