张量流模型精度低

2024-04-26 21:36:14 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的主要目标是使用2018年的数据,并尝试预测2019年的数据。我使用的是GRU模型,我有以下代码。我有一些问题,我不确定代码是否确实正确,或者我是否遗漏了什么,对于model.fit,我应该使用validation\u split=0.1还是validation\u data=X\u test,y\u test,因为我使用不同的数据帧进行测试

关于准确性,它是非常小的,没有任何意义,我不知道为什么

enter image description here

import pandas as pd
import tensorflow as tf
from keras.layers.core import Dense
from keras.layers.recurrent import GRU
from keras.models import Sequential
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from tensorboardcolab import TensorBoardColab, TensorBoardColabCallback


df = pd.read_csv('IF 10 PERCENT.csv',index_col=None)



#Loading Second Dataframe


df2 = pd.read_csv('2019 10minutes IF 10 PERCENT.csv',index_col=None)


tbc=TensorBoardColab() # Tensorboard




X_train= df[['WindSpeed_mps','AmbTemp_DegC','RotorSpeed_rpm','RotorSpeedAve','NacelleOrientation_Deg','MeasuredYawError','Pitch_Deg','WindSpeed1','WindSpeed2','WindSpeed3','GeneratorTemperature_DegC','GearBoxTemperature_DegC']]
X_train=X_train.values

y_train= df['Power_kW']
y_train=y_train.values

X_test= df2[['WindSpeed_mps','AmbTemp_DegC','RotorSpeed_rpm','RotorSpeedAve','NacelleOrientation_Deg','MeasuredYawError','Pitch_Deg','WindSpeed1','WindSpeed2','WindSpeed3','GeneratorTemperature_DegC','GearBoxTemperature_DegC']]
X_test=X_test.values

y_test= df2['Power_kW']
y_test=y_test.values

# conversion to numpy array



# scaling values for model


x_scale = MinMaxScaler()
y_scale = MinMaxScaler()

X_train= x_scale.fit_transform(X_train)
y_train= y_scale.fit_transform(y_train.reshape(-1,1))
X_test=x_scale.fit_transform(X_test)
y_test=y_scale.fit_transform(y_test.reshape(-1,1))



X_train = X_train.reshape((-1,1,12)) 
X_test = X_test.reshape((-1,1,12))


# splitting train and test




# creating model using Keras
model = Sequential()
model.add(GRU(units=512, return_sequences=True, input_shape=(1,12)))
model.add(GRU(units=256, return_sequences=True))
model.add(GRU(units=256))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(loss=['mse'], optimizer='adam',metrics=['accuracy']) 
model.summary() 

#model.fit(X_train, y_train, batch_size=250, epochs=10, validation_split=0.1, verbose=1, callbacks=[TensorBoardColabCallback(tbc)])  
model.fit(X_train, y_train, batch_size=250, epochs=10, validation_data=(X_test,y_test), verbose=1, callbacks=[TensorBoardColabCallback(tbc)])

score = model.evaluate(X_test, y_test)
print('Score: {}'.format(score))
print('Accuracy: {}'.format(acc))
y_predicted = model.predict(X_test)
y_predicted = y_scale.inverse_transform(y_predicted)
y_t
est = y_scale.inverse_transform(y_test)
plt.plot(y_predicted, label='Predicted')
plt.plot(y_test, label='Measurements')
plt.legend()
plt.show()

多谢各位


Tags: csvfromtestimportmodeltransformtrainplt