oven02Max = 0.0; refrigeratorError = 0.0; refrigeratorNumObs = 0.0; refrigeratorMin = 0.0; refrigeratorMax = 0.0; stoveError = 0.0; stoveNumObs = 0.0; stoveMin = 0.0; stoveMax = 0.0; for i in range(0,10000): kitchOut2InputObs = float(kitchOut2Trace.readline().split()[1]); kitchOut2OutputObs = float(kitchOut2OutputTrace.readline().split()[1]); kitchOut2ActualObs = (kitchOut2Trainer.test([kitchOut2InputObs])); kitchOut2ObsError = (kitchOut2ActualObs - kitchOut2OutputObs); ## if (kitchOut2ObsError > 0.5): ## print((kitchOut2ActualObs, kitchOut2OutputObs)); kitchOut2Error += abs(kitchOut2ObsError); kitchOut2NumObs += 1; kitchOut2Min = kitchOut2ObsError \ if (kitchOut2ObsError < kitchOut2Min) \ else kitchOut2Min; kitchOut2Max = kitchOut2ObsError \ if (kitchOut2ObsError > kitchOut2Max) \ else kitchOut2Max; ## print(kitchOut2ActualObs, kitchOut2OutputObs); kitchOut3InputObs = float(kitchOut3Trace.readline().split()[1]); kitchOut3OutputObs = float(kitchOut3OutputTrace.readline().split()[1]);
class PecanStreetCE(): def __init__(self, funcOrder=3, numOfInputs=2, numHistoryStates=0): self.inputData = [] self.outputData = [] self.flexCE = Tesla(order=funcOrder, numInputs=(numOfInputs+numHistoryStates)); self.aggregatedError = 0.0; self.aggregatedCount = 0; self.errorNumerator = 0.0; self.errorDenominator = 0; self.predictedList = []; self.actualList = []; self.testSetPredictedList = []; self.testSetActualList = []; self.numInputs = numOfInputs; self.numHistoryStates = numHistoryStates; def runTesla(self, csvFilepath): with open(csvFilepath) as csvFile: reader = csv.reader(csvFile); i = 0; for row in reader: inputList = []; historyList = []; outputValue = 0.0; if (i != 0 and i < self.numHistoryStates): self.predictedList.append(0.0); self.actualList.append(float(row[self.numInputs])); elif (i != 0): # Append the appropriate number of values from the CSV file to the input list. for j in range(0,self.numInputs): inputList.append(float(row[j])); # Generate a list of history states to append to the inputs for k in range(0, self.numHistoryStates): historyList.append(-1-k); # Append the history state as an additional inputs. inputList += historyList; outputValue = float(row[self.numInputs]); self.inputData.append(inputList); self.outputData.append(outputValue); if (i >= self.numHistoryStates and i <= 17500): self.flexCE.addSingleObservation(inputList, outputValue); # Append garbage data to predicted, since this is training. self.predictedList.append(0.0); self.actualList.append(outputValue); elif (i > 17500 and i <= 35000): predicted = self.flexCE.test(inputList); if (predicted < 0): predicted = 0.0; actual = outputValue; self.aggregatedError += pow(actual-predicted, 2); self.aggregatedCount += 1; # print(str(actual), "\t", str(predicted)) self.errorNumerator += abs((actual-predicted)); self.errorDenominator += 1; self.predictedList.append(predicted); self.actualList.append(actual); self.testSetPredictedList.append(predicted); self.testSetActualList.append(actual); elif (i > 35000): print(str(time.clock())); break; if (i == 17500): print("Training data loaded"); startTime = time.clock() self.flexCE.train(); elapsedTime = time.clock() - startTime; print("CE trained, elapsed time:", str(elapsedTime)); print(str(time.clock())); i+=1;
##print(refrigeratorTrainer3.numObservations); ##print(refrigeratorTrainer3.coefficientVector[0]); ##print(refrigeratorTrainer4.numObservations); ##print(refrigeratorTrainer4.coefficientVector[0]); testObs1 = float(refrigeratorTrace.readline().split()[1]); testObs2 = float(refrigeratorTrace.readline().split()[1]); testObs3 = float(refrigeratorTrace.readline().split()[1]); for i in range(0,10001): testObs4 = float(refrigeratorTrace.readline().split()[1]); if (testObs4 > 300): print((testObs4, refrigeratorTrainer1.test([testObs4]))); ## print((testObs4, refrigeratorTrainer2.test([testObs3, testObs4]))); ## print((testObs4, refrigeratorTrainer3.test([testObs2, testObs3, testObs4]))); ## print((testObs4, refrigeratorTrainer4.test([testObs1, testObs2, testObs3, testObs4]))); testObs1 = testObs2; testObs2 = testObs3; testObs3 = testObs4; refrigeratorTrace.close(); refrigeratorOutputTrace.close(); ##if (not os.path.isfile(fridgeTraceFile)): ## for i in range(0, 86401): ## (timestamp, entry) = refridgeTrace.readline().split();
oven02Max = 0.0; refrigeratorError = 0.0; refrigeratorNumObs = 0.0; refrigeratorMin = 0.0; refrigeratorMax = 0.0; stoveError = 0.0; stoveNumObs = 0.0; stoveMin = 0.0; stoveMax = 0.0; for i in range(0,10000): kitchOut2InputObs = float(kitchOut2Trace.readline().split()[1]); kitchOut2OutputObs = float(kitchOut2OutputTrace.readline().split()[1]); kitchOut2ActualObs = round(kitchOut2Trainer.test([kitchOut2InputObs])); kitchOut2ObsError = (kitchOut2ActualObs - kitchOut2OutputObs); ## if (kitchOut2ObsError > 0.5): ## print((kitchOut2ActualObs, kitchOut2OutputObs)); kitchOut2Error += abs(kitchOut2ObsError); kitchOut2NumObs += 1; kitchOut2Min = kitchOut2ObsError \ if (kitchOut2ObsError < kitchOut2Min) \ else kitchOut2Min; kitchOut2Max = kitchOut2ObsError \ if (kitchOut2ObsError > kitchOut2Max) \ else kitchOut2Max; ## print(kitchOut2ActualObs, kitchOut2OutputObs); kitchOut3InputObs = float(kitchOut3Trace.readline().split()[1]); kitchOut3OutputObs = float(kitchOut3OutputTrace.readline().split()[1]);