线性回归问题,损失值异常高

import pandas as pdimport matplotlib.pyplot as pltcsv = 'C:\\Users\\Alex\\Downloads\\weight-height.csv'df = pd.read_csv(csv)df.headx_train = df['Height'].values#into centimetres because im englishx_train = x_train * 2.54y_train = df['Weight'].values#into kilos because im englishy_train = y_train / 2.2046226218plt.figure()plt.scatter(x_train, y_train, c=None)plt.show()print(X[:10])print(y[:10])from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense, Activationimport numpy as npX = np.array(x_train).reshape(-1,1)y = np.array(y_train).reshape(-1,1)X = X[:5000]y = y[:5000]model = Sequential()model.add(Dense(36, activation='relu'))model.add(Dense(18))model.add(Dense(1))model.compile(optimizer='adam',              loss='mean_squared_error',              metrics=['accuracy'])history = model.fit(X,y, batch_size=1, epochs=1, validation_split=0.1)#plt.plot(history.history['acc'])#plt.plot(history.history['val_acc'])

我的问题主要是我是个新手,正在尝试使用Keras从头开始创建自己的线性回归模型,我不明白为什么我的损失值这么高。我需要知道这是因为我使用的优化器还是损失函数,或者是数据问题。这个数据集只是一个包含体重和身高的列表。


回答:

我会尝试以下方法:

  1. 将身高和体重标准化,使每个的最大值为1。深度学习通常在值约为1时更容易处理。显然,你需要对测试数据进行相同的除法操作,并在最后将答案乘以相同的数值。

  2. 将你的度量标准改为’mse’或’mae’(均方误差或平均绝对误差)。这不会改变你的损失值,但会让你感觉更好,因为这是一个更有意义的衡量你表现的指标。

试试这个:

x_train = df['Height'].valuesx_train = x_train * 2.54x_train = x_train / 175.0y_train = df['Weight'].valuesy_train = y_train / 2.2046226218y_train = y_train / 80.0

model.compile(optimizer='adam',          loss='mean_squared_error',          metrics=['mse'])

以及测试一些新值

x_test = 187x_test = np.array(x_test).reshape(-1,1)x_test = x_test * 2.54x_test = x_test / 175.0pred = model.predict(x_test)pred = pred * 80.0

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注