目录

  • 场景
    • 一些方法
      • 1、mean_squared_error(MSE 常用)
      • 2、mean_squared_log_error
      • 3、median_absolute_error
      • 4、mean_absolute_error(MAE)
      • 5、explained_variance_score
      • 6、r2_score
      • 7. score
        • score method of classifiers
        • score method of regressors
    • 实现

场景

经常会遇到对回归问题的评估问题,如何评估回归问题优劣本文整理了sklearn中关于回归问题的评估方法。

一些方法

1、mean_squared_error(MSE 常用)

简称MSE,即均方误差,计算公式为:
M S E = 1 n ∑ i = 1 n ( y i − y i ^ ) 2 M S E =\frac{1}{n}\sum_{i=1}^{n}{(y_i-\hat{y_i})^2} MSE=n1​i=1∑n​(yi​−yi​^​)2
一般使用RMSE进行评估(这个回归分析模型中最常用的评估方法):
M S E = 1 n ∑ i = 1 n ( y i − y i ^ ) 2 M S E =\sqrt{\frac{1}{n}\sum_{i=1}^{n}{(y_i-\hat{y_i})^2}} MSE=n1​i=1∑n​(yi​−yi​^​)2 ​

2、mean_squared_log_error

计算公式为:
M S L E = 1 n ∑ i = 1 n ( l o g ( y i + 1 ) − l o g ( y i ^ + 1 ) ) 2 M S L E =\frac{1}{n}\sum_{i=1}^{n}\left( log(y_i+1)-log(\hat{y_i}+1) \right)^2 MSLE=n1​i=1∑n​(log(yi​+1)−log(yi​^​+1))2

3、median_absolute_error

计算公式为:
m e d i a n ( ∣ y i − y i ^ ∣ ) median({|y_i-\hat{y_i}|}) median(∣yi​−yi​^​∣)

4、mean_absolute_error(MAE)

计算公式为:
1 n ∑ i = 1 n ∣ y i − y i ^ ∣ \frac{1}{n}\sum_{i=1}^{n}{|y_i-\hat{y_i}|} n1​i=1∑n​∣yi​−yi​^​∣

5、explained_variance_score

解释方差的得分,计算公式为:
1 − v a r ( y − y ^ ) v a r ( y ) 1-\frac{var(y-\hat{y})}{var(y)} 1−var(y)var(y−y^​)​

6、r2_score

