ANN线性回归模型的评估
Posted
技术标签:
【中文标题】ANN线性回归模型的评估【英文标题】:Evaluation of an ANN Linear Regression Model 【发布时间】:2020-01-28 17:33:45 【问题描述】:我用 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()
【问题讨论】:
【参考方案1】:除了一些术语细节(NN 回归不是 线性 回归,通常我们不称这样的模型为 classifier
),您的模型看起来确实不错,但有两个错误(训练和测试)顺利减少,没有overfitting的迹象。
虽然 0.91 的 R^2 值听起来不错,但在 predictive 设置中使用该指标(如此处)是有问题的;引用我在another SO thread 中的回答:
整个 R-squared 概念实际上直接来自统计世界,重点是解释性模型,它在机器学习环境中几乎没有用处,重点显然是预测模型;至少 AFAIK,除了一些非常入门的课程之外,我从来没有(我的意思是 从来没有 ...)看到 R 平方用于任何类型的性能评估的预测建模问题;流行的机器学习介绍,例如 Andrew Ng 在 Coursera 的 Machine Learning,甚至懒得提及它也不是偶然的。而且,正如上面Github thread 中所述(强调添加):
特别是在使用 test 集时,我有点不清楚 R^2 的含义。
我当然同意。
【讨论】:
以上是关于ANN线性回归模型的评估的主要内容,如果未能解决你的问题,请参考以下文章
一文带你用Python玩转线性回归模型 ❤️加利福尼亚房价预测❤️回归模型评估指标介绍
泊松回归gamma回归Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线 洛伦兹曲线卡方检验AICBIC偏差(Deviance)指标