Я новичок в нейронной сети, и я пытаюсь построить и обучить нейронную сеть, где я могу предсказать int_rate . Данные выглядят так:
loan_amnt annual_inc emp_length int_rate
10000 38000.0 5.600882 12.40
13750 17808.0 5.600882 28.80
26100 68000.0 10.00000 20.00
после нормализации данных:
array([[0.23076923, 0.01141827, 0.44444444],
[0.32692308, 0.00535096, 0.44444444],
[0.64358974, 0.02043269, 1. ],
...,
[0.23076923, 0.04507212, 1. ],
[0.43846154, 0.0390625 , 0.44444444],
[0.14102564, 0.02103365, 1. ]])
и после разделения данных на объекты и цель (цель - int_rate). Я получил следующие формы:
print(X_train.shape, X_val.shape, X_test.shape, Y_train.shape, Y_val.shape, Y_test.shape)
вывод: (693, 3) (148, 3) (149, 3) (693,) (148,) (149,)
После этого я начал строить свою модель:
model = Sequential([
Dense(32, activation='relu', input_shape=(3,)),
Dense(32, activation='relu'),
Dense(1, activation='sigmoid'),
])
Затем скомпилировал ее, используя среднеквадратичное значение - ошибка как функция потери:
model.compile(loss='mse',
optimizer='adam',
metrics=['acc'])
Наконец, примерка и тренировка модели:
hist = model.fit(X_train, Y_train,
batch_size=32, epochs=100,
validation_data=(X_val, Y_val))
При обучении:
Train on 693 samples, validate on 148 samples
Epoch 1/100
693/693 [==============================] - 2s 2ms/step - loss: 158.9353 - acc: 0.0000e+00 - val_loss:
188.9402 - val_acc: 0.0000e+00
Epoch 2/100
693/693 [==============================] - 0s 51us/step - loss: 158.9353 - acc: 0.0000e+00 -
val_loss:
188.9402 - val_acc: 0.0000e+00
И все эпохи имеют те же цифры и точность, которая составляет ноль . Есть ли способ, которым я могу решить это?