我试图使用以下特征构建多元回归模型,以预测房价:
[bedrooms bathrooms sqft_living view grade]
= [0.09375 0.266667 0.149582 0.0 0.6]
我使用了 sklearn.preprocessing.MinMaxScaler
来对特征进行标准化和缩放。
我使用 Keras 构建了模型:
def build_model(X_train):
model = Sequential()
model.add(Dense(5, activation = 'relu', input_shape = X_train.shape[1:]))
model.add(Dense(1))
optimizer = Adam(lr = 0.001)
model.compile(loss = 'mean_squared_error', optimizer = optimizer)
return model
当我进行模型训练时,我的损失值非常高,比如4或40万亿,每个时期只能下降大约一百万,导致训练变得不可行。首先,我尝试增加学习率,但效果并不太好。然后我搜索了一些资料发现其他人使用对数均方误差(log-MSE)损失函数,因此我也尝试了一下,我的模型似乎运行良好。(从140开始,到400个时期后下降到0.2)
我的问题是,当我看到线性/多元回归问题的MSE值非常大时,我是否总是只使用log-MSE?还是有其他方法可以尝试解决这个问题?
我猜测这个问题出现的原因是我的预测变量和响应变量之间的比例差异很大。
X
的取值范围在0-1之间,而最高的Y
值达到了800万。(我应该将Y
值缩小吗?然后再进行预测时将其放大?)