我正在尝试通过特征预测价格。
我选择了一个相当简单的模型,但它的表现非常奇怪。损失函数非常高,我看不出问题出在哪里。
以下是我的模型:
# define base model
def baseline_model():
# create model
model = Sequential()
model.add(Dense(62, input_dim = 62, kernel_initializer='normal', activation='relu'))
model.add(Dense(31, kernel_initializer='normal', activation='relu'))
model.add(Dense(15, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
这是我准备数据的方法:(使用One-Hot编码并将所有数据分为训练集和测试集)
df = encode_onehot(dataframe, cols=['Shape', 'Cut', 'Color', 'Clarity', 'Polish', 'Symmetry', 'Culet', '\tFluorescence'])
dataset = df.values
X = dataset[1:,4:66]
Y = dataset[1:,2]
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.25, random_state=42)
最后,培训:
baseline_model().fit(X_train, y_train, epochs=10, batch_size=64)
scores = baseline_model().evaluate(X_test, y_test, verbose=0)
print(baseline_model().summary())
结果非常令人沮丧:
Epoch 1/10
149767/149767 [==============================] - 4s - loss: 104759338.0333
Epoch 2/10
149767/149767 [==============================] - 4s - loss: 104594236.9627
Epoch 3/10
149767/149767 [==============================] - 4s - loss: 104556662.2948
而且情况并没有变得更好。
我做错了什么?