Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何调整支持向量机参数以更好地训练_Python_Opencv_Image Processing_Svm_Training Data - Fatal编程技术网

Python 如何调整支持向量机参数以更好地训练

Python 如何调整支持向量机参数以更好地训练,python,opencv,image-processing,svm,training-data,Python,Opencv,Image Processing,Svm,Training Data,我正在研究线性支持向量机,我正在使用Opencv和Python,我试图调整参数以获得更好的训练,但仍然没有得到好的结果,我感觉我经历了错误的参数设置 # Create SVM classifier svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_EPS_SVR) svm.setKernel(cv2.ml.SVM_LINEAR) #cv2.ml.SVM_LINEAR svm.setDegree(3) svm.setGamma(1) svm.setC

我正在研究线性支持向量机,我正在使用Opencv和Python,我试图调整参数以获得更好的训练,但仍然没有得到好的结果,我感觉我经历了错误的参数设置

# Create SVM classifier
svm = cv2.ml.SVM_create()
svm.setType(cv2.ml.SVM_EPS_SVR)
svm.setKernel(cv2.ml.SVM_LINEAR)
#cv2.ml.SVM_LINEAR
svm.setDegree(3)
svm.setGamma(1)
svm.setCoef0(0.0)
svm.setC(0.01)
svm.setNu(0.5)
svm.setP(0.1)
#svm.setClassWeights(0)

我正在使用上述参数,并从中获得了很多帮助。

使用搜索最佳参数值会获得更好的结果。您不能从其他应用程序复制参数值,并期望在自己的数据上获得良好的结果

当调用say
svm.getType()
时,会得到一个int值,例如100。要了解该类型,请参见公共类型下的:

枚举类型{C_SVC=100,NU_SVC=101,ONE_CLASS=102,
EPS\u SVR=103,NU\u SVR=104}

因此,100表示
C_SVC
。对于您找到的内核类型:

枚举核类型{CUSTOM=-1,LINEAR=0,POLY=1,RBF =2,SIGMOID=3,CHI2=4,INTER=5}


那么2意味着RBF核在数据上产生了最好的精度。

trainAuto也在预测时提出了问题,当我们使用
hog.setsvmdeter(svm_new)
探测器大小
时,当我尝试使用
trainAuto
获取类型和核时,它显示
打印(svm.getType())#100
print类型的100个值和
print(svm.getKernelType())#2
2 KernelType的值。