package de.jungblut.online.bayes;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import de.jungblut.math.DoubleMatrix;
import de.jungblut.math.DoubleVector;
import de.jungblut.online.ml.Model;
import de.jungblut.writable.MatrixWritable;
import de.jungblut.writable.VectorWritable;
public class BayesianProbabilityModel implements Model {
private DoubleMatrix probabilityMatrix;
private DoubleVector classPriorProbability;
// deserialization constructor
public BayesianProbabilityModel() {
}
public BayesianProbabilityModel(DoubleMatrix probabilityMatrix,
DoubleVector classPriorProbability) {
this.probabilityMatrix = probabilityMatrix;
this.classPriorProbability = classPriorProbability;
}
@Override
public void serialize(DataOutput out) throws IOException {
new MatrixWritable(probabilityMatrix).write(out);
VectorWritable.writeVector(classPriorProbability, out);
}
@Override
public BayesianProbabilityModel deserialize(DataInput in) throws IOException {
MatrixWritable mat = new MatrixWritable();
mat.readFields(in);
this.probabilityMatrix = mat.getMatrix();
this.classPriorProbability = VectorWritable.readVector(in);
return this;
}
public DoubleVector getClassPriorProbability() {
return this.classPriorProbability;
}
public DoubleMatrix getProbabilityMatrix() {
return this.probabilityMatrix;
}
}