KerasRegressor Коэффициент детерминации Оценка R^2Python

Программы на Python
Anonymous
KerasRegressor Коэффициент детерминации Оценка R^2

Сообщение Anonymous »

Я создаю небольшую нейронную сеть в Keras, предназначенную для задачи регрессии, и хочу использовать ту же метрику точности, что и RandomForestRegressor для scikit-learn:

Коэффициент R^2 определяется как (1 - u/v), где u – сумма квадратов регрессии ((y_true – y_pred) ** 2).sum()< /code> и v — это остаточная сумма квадратов ((y_true - y_true.mean()) ** 2).sum().

Это удобный показатель, поскольку он показывает значения до 1,0 (аналогично процентной точности классификации). Соответствует ли мое использование серверной части Keras требуемому показателю точности?

Код: Выделить всё

def create_model():
model = Sequential()
model.add(Dense(10, input_dim=X.shape[1], activation="relu"))
model.add(Dense(10, activation="relu"))
model.add(Dense(1))

# Compile model
model.compile(loss="mean_squared_error", optimizer="adam", metrics=[det_coeff])
return model

# Is this computing the right thing?
def det_coeff(y_true, y_pred):
u = K.sum(K.square(y_true - y_pred))
v = K.sum(K.square(y_true - K.mean(y_true)))
return K.ones_like(v) - (u / v)
Похоже, что это работает: никаких ошибок нет, и метрика со временем увеличивается до 1, но я хочу быть уверен, что я правильно реализовал метрику.


Подробнее здесь: https://stackoverflow.com/questions/452 ... n-r2-score

Вернуться в «Python»