使用python在keras中的回归结果

2024-09-27 20:18:06 发布

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

这是一个回归问题。下面是我的代码

import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.cross_validation import cross_val_score, KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
os.chdir(r'C:\Users\Swapnil\Desktop\RP TD\first\Changes')

## Load the dataset
dataset1 = pd.read_csv("Main Lane Plaza 1.csv")
X_train = dataset1.iloc[:,0:11].values
Y_train = dataset1.iloc[:,11].values
dataset2 = pd.read_csv("Main Lane Plaza 1_070416010117.csv")
X_test = dataset2.iloc[:,0:11].values
Y_test = dataset2.iloc[:,11].values

##Define base model
def base_model():
model = Sequential()
model.add(Dense(11, input_dim=11, kernel_initializer='normal', 
activation='sigmoid'))
model.add(Dense(7, kernel_initializer='normal', activation='sigmoid'))
model.add(Dense(1, kernel_initializer='normal'))
model.compile(loss='mean_squared_error', optimizer = 'adam')
return model

seed = 7
np.random.seed(seed)

clf = KerasRegressor(build_fn=base_model, nb_epoch=100, 
batch_size=5,verbose=0)

clf.fit(X_train, Y_train)
res = clf.predict(X_train)

##Result
clf.score(X_test, Y_test)

不知道分数是不是应该是负数?? 如果我做错了什么,请告诉我。 提前谢谢。在

我不知道这是否是由于特性伸缩造成的问题,就像我使用R和保存csv文件以在python中使用一样。在


Tags: csvfromtestimportmodeltrainsklearnkeras
2条回答

当你在回归问题上得到一个负的分数,这通常意味着你选择的模型不能很好地拟合你的数据。在

第一层激活为sigmoid,第二层也为sigmoid,最后一层作为1输出。在

将激活更改为relu,因为sigmoid将压缩0到1之间的值。使数字非常小,导致2隐藏层的消失梯度问题。在

def base_model():
    model = Sequential()
    model.add(Dense(11, input_dim=11, kernel_initializer='normal', activation='relu'))
    model.add(Dense(7, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))
    model.compile(loss='mean_squared_error', optimizer='adam')
    return model

相关问题 更多 >

    热门问题