написать программу, использовать keras для построения нейронной сети, чтобы предсказать (регрессия), программа выглядит следующим образом:
bp_dataset = pd.read_csv('Dataset/allGlassStraightThroughTube.csv')
bp_tube_par = bp_dataset.iloc[:, 3:8]
bp_tube_eff = bp_dataset.iloc[:, -1:]
bp_tube_par_X_train,bp_tube_par_X_test,bp_tube_eff_Y_train,bp_tube_eff_Y_test = train_test_split(bp_tube_par,
bp_tube_eff,
random_state=33,
test_size=0.3)
# normalize the train and test Dataset
sc_X = StandardScaler()
sc_Y = StandardScaler()
sc_bp_tube_par_X_train = sc_X.fit_transform(bp_tube_par_X_train)
sc_bp_tube_par_X_test = sc_X.transform(bp_tube_par_X_test)
sc_bp_tube_eff_Y_train = sc_Y.fit_transform(bp_tube_eff_Y_train)
sc_bp_tube_eff_Y_test = sc_Y.transform(bp_tube_eff_Y_test)
# build BP neural network
model = Sequential()
model.add(Dense(32, input_dim=5, activation='relu'))
model.add(Dense(12, activation='linear'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy', 'mae'])
model.fit(sc_bp_tube_par_X_train, sc_bp_tube_eff_Y_train, epochs=3000)
pre_sc_bp_tube_eff_Y_test = model.predict(sc_bp_tube_par_X_test)
print(precision_score(sc_Y.inverse_transform(pre_sc_bp_tube_eff_Y_test),sc_Y.inverse_transform(sc_bp_tube_eff_Y_test)))
, но это ошибка:
во время работы программы, она выводит результат каждую эпоху, но «точность» всегда равна 0:
2/109 [=======>......................] - ETA: 0s - loss: 0.0085 - accuracy: 0.0000e+00 - mae: 0.0714
109/109 [==============================] - 0s 41us/step - loss: 0.0099 - accuracy: 0.0000e+00 - mae: 0.0655
Epoch 3000/3000
и ошибки:
Traceback (most recent call last):
File "C:/Users/win/PycharmProjects/allGlassStraightThroughTube/bpTest.py", line 59, in <module>
print(precision_score(sc_Y.inverse_transform(pre_sc_bp_tube_eff_Y_test),sc_Y.inverse_transform(sc_bp_tube_eff_Y_test)))
...
raise ValueError("{0} is not supported".format(y_type))
ValueError: continuous is not supported
Подскажите, пожалуйста, как это исправить