def Run_Q3_3_2_sp(): print '*********************************************************************************' print "//Question-3.3.2 (Simple Perceptron-single pass) Report on Adult Data -----------------------------" print '*********************************************************************************' [XData, YData, FSize, SeenWt] = func.parseInfo(trainFileHandle) maxVecLen = max(FSize) margin = 0 for i in range(1, 2): for j in LRateList: [Bias, Wvec, LearningMistake] = func.Perceptron(j, 1, XData, YData, maxVecLen, i, margin, 0, SeenWt) mistakeCount = func.TestPerceptron(XData, YData, Wvec, Bias, maxVecLen, margin) TrainAccuracy = ( (float(len(XData) - mistakeCount)) / len(XData)) * 100 print 'Using Learning Rate = ', j, ' number of epochs = Sinlge Pass, Initialization = random with mean 0 and sd 0.01' # print '\t Learned Weight Vector = ', Wvec print '\t Learned Bias = ', Bias print '\t Mistakes during Learning = ', LearningMistake print '\t Learning Accuracy = ', TrainAccuracy, '%\n' if (test_index != -1): [testXData, testYData] = func.parseInfoTest(testFilehandle, maxVecLen) testMistake = func.TestPerceptron(testXData, testYData, Wvec, Bias, maxVecLen, margin) TestAccuracy = ((float(len(testXData) - testMistake)) / len(testXData)) * 100 print '\t Test Accuracy = ', TestAccuracy, '%\n' print "//End of Question-3.3.2(simple Perceptron-single pass) Report ------------------------------------\n\n\n"
def Run_Q3_3_3_mp_batch_Shuffle(): print '***************************************************************************************************' print "//Question-3.3.2 (Margin Perceptron-batch 3,4,5) With Shuffle Report on Adult Data -----------------------------" print '***************************************************************************************************' [XData, YData, FSize, SeenWt] = func.parseInfo(trainFileHandle) maxVecLen = max(FSize) for i in range(3, 6): for j in LRateList: for k in MarginList: [Bias, Wvec, LearningMistake] = func.Perceptron(j, 1, XData, YData, maxVecLen, i, k, 0, SeenWt) mistakeCount = func.TestPerceptron(XData, YData, Wvec, Bias, maxVecLen, k) TrainAccuracy = ( (float(len(XData) - mistakeCount)) / len(XData)) * 100 print 'Using Learning Rate = ', j, ', number of epochs = ', i, ' Margin = ', k, ', Initialization = random with mean 0 and sd 0.01, with shuffle' # print '\t Learned Weight Vector = ', Wvec print '\t Learned Bias = ', Bias print '\t Mistakes during Learning = ', LearningMistake print '\t Learning Accuracy = ', TrainAccuracy, '%\n' if (test_index != -1): [testXData, testYData] = func.parseInfoTest(testFilehandle, maxVecLen) testMistake = func.TestPerceptron(testXData, testYData, Wvec, Bias, maxVecLen, k) TestAccuracy = ((float(len(testXData) - testMistake)) / len(testXData)) * 100 print '\t Test Accuracy = ', TestAccuracy, '%\n' print "//End of Question-3.3.2(Margin Perceptron-Batch Mode-Shuffle) Report ------------------------------------\n\n\n"
def Run_Q3_3_1(): print '*********************************************************************************' print "//Question-3.3.1 Report (Sanity check using Table2 -----------------------------" print '*********************************************************************************' [XData, YData, FSize, SeenWt] = func.parseInfo(sanityTable) maxVecLen = max(FSize) for i in range(1, 2): for j in LRateList: [Bias, Wvec, LearningMistake] = func.Perceptron(j, 0, XData, YData, maxVecLen, i, 0, 0, SeenWt) mistakeCount = func.TestPerceptron(XData, YData, Wvec, Bias, maxVecLen, 0) TrainAccuracy = (float(len(XData) - mistakeCount) / len(XData)) * 100 print 'Using Learning Rate = ', j, ' number of epochs = ', i, 'Initialization = @ default 0 , No-Shuffle' print '\t Learned Weight Vector = ', Wvec print '\t Learned Bias = ', Bias print '\t Mistakes during Learning = ', LearningMistake print '\t Learning Accuracy = ', TrainAccuracy, '%\n' print "//End of Question-3.3.1 Report -------------------------------------------------\n\n"