我一直在尝试使用SimpleCV的SVMClassifier
进行简单的二元分类。以下是我尝试过的内容,以及随后的错误:
svm = SVMClassifier([HueHistogramFeatureExtractor])svm.train([train_airplanes, train_leaves], ['Airplanes', 'Leaves'])
错误:
---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-31-50d09bd20b62> in <module>() 1 svm = SVMClassifier([HueHistogramFeatureExtractor])----> 2 svm.train([train_airplanes, train_leaves], ['Airplanes', 'Leaves'])/usr/local/lib/python2.7/dist-packages/SimpleCV/MachineLearning/SVMClassifier.pyc in train(self, paths, classNames, disp, subset, savedata, verbose) 229 colNames = [] 230 for extractor in self.mFeatureExtractors:--> 231 colNames.extend(extractor.getFieldNames()) 232 233 if(count <= 0):TypeError: unbound method getFieldNames() must be called with HueHistogramFeatureExtractor instance as first argument (got nothing instead)
文档非常简略,所以我不确定应该做些什么不同的事情。
回答:
我知道这个回答在你的情况下可能已经太晚了,但也许它会帮助其他人:
你必须给分类器提供特征提取器的实例,而不是类,所以你应该这样做:
svm = SVMClassifier([HueHistogramFeatureExtractor()])