Exemple #1
0
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]