评估一个ANN线性回归模型

我用Keras创建了我的第一个ANN。这是一个具有5个特征和1个输出的线性回归模型。我制作了一个“MSE”和“损失函数”的图表,这些是结果。我们可以说这是一个好的模型吗?另外,R^2 = 0.91。这是否是正确的方法?

classifier = Sequential()classifier.add(Dense(5, input_dim=5,kernel_initializer='normal',activation='relu'))classifier.add(Dense(5, activation='relu'))classifier.add(Dense(1,activation='linear'))classifier.compile(loss='mse', optimizer='adam', metrics=['mse','mae'])history = classifier.fit(X_train, y_train, batch_size=10, validation_data=(X_test, y_test), epochs=200, verbose=0)y_pred=classifier.predict(X_test)train_mse=classifier.evaluate(X_train, y_train, verbose=0)plt.title('Loss / Mean Squared Error')plt.plot(history.history['loss'], label='train')plt.plot(history.history['val_loss'], label='test')plt.legend()plt.show()

enter image description here


回答:

除了术语上的一些细节(神经网络回归不是线性回归,我们通常不把这样的模型称为classifier),你的模型确实看起来不错,训练和测试的误差都平稳减少,没有过拟合的迹象。

虽然R^2值为0.91听起来相当不错,但在像这里这样的预测环境中使用这个指标是相当有问题的;引用我在另一个StackOverflow讨论中的回答:

事实上,整个R-squared概念直接来自统计学世界,那里重点在于解释性模型,而在机器学习环境中,它在预测模型中的用途很少;至少据我所知,除了一些非常入门的课程外,我从未(我是说从未…)见过使用R-squared来评估任何类型的性能的预测建模问题;也不是偶然,流行的机器学习介绍,如Andrew Ng在Coursera上的机器学习课程,甚至不屑于提及它。而且,正如在上面的Github讨论中所指出的(强调添加):

特别是在使用测试集时,R^2的含义对我来说有点不清楚。

对此我完全同意。

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

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