def plotTest():
    featureDatas, classTypes = GradientRegression.loadDataSet()
    weights = GradientRegression.getBestRegressionWeightsByGradientAscent(
            featureDatas, classTypes)
    print weights
    GradientRegression.plotBestRegressionLine(
            featureDatas, classTypes, weights)
def randomGradientAscentTest():
    featureDatas, classTypes = GradientRegression.loadDataSet()
    weightsMatrix, weights = GradientRegression.getBestWeightsByRandomGradientAscent(
            featureDatas, classTypes, 50)
    print weights
    GradientRegression.plotBestRegressionLine(
            featureDatas, classTypes, weights)
def colicTest():
    frTrain = open('dataset/trainingDatas.txt')
    frTest = open('dataset/testDatas.txt')
    trainingSet = []
    trainingLabels = []
    for line in frTrain.readlines():
        currLine = line.strip().split('\t')
        lineArr = []
        for i in range(len(currLine) - 1):
            lineArr.append(float(currLine[i]))
        trainingSet.append(lineArr)
        trainingLabels.append(float(currLine[-1]))
    trainWeights = GradientRegression.getBestWeightsByRandomGradientAscent(trainingSet, trainingLabels, 1000)[1]
    print trainWeights

    errorCount = 0
    numTestVec = 0.0
    for line in frTest.readlines():
        numTestVec += 1.0
        currLine = line.strip().split('\t')
        lineArr = []
        for i in range(len(currLine) - 1):
            lineArr.append(float(currLine[i]))
        if int(GradientRegression.logisticClassify(lineArr, trainWeights)) != int(currLine[-1]):
            errorCount += 1
    errorRate = (float(errorCount) / numTestVec)
    print "the error rate of this test is: %f" % errorRate
    return errorRate
def weightsTest():
    featureDatas, classTypes = GradientRegression.loadDataSet()
    weights = GradientRegression.getBestRegressionWeightsByGradientAscent(featureDatas, classTypes)
    print weights
def plotWeightsAstringencyTest():
    featureDatas, classTypes = GradientRegression.loadDataSet()
    GradientRegression.plotWeightsAstringency(featureDatas, classTypes)