机器学习模型为我提供了零精度

时间:2020-03-09 08:07:34

标签: python tensorflow machine-learning keras

我正在一个小型数据集上测试ML模型

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.8), "mean_squared_error", metrics=["accuracy"])
model.fit(sd,y,epochs=100)
yp=model.predict(sd)
data ["pred"] = yp

但是当模型开始训练时,它给了我零精度,而且损失令人难以置信!!

Epoch 100/100 32/47 [=================== .......]-ETA:0秒-损失: 125331226624.0000-精度:0.0000e + 00 47/47 [============================]-0s 85us / step-损耗: 131038484959.3192-精度:0.0000e + 00

这是数据集https://uinedu-my.sharepoint.com/:x:/g/personal/26636_myoffice_site/EWXspQfJBUVErTuYUuupaUoBO7kY8n1T5j-8I7k_V2zzMQ?e=lJvwaI

1 个答案:

答案 0 :(得分:2)

如评论中所述,accuracy 不是回归指标。

要评估回归模型,可以使用以下一些指标:

  • 均方误差(MSE)
  • 均方根误差(RMSE)
  • 平均绝对误差(MAE)
  • R平方(R²)
  • 调整后的R平方(R²)
  • 均方百分比误差(MSPE)
  • 平均绝对百分比误差(MAPE)
  • 均方根对数误差(RMSLE)

这个在媒体上的伟大故事解释了所有这些指标https://medium.com/@george.drakos62/how-to-select-the-right-evaluation-metric-for-machine-learning-models-part-1-regrression-metrics-3606e25beae0

可以在这里https://stats.stackexchange.com/questions/142873/how-to-determine-the-accuracy-of-regression-which-measure-should-be-used

进行简短说明。

在喀拉拉邦

model.compile(optimizer=Adam(lr=0.8), loss='mean_squared_error', metrics=['mean_squared_error'])