Example #1
0
df.index = range(1994, 2014)
df.loc[2014] = None
df.loc[2015] = None
l = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
for i in l:
    f = GM11(df[i][list(range(1994, 2014))].values)[0]
    df[i][2014] = f(len(df) - 1)
    df[i][2015] = f(len(df))
    df[i] = df[i].round(2)

features = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
train = df.loc[list(range(1994, 2014)), features + ['y']].copy()

scaler = StandardScaler()
train = scaler.fit_transform(train)
x_train = train[:, :-1]
y_train = train[:, -1]

model = Sequential()
model.add(Dense(12, input_shape=(6, )))
model.add(Activation('relu'))
model.add(Dense(1, input_shape=(12, )))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(x_train, y_train, epochs=10000, batch_size=16)
model.save_weights('1-net.model')

x = (df[features] - scaler.mean_[:-1]) / scaler.scale_[:-1]
df['y_pred'] = model.predict(x) * scaler.scale_[-1] + scaler.mean_[-1]

df[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
plt.show()