【发布时间】:2020-10-23 09:16:49
【问题描述】:
我构建了一个没有激活函数的神经网络,因此它是一个线性回归模型:
def build_model():
model = tf.keras.models.Sequential([
tf.keras.layers.Input(shape=(1,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse',metrics=['mae','mse','mape',coeff_determination])
return model
我的 coeff_dermination 确定如下:
from keras import backend as K
def coeff_determination(y_true, y_pred):
SS_res = K.sum(K.square( y_true-y_pred ))
SS_tot = K.sum(K.square( y_true - K.mean(y_true) ) )
return ( 1 - SS_res/(SS_tot + K.epsilon()) )
从数学上讲,线性回归模型的 R 平方不能低于 0,因为: 解释方差 + 误差方差 = 总方差。
但是当我训练上面的模型时,R-squared 有时可能是负数。
为什么?感谢您的想法/灯光
【问题讨论】:
标签: tensorflow linear-regression activation-function