modelfile = 'D:/data/example03/1-net.model' #模型保存路径 data = pd.read_excel(inputfile) #读取数据 feature = ['x1', 'x4'] #特征所在列 data_train = data.loc[range(1994, 2010)].copy() #取2010年前的数据建模 data_mean = data_train.mean() data_std = data_train.std() data_train = (data_train - data_mean) / data_std #数据标准化 x_train = data_train[feature].as_matrix() #特征数据 y_train = data_train['y'].as_matrix() #标签数据 from keras.models import Sequential from keras.layers.core import Dense, Activation model = Sequential() #建立模型 model.add(Dense(input_dim=2, output_dim=6)) model.add(Activation('relu')) #用relu函数作为激活函数,能够大幅提供准确度 model.add(Dense(input_dim=6, output_dim=1)) model.compile(loss='mean_squared_error', optimizer='adam') #编译模型 model.fit(x_train, y_train, nb_epoch=10000, batch_size=16) #训练模型,学习一万次 model.save_weights(modelfile) #保存模型参数 #预测,并还原结果。 x = ((data[feature] - data_mean[feature]) / data_std[feature]).as_matrix() data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y'] data.to_excel(outputfile) import matplotlib.pyplot as plt #画出预测结果图 p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*']) plt.show()