评价指标MAPE python代码
时间: 2024-05-02 21:14:56 浏览: 121
MAPE(Mean Absolute Percentage Error)是一种常用的评价指标,用于衡量预测值与真实值之间的相对误差。以下是计算MAPE的Python代码示例:
```python
import numpy as np
def calculate_mape(y_true, y_pred):
"""
计算MAPE评价指标
:param y_true: 真实值
:param y_pred: 预测值
:return: MAPE评价指标值
"""
y_true = np.array(y_true)
y_pred = np.array(y_pred)
# 避免除以0的情况
mask = y_true != 0
mape = np.mean(np.abs((y_true - y_pred) / (y_true + 1e-8))) * 100
return mape
# 示例数据
y_true = [10, 20, 30, 40, 50]
y_pred = [12, 18, 32, 38, 45]
# 计算MAPE
mape = calculate_mape(y_true, y_pred)
print("MAPE:", mape)
```
相关问题
写一个Python代码:导入表格数据建立多元回归模型并用多种方式评价模型效果
好的,以下是一个简单的 Python 代码,可以导入表格数据,建立多元回归模型,并使用多种方式评价模型效果:
```python
# 导入所需库
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.model_selection import train_test_split
# 读取数据
data = pd.read_csv('data.csv')
# 划分自变量和因变量
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
# 建立多元线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 用测试集进行预测
y_pred = model.predict(X_test)
# 评价模型效果
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('均方误差:', mse)
print('决定系数:', r2)
```
此外,还可以使用其他评价指标来评价模型效果,例如平均绝对误差(MAE)、平均绝对百分误差(MAPE)、均方根误差(RMSE)等等,根据具体情况选择合适的指标进行评价。
用jupyter写BP预测多维的股票价格的代码,该代码包括rmse,mae.r2.mape等评价指标和拟合效果图
以下是一个使用Python和Jupyter Notebook编写的BP神经网络预测多维股票价格的代码示例。这个示例包括了RMSE、MAE、R2和MAPE等评价指标,并且还绘制了拟合效果图。
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
# 读取股票数据
data = pd.read_csv("stock_data.csv")
# 提取特征和目标变量
X = data.iloc[:, 1:-1].values
y = data.iloc[:, -1].values
# 划分训练集和测试集
train_size = int(len(data) * 0.8)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 创建并训练BP神经网络模型
model = MLPRegressor(hidden_layer_sizes=(100, 50), activation='relu', solver='adam', random_state=0)
model.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = model.predict(X_test)
# 计算评价指标
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
# 计算MAPE指标
mape = np.mean(np.abs((y_test - y_pred) / y_test)) * 100
# 打印评价指标
print("RMSE:", rmse)
print("MAE:", mae)
print("R2:", r2)
print("MAPE:", mape)
# 绘制拟合效果图
plt.plot(y_test, label='actual')
plt.plot(y_pred, label='predicted')
plt.xlabel('Sample')
plt.ylabel('Price')
plt.legend()
plt.show()
```
在这个示例中,我们首先读取了股票数据,并将其分为特征(X)和目标变量(y)。然后,我们使用80%的数据作为训练集,剩余的20%作为测试集。接下来,我们创建了一个具有两个隐藏层的BP神经网络模型,并使用训练集进行训练。然后,我们在测试集上进行预测,并计算了RMSE、MAE、R2和MAPE等评价指标。最后,我们使用Matplotlib绘制了实际和预测的股票价格,并显示了拟合效果图。
请注意,此代码示例仅供参考,实际使用时可能需要根据具体情况进行调整和改进。另外,您需要将股票数据存储在名为"stock_data.csv"的文件中,并根据实际情况修改数据读取和预处理部分的代码。
阅读全文