error: (-5:Bad argument) in the case of classification problem the responses must be categorical;

当使用SVM训练模型是出现以下错误:

error                                     Traceback (most recent call last)
 in 
     44 svm.setC(0.05)
     45 # 6,train
---> 46 ret = svm.train(featureArray,cv2.ml.ROW_SAMPLE,labelArray)
     47 # 7.  检测
     48 alpha = np.zeros((1),np.float32)

error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\ml\src\svm.cpp:1629: error: (-5:Bad argument) in the case of classification problem the responses must be categorical; either specify varType when creating TrainData, or pass integer responses in function 'cv::ml::SVMImpl::train'

报错行是:

ret = svm.train(featureArray,cv2.ml.ROW_SAMPLE,labelArray)

最可能的原因是:

labelArray的数据类型有问题:

源代码是:

labelArray = np.zeros(((PosNum+NegNum),1),np.float32)

修改成:

labelArray = np.zeros(((PosNum+NegNum),1),np.int32)

 

你可能感兴趣的:(error: (-5:Bad argument) in the case of classification problem the responses must be categorical;)