print("the test error rate is: %f" % (float(errorCount) / m)) if __name__ == "__main__": import svmMLiA dataArr, labelArr = svmMLiA.loadDataSet('testSetSVM.txt') print("dataArr:\n", dataArr) print("labenlArr:\n", labelArr) b, alphas = svmMLiA.smoSimple(dataArr, labelArr, 0.6, 0.001, 40) print("\nb:\n", b, "\nalphas:\n", alphas[alphas > 0]) #alphas[alphas>0], only can be used in numpy print("\nshape of alphas>0:\n", shape(alphas[alphas > 0])) for i in range(100): if alphas[i] > 0.0: print(dataArr[i], labelArr[i]) # b,alphas = svmMLiA.smoPK(dataArr,labelArr,0.6,0.001,40) # print("\nb2:\n", b, "\nalphas2:\n", alphas[alphas > 0]) # alphas[alphas>0], only can be used in numpy # # ws=svmMLiA.calcWs(alphas,dataArr,labelArr) # print("\nws:\n",ws) # dataMat=mat(dataArr) # print("datMat[i]: ",dataMat[2]*mat(ws)+b) # print("LabelArr[i]: ",labelArr[2]) #svmMLiA.testRbf() svmMLiA.testDigits(('rbf', 20))
Created on 2015. 10. 27. @author: KimTaeJin ''' import svmMLiA from numpy import * # dataArr, labelArr = svmMLiA.loadDataSet('../data/testSet.txt') # print(labelArr) # reload(svmMLiA) # b, alphas = svmMLiA.smoSimple(dataArr, labelArr, 0.6, 0.001, 40) # # print(b) # print(alphas[alphas>0]) # b, alphas = svmMLiA.smoP(dataArr, labelArr, 0.6, 0.001, 40) # # ws = svmMLiA.calcWs(alphas, dataArr, labelArr) # print(ws) # # dataMat = mat(dataArr) # dataMat[0] * mat(ws) + b # reload(svmMLiA) # svmMLiA.testRbf() # reload(svmMLiA) svmMLiA.testDigits(('rbf', 20))
import svmMLiA #from numpy import * #dataArr, labelArr = svmMLiA.loadDataSet('testSet.txt') #print labelArr, "\n" #b, alphas = svmMLiA.smoSimple(dataArr, labelArr, 0.6, 0.001, 40) #print b #b, alphas = svmMLiA.smoP(dataArr, labelArr, 0.6, 0.001, 20) #ws = svmMLiA.calcWs(alphas, dataArr, labelArr) #print ws #svmMLiA.testRbf() #svmMLiA.testRbf(2.1) svmMLiA.testDigits() #svmMLiA.testDigits(('rbf',20))
iter: 30 i:17, pairs changed 1 j not moving enough iteration number: 0 j not moving enough iteration number: 1 b: matrix([[-3.8486163]]) alphas[alphas>0] = matrix([[0.09313378, 0.27456007, 0.04445935, 0.3232345 ]]) """ # To see which points of our dataset are support vectors for i in range(100): if alphas[i] > 0.0: print(dataArr[i], labelArr[i]) """ output: [4.658191, 3.507396] -1.0 [3.457096, -0.082216] -1.0 [2.893743, -1.643468] -1.0 [6.080573, 0.418886] 1.0 """ """ optimised SMOP """ b, alphas = SVM.smoP(dataArr, labelArr, 0.6, 0.001, 40) """ get alpha for supporting vectors """ ws = SVM.calcWs(alphas, dataArr, labelArr) """ test rbf kernel """ SVM.testRbf() """ testdigits classification using rbf kernel """ SVM.testDigits(('rbf', 20))
#!/usr/bin/python # encoding: utf-8 ''' Created on Dec 2, 2015 @author: yanruibo ''' import svmMLiA ''' 测试四种核函数的SVM ''' if __name__ == '__main__': svmMLiA.testDigits(('lin',)) #svmMLiA.testDigits(('rbf',50)) #svmMLiA.testDigits(('polynomial',100)) #svmMLiA.testDigits(('sigmoid',0.00125,0.4))
''' b, alphas = sl.smoSimple(dataArray, labelArray, 0.6, 0.001, 40) # print('b = ', b) print('alphas numbers = ', shape(alphas[alphas > 0])) for i in range(100): if alphas[i] > 0.0: print(dataArray[i], labelArray[i]) b, alphas = sl.smoP(dataArray, labelArray, 0.6, 0.001, 40) ws = sl.calcWs(alphas, dataArray, labelArray) print('ws : ', ws) dataMat = mat(dataArray) print('first data label : ', dataMat[0] * mat(ws) + b) print('labelArray[0] = ', labelArray[0]) print('labelArray[1] = ', labelArray[0]) print('labelArray[2] = ', labelArray[0]) ''' # sl.testRbf() # k1 = 10 to get the smallest test-error sl.testDigits(('rbf', 10))
import svmMLiA svmMLiA.testDigits()
if alphas[i] > 0.0: print(dataArr[i], labelArr[i]) # 看下优化之后的 reload(svmMLiA) b, alphas = svmMLiA.smoP(dataArr, labelArr, 0.6, 0.001, 40) # 给出W reload(svmMLiA) ws = svmMLiA.calcWs(alphas, dataArr, labelArr) ws # 查看分类结果 datMat = sp.mat(dataArr) datMat[0] * sp.mat(ws) + b # 看预测的 labelArr[0] # 看实际的 # 试试看高斯核的 reload(svmMLiA) svmMLiA.testGauss() # 默认是1.3 svmMLiA.testGauss(k1=0.5) svmMLiA.testGauss(k1=0.7) svmMLiA.testGauss(k1=0.9) svmMLiA.testGauss(k1=1.1) svmMLiA.testGauss(k1=1.4) svmMLiA.testGauss(k1=1.6) # 别搞太大 #看看在数字识别上效果如何 reload(svmMLiA) svmMLiA.testDigits(('Gauss', 10)) # 这个应该是最好的参数了已经
#求出分离超平面 b,alphas=svmMLiA.smoP(dataArr,labelArr,0.6,0.001,40) ws=svmMLiA.calcWs(alphas,dataArr,labelArr) #分类决策函数 lf=svmMLiA.classifySVM(ws,b,dataArr[0]) print( lf ) #结束时间 endtime = time.clock() print( (endtime-starttime) ) #测试svm svmMLiA.testRbf(0.1) ''' svmMLiA.testDigits(kTup=('rbf',20))
#!/usr/bin/python # encoding: utf-8 ''' Created on Dec 2, 2015 @author: yanruibo ''' import svmMLiA ''' 测试四种核函数的SVM ''' if __name__ == '__main__': svmMLiA.testDigits(('lin', )) #svmMLiA.testDigits(('rbf',50)) #svmMLiA.testDigits(('polynomial',100)) #svmMLiA.testDigits(('sigmoid',0.00125,0.4))