如何预处理数据以计算均方根对数误差?

我在尝试计算均方根对数误差时,发现了几种方法,其中一种是使用sklearn的度量标准:mean_squared_log_error,并取其平方根

np.sqrt(mean_squared_log_error( target, predicted_y ))

但我遇到了以下错误:

当目标值包含负值时,无法使用均方对数误差

我还尝试了来自Kaggle帖子的一个解决方案:

同样的问题,这次我得到了一个域错误。

在同一篇帖子中,他们针对负对数问题发表了以下评论:

你说的对。你必须转换y_pred和y_test,确保它们不包含负值。

在我预测天气温度(最初以摄氏度为单位)的情况下,解决方案是将它们转换为开氏度,然后计算RMSLE:

rmsle(data.temp_pred + 273.15, data.temp_real + 273.15)

有没有什么标准方法可以让这个度量标准支持负值?


回答:

将两个数组标准化到0到1的范围内

如果你使用scikit,可以使用sklearn.preprocessing.minmax_scale

minmax_scale(arr, feature_range=(0,1))

在执行此操作之前,请保存arr的最大值和最小值。你可以据此恢复实际值。

例如:

normalized = (value - arr.min()) / (arr.max() - arr.min()) # 示例

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

发表回复

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