计算公式为:
R 2 ( y , y ^ ) = 1 − ∑ i = 0 n ( y i − y i ^ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2(y,\hat{y})=1-\frac{\sum_{i=0}^{n}{(y_i-\hat{y_i})^2}}{\sum_{i=1}^{n}{(y_i-\bar{y})^2}} R2(y,y^​)=1−∑i=1n​(yi​−yˉ​)2∑i=0n​(yi​−yi​^​)2​

其中 y ˉ = 1 n ∑ i = 1 n y i 其中\bar{y}=\frac{1}{n}\sum_{i=1}^{n}y_i 其中yˉ​=n1​i=1∑n​yi​

7. score

score method of classifiers

Scikit-learn中的每个估计器或模型在对数据进行训练后都有一个方法,通常是 .score(X_train, y_train)

当您调用逻辑递归,随机森林分类器等分类器时,该方法默认计算准确性评分(准确性为#correct_preds/#all_preds)。默认情况下,该方法不需要实际的预测。因此,当您call时:score score

clf.score(X_test, y_test)

它使用引擎盖下进行预测,并使用这些预测来计算准确性分数。可以将其视为计算准确性的简写,因为它是一个如此常见的指标。它还被实现以避免像这样涉及更多步骤的计算准确性:X_test score

from sklearn.metrics import accuracy scorepreds = clf.predict(X_test)accuracy_score(y_test, preds)

使用时,您需要现成的预测,即该函数不会使用引擎盖下的测试集生成预测。accuracy_score

对于分类器,两者都是相同的 - 它们只是计算相同事物的不同方式。accuracy_scorescore

score method of regressors

当在回归量上调用时,默认情况下计算决定系数 - R2。与分类器一样,该方法只是计算R2的简写,因为它通常用于评估回归量的性能。score score

reg.score(X_test, y_test)

如您所见,您只需将测试集传递给即可完成。但是,还有另一种计算R2的方法,即:score

from sklearn.metrics import r2_scorepreds = reg.predict(X_test)r2_score(y_test, preds)

与简单的 不同,它需要现成的预测 - 它不会在引擎盖下计算它们。score r2_score

所以,结论是和回归量是相同的 - 它们只是计算决定系数的不同方法。r2_score score

实现

import numpy as np
import pandas as pd
from deepforest import CascadeForestRegressor
from sklearn import datasets  # 导入库
from sklearn.metrics import explained_variance_score
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_squared_log_error
from sklearn.metrics import median_absolute_error
from sklearn.metrics import r2_score
# 1、抽取训练集合测试集
from sklearn.model_selection import train_test_splitdata_diabetes = datasets.load_diabetes()  # 导入糖尿病数据data = data_diabetes['data']
target = data_diabetes['target']
feature_names = data_diabetes['feature_names']# 现在三个数据都是numpy的一维数据形式,将她们组合成dataframe,可以更直观地观察数据
df = pd.DataFrame(data, columns=feature_names)
df.head()  # 查看前几行数据X_train, X_test, y_train, y_test = train_test_split(data, target, train_size=0.8)model = CascadeForestRegressor(random_state=1)
model.fit(X_train, y_train)y_pred = model.predict(X_test)mse = mean_squared_error(y_test, y_pred)
score = model.score(X_train, y_train)
msle = mean_squared_log_error(y_test, y_pred)
mdae = median_absolute_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
evs = explained_variance_score(y_test, y_pred)
r2__score = r2_score(y_test, y_pred)print("\nscore: ", score)print('\nMSE为:', mse)
print('\nMSE为(直接计算):', np.mean((y_test - y_pred) ** 2))
print('\nRMSE为:', np.sqrt(mean_squared_error(y_test, y_pred)))print("\nMSLE为:", msle)
print("\nMSLE为(直接计算):", np.mean((np.log(y_test + 1) - np.log(y_pred + 1)) ** 2))print("\nMDAE为:", mdae)
print("\nMDAE为(直接计算):", np.median(np.abs(y_test - y_pred)))print("\nMAE为:", mae)
print("\nMAE为(直接计算):", np.mean(np.abs(y_test - y_pred)))print("\nEVS为:", evs)
print("\nEVS为(直接计算):", 1 - np.var(y_test - y_pred) / np.var(y_test))print("\nR方_socre为:", r2__score)
print("\nR方_socre为(直接计算):", 1 - (np.sum((y_test - y_pred) ** 2)) / np.sum((y_test - np.mean(y_test)) ** 2))

【python】回归评价指标体系相关推荐

  1. Python回归模型评估

    Python回归模型评估 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 回归模型评估简介 对给给定的回归模型进行质量评估,常 ...

  2. 城市大数据发展评价指标体系

    城市大数据发展评价指标体系包含产业发展.发展环境.创新发展和数据治理共 4 个一级指标.13 个二级指标和 25 个三级指标,具体指标说明如下: 产业发展 产业发展主要评估城市大数据发展的市场情况和企 ...

  3. 计算机管理评价指标,评价指标体系

    评价指标体系是指由表征评价对象各方面特性及其相互联系的多个指标,所构成的具有内在结构的有机整体. 中文名 评价指标体系 外文名 Evaluation index system介    绍 由表征评价对 ...

  4. 制造业数字化转型评价指标体系构建与应用

    数字化转型的过程不是机械简单性的线性组合,而是由一系列分叉.突变.自组织等复杂行为组成,是一个复杂性系统演变的过程. 本文从架构的理念出发,构建制造业数字化转型架构,并基于参考架构给出评估制造业数字化 ...

  5. 浅析小流域综合治理评价指标体系和评价方法

    1    引  言 水是生命之源,土为生存之本,水土是人类生存和发展的基本条件,是不可替代的基础资源.在中国许多山地丘陵地区,由于自然因素和人口剧增.土地利用不合理和管理不当引起的人为因素的影响,人们 ...

  6. 如何建设教育信息化评价指标体系?

    原创 CERNET 中国教育网络 2020-09-16 在教育信息化生态系统中,有三大推动力量:教育信息化评价指标体系制定.评估工作开展和评估建模分析,这三者相互依赖.相互影响. 01高校信息化建设的 ...

  7. 滨州学院计算机专业毕业论文读书笔记,滨州学院毕业设计(论文)质量评价指标体系.doc...

    精编资料 毕业设计(论文)教学条件及管理(25分)评价项目评价要素分值评价等级标准评价记录...每名指导教师指导设计人数最多6名,指导论文人数最多7名,同时指导设计和论文人数... 设计,体系 滨州学 ...

  8. 机器学习---回归模型和分类模型的评价指标体系

    回归模型评价体系 SSE(误差平方和): R-square(决定系数) Adjusted R-square: 分类模型评价体系 一 ROC曲线和AUC值 二 KS曲线 三 GINI系数 四 Lift ...

  9. python 回归 显著_Python数分:回归分析

    文章主要介绍两种常见的回归分析方法,以及其对应的Python实现操作. 我会从以下几个方面来介绍: 什么是回归分析 为什么使用回归分析 回归分析技术有哪些 使用Python实现回归分析 什么是回归分析 ...

最新文章

  1. lvm 逻辑卷 和 网络管理
  2. 【DIY】一个名叫“故事鸡”的儿童玩具是如何用树莓派3B+练成的
  3. Python3 图片(jpg、bmp、png)转PDF
  4. mysql协议重传_TCP协议详解
  5. 2012年终总结 二
  6. android mvvm流程图,MVVM框架模式详解
  7. docker和java容器_使用Docker容器和Java EE进行持续交付
  8. bool python 运算_python基础知识和pycharm安装
  9. mybatis-plus乐观锁
  10. EasyUI权限(二星权限)
  11. OpenCV学习资源
  12. 华清远见嵌入式Linux就业培训班
  13. Leetcode04--给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。
  14. sqlitespy可以打开MySQL吗_SQLite 数据库访问
  15. 认识 BASH Shell
  16. arm linux fpu,ARM处理器的浮点运算单元(FPU)
  17. 清理yum源缓存_缓存是万恶之源
  18. pycharm 使用conda虚拟环境
  19. vue-cli3访问public文件夹静态资源的报错解决
  20. \u202E与\u202D的RLO与LRO (QQ消息后缀 喵!)

热门文章

  1. 2018年吉林大学软件学院软件工程专硕复试题目回忆
  2. USB摄像机方案汇总分析,好东西都不为人知。
  3. VUE+MintUI的索引列表实现“卖座网”同款城市列表
  4. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
  5. 是程序员都可能用到版本控制,如何使用它?如何在Vim中使用Git?
  6. 智能家居与AI测试之:语音通讯
  7. 斯密特正交化+多项式拟合
  8. 通过倾斜摄影快速建立高精度三维可视化场景
  9. Google Adwords选择合适的出价策略
  10. 2022年高压电工找解析及高压电工实操考试视频