List of usage examples for org.apache.mahout.math DenseMatrix get
@Override public double get(String rowLabel, String columnLabel)
From source file:org.eclipse.tracecompass.internal.totalads.algorithms.hiddenmarkovmodel.HmmMahout.java
License:Open Source License
/** * Initializes HMM with the customized transition, emission and initial * probabilities rather than using Mahout's initialization. Specially this * function makes sure that initial probabilities are equal. * * @param numSymbols//from w w w . j a va 2s .com * Number of Symbols * @param numStates * Number of States */ public void initializeHMMWithCustomizeInitialValues(int numSymbols, int numStates) { // Generating transition probabilities with random numbers Random random = new Random(); double start = 0.0001; double end = 1.0000; DenseMatrix tansitionProbabilities = new DenseMatrix(numStates, numStates); // Measuring Transition Probabilities double[] rowSums = new double[numStates]; Arrays.fill(rowSums, 0.0); for (int row = 0; row < numStates; row++) { for (int col = 0; col < numStates; col++) { tansitionProbabilities.set(row, col, getRandomRealNumber(start, end, random)); rowSums[row] += tansitionProbabilities.get(row, col); } } for (int row = 0; row < numStates; row++) { for (int col = 0; col < numStates; col++) { tansitionProbabilities.set(row, col, (tansitionProbabilities.get(row, col) / rowSums[row])); } } // Assigning initial state probabilities Pi; i.e. probabilities at time // 1 DenseVector initialProbabilities = new DenseVector(numStates); double initialProb = 1 / ((double) numStates); for (int idx = 0; idx < numStates; idx++) { initialProbabilities.set(idx, initialProb); } // Measuring Emission probabilities of each symbol DenseMatrix emissionProbabilities = new DenseMatrix(numStates, numSymbols); Arrays.fill(rowSums, 0.0);// Utilizing the same rowSums variable random = new Random(); for (int row = 0; row < numStates; row++) { for (int col = 0; col < numSymbols; col++) { emissionProbabilities.set(row, col, getRandomRealNumber(start, end, random)); rowSums[row] += emissionProbabilities.get(row, col); } } for (int row = 0; row < numStates; row++) { for (int col = 0; col < numSymbols; col++) { emissionProbabilities.set(row, col, emissionProbabilities.get(row, col) / rowSums[row]); } } fHmm = new HmmModel(tansitionProbabilities, emissionProbabilities, initialProbabilities); }
From source file:org.qcri.pca.CompositeJobTest.java
License:Apache License
private void verifyXtX(DenseMatrix xtxMatrix) { Assert.assertEquals("The computed xtx must have " + xsize + " rows!", xsize, xtxMatrix.numRows()); Assert.assertEquals("The computed xtx must have " + xsize + " cols!", xsize, xtxMatrix.numCols()); for (int r = 0; r < xsize; r++) for (int c = 0; c < xsize; c++) Assert.assertEquals("The xtx[" + r + "][" + c + "] is incorrect: ", xtx[r][c], xtxMatrix.get(r, c), EPSILON);/*from w ww .j a va2s . c o m*/ }