【问题标题】:ML Model giving me enormous results after trainingML 模型在训练后给了我巨大的结果
【发布时间】:2020-06-24 20:58:05
【问题描述】:

我有一个很小的数据集用于训练here,我正在训练模型如下:-

import numpy as np
import pandas as pd

from sklearn import preprocessing

data = pd.read_csv("house.csv")
x=data.iloc[:,0:3]
y=data["price"]
sd=preprocessing.scale(x)
#print(sd)
#print(data.head())
#
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

model = Sequential()
model.add(Dense(1, input_shape=(3,)))
model.compile(Adam(lr=0.2), loss="mean_squared_error", metrics=["mean_squared_error"])
model.fit(x,y,epochs=50)

yp=model.predict(sd)
data ["pred"] = yp

我从训练中得到奇怪的结果,我提高了多少学习率或 epochs

> Epoch 50/50 32/47 [===================>..........] - ETA: 0s - loss:
> 109420707840.0000 - mean_squared_error: 109420707840.0000 47/47 
>[==============================] - 0s 0us/step - loss:
> 103942317426.3830 - mean_squared_error: 103942316032.0000

即使没有预处理,我仍然会得到一些不合理的数字!

【问题讨论】:

  • 当您没有正确预处理数据时会出现这种错误。此外,最小化学习率不会让它变得更好,因为它只会让学习变慢。即便如此,您也可以尝试了解您的模型是否正在改变您的 NN 架构的参数。

标签: python machine-learning keras scikit-learn


【解决方案1】:

您不是根据预处理数据而是根据原始数据训练模型,然后根据预处理数据对其进行评估。数据在训练和测试时需要具有相同的尺度。

也许打印出感兴趣变量(“价格”)的统计数据(范围、平均值)。我想目标是预测房价。我假设房价的单位是美元,所以这些数字会很大。如果您的因变量很大,即使很小的相对误差也可能导致较大的损失值,尤其是对于 MSE。

我建议也对价格数据进行标准化,并在数据 x,y 的缩放版本上训练模型

在训练过程中损失至少会减少吗?

希望能有所帮助!

【讨论】:

  • 感谢您的贡献,我已经在原始数据“model.fit(x,y,epochs=50)”上对其进行了训练,但是对价格进行预处理并在预处理数据上进行训练取得了成功,谢谢(y)
猜你喜欢
  • 2021-06-30
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2017-12-31
  • 2019-04-19
  • 2018-12-24
  • 2022-01-22
  • 2020-06-25
相关资源
最近更新 更多