日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BP神经网络数据预测(excel)

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BP神经网络数据预测(excel) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整體的處理思路是
先加載訓練數據,對數據進行訓練,然后再進行預測,最后輸出預測值。

main()

import numpy as py import DataLoad as dataload import ModelTrain as modeltrain import DataPrediction as datapredictiondef main():data_train = dataload.load_data_train() # 加載訓練數據 print(data_train) modeltrain.Train_Model(data_train) # 對數據進行訓練data_pre = dataload.load_data_pre() # 加載需要預測的數據data_real = dataload.load_data_real() # 加載數據的真實值print(data_pre)print(3)pre_result = dataprediction.Predict_Data(data_pre) 進行預測print("真實值為:%d"%(data_real)+" 預測結果為:%d" % (pre_result))if __name__ == '__main__':main()

數據加載 DataLoad。

import numpy as np import pandas as pd data = pd.read_csv("./2015(z).CSV") #讀取csv格式的文件全部數據 data1 = np.mat(data) #數據矩陣化 pre_raw = 30 #需要預測值所在行數 # print (data1) def load_data_train():data_train = data1[0:26, 3:47] # 取出數據的第1行到26行中的第4列到47列作為訓練數據print(data_train)return data_traindef load_data_pre():data_pre = data1[pre_raw, 3:46].astype('float64') #第31行第4列到第46列為輸入數據data_mean = data_pre.mean() #求平均值data_std = data_pre.std() #求標準差data_pre = (data_pre - data_mean) / data_std #標準化return data_predef load_data_real():data_real = data1[pre_raw, 46] 取出第31行的第47列數據return data_real

模型訓練 ModelTrain

import numpy as np from keras.models import Sequential from keras.layers.core import Dense, Activationdef Train_Model(data_train):modelfile = './modelweight' #此位置保存訓練模型過程中的權重y_mean_std = "./y_mean_std.txt" # 保存標準化過程中的數據,后邊數據還原需要用到data_train = np.matrix(data_train).astype('float64')data_mean = np.mean(data_train, axis=0)#對列求平均值data_std = np.std(data_train, axis=0)#計算每一列的標準差# data_train = (data_train - data_mean) / data_stdprint(1)x_train = data_train[:, 0:(data_train.shape[1] - 1)] #所有數據(除最后一列)作為輸入xy_train = data_train[:, data_train.shape[1] - 1] #所有數據的最后一列作為輸出yprint(x_train)print(y_train)#模型訓練model = Sequential()model.add(Dense(x_train.shape[1], input_dim=x_train.shape[1], kernel_initializer="uniform"))model.add(Activation('relu'))model.add(Dense(1, input_dim=x_train.shape[1]))model.compile(loss='mean_squared_error', optimizer='adam')model.fit(x_train, y_train, epochs=40, batch_size=x_train.shape[0])model.save_weights(modelfile) #保存模型權重y_mean = data_mean[:, data_train.shape[1] - 1]y_std = data_std[:, data_train.shape[1] - 1]print("訓練完畢")# 將標準差過程中的參數寫入文件f = open(y_mean_std, "w") mean_std = str(y_mean.astype(str)) + " " + str(y_std.astype(str))mean_std = mean_std.replace("[", "")mean_std = mean_std.replace("]", "")mean_std = mean_std.replace("'", "")f.write(mean_std)

數據預測 DataPrediction

import numpy as np from keras.models import Sequential from keras.layers.core import Dense, Activationdef load_y():f = open("./y_mean_std.txt", "r") y_mean = f.read()y_mean = y_mean.split(" ")f.close()return y_meandef Predict_Data(data_pre):model = Sequential()model.add(Dense(data_pre.shape[1], input_dim=data_pre.shape[1], kernel_initializer="uniform"))print(data_pre.shape[1])model.add(Activation('relu'))model.add(Dense(1, input_dim=data_pre.shape[1]))model.compile(loss='mean_squared_error', optimizer='adam')model.load_weights('./modelweight')mean_std = load_y()pre_result = model.predict(data_pre) * float(mean_std[1]) + float(mean_std[0])print(model.summary())#輸出參數param計算過程return pre_result

總結

以上是生活随笔為你收集整理的BP神经网络数据预测(excel)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。