def confmat(L1, L2) : """computes the confusion matrix between two labelings """ if len(L1) != len(L2): raise ValueError, "labels not the same length" n = len(L1) classes1 = misc.unique(L1) classes2 = misc.unique(L2) classes1.sort() classes2.sort() numClasses1 = len(classes1) numClasses2 = len(classes2) I1 = {} # a mapping from classes1 to 0..numclasses1-1 I2 = {} for i in range(numClasses1) : I1[classes1[i]] = i for i in range(numClasses2) : I2[classes2[i]] = i confmat = numpy.zeros((numClasses1, numClasses2)) for i in range(n): confmat[I1[L1[i]]][I2[L2[i]]] += 1 return confmat
def postProcess(self) : if len(self._featureDict.keys()) != len(misc.unique(self._featureDict.values())) : print len(self._featureDict.keys()), len(misc.unique(self._featureDict.values())) raise ValueError, 'non-unique hash' featureKeyDict = {} featureKey = self._featureDict.values() featureKey.sort() for i in range(len(featureKey)) : featureKeyDict[featureKey[i]] = i inverseFeatureDict = misc.invertDict(self._featureDict) featureID = [str(inverseFeatureDict[key]) for key in featureKey] return featureID, featureKey, featureKeyDict
def postProcess(self): if len(self._featureDict.keys()) != len( misc.unique(self._featureDict.values())): print len(self._featureDict.keys()), len( misc.unique(self._featureDict.values())) raise ValueError, 'non-unique hash' featureKeyDict = {} featureKey = self._featureDict.values() featureKey.sort() for i in range(len(featureKey)): featureKeyDict[featureKey[i]] = i inverseFeatureDict = misc.invertDict(self._featureDict) featureID = [str(inverseFeatureDict[key]) for key in featureKey] return featureID, featureKey, featureKeyDict