/** * Sets the distribution of a multinomial variable in the Hugin model from the corresponding distribution in the * AMIDST model. * @param dist the AMIDST distribution to be converted. * @throws ExceptionHugin */ private void setMultinomial(Multinomial dist) throws ExceptionHugin { Variable amidstVar = dist.getVariable(); Node huginVar = this.huginBN.getNodeByName(amidstVar.getName()); int nStates = amidstVar.getNumberOfStates(); double[] finalArray = new double[nStates]; double[] sourceArray = dist.getProbabilities(); System.arraycopy(sourceArray, 0, finalArray, 0, nStates); huginVar.getTable().setData(finalArray); }
double[] values = posteriorProb.getProbabilities(); if (values[0]>values[1]) { predValue = 0;
double[] values = posteriorProb.getProbabilities(); if (values[0]>values[1]) { predValue = 0;
/** * Sets the distribution of a multinomial variable with multinomial parents in the Hugin model from the * corresponding distribution in the AMIDST model. * * @param dist the AMIDST distribution to be converted. * @throws ExceptionHugin */ private void setMultinomial_MultinomialParents(Multinomial_MultinomialParents dist) throws ExceptionHugin { Variable amidstVar = dist.getVariable(); Node huginVar = this.huginBN.getNodeByName(amidstVar.getName()); List<Multinomial> probabilities = dist.getMultinomialDistributions(); List<Variable> conditioningVariables = dist.getConditioningVariables(); int numParentAssignments = MultinomialIndex.getNumberOfPossibleAssignments(conditioningVariables); int nStates = amidstVar.getNumberOfStates(); int sizeArray = numParentAssignments * nStates; double[] finalArray = new double[sizeArray]; for(int i=0;i<numParentAssignments;i++){ double[] sourceArray = probabilities.get(i).getProbabilities(); System.arraycopy(sourceArray, 0, finalArray, i*nStates, nStates); } huginVar.getTable().setData(finalArray); }
double[] values = posteriorProb.getProbabilities(); if (values[0]>values[1]) { predValue = 0;
@Override public double[] distributionForInstance(Instance instance) throws Exception { if(bnModel_ == null) { throw new UnsupportedOperationException("The model was not learnt"); //return new double[0]; } DataInstance dataInstance = new DataInstanceFromDataRow(new DataRowWeka(instance, this.attributes_)); double realValue = dataInstance.getValue(clusterVar_); dataInstance.setValue(clusterVar_, eu.amidst.core.utils.Utils.missingValue()); this.inferenceAlgorithm_.setEvidence(dataInstance); this.inferenceAlgorithm_.runInference(); Multinomial multinomial = this.inferenceAlgorithm_.getPosterior(clusterVar_); dataInstance.setValue(clusterVar_, realValue); return multinomial.getProbabilities(); }
/** * Calculates the class membership probabilities for the given test instance. * * @param instance the instance to be classified * @return predicted class probability distribution * @exception Exception if there is a problem generating the prediction */ @Override public double[] distributionForInstance(Instance instance) throws Exception { if(bnModel_ == null) { throw new UnsupportedOperationException("The model was not learnt"); //return new double[0]; } DataInstance dataInstance = new DataInstanceFromDataRow(new DataRowWeka(instance, this.attributes_)); double realValue = dataInstance.getValue(classVar_); dataInstance.setValue(classVar_, eu.amidst.core.utils.Utils.missingValue()); this.inferenceAlgorithm_.setEvidence(dataInstance); this.inferenceAlgorithm_.runInference(); Multinomial multinomial = this.inferenceAlgorithm_.getPosterior(classVar_); dataInstance.setValue(classVar_, realValue); return multinomial.getProbabilities(); }
/** * {@inheritDoc} */ @Override public double[] getVotesForInstance(Instance instance) { if(bnModel_ == null) { return new double[0]; } DataInstance dataInstance = new DataInstanceFromDataRow(new DataRowWeka(instance, this.attributes_)); double realValue = dataInstance.getValue(classVar_); dataInstance.setValue(classVar_, Utils.missingValue()); this.predictions_.setEvidence(dataInstance); this.predictions_.runInference(); Multinomial multinomial = this.predictions_.getPosterior(classVar_); dataInstance.setValue(classVar_, realValue); return multinomial.getProbabilities(); }
double[] sourceArray = probabilities.get(j).getProbabilities(); System.arraycopy(sourceArray, 0, finalArray, j * nStates, nStates);
Multinomial multinomial = this.predictions_.getPosterior(clusterVar_); double[] results = multinomial.getProbabilities();