(k1=1.3)
| 369 | |
| 370 | |
| 371 | def testRbf(k1=1.3): |
| 372 | dataArr, labelArr = loadDataSet('input/6.SVM/testSetRBF.txt') |
| 373 | b, alphas = smoP(dataArr, labelArr, 200, 0.0001, 10000, ('rbf', k1)) # C=200 important |
| 374 | datMat = mat(dataArr) |
| 375 | labelMat = mat(labelArr).transpose() |
| 376 | svInd = nonzero(alphas.A > 0)[0] |
| 377 | sVs = datMat[svInd] # get matrix of only support vectors |
| 378 | labelSV = labelMat[svInd] |
| 379 | print("there are %d Support Vectors" % shape(sVs)[0]) |
| 380 | m, n = shape(datMat) |
| 381 | errorCount = 0 |
| 382 | for i in range(m): |
| 383 | kernelEval = kernelTrans(sVs, datMat[i, :], ('rbf', k1)) |
| 384 | |
| 385 | # 和这个svm-simple类似: fXi = float(multiply(alphas, labelMat).T*(dataMatrix*dataMatrix[i, :].T)) + b |
| 386 | predict = kernelEval.T * multiply(labelSV, alphas[svInd]) + b |
| 387 | if sign(predict) != sign(labelArr[i]): |
| 388 | errorCount += 1 |
| 389 | print("the training error rate is: %f" % (float(errorCount) / m)) |
| 390 | |
| 391 | dataArr, labelArr = loadDataSet('input/6.SVM/testSetRBF2.txt') |
| 392 | errorCount = 0 |
| 393 | datMat = mat(dataArr) |
| 394 | labelMat = mat(labelArr).transpose() |
| 395 | m, n = shape(datMat) |
| 396 | for i in range(m): |
| 397 | kernelEval = kernelTrans(sVs, datMat[i, :], ('rbf', k1)) |
| 398 | predict = kernelEval.T * multiply(labelSV, alphas[svInd]) + b |
| 399 | if sign(predict) != sign(labelArr[i]): |
| 400 | errorCount += 1 |
| 401 | print("the test error rate is: %f" % (float(errorCount) / m)) |
| 402 | |
| 403 | |
| 404 | def img2vector(filename): |
nothing calls this directly
no test coverage detected