Ejemplo n.º 1
0
class piLearning:
    def __init__(self):
        self.event_queue = Queue()

    def get_mean(self, itemlist):
        return sum(itemlist) / len(itemlist)

    def get_stdev(self, smeanlist):
        grand_mean = self.get_mean(smeanlist)

        stdev = 0
        for x in smeanlist:
            stdev += (x - grand_mean)**2

        return stdev

    def learn(self):
        print("Learning initiated")

        # calculate averages
        self.moving_average(self, 10)

    def moving_average(self, window_size):
        if (self.event_queue.size() >= window_size):
            samples = self.event_queue.consumeQ(
                window_size)  # assuming samples is not empty
            avg = self.get_mean(samples)

            self.movavgs.append(avg)

    def rolling_std(self, mu, samples):
        self.movstd.append(np.std(
            samples,
            ddof=1))  # standard deviation for samples (instead of population)