我目前正在开发时间序列预测模型。我读到准确性度量标准不适用于回归问题,因为它比较了“真实”值和预测浮点数。但是,如果它们与最后一个十进制数字不匹配,它将不会“准确”。现在,我正在努力实现类似目标。我已经标准化了数据,所以它的范围是0-1。
这是我拥有的自定义指标功能:
def soft_acc2(y_true,y_pred): 返回K.equal(y_true,y_pred)
如果预测范围是真实值的0-5%,对我来说还可以。但是我不知道如何舍入值(例如0.6532)以仅将0.653(预测)与0.653(实际值)进行比较
模型定义
multi_step_model = tf.keras.models.Sequential()
multi_step_model.add(tf.keras.layers.LSTM(200, return_sequences=True, input_shape=x_train_multi.shape[-2:]))
multi_step_model.add(tf.keras.layers.Dropout(0.1))
multi_step_model.add(tf.keras.layers.LSTM(200, return_sequences=True, input_shape=x_train_multi.shape[-2:]))
multi_step_model.add(tf.keras.layers.Dropout(0.1))
multi_step_model.add(tf.keras.layers.LSTM(200, return_sequences=True, input_shape=x_train_multi.shape[-2:]))
multi_step_model.add(tf.keras.layers.Dropout(0.1))
multi_step_model.add(tf.keras.layers.LSTM(200, return_sequences=True, input_shape=x_train_multi.shape[-2:]))
multi_step_model.add(tf.keras.layers.Dropout(0.1))
multi_step_model.add(tf.keras.layers.LSTM(200, input_shape=x_train_multi.shape[-2:]))
multi_step_model.add(tf.keras.layers.Dropout(0.1))
multi_step_model.add(tf.keras.layers.Dense(5))
multi_step_model.add(tf.keras.layers.Activation('relu'))
我想我必须使用一些回归指标。但是由于缺乏某种准确性,我发现很难评估模型。
我读到有关平均绝对百分比误差的信息,但它的行为有些奇怪。时期从1-3开始,长矛达到50000甚至更高。问题是我不懂翻译。
长话短说: 是否有评估模型的良好指标,还是我以错误的方式使用“ mape”?
我想如果可以对预测值和实际值进行四舍五入以进行比较,以获得自定义准确性,那将对我有帮助。