return buildModel(m_NumComponents, m_Values, m_Weights); return buildModel(1, m_Values, m_Weights); MM bestMixtureModel = buildModel(1, m_Values, m_Weights); double loglikelihoodForOneCluster = bestMixtureModel.loglikelihood(m_Values, m_Weights); double bestNormalizedEntropy = 1; for (int i = 2; i <= m_MaxNumComponents; i++) { MM mixtureModel = buildModel(i, m_Values, m_Weights);
return buildModel(m_NumComponents, m_Values, m_Weights); return buildModel(1, m_Values, m_Weights); MM bestMixtureModel = buildModel(1, m_Values, m_Weights); double loglikelihoodForOneCluster = bestMixtureModel.loglikelihood(m_Values, m_Weights); double bestNormalizedEntropy = 1; for (int i = 2; i <= m_MaxNumComponents; i++) { MM mixtureModel = buildModel(i, m_Values, m_Weights);
/** * Updates the model based on the current data. * Uses the leave-one-out Bootstrap to choose the number of components. */ protected void updateModel() { if (m_MixtureModel != null) { return; } else if (m_NumValues > 0) { // Shrink arrays if necessary if (m_Values.length > m_NumValues) { double[] values = new double[m_NumValues]; double[] weights = new double[m_NumValues]; System.arraycopy(m_Values, 0, values, 0, m_NumValues); System.arraycopy(m_Weights, 0, weights, 0, m_NumValues); m_Values = values; m_Weights = weights; } if (m_UseNormalizedEntropy) { m_MixtureModel = findModelUsingNormalizedEntropy(); } else { m_MixtureModel = buildModel(findNumComponentsUsingBootStrap(), m_Values, m_Weights); } } }
/** * Updates the model based on the current data. * Uses the leave-one-out Bootstrap to choose the number of components. */ protected void updateModel() { if (m_MixtureModel != null) { return; } else if (m_NumValues > 0) { // Shrink arrays if necessary if (m_Values.length > m_NumValues) { double[] values = new double[m_NumValues]; double[] weights = new double[m_NumValues]; System.arraycopy(m_Values, 0, values, 0, m_NumValues); System.arraycopy(m_Weights, 0, weights, 0, m_NumValues); m_Values = values; m_Weights = weights; } if (m_UseNormalizedEntropy) { m_MixtureModel = findModelUsingNormalizedEntropy(); } else { m_MixtureModel = buildModel(findNumComponentsUsingBootStrap(), m_Values, m_Weights); } } }
boolean[] inBag = new boolean[m_NumValues]; double[][] output = resampleWithWeights(m_Random, inBag); MM mixtureModel = buildModel(i, output[0], output[1]); double locLogLikelihood = 0; double totalWeight = 0;
boolean[] inBag = new boolean[m_NumValues]; double[][] output = resampleWithWeights(m_Random, inBag); MM mixtureModel = buildModel(i, output[0], output[1]); double locLogLikelihood = 0; double totalWeight = 0;