可以信任准确性度量值val_acc吗?

构建序列

simple_seq= [x for x in list(range(1000)) if x % 3 == 0]

重塑和分割后

x_train, x_test shape = (159, 5, 1)y_train, y_test shape = (159, 2)

模型

model = Sequential(name='acc_test')model.add(Conv1D(  kernel_size = 2,  filters= 128,  strides= 1,  use_bias= True,  activation= 'relu',  padding='same',   input_shape=(x_train.shape[1], x_train.shape[2])))model.add(AveragePooling1D(pool_size =(2), strides= [1]))model.add(Flatten())model.add(Dense(2))optimizer = Adam(lr=0.001)model.compile( optimizer= optimizer, loss= 'mse',  metrics=['accuracy'])

训练

hist = model.fit(          x=x_train,           y = y_train,           epochs=100,           validation_split=0.2)

结果:

Epoch 100/100127/127 [==============================] - 0s 133us/sample - loss: 0.0096 - acc: 1.0000 - val_loss: 0.6305 - val_acc: 1.0000

但如果使用此模型进行预测:

x_test[-1:] = array([[[9981],        [9984],        [9987],        [9990],        [9993]]])model.predict(x_test[-1:])result is: array([[10141.571, 10277.236]], dtype=float32)

如果结果与真实值相差如此之大,val_acc 怎么可能是1,结果是

step    1          2true [9996,      9999     ]pred [10141.571, 10277.236] 

回答:

准确性度量仅适用于分类任务。因此,如果在回归任务中使用准确性作为度量,所报告的度量值可能完全无效。从您的代码来看,我认为您正在进行回归任务,因此不应使用此度量。

以下是您在Keras中可以用于回归问题的度量列表。

均方误差: mean_squared_error, MSE或mse平均绝对误差: mean_absolute_error, MAE, mae平均绝对百分比误差: mean_absolute_percentage_error, MAPE, mape余弦相似度: cosine_proximity, cosine

您可以在链接了解一些理论知识,并在链接查看一些Keras示例代码。

抱歉,时间有点紧,但我相信这些链接会对您有很大帮助。:)

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中创建了一个多类分类项目。该项目可以对…

发表回复

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