scikit-learn:如何计算百分比均方根误差(RMSE)?

2024-04-02

我有一个数据集(在此链接中找到:https://drive.google.com/open?id=0B2Iv8dfU4fTUY2ltNGVkMG05V00 https://drive.google.com/open?id=0B2Iv8dfU4fTUY2ltNGVkMG05V00) 的格式如下。

 time     X   Y
0.000543  0  10
0.000575  0  10
0.041324  1  10
0.041331  2  10
0.041336  3  10
0.04134   4  10
  ...
9.987735  55 239
9.987739  56 239
9.987744  57 239
9.987749  58 239
9.987938  59 239

我的数据集中的第三列 (Y) 是我的真实值 - 这就是我想要预测(估计)的值。我想做一个预测Y(即预测当前值Y根据前 100 个滚动值X。为此,我有以下几点python脚本工作使用random forest regression model.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""

@author: deshag
"""

import pandas as pd
import numpy as np
from io import StringIO
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
from math import sqrt



df = pd.read_csv('estimated_pred.csv')

for i in range(1,100):
    df['X_t'+str(i)] = df['X'].shift(i)

print(df)

df.dropna(inplace=True)


X=pd.DataFrame({ 'X_%d'%i : df['X'].shift(i) for i in range(100)}).apply(np.nan_to_num, axis=0).values


y = df['Y'].values


reg = RandomForestRegressor(criterion='mse')
reg.fit(X,y)
modelPred = reg.predict(X)
print(modelPred)

print("Number of predictions:",len(modelPred))

meanSquaredError=mean_squared_error(y, modelPred)
print("MSE:", meanSquaredError)
rootMeanSquaredError = sqrt(meanSquaredError)
print("RMSE:", rootMeanSquaredError)

最后,我测量了均方根误差 (RMSE) 并得到了RMSE of 19.57。从我从文档中读到的内容来看,平方误差的单位与响应的单位相同。有没有什么方法可以体现一个东西的价值RMSE以百分比表示?例如,说这个预测的百分比是正确的,而这个预测是错误的。

有一个check_array计算函数mean absolute percentage error (MAPE)在最近的版本中sklearn但当我尝试如下所示时,它的工作方式似乎与以前的版本不同。

import numpy as np
from sklearn.utils import check_array

def calculate_mape(y_true, y_pred): 
y_true, y_pred = check_array(y_true, y_pred)

    return np.mean(np.abs((y_true - y_pred) / y_true)) * 100

calculate_mape(y, modelPred)

这是返回一个错误:ValueError: not enough values to unpack (expected 2, got 1)。这似乎是check_array最新版本中的函数仅返回一个单值 http://scikit-learn.org/dev/modules/generated/sklearn.utils.check_array.html,与之前的版本不同。

有什么办法可以呈现RMSE以百分比或计算MAPE using sklearn for Python?


您的实施calculate_mape不起作用,因为您正在期待check_arrays函数,该函数已被删除sklearn 0.16. check_array不是你想要的。

This https://stackoverflow.com/a/42251083/58866StackOverflow 的答案给出了一个可行的实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scikit-learn:如何计算百分比均方根误差(RMSE)? 的相关文章

随机推荐

  • 如何将矩阵(列表列表)中的所有值增加 n?

    我必须创建一个函数 将矩阵作为参数传递 然后将矩阵中每个项目的值增加n通过使用嵌套循环 例如 如果我的矩阵是 8 9 4 6 7 2 and n 1 我想要的输出是 9 10 5 7 8 3 您可以编写一个简单的函数来迭代列表 以将每个元素
  • cygwin rsync协议错误

    我正在尝试在 64 位 Windows 7 和 64 位 Linux 之间 rsync 文件 我在两台机器上都安装了 rsync 3 0 7 Windows 上的 cygwin 版本 这是我在 Windows 上运行的命令 我看到它正在建立
  • 初始数据夹具中的用户

    我在默认情况下创建了一些用户fixtures initial data json从而有一些测试 科目 我遇到的问题是密码生成 我可以在 字段 中设置密码 但这不会生成哈希密码 model auth user pk 1 fields user
  • std::make_unique 和 std::unique_ptr 与 new 之间的差异

    Does std make unique有任何效率优势 例如std make shared 与手动构建相比std unique ptr std make unique
  • 有序列表 CSS 样式包括父编号

    我们希望使用 CSS 创建一个如下所示的有序列表 A A 1 A 2 B C C 1 C 2 C 2 1 C 2 2 您如何将父索引包含在子索引中 你需要使用CSS 计数器 https developer mozilla org en US
  • Chart.js 将标签变成链接

    我不确定如果不做以下事情是否可能 在 HTML 画布中创建链接 https stackoverflow com questions 6215841 create links in html canvas但让我们确定一下 有没有一种方法 相对
  • 计算 python 中第二个列表中列表项的出现次数

    a list 1 2 3 4 5 6 7 8 9 0 b list 1 3 6 9 如何计算列表be中的某个项目在列表a中出现的次数 上面的示例应返回值 4 在写这个问题时 我想到了以下内容 似乎有效 a list 1 2 3 4 5 6
  • C++ 容器的一般用例

    的一般用例是什么C 标准库容器 http www cplusplus com reference stl bitset deque list map multimap multiset 优先队列 queue set stack vector
  • Linq 在 C# 中比较两个集合

    我想比较我当前正在使用嵌套 for 循环执行的 C 中的两个集合 Linq 中是否有一种方法可以更快 更高效地执行相同操作 这是我当前的代码 它可以完美地工作 只是在寻找一种有效的方法 OrgCollection myYears Org R
  • 足球(足球)场线的单应性

    我正在研究使用足球比赛的视频 并尝试使用单应性将帧映射到球场的俯视图 我已经开始使用霍夫线以及线段检测器找到帧中的所有白线 其中线段检测器似乎工作得稍微好一些 请参阅下面我的代码和示例 import cv2 import numpy as
  • Scala 中的 shouldBe 和 shouldEqual 有什么区别?

    我什么时候应该使用shouldBe 什么时候应该使用shouldEqual port shouldEqual 8000 port shouldBe 8000 From http www scalatest org user guide us
  • 设置 ng-htmljs-preprocessor karma 预处理器

    我正在设置 Karma 配置文件 但我不完全理解存在的一些选项 因为我没有成功测试已通过 ngHtml2JsPreprocessor 运行并已 templateCached 在 ngHtml2JsPreprocessor 内部 我可以添加一
  • 无法从 Git post-receive hook 检测分支

    我在远程存储库上设置了一个后接收挂钩 它尝试确定传入推送的分支名称 如下所示 branch git rev parse abbrev ref HEAD 不过 我发现无论我从 branch 变量推送哪个分支 都会设置为 master 有任何想
  • 如何在 Visual Studio 2017 中将 npm 包与 ASP.NET CORE 2 一起使用?

    我在 Visual Studio 2017 中向我的 ASP NET Core 2 项目添加了一些 npm 包 现在我想使用这些包中的 css 和 js 文件 但 VS 看不到它们 因为 node modules 文件夹位于 wwwroot
  • 正则表达式:重复组仅获取最后一组

    My data stack 123 overflow 456 others st 7 ov 7 againothers m 11 t 12 m 13 t 14 m 15 t 16 st 8 ov 8 againothers m 17 t 1
  • Svg 在设备中不可见,但在 android xml 中可见

    我对这些图标使用了 SVG 这些图标在 xml 中可见 但在 device 中不可见 以下是我的代码
  • png8和png24有什么区别

    我想了解 png 文件的用途 有两种格式可供选择PNG 图像 一个是png8另一个是png24 我想知道如果我在我的html页面会出现错误吗 或者这只是质量问题 只有一种PNG格式 但支持5种颜色类型 http en wikipedia o
  • Android Kotlin 中的片段类型不匹配

    我将一步步尝试在 Kotlin Android 中创建一个简单的选项卡布局 我对我发现的很多教程感到非常沮丧 因为它们要么 1 有效 但设计过度 很难看出发生了什么 要么 2 似乎不起作用 这是情况 2 中的一种 非常接近工作 但有一些问题
  • 使用 hibernate @Formula 获取集合

    我有类似的数据库结构 唯一的区别是我在从 A 到 C 实体的路径上有更多表 我对该结构有以下映射 Entity Table name a class A Id private int id private String title Elem
  • scikit-learn:如何计算百分比均方根误差(RMSE)?

    我有一个数据集 在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUY2ltNGVkMG05V00 https drive google com open id 0B2Iv8dfU4fTU