- #coding: utf - 8 '''
- Created on 2016/4/25
- @author: Gamer Think
- '''import LogisticRegession as lr from numpy import * #二分类问题进行分类def classifyVector(inX, weights) : prob = lr.sigmoid(sum(inX * weights)) if prob > 0.5 : return 1.0
- else: return 0.0#训练和测试def colicTest() : frTrain = open('horseColicTraining.txt');
- frTest = open('horseColicTest.txt') trainingSet = [];
- trainingLabels = []#训练回归模型
- for line in frTrain.readlines() : currLine = line.strip().split('\t') lineArr = []
- for i in range(21) : lineArr.append(float(currLine[i])) trainingSet.append(lineArr) trainingLabels.append(float(currLine[21])) trainWeights = lr.stocGradAscent1(array(trainingSet), trainingLabels, 1000) errorCount = 0;
- numTestVec = 0.0#测试回归模型
- for line in frTest.readlines() : numTestVec += 1.0 currLine = line.strip().split('\t') lineArr = []
- for i in range(21) : lineArr.append(float(currLine[i])) if int(classifyVector(array(lineArr), trainWeights)) != int(currLine[21]) : errorCount += 1 errorRate = (float(errorCount) / numTestVec) print "the error rate of this test is: %f" % errorRate
- return errorRate
- def multiTest() : numTests = 10 errorSum = 0.0
- for k in range(numTests) : errorSum += colicTest() print "after %d iterations the average error rate is: %f" % (numTests, errorSum / float(numTests)) if __name__ == "__main__": multiTest()
来源: http://lib.csdn.net/snippet/machinelearning/42884