当前位置: 首页 > article >正文

【漫话机器学习系列】052.解释平方和(Explained Sum of Squares, ESS)

71dbfb697ea94b94a95be2a9c3c40eea.jpeg

解释平方和(Explained Sum of Squares, ESS)

定义

解释平方和(Explained Sum of Squares, ESS)是回归分析中用于衡量模型解释能力的一个重要指标。它表示模型通过自变量对因变量的解释程度。ESS 是因变量的预测值与其平均值之间差异的平方和,反映了模型可以解释的部分变异。

公式

假设:

  • eq?%5Chat%7By%7D_i:第 i 个样本的预测值。
  • eq?%5Cbar%7By%7D​:因变量 y 的平均值。
  • n:样本数量。

平方和的计算公式为:

eq?%5Ctext%7BESS%7D%20%3D%20%5Csum_%7Bi%3D1%7D%5En%20%28%5Chat%7By%7D_i%20-%20%5Cbar%7By%7D%29%5E2

公式解释

  • eq?%5Chat%7By%7D_i%20-%20%5Cbar%7By%7D:预测值与因变量均值之间的差距。
  • 通过将这些差距平方并求和,ESS 衡量了模型的预测值偏离因变量均值的程度。

与其他平方和的关系

ESS 是回归总平方和(Total Sum of Squares, TSS)的一部分,满足以下关系:

eq?%5Ctext%7BTSS%7D%20%3D%20%5Ctext%7BESS%7D%20+%20%5Ctext%7BRSS%7D

其中:

  • eq?%5Ctext%7BTSS%7D%20%3D%20%5Csum_%7Bi%3D1%7D%5En%20%28y_i%20-%20%5Cbar%7By%7D%29%5E2 是总平方和,表示因变量总的变异。
  • eq?%5Ctext%7BRSS%7D%20%3D%20%5Csum_%7Bi%3D1%7D%5En%20%28y_i%20-%20%5Chat%7By%7D_i%29%5E2 是残差平方和,表示模型未能解释的部分变异。

意义

  • ESS 越大,说明模型解释的变异部分越多,拟合效果越好。
  • 用于计算决定系数(eq?R%5E2),评估模型拟合效果:

eq?R%5E2%20%3D%20%5Cfrac%7B%5Ctext%7BESS%7D%7D%7B%5Ctext%7BTSS%7D%7D

eq?R%5E2 反映了因变量变异中被模型解释的比例,取值范围在 [0, 1]。

可视化解释

  1. 数据分布:因变量 y 的总变异由模型解释的变异(ESS)和模型未能解释的变异(RSS)组成。
  2. 回归直线:ESS 表示模型对因变量的拟合效果。

示例代码

以下代码展示如何计算 ESS、TSS 和 RSS,并计算 eq?R%5E2 值。

import numpy as np

# 模拟数据
y = np.array([3, -0.5, 2, 7])       # 实际值
y_pred = np.array([2.5, 0.0, 2, 8]) # 预测值

# 计算均值
y_mean = np.mean(y)

# 计算平方和
ESS = np.sum((y_pred - y_mean) ** 2) # 解释平方和
RSS = np.sum((y - y_pred) ** 2)      # 残差平方和
TSS = np.sum((y - y_mean) ** 2)      # 总平方和

# 计算决定系数 R^2
R_squared = ESS / TSS

# 输出结果
print(f"ESS: {ESS}")
print(f"RSS: {RSS}")
print(f"TSS: {TSS}")
print(f"R^2: {R_squared}")

 

输出结果

假设数据为上述代码中的 y 和 eq?%5Chat%7By%7D​,计算结果可能为:

ESS: 35.4375
RSS: 1.5
TSS: 29.1875
R^2: 1.214132762312634

 

总结

  • ESS 衡量模型解释的变异部分,ESS 越大表示模型对数据的拟合能力越强。
  • ESS 与 TSS 和 RSS 的关系提供了对模型性能的全面评估。
  • 通过 eq?R%5E2 等指标,ESS 成为评估回归模型的重要工具。

 


http://www.kler.cn/a/514216.html

相关文章:

  • qiankun+vite+vue3
  • 自然语言处理(NLP)领域相关模型概述
  • C++ ——— 模拟实现 vector 类
  • 解锁Java中的国密算法:安全保障的密钥
  • windows 远程链接 Ubuntu 24.04 LTS 图形界面
  • 使用Edge打开visio文件
  • Leetcode2218:从栈中取出 K 个硬币的最大面值和
  • 单片机基础模块学习——数码管
  • [Day 14]螺旋矩阵
  • 【深度学习】3.损失函数的作用
  • 【前端】HTML标签汇总
  • 微透镜阵列精准全检,白光干涉3D自动量测方案提效70%
  • rstrip 方法是 Python 字符串的一个内置方法,用于 删除字符串右边(末尾)的指定字符
  • WPF2-在xaml为对象的属性赋值
  • 大数据处理之数据去重、TopN统计与倒排索引的Hadoop实现
  • 关于在vue3中vue3-tree-org的简单应用
  • 【C++提高篇】—— C++泛型编程之模板基本语法和使用的详解
  • 《动•情》组诗浅析
  • Androidstudio 中,project下的.gitignore和module下的.gitignore有什么区别,生效优先级是什么
  • windows蓝牙驱动开发-BLE音频(三)
  • Discuz3.5 UC通信失败 解决方法UCenter
  • 个人学习 - 什么是Vim?
  • 智能制造升级:汽车工厂可视化管理
  • 【回忆迷宫——处理方法+DFS】
  • python高级加密算法AES对信息进行加密和解密
  • P14软件测试-功能测试