ML模型在训练后给了我巨大的结果

问题描述 投票:0回答:1

我有一个非常小的数据集用于训练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

我从培训中获得了奇怪的结果,多少提高了我的学习率或时代

> 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

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

python machine-learning keras scikit-learn
1个回答
0
投票

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

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

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

训练期间的损失至少减少了吗?

希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.