[marf-cvs] marf/src/marf/Classification/Similarity CosineSimilarityMeasure.java, 1.6, 1.7
Brought to you by:
mokhov
From: Serguei A. M. <mo...@us...> - 2015-03-08 19:47:24
|
Update of /cvsroot/marf/marf/src/marf/Classification/Similarity In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30456/marf/Classification/Similarity Modified Files: CosineSimilarityMeasure.java Log Message: Implement configurable options for mean, median, single, and no-clustering based trained data sets. Clean up a bit. Index: CosineSimilarityMeasure.java =================================================================== RCS file: /cvsroot/marf/marf/src/marf/Classification/Similarity/CosineSimilarityMeasure.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CosineSimilarityMeasure.java 9 Jul 2012 03:53:32 -0000 1.6 --- CosineSimilarityMeasure.java 8 Mar 2015 19:47:21 -0000 1.7 *************** *** 80,126 **** ITrainingSample oTrainingSample = oTrainingSamples.get(i); ! double[] adMeanVector = oTrainingSample.getMeanVector(); // double[] adMeanVector = oTrainingSample.getMedianVector(); ! ! // Sanity check: stored mean vector must never be null ! if(adMeanVector == null) ! { ! throw new ClassificationException ! ( ! "similarity() - Stored mean vector is null for subject (" + oTrainingSample.getSubjectID() + ! ", preprocessing method: " + this.oTrainingSet.getPreprocessingMethod() + ! ", feature extraction methods: " + this.oTrainingSet.getFeatureExtractionMethod() ! ); ! } ! ! // Sanity check: vectors must be of the same length ! if(adMeanVector.length != adIncomingFeatures.length) ! { ! throw new ClassificationException ! ( ! "similarity() - Mean vector length (" + adMeanVector.length + ! ") is not same as of incoming feature vector (" + adIncomingFeatures.length + ")" ! ); ! } ! ! /* ! * We have a mean vector of the samples for this iCurrentSubjectID ! * Compare using whatever distance classifier it is... ! */ ! double dCurrentSimilarity = similarity(adMeanVector, adIncomingFeatures); ! ! Debug.debug("Similarity for subject " + oTrainingSample.getSubjectID() + " = " + dCurrentSimilarity); ! ! // XXX: What should we do in this (very rare and subtle) case? ! if(dCurrentSimilarity == dMaxSimilarity) ! { ! Debug.debug("This similarity had happened before!"); ! } ! ! if(dCurrentSimilarity > dMaxSimilarity) { ! dMaxSimilarity = dCurrentSimilarity; } ! // Collect for stats // XXX: Move to StatsCollector --- 80,128 ---- ITrainingSample oTrainingSample = oTrainingSamples.get(i); ! //double[] adDataVector = oTrainingSample.getMeanVector(); // double[] adMeanVector = oTrainingSample.getMedianVector(); ! for(double[] adDataVector: oTrainingSample.getDataVectors()) { ! // Sanity check: stored mean vector must never be null ! if(adDataVector == null) ! { ! throw new ClassificationException ! ( ! "similarity() - Stored mean vector is null for subject (" + oTrainingSample.getSubjectID() + ! ", preprocessing method: " + this.oTrainingSet.getPreprocessingMethod() + ! ", feature extraction methods: " + this.oTrainingSet.getFeatureExtractionMethod() ! ); ! } ! ! // Sanity check: vectors must be of the same length ! if(adDataVector.length != adIncomingFeatures.length) ! { ! throw new ClassificationException ! ( ! "similarity() - Mean vector length (" + adDataVector.length + ! ") is not same as of incoming feature vector (" + adIncomingFeatures.length + ")" ! ); ! } ! ! /* ! * We have a mean vector of the samples for this iCurrentSubjectID ! * Compare using whatever distance classifier it is... ! */ ! double dCurrentSimilarity = similarity(adDataVector, adIncomingFeatures); ! ! Debug.debug("Similarity for subject " + oTrainingSample.getSubjectID() + " = " + dCurrentSimilarity); ! ! // XXX: What should we do in this (very rare and subtle) case? ! if(dCurrentSimilarity == dMaxSimilarity) ! { ! Debug.debug("This similarity had happened before!"); ! } ! ! if(dCurrentSimilarity > dMaxSimilarity) ! { ! dMaxSimilarity = dCurrentSimilarity; ! } } ! // Collect for stats // XXX: Move to StatsCollector *************** *** 128,132 **** ( oTrainingSample.getSubjectID(), ! dCurrentSimilarity ); } --- 130,134 ---- ( oTrainingSample.getSubjectID(), ! dMaxSimilarity ); } |