コード例 #1
0
 def __init__(self, n_hidden=50, activation_func='tanh', max_memory=5000):
     self.n_hidden = n_hidden
     self.activation_func = activation_func
     self.model = OSELMRegressor(n_hidden=n_hidden,
                                 activation_func=activation_func)
     self.model_sec = SGDRegressor(D=6)
     self.memory = ExperienceReplay(max_memory)
     self.fitted = False
コード例 #2
0
 def __init__(self, n_hidden=50, activation_func='tanh'):
     self.n_hidden = n_hidden
     self.activation_func = activation_func
     self.model = OSELMRegressor(n_hidden=n_hidden,
                                 activation_func=activation_func)
     self.model_sec = SGDRegressor(D=6)
     self.buffer = []
     self.fitted = False
コード例 #3
0
class ELMRegressorACExperience(object):
    def __init__(self, n_hidden=50, activation_func='tanh', max_memory=5000):
        self.n_hidden = n_hidden
        self.activation_func = activation_func
        self.model = OSELMRegressor(n_hidden=n_hidden,
                                    activation_func=activation_func)
        self.model_sec = SGDRegressor(D=6)
        self.memory = ExperienceReplay(max_memory)
        self.fitted = False
        self.steps = 0

    def partial_fit(self, x, y, e=None):
        # TODO: hacer algo con el valor de e!
        self.memory.add_state(tuple(x), y)

        if self.fitted is False or self.steps > self.n_hidden:
            # Then we have to wait until a number of 'n_hidden' samples arrives
            self.model_sec.partial_fit(x, y, e)

            if len(self.memory) >= self.n_hidden:
                # Now we can fit the model for first time, and from here start online learning
                train_data = self.memory.get_sample(max_items=self.n_hidden)
                x, y = [], []

                for x_i, y_i in train_data:
                    x.append(x_i)
                    y.append(y_i)

                self.model.fit(X=x, y=np.asarray(y).ravel())
                self.fitted = True
                self.steps = 0
        else:
            # We can make online learning
            self.model.fit(X=x, y=np.asarray(y).ravel())
            self.steps += 1

    def predict(self, x):
        if self.fitted:
            y = self.model.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        else:
            y = self.model_sec.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        return y
コード例 #4
0
class ELMRegressorAC(object):
    def __init__(self, n_hidden=50, activation_func='tanh'):
        self.n_hidden = n_hidden
        self.activation_func = activation_func
        self.model = OSELMRegressor(n_hidden=n_hidden,
                                    activation_func=activation_func)
        self.model_sec = SGDRegressor(D=6)
        self.buffer = []
        self.fitted = False

    def partial_fit(self, x, y, e=None):
        # TODO: hacer algo con el valor de e!

        if self.fitted is False:
            # Then we have to wait until a number of 'n_hidden' samples arrives
            self.model_sec.partial_fit(x, y, e)
            self.buffer.append((x, y))

            if len(self.buffer) >= self.n_hidden:
                # Now we can fit the model for first time, and from here start online learning
                x, y = [], []

                for x_i, y_i in self.buffer:
                    x.append(x_i)
                    y.append(y_i)

                self.model.fit(X=x, y=np.asarray(y).ravel())
                self.fitted = True
        else:
            # We can make online learning
            self.model.fit(X=x, y=np.asarray(y).ravel())

    def predict(self, x):
        if self.fitted:
            y = self.model.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        else:
            y = self.model_sec.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        return y
コード例 #5
0
class ELMRegressorExperience(object):
    def __init__(self, n_hidden=50, activation_func='tanh', max_memory=5000):
        self.n_hidden = n_hidden
        self.activation_func = activation_func
        self.model = OSELMRegressor(n_hidden=n_hidden,
                                    activation_func=activation_func)
        self.model_sec = SGDRegressor(D=6)
        self.memory = ExperienceReplay(max_memory)
        self.fitted = False

    def partial_fit(self, x, y, e=None):
        # TODO: hacer algo con el valor de e!
        self.model_sec.partial_fit(x, y, e)
        if x[0] < 1.0:
            # De-normalize
            x = [int(x_i * 255) for x_i in x]
        x = tuple(x)
        self.memory.add_state(x, y)

        if len(self.memory) >= self.n_hidden:
            train_data = self.memory.get_sample(max_items=self.n_hidden)
            x, y = [], []

            for x_i, y_i in train_data:
                # Normalize
                x.append([i / 255.0 for i in x_i])
                y.append(y_i)

            self.model.fit(X=x, y=np.asarray(y).ravel())
            self.fitted = True

    def predict(self, x):
        if self.fitted:
            y = self.model.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        else:
            y = self.model_sec.predict(x)
            if isinstance(y, np.ndarray):
                y = y[0]
        return y
コード例 #6
0
def test_oselm_regression_sequential(n_samples=2000,
                                     n_hidden=20,
                                     activation_func='tanh',
                                     plot=True):
    x, y = make_regression(n_samples=n_samples, n_targets=1, n_features=10)

    oselmr = OSELMRegressor(n_hidden=n_hidden, activation_func=activation_func)

    oselmr, y_pred = make_sequential_predictions(model=oselmr, x=x, y=y)

    if plot is True:
        import matplotlib.pyplot as plt

        axis_x = range(len(y))
        plt.plot(axis_x, y, axis_x, y_pred)
        plt.show()
コード例 #7
0
 def __init__(self, n_hidden=50, max_memory=5000):
     self.n_hidden = n_hidden
     self.model = OSELMRegressor(n_hidden=n_hidden)
     self.model_sec = SGDRegressor(D=6)
     self.memory = ExperienceReplay(max_memory)
     self.fitted = False