MCPcopy Create free account
hub / github.com/Jack-Cherish/Machine-Learning / testRbf

Function testRbf

SVM/svmMLiA.py:257–287  ·  view source on GitHub ↗

测试函数 Parameters: k1 - 使用高斯核函数的时候表示到达率 Returns: 无

(k1 = 1.3)

Source from the content-addressed store, hash-verified

255
256
257def testRbf(k1 = 1.3):
258 """
259 测试函数
260 Parameters:
261 k1 - 使用高斯核函数的时候表示到达率
262 Returns:
263
264 """
265 dataArr,labelArr = loadDataSet('testSetRBF.txt') #加载训练集
266 b,alphas = smoP(dataArr, labelArr, 200, 0.0001, 100, ('rbf', k1)) #根据训练集计算b和alphas
267 datMat = np.mat(dataArr); labelMat = np.mat(labelArr).transpose()
268 svInd = np.nonzero(alphas.A > 0)[0] #获得支持向量
269 sVs = datMat[svInd]
270 labelSV = labelMat[svInd];
271 print("支持向量个数:%d" % np.shape(sVs)[0])
272 m,n = np.shape(datMat)
273 errorCount = 0
274 for i in range(m):
275 kernelEval = kernelTrans(sVs,datMat[i,:],('rbf', k1)) #计算各个点的核
276 predict = kernelEval.T * np.multiply(labelSV,alphas[svInd]) + b #根据支持向量的点,计算超平面,返回预测结果
277 if np.sign(predict) != np.sign(labelArr[i]): errorCount += 1 #返回数组中各元素的正负符号,用1和-1表示,并统计错误个数
278 print("训练集错误率: %.2f%%" % ((float(errorCount)/m)*100)) #打印错误率
279 dataArr,labelArr = loadDataSet('testSetRBF2.txt') #加载测试集
280 errorCount = 0
281 datMat = np.mat(dataArr); labelMat = np.mat(labelArr).transpose()
282 m,n = np.shape(datMat)
283 for i in range(m):
284 kernelEval = kernelTrans(sVs,datMat[i,:],('rbf', k1)) #计算各个点的核
285 predict=kernelEval.T * np.multiply(labelSV,alphas[svInd]) + b #根据支持向量的点,计算超平面,返回预测结果
286 if np.sign(predict) != np.sign(labelArr[i]): errorCount += 1 #返回数组中各元素的正负符号,用1和-1表示,并统计错误个数
287 print("测试集错误率: %.2f%%" % ((float(errorCount)/m)*100)) #打印错误率
288
289
290def showDataSet(dataMat, labelMat):

Callers 1

svmMLiA.pyFile · 0.85

Calls 3

loadDataSetFunction · 0.70
smoPFunction · 0.70
kernelTransFunction · 0.70

Tested by

no test coverage detected