0%

误差函数

误差函数

误差函数函数。这里定义了常用的误差函数。包括:

  1. RMSE 均方根误差(RMSE, Root Mean Square Error: https://en.wikipedia.org/wiki/Root-mean-square_deviation)
  2. MAPE 平均绝对百分比误差(MAPE, Mean Absolute Percentage Error: https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)
  3. MAE 平均绝对误差(MAE, Mean Absolute Error: https://en.wikipedia.org/wiki/Mean_absolute_error)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import math


def cul_RMSE(real_list, predict_list):
"""
计算均方根误差。
:param real_list: 真实数据列表
:param predict_list: 预测数据列表
:return: 均方根误差
"""
length = len(real_list)
ret = 0
for index in range(0,length):
if isinstance(real_list[index], list):
ret += math.pow(real_list[index][0] - predict_list[index][0], 2)
else:
ret += math.pow(real_list[index] - predict_list[index], 2)
ret /= length
ret = math.sqrt(ret)
return ret


def cul_MAPE(real_list, predict_list):
"""
计算平均绝对百分比误差。
:param real_list: 真实数据列表
:param predict_list: 预测数据列表
:return: 平均绝对百分比误差
"""
length = len(real_list)
ret = 0
for index in range(0, length):
if isinstance(real_list[index], list):
ret += abs((real_list[index][0] - predict_list[index][0]) / real_list[index][0])
else:
ret += abs((real_list[index]- predict_list[index]) / real_list[index])
ret /= length
return ret


def cul_MAE(real_list, predict_list):
"""
计算平均绝对误差。
:param real_list: 真实数据列表
:param predict_list: 预测数据列表
:return: 平均绝对误差
"""
length = len(real_list)
ret = 0
for index in range(0, length):
if isinstance(real_list[index],list):
ret += abs(real_list[index][0] - predict_list[index][0])
else :
ret += abs(real_list[index] - predict_list[index])
ret /= length
return ret