评估一个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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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