【发布时间】:2020-12-13 03:40:22
【问题描述】:
大家,我是 Keras、深度学习和其他东西的新手,我在这里遇到了一个问题,当我拟合模型时,损失太大了。丢失的结果可能至少不超过 100K,但超过 300.000K。不知道问题出在哪里,这是我的模型和代码
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
from keras.models import Sequential
from keras.layers import Dense,Dropout
from sklearn.model_selection import train_test_split,KFold,cross_val_score
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.preprocessing import MinMaxScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_squared_error,mean_absolute_error,explained_variance_score
data = pd.read_excel('dataset_real.xlsx')
data_real = data.drop(["no","bulan","tahun","kota","kecamatan/wilayah","korban_hilang"],axis=1)
X = data_real.drop(["taksiran_kerugian"],axis=1)
y = data_real["taksiran_kerugian"]
minmax = MinMaxScaler()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=42)
X_train_scaled = minmax.fit_transform(X_train)
X_test_scaled = minmax.transform(X_test)
def model_kebakaran():
model = Sequential()
model.add(Dense(10,input_dim=10,activation="relu"))
model.add(Dense(1))
model.compile(loss="mean_absolute_error",optimizer="adam")
return model
seed = 5
np.random.seed(5)
estimator = KerasRegressor(build_fn=model_kebakaran,nb_epoch=500,batch_size=5,verbose=0)
kfold = KFold(n_splits=10,random_state=seed)
result = cross_val_score(estimator,X_train_scaled,y_train.values,cv=kfold,n_jobs=1)
print("Results: %.2f (%.2f) MSE" % (result.mean(), result.std())) #Results: -308763363.20 (114215884.15) MSE
当我尝试预测一个值时,它应该是什么
y_test.iloc[50] #350000000
但这是预测
test = X_test.iloc[10].values
test = test.reshape(-1,10)
prediction = estimator.predict(X_test)
prediction[50] #7.092292
【问题讨论】:
标签: python keras deep-learning model data-science