#time.struct_time(tm_year=2014, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=15, tm_sec=0, #tm_wday=2, tm_yday=1, tm_isdst=-1) #https://docs.python.org/2/library/time.html t = strptime(date, "%d %m %Y %H %M %S") weekday = t[6] #range [0, 6], Monday is 0 #print weekday hour = t[3] minute = t[4] sec = t[5] time = (t[3] * 3600 + t[4] * 60 + t[5]) / (24 * 3600.0) x_obs = [time] x_train.append(x_obs) y_obs = energy y_train.append(y_obs) trainer.addSingleObservation(x_obs, y_obs) trainer.train() for i in range(numRow * day_predict, numRow * (day_predict + 1)): row = csv[i] date = row[0] energy = row[1] date = date.replace("/", " ") date = date.replace(":", " ") t = strptime(date, "%d %m %Y %H %M %S") weekday = t[6] #range [0, 6], Monday is 0 hour = t[3] minute = t[4]
testRecStop = 250 numExecuteSamples = testRecStop - testRecStart + 1 inDataTest, outDataTest = algorithmTest.interface.collectData( testRecStart, testRecStop) print "Done: collecting data from GDP" print "Beginning loading and training" # For testing purpose. print input for test data # each line in output corresponds to one input data field (record) # print inDataTest timestamps = {} # Add training data to CE object for i in xrange(len(outDataTrain)): # recording time stamps before and after adding to measure load time firstTS = time.time() algorithmTest.addSingleObservation(inDataTrain[:][i], outDataTrain[i]) secondTS = time.time() timestamps["load" + str(i)] = secondTS - firstTS # training CE using the added data, while the training time is measured firstTS = time.time() algorithmTest.clusterAndTrain() secondTS = time.time() timestamps["train"] = secondTS - firstTS print "Done: loading and training" print "Beginning execution" runningTotal = 0 for executeSample in range(testRecStop - testRecStart + 1): # computing output of test data using trained CE (time measured) # Saving error for each test data. firstTS = time.time()
numExecuteSamples = testRecStop - testRecStart + 1 inDataTest, outDataTest = gdpTest.collectData(testRecStart,testRecStop) print "Done: collecting data from GDP" print "Beginning loading and training" # For testing purpose. print input for test data # each line in output corresponds to one input data field (record) # print inDataTest ## Change the name of the algorithm to test it out. algorithmTest = Knn(complexity, numInp, 0, numInp*[0], {}) timestamps = {} # Add training data to CE object for i in xrange(len(outDataTrain)): # recording time stamps before and after adding to measure load time firstTS = time.time() algorithmTest.addSingleObservation(inDataTrain[:][i], outDataTrain[i]) secondTS = time.time() timestamps["load" + str(i)] = secondTS - firstTS # training CE using the added data, while the training time is measured firstTS = time.time() algorithmTest.train() secondTS = time.time() timestamps["train"] = secondTS - firstTS print "Done: loading and training" print "Beginning execution" runningTotal = 0 for executeSample in range(testRecStop - testRecStart + 1): # computing output of test data using trained CE (time measured) # Saving error for each test data. firstTS = time.time() theor = algorithmTest.execute(list(inDataTest[executeSample]))
#read in csv and parse data to trainer for i in range(numRow*day_train_start,numRow*(day_train_end+1)): row = csv[i] date=row[0] dishwasher=csv[i+1][3] date=date.replace("/"," ") date=date.replace(":"," ") date=date.replace(":"," ") t=strptime(date, "%m %d %Y %H %M") time = (t[3]*3600+t[4]*60+t[5])/(24*3600.0) x_obs = [time, row[2], row[4], row[5], row[6], row[7], row[8]] y_obs = dishwasher firstTS = time.time(); algorithmTest.addSingleObservation(x_obs, y_obs); secondTS = time.time(); knnTimestamps["load" + str(i)] = secondTS - firstTS; firstTS = time.time(); algorithmTest.train(); secondTS = time.time(); teslaTimestamps["train"] = secondTS - firstTS; runningTotal = 0; for i in range(numRow*day_predict,numRow*(day_predict+1)): row = csv[i] date=row[0] date_predict = csv[i+1][0] output=round(csv[i+1][3],4)
#read in csv and parse data to trainer for i in range(numRow * day_train_start, numRow * (day_train_end + 1)): row = csv[i] date = row[0] dishwasher = csv[i + 1][3] date = date.replace("/", " ") date = date.replace(":", " ") date = date.replace(":", " ") t = strptime(date, "%m %d %Y %H %M") time = (t[3] * 3600 + t[4] * 60 + t[5]) / (24 * 3600.0) x_obs = [time, row[2], row[4], row[5], row[6], row[7], row[8]] y_obs = dishwasher firstTS = time.time() algorithmTest.addSingleObservation(x_obs, y_obs) secondTS = time.time() knnTimestamps["load" + str(i)] = secondTS - firstTS firstTS = time.time() algorithmTest.train() secondTS = time.time() teslaTimestamps["train"] = secondTS - firstTS runningTotal = 0 for i in range(numRow * day_predict, numRow * (day_predict + 1)): row = csv[i] date = row[0] date_predict = csv[i + 1][0] output = round(csv[i + 1][3], 4)
#print date; #time.struct_time(tm_year=2014, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=15, tm_sec=0, #tm_wday=2, tm_yday=1, tm_isdst=-1) #https://docs.python.org/2/library/time.html t=strptime(date, "%m %d %Y %H %M") weekday = t[6]; #range [0, 6], Monday is 0 #print weekday hour=t[3] minute=t[4] sec=t[5] time = (t[3]*3600+t[4]*60+t[5])/(24*3600.0) x_obs = [time, row[2], row[4], row[5], row[6], row[7], row[8]] x_train.append(x_obs) y_obs = dishwasher y_train.append(y_obs) trainer.addSingleObservation(x_obs, y_obs); trainStart = T.clock() trainer.train(); trainEnd = T.clock() trainLatency = trainEnd-trainStart testLatency=0 MAE = 0 MBE = 0 for i in range(numRow*day_predict_start,numRow*(day_predict_end+1)): row = csv[i] date=row[0] date_predict = csv[i+1][0] dishwasher=round(csv[i+1][3],4) date=date.replace("/"," ")