def __init__(self, classData, k=1, distMetric='euclidean', *args, **kwargs):
Classifier.__init__(self, util.colmat(classData[0]).shape[1],
len(classData))
self.k = k
minObs = min([len(cls) for cls in classData])
if self.k > minObs:
raise Exception('k=%d exceeds the number of examples in smallest training class %d.' %
(k, minObs))
if callable(distMetric):
self.distFunc = lambda x1, x2: distMetric(x1, x2, *args, **kwargs)
else:
self.distFunc = lambda x1, x2: spdist.cdist(x1, x2, metric=distMetric)
self.trainData = classData
评论列表
文章目录