def testRbf(k1=1.3): dataArr, labelArr = SMO.loadDataSet('testSetRBF.txt') b, alphas = smoP(dataArr, labelArr, 200, 0.0001, 10000, ('rbf', k1)) dataMat = mat(dataArr) labelMat = mat(labelArr).transpose() svInd = nonzero(alphas.A > 0)[0] sVs = dataMat[svInd] labelLSV = labelMat[svInd] print("there are %d Support Vectors" % shape(sVs)[0]) m, n = shape(dataMat) errorCount = 0 for i in range(m): kernelEval = kernelTrans(sVs, dataMat[i, :], ('rbf', k1)) predict = kernelEval.T * multiply(labelLSV, alphas[svInd]) + b if sign(predict) != sign(labelArr[i]): errorCount += 1 print("the training error rate is: %f" % (float(errorCount) / m)) dataArr, labelArr = SMO.loadDataSet('testSetRBF2.txt') errorCount = 0 dataMat = mat(dataArr) labelMat = mat(labelArr).transpose() m, n = shape(dataMat) for i in range(m): kernelEval = kernelTrans(sVs, dataMat[i, :], ('rbf', k1)) predict = kernelEval.T * multiply(labelLSV, alphas[svInd]) + b if sign(predict) != sign(labelArr[i]): errorCount += 1 print("the test error rate is: %f" % (float(errorCount) / m))
def testRbf(k1=1.3): #load data dataArr, labelArr = smo.loadDataSet('testSetRBF.txt') #training b, alphas = smoP(dataArr, labelArr, 200, 0.0001, 10000, ('rbf',k1)) datMat = mat(dataArr) labelMat = mat(labelArr).transpose() #build support vector svInd = nonzero(alphas.A > 0)[0] sVs = datMat[svInd] labelSV = labelMat[svInd] print "there are %d Support Vectors" % shape(sVs)[0] #training error rate m,n = shape(datMat) errorCount = 0 for i in range(m): kernelEval = kernelTrans(sVs, datMat[i,:],('rbf',k1)) predict = kernelEval.T * multiply(labelSV, alphas[svInd]) + b if sign(predict) != sign(labelArr[i]): errorCount += 1 print "the test error rate is: %f" %(float(errorCount)/m) #test error rate dataArr, labelArr = smo.loadDataSet('testSetRBF2.txt') errorCount = 0 datMat = mat(dataArr) labelmat = mat(labelArr).transpose() m,n = shape(datMat) for i in range(m): kernelEval = kernelTrans(sVs, datMat[i,:],('rbf',k1)) predict = kernelEval.T * multiply(labelSV, alphas[svInd]) + b if sign(predict) != sign(labelArr[i]): errorCount += 1 print "the test error rate is: %f" %(float(errorCount)/m)
def main(): print '-----------------------load data and training-----------' dataArr, labelArr = smo.loadDataSet('testSet.txt') b, alphas = smoP(dataArr, labelArr, 0.6, 0.001, 40) print "b", b print "alphas > 0", alphas[alphas > 0] #calculate weights print '-----------------------calculate weights----------------' ws = calcWs(alphas, dataArr, labelArr) print "ws", ws print '-----------------------test classify result----------------' #process first node datMat = mat(dataArr) print "first node classify to: ", datMat[0] * mat(ws) + b print "first node true label:", labelArr[0] #process third node print "third node classify to: ", datMat[2] * mat(ws) + b print "third node true label: ", labelArr[2]
def main(): print '-----------------------load data and training-----------' dataArr, labelArr = smo.loadDataSet('testSet.txt') b, alphas = smoP(dataArr, labelArr, 0.6, 0.001, 40) print "b", b print "alphas > 0", alphas[alphas > 0] #calculate weights print '-----------------------calculate weights----------------' ws = calcWs(alphas, dataArr, labelArr) print "ws", ws print '-----------------------test classify result----------------' #process first node datMat = mat(dataArr) print "first node classify to: ", datMat[0]*mat(ws) + b print "first node true label:", labelArr[0] #process third node print "third node classify to: ", datMat[2]*mat(ws) + b print "third node true label: ", labelArr[2]