Я новичок в глубоком обучении. Мои данные обучения содержат 3121 записей и 137 входных переменных. Эти 137 переменных, которые я получил после разработки функций из исходных 2K переменных.
Поэтому я выполнил стандартизацию переменной между 0 и 1 и затем использовал следующую модель
model.add(Dropout(0.2, input_shape=(136,)))
model.add(keras.layers.Dense(15,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
#model.add(Dense(60, kernel_initializer='normal', activation='relu', kernel_constraint=maxnorm(3)))
model.add(keras.layers.Dense(30,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
model.add(keras.layers.Dense(15,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
model.add(keras.layers.Dense(1,kernel_initializer='normal',activation='linear',kernel_constraint=maxnorm(3)))
model.compile(loss='mse',optimizer='adam')
model.fit(x,y,epochs=100,shuffle=True,verbose=2)
Поскольку моя цель - получить minimu MSE, поэтому я использовал loss = 'mse'.My output varable в моих тестовых данных содержит значение между 0 и 1, например 0.35. Но после установки модели я получаю прогнозируемый результат как 0 & 1 Можете ли вы предложить мне, что я должен попытаться получить прогнозируемый результат между 0 и 1?
также попытался активировать функцию как "relu" в моем скрытом слое и сигмоиде в выходном слое. Но все же только 0 и 1 на моем выходе
Ниже приведен код, который я использовал для получения прогнозируемого результата
y_pred=model.predict_classes(x_test)
pred=pd.DataFrame(y_pred,columns=['predicted'])
pred.predicted.unique()
Используйте model.predict_proba(x_test)
вместо model.predict_classes(x_test)
Использование:
y_pred=model.predict_proba(x_test)
Интерпретировать y_pred:
Вы имеете дело с проблемой двоичной классификации (Да (1) или Нет (0)). Предположим, что каждый экземпляр ввода имеет функции K.
Затем,
y_pred[0] = [Input feature 0,Input feature 1,...Input feature K-1] y_pred[1] = [probability of each instance belonging to class 1]
следовательно
1- y_pred[1]
возвращает вероятность для класса 0