def testIrisNoisy(trainDataFile, testDataFile, attrDataFile): data = Preprocessor(trainDataFile, testDataFile, attrDataFile) data.loadData() testData = data.getMatrix(data.getTestData()) numInput = data.getNumInput() numOutput = len(data.getClasses()) numHidden = 3 seed = 4 learningRate = 0.1 maxEpochs = 5000 momentum = 0.0 for rate in range(0, 21, 2): noisyData = addNoise(data.getTrainData(), rate, data.getClasses()) trainData = data.getMatrix(noisyData) print("\nNoise Rate (%): " + str(rate)) print("Generating neural network: %d-%d-%d" % (numInput, numHidden,numOutput)) nn = NeuralNetwork(numInput, numHidden, numOutput, seed) nn.train(trainData, maxEpochs, learningRate, momentum, showEpochs=False, vRatio=0.85) print("Training complete") accTrain = nn.accuracy(trainData) accTest = nn.accuracy(testData) accValidTrain = nn.accuracy(trainData, validationOn=True) accValidTest = nn.accuracy(testData, validationOn=True) print("w/o validation set:") print("Accuracy on train data = %0.4f " % accTrain) print("Accuracy on test data = %0.4f " % accTest) print("w/ validation set:") print("Accuracy on train data = %0.4f " % accValidTrain) print("Accuracy on test data = %0.4f " % accValidTest)
def testIdentity(trainDataFile): trainData = np.genfromtxt(trainDataFile) numInput = 8 numHidden = 3 numOutput = 8 seed = 3 learningRate = 0.3 maxEpochs = 5000 momentum = 0.0 print("Generating %d-%d-%d neural network " % (numInput, numHidden, numOutput)) nn = NeuralNetwork(numInput, numHidden, numOutput, seed) nn.train(trainData, maxEpochs, learningRate, momentum, showHidden=True) print("Training complete") accTrain = nn.accuracy(trainData) print("\nAccuracy on train data = %0.4f " % accTrain) numHidden = 4 print("\nGenerating %d-%d-%d neural network " % (numInput, numHidden, numOutput)) nn = NeuralNetwork(numInput, numHidden, numOutput, seed) nn.train(trainData, maxEpochs, learningRate, momentum, showHidden=True) print("Training complete") accTrain = nn.accuracy(trainData) print("\nAccuracy on train data = %0.4f " % accTrain)
def testTennisOrIris(trainDataFile, testDataFile, attrDataFile): data = Preprocessor(trainDataFile, testDataFile, attrDataFile) data.loadData() trainData = data.getMatrix(data.getTrainData()) testData = data.getMatrix(data.getTestData()) numInput = data.getNumInput() numOutput = len(data.getClasses()) numHidden = 3 seed = 4 learningRate = 0.1 maxEpochs = 5000 momentum = 0.0 print("Generating neural network: %d-%d-%d" % (numInput, numHidden,numOutput)) nn = NeuralNetwork(numInput, numHidden, numOutput, seed) nn.train(trainData, maxEpochs, learningRate, momentum) print("Training complete") # accTrain = nn.accuracy(trainData) accTest = nn.accuracy(testData) # print("\nAccuracy on train data = %0.4f " % accTrain) print("Accuracy on test data = %0.4f " % accTest)