python(Windows10, anaconda)
neurolab(環境windows10 anaconda)にて、読み込んだcsvデータをニューラルネットワーク解析したい。
しかし、Epoch errorが下記のの如く、全く変化せず、収束に向かわない。
コマンドのどこかに問題あるのではなかろうか。どなたか下添付プログラムのコマンドに問題あればご指摘願えるとありがたく。
尚、csvデータ自体は公開できませんため、ご了解下さい。
Epoch: 100; Error: 1090.3814643188678;
Epoch: 200; Error: 1090.3814643188678;
Epoch: 300; Error: 1090.3814643188678;
Epoch: 400; Error: 1090.3814643188678;
Epoch: 500; Error: 1090.3814643188678;
.
.
.
因みに入力input fileのdata frameは以下の形(2266時間行x59項目タグ列)
PI814.PV TI842.PV ... PL.PV PR.PV
Time ...
2017-01-01 03:25:00 164.759995 198.149994 ... 0.120000 0.120000
2017-01-01 08:00:00 164.679993 200.250000 ... 0.180000 0.180000
2017-01-01 11:40:00 171.520004 190.229996 ... 0.120000 0.060000
2017-01-01 20:00:00 171.320007 190.199997 ... 0.180000 0.120000
2017-01-02 05:10:00 151.839996 198.149994 ... 0.180000 0.120000
... ... ... ... ...
2019-12-23 14:30:00 171.619995 157.350006 ... 0.180000 0.120000
2019-12-23 18:50:00 171.559998 186.240005 ... 0.300000 0.000000
2019-12-23 23:10:00 171.600006 187.529999 ... 0.240000 0.060000
2019-12-24 03:50:00 151.979996 208.139999 ... 73.919998 73.139992
2019-12-24 11:40:00 164.940002 224.669998 ... 0.300000 96.120003
``
# -*- coding: utf-8 -*- import neurolab as nl import numpy as np import pandas as pd #Data fileの取得 input_file="C:/MDP/data/data_va2.csv" #(2266行(時間index) x 60列(tags)) 説明変数tagデータの取得 tags_for_data=["a","b","c","d",.....] #60tag中59 df_data=pd.read_csv(input_file,encoding="shift-jis",index_col=0, engine="python") df_data=df_data[tags_for_data].loc[:,:] #以下標準化と分散0の列の削除 df_data=(df_data-df_data.min())/(df_data.max()-df_data.min()) df_data=df_data.dropna(how="all",axis=1) X=df_data.values #目的変数データ取得 objective="e" #60tag中の1tag df_obj=pd.read_csv(input_file,encoding="shift-jis",index_col=0, usecols=["Time",objective],engine="python") #以下正規化 #array_obj=array_obj/array_obj.max() array_obj=array_obj/np.linalg.norm(array_obj) y=array_obj.reshape(1,-1)[0] #配列化した入力データのtensorflow入力のためのリスト化 #最大値、最小値 xmax=X.max(axis=0) xmin=X.min(axis=0) dimX_lis=[] for i in range(0,len(xmax),1): min_max=[xmin[i],xmax[i]] dimX_lis.append(min_max) dimy_lis=[y.min(),y.max()] 以下Xとyのリスト化 #https://groups.google.com/g/py-neurolab/c/IlbdB6QK4VM 参照 lis_X=[] for x_array in X: lis_X.append(x_array.tolist()) #print(self.lis_X) lis_y=[] for f_obj in y: lis_y.append([f_obj]) #実行 nn=nl.net.newff(dimX_lis,[10,6,1]) nn.trainf=nl.train.train_gd error_progress=nn.train(lis_X,lis_y,epochs=2000,show=100,goal=0.01)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。