private void displayRoutine( PatternFeatureID featureID, PatternFeature feature, double modelValue, double error) { if (display) { String displayString = "\t" + featureID; if (feature.isRange()) { displayString += "\t(" + GeneralUtils.formatTwoDecimal(feature.getValueMin()) + ", " + GeneralUtils.formatTwoDecimal(feature.getValueMax()) + ")"; } else { displayString += "\t" + GeneralUtils.formatTwoDecimal(feature.getValue()); } displayString += "\t" + GeneralUtils.formatTwoDecimal(modelValue); displayString += "\t" + GeneralUtils.formatThreeDecimal(error) + "\t/"; System.out.println(displayString); } }
private double singleBurstError( int burstIdx, HashMap<BurstFeatureID, Double> expSingleBurstFeatures) { if (burstIdx >= modelSpikePattern.getBurstPattern().getNBursts()) { return 1; } double errorBW = 0; double errorIBI = 0; double errorNspikes = 0; // 2. BW error double bw = -1; if (expSingleBurstFeatures.containsKey(BurstFeatureID.b_w)) { bw = expSingleBurstFeatures.get(BurstFeatureID.b_w); double modelBw = modelSpikePattern.getBurstPattern().getBW(burstIdx); errorBW = StatUtil.calculateObsNormalizedError(bw, modelBw); } // 3. IBI error double pbi = -1; if (expSingleBurstFeatures.containsKey(BurstFeatureID.pbi)) { pbi = expSingleBurstFeatures.get(BurstFeatureID.pbi); double modelPbi = modelSpikePattern.getBurstPattern().getIBI(burstIdx); errorIBI = StatUtil.calculateObsNormalizedError(pbi, modelPbi); } // 4. N spikes error double nspikes = expSingleBurstFeatures.get(BurstFeatureID.nspikes); errorNspikes = StatUtil.calculateObsNormalizedError( nspikes, modelSpikePattern.getBurstPattern().getNSpikes(burstIdx)); /* * display */ if (display) { System.out.print("\t"); if (expSingleBurstFeatures.containsKey(BurstFeatureID.b_w)) { String displayString = "\tb_w\t" + GeneralUtils.formatTwoDecimal(bw); displayString += "\t" + GeneralUtils.formatTwoDecimal( modelSpikePattern.getBurstPattern().getBW(burstIdx)); displayString += "\t" + GeneralUtils.formatThreeDecimal(errorBW) + "\t/"; System.out.print(displayString); } if (expSingleBurstFeatures.containsKey(BurstFeatureID.pbi)) { String displayString = "\tibi\t" + GeneralUtils.formatTwoDecimal(pbi); displayString += "\t" + GeneralUtils.formatTwoDecimal( modelSpikePattern.getBurstPattern().getIBI(burstIdx)); displayString += "\t" + GeneralUtils.formatThreeDecimal(errorIBI) + "\t/"; System.out.print(displayString); } String displayString = "\tnspikes\t" + GeneralUtils.formatTwoDecimal(nspikes); displayString += "\t" + GeneralUtils.formatTwoDecimal( modelSpikePattern.getBurstPattern().getNSpikes(burstIdx)); displayString += "\t" + GeneralUtils.formatThreeDecimal(errorNspikes) + "\t/"; System.out.print(displayString + "\n"); } return ((expSpikePatternData.getBurstFeatures().getFeatureWeight(BurstFeatureID.b_w) * errorBW) + (expSpikePatternData.getBurstFeatures().getFeatureWeight(BurstFeatureID.pbi) * errorIBI) + (expSpikePatternData.getBurstFeatures().getFeatureWeight(BurstFeatureID.nspikes) * errorNspikes)); }