人工智能-python-特征选择-皮尔逊相关系数

以下是关于特征选择中常用方法的表格总结,并且详细阐述了皮尔逊相关系数的原理、计算方法、步骤以及示例。

常用特征选择方法总结

方法原理优点缺点使用场景
过滤法(Filter Method)基于特征的统计信息(如相关性、方差等)筛选特征。简单、计算效率高,适用于大数据无法考虑特征之间的依赖关系适用于高维数据,快速筛选特征
包裹法(Wrapper Method)使用预测模型评估特征子集的效果,并通过递归或贪心算法进行选择。选择特征考虑了模型性能计算成本高,可能过拟合适用于较小数据集,模型训练时间可接受时
嵌入法(Embedded Method)在模型训练过程中进行特征选择,如L1正则化(Lasso回归)等。结合了模型训练,减少了计算开销可能对高维数据不够有效适用于大数据,能够同时训练模型和选择特征
基于相关系数的特征选择通过计算特征与目标变量之间的相关系数,筛选与目标相关性高的特征,并去除冗余特征。简单直观,适用于特征间相关性较强只能处理线性关系,忽略非线性关系适用于线性关系较强的回归或分类问题
基于树的方法(如随机森林)通过训练树模型(如随机森林)来计算特征的重要性,并选择重要特征。适用于大规模数据集可能过拟合,计算复杂度高适用于分类、回归任务,数据集较大时
主成分分析(PCA)将数据线性变换到一个新的坐标系,使得新特征的方差最大化,通常用于降维。可以有效降维,减少计算开销只能处理线性关系,解释性差适用于大规模数据,特征相关性较强时

皮尔逊相关系数的详细阐述

1. 原理

皮尔逊相关系数(Pearson Correlation Coefficient,简称PCC)是衡量两个变量之间线性相关程度的一个统计量。它的取值范围为[−1,1][-1, 1][1,1],数值越接近1或-1,表示相关性越强,数值接近0则表示无相关性。

  • r=1r = 1r=1:完全正相关,两个变量的关系是线性且相同方向。
  • r=−1r = -1r=1:完全负相关,两个变量的关系是线性且相反方向。
  • r=0r = 0r=0:没有线性关系。
2. 计算方法

皮尔逊相关系数的计算公式如下:

rxy=∑(xi−xˉ)(yi−yˉ)∑(xi−xˉ)2∑(yi−yˉ)2 r_{xy} = \frac{\sum{(x_i - \bar{x})(y_i - \bar{y})}}{\sqrt{\sum{(x_i - \bar{x})^2}\sum{(y_i - \bar{y})^2}}} rxy=(xixˉ)2(yiyˉ)2(xixˉ)(yiyˉ)

其中:

  • rxyr_{xy}rxy 是变量 xxxyyy 的皮尔逊相关系数。
  • xix_ixiyiy_iyi 是数据集中的第 iii 个观测值。
  • xˉ\bar{x}xˉyˉ\bar{y}yˉ 是变量 xxxyyy 的均值。
3. 计算步骤
  1. 计算每个变量的均值

    xˉ=1n∑i=1nxi和yˉ=1n∑i=1nyi \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i \quad \text{和} \quad \bar{y} = \frac{1}{n} \sum_{i=1}^{n} y_i xˉ=n1i=1nxiyˉ=n1i=1nyi

  2. 计算每对数据点的偏差(xi−xˉx_i - \bar{x}xixˉyi−yˉy_i - \bar{y}yiyˉ

  3. 计算偏差的乘积和

    ∑(xi−xˉ)(yi−yˉ) \sum{(x_i - \bar{x})(y_i - \bar{y})} (xixˉ)(yiyˉ)

  4. 计算各自的方差

    ∑(xi−xˉ)2,∑(yi−yˉ)2 \sum{(x_i - \bar{x})^2}, \quad \sum{(y_i - \bar{y})^2} (xixˉ)2,(yiyˉ)2

  5. 计算皮尔逊相关系数

    rxy=∑(xi−xˉ)(yi−yˉ)∑(xi−xˉ)2∑(yi−yˉ)2 r_{xy} = \frac{\sum{(x_i - \bar{x})(y_i - \bar{y})}}{\sqrt{\sum{(x_i - \bar{x})^2}\sum{(y_i - \bar{y})^2}}} rxy=(xixˉ)2(yiyˉ)2(xixˉ)(yiyˉ)

4. 示例

假设我们有两个特征 XXXYYY 的数据集如下:

XXXYYY
12
23
34
45

步骤 1:计算均值

Xˉ=1+2+3+44=2.5,Yˉ=2+3+4+54=3.5 \bar{X} = \frac{1 + 2 + 3 + 4}{4} = 2.5, \quad \bar{Y} = \frac{2 + 3 + 4 + 5}{4} = 3.5 Xˉ=41+2+3+4=2.5,Yˉ=42+3+4+5=3.5

步骤 2:计算偏差

  • 对于 XXX

    X−Xˉ=[1−2.5,2−2.5,3−2.5,4−2.5]=[−1.5,−0.5,0.5,1.5] X - \bar{X} = [1-2.5, 2-2.5, 3-2.5, 4-2.5] = [-1.5, -0.5, 0.5, 1.5] XXˉ=[12.5,22.5,32.5,42.5]=[1.5,0.5,0.5,1.5]

  • 对于 YYY

    Y−Yˉ=[2−3.5,3−3.5,4−3.5,5−3.5]=[−1.5,−0.5,0.5,1.5] Y - \bar{Y} = [2-3.5, 3-3.5, 4-3.5, 5-3.5] = [-1.5, -0.5, 0.5, 1.5] YYˉ=[23.5,33.5,43.5,53.5]=[1.5,0.5,0.5,1.5]

步骤 3:计算偏差的乘积和

∑(Xi−Xˉ)(Yi−Yˉ)=(−1.5×−1.5)+(−0.5×−0.5)+(0.5×0.5)+(1.5×1.5)=2.25+0.25+0.25+2.25=5 \sum{(X_i - \bar{X})(Y_i - \bar{Y})} = (-1.5 \times -1.5) + (-0.5 \times -0.5) + (0.5 \times 0.5) + (1.5 \times 1.5) = 2.25 + 0.25 + 0.25 + 2.25 = 5 (XiXˉ)(YiYˉ)=(1.5×1.5)+(0.5×0.5)+(0.5×0.5)+(1.5×1.5)=2.25+0.25+0.25+2.25=5

步骤 4:计算方差

  • XXX 的方差:

    ∑(Xi−Xˉ)2=(−1.5)2+(−0.5)2+(0.5)2+(1.5)2=2.25+0.25+0.25+2.25=5 \sum{(X_i - \bar{X})^2} = (-1.5)^2 + (-0.5)^2 + (0.5)^2 + (1.5)^2 = 2.25 + 0.25 + 0.25 + 2.25 = 5 (XiXˉ)2=(1.5)2+(0.5)2+(0.5)2+(1.5)2=2.25+0.25+0.25+2.25=5

  • YYY 的方差:

    ∑(Yi−Yˉ)2=(−1.5)2+(−0.5)2+(0.5)2+(1.5)2=2.25+0.25+0.25+2.25=5 \sum{(Y_i - \bar{Y})^2} = (-1.5)^2 + (-0.5)^2 + (0.5)^2 + (1.5)^2 = 2.25 + 0.25 + 0.25 + 2.25 = 5 (YiYˉ)2=(1.5)2+(0.5)2+(0.5)2+(1.5)2=2.25+0.25+0.25+2.25=5

步骤 5:计算皮尔逊相关系数

rxy=55×5=55=1 r_{xy} = \frac{5}{\sqrt{5 \times 5}} = \frac{5}{5} = 1 rxy=5×55=55=1

所以,rxy=1r_{xy} = 1rxy=1,表明 XXXYYY 完全正相关。


总结:

  • 皮尔逊相关系数用来衡量两个变量的线性相关性,取值范围为[−1,1][-1, 1][1,1]
  • 计算过程包括数据的均值计算、偏差乘积和、方差计算等步骤。
  • 它适用于评估连续数值型特征间的相关性,并广泛用于特征选择中,尤其是当我们想要移除冗余特征时。
  • 当然如果你看过另一篇关于特征降维的文章,那么你可能会有疑问,因为PCA和基于树的选择在特征选择和特征降维里面都出现了。
  • 虽然 PCA 和 基于树的选择方法(如随机森林) 经常出现在特征选择和特征降维的讨论中,但它们的作用有所不同:

PCA 更多是通过生成新的特征(主成分)来实现降维,也可以视为一种选择重要特征的方式。

基于树的方法,如随机森林,主要通过选择最重要的原始特征来达到降维和提高模型准确性的目的。

它们两者的共同点在于减少特征的数量,但方法和实现方式不同。在实际应用中,它们常常结合使用,以便同时进行特征选择和降维,优化模型的性能。

如果有更多问题或者需要进一步的解释,随时告诉我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92540.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW多循环架构

​LabVIEW的多循环架构是一种常见的架构,本文Temperature Monitoring.vi 采用 LabVIEW 典型的多循环并行架构,通过功能模块化设计实现温度监测全流程,各循环独立运行又协同工作,构成完整的监测系统。1. 事件处理循环(E…

深入理解Maven BOM

一、什么是Maven BOM? 1.1 BOM的基本概念 Maven BOM(Bill of Materials,材料清单)是一种特殊的POM文件,它主要用于集中管理多个相关依赖的版本。BOM本身不包含任何实际代码,而是作为一个 版本管理的"参…

Mysql分页:高效处理海量数据的核心技术

Mysql分页:高效处理海量数据的核心技术01 引言 在Web应用、移动应用或数据分析场景中,数据库常常需要处理百万甚至千万级的数据记录。一次性加载所有数据不仅效率低下,还会消耗大量网络带宽和内存资源。数据库分页技术正是解决这一挑战的关键…

通过 Docker 运行 Prometheus 入门

Promethues 组件 prometheus serverexporteralertmanager 环境准备 Docker 拉取镜像备用 # https://hub.docker.com/r/prom/prometheus docker pull m.daocloud.io/docker.io/prom/prometheus:main# https://hub.docker.com/r/prom/node-exporter docker pull m.daocloud.io/do…

Java 8特性(一)

目录 一、Lambda表达式 1、语法格式: (1)接口名 对象名(参数类型1参数名1,....参数类型n 参数名n)->{方法体;} (2)参数类型h 参数名n:接口中抽象方法的参数项 (3)->:表示连接操作 &a…

【代码随想录|232.用栈实现队列、225.用队列实现栈、20.有效的括号、1047.删除字符串中的所有相邻重复项】

232.用栈实现队列 timutimtit232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; class MyQueue { public:stack<int> Sin;stack<int> Sout;MyQueue() {}void push(int x) {Sin.push(x);}int pop() {if (Sout.empty()) { // 出栈为空就把入栈的数导出来w…

码上爬第三题【协程+浏览器调试检测】

前言&#xff1a;图灵第三题就是对用户浏览器调试检测&#xff0c;检测鼠标右击打开控制台&#xff0c;检测键盘按键ctrlshifti&#xff0c;从浏览器设置打开开发者工具也不行&#xff0c;应该是有浏览器宽高检测的&#xff0c;所以我们保证浏览器页面宽高不变即可。你如果想右…

windows、linux应急响应入侵排查

windows入侵排查 1.1检查账号 1.查看服务器是否有弱口令&#xff0c;远程管理端口是否对公网开放 2.查看服务器是否存在可疑账号、新增账号 检查方法&#xff1a;打开 cmd 窗口&#xff0c;输入 lusrmgr.msc 命令&#xff0c;查看是否有新增/可疑的账号&#xff0c;如有管…

11. 为什么要用static关键字

11. 为什么要用static关键字 static&#xff1a;通常来说&#xff1a;在new一个对象的时候&#xff0c;数据存储空间才会被分配&#xff0c;方法才能被外界使用。但是有时只想单独分配一个存储空间&#xff0c;不考虑需要创建对象或不创建对象&#xff0c;在没有对象的情况下也…

[Oracle] MAX()和MIN()函数

MAX() 和 MIN() 是 Oracle 常用的聚合函数&#xff0c;用于从一组值中找出最大值和最小值1.MAX()函数MAX()函数返回指定列或表达式中的最大值语法格式MAX(expression)参数说明expression&#xff1a;可以是列名、计算列或表达式示例-- 返回employees表中salary列的最大值 SELEC…

网络资源模板--基于Android Studio 实现的麻雀笔记App

目录 一、测试环境说明 二、项目简介 三、项目演示 四、部设计详情&#xff08;部分) 添加页面 五、项目源码 一、测试环境说明 电脑环境 Windows 11 编写语言 JAVA 开发软件 Android Studio (2020) 开发软件只要大于等于测试版本即可(近几年官网直接下载也可以)&…

96-基于Flask的酷狗音乐数据可视化分析系统

基于Flask的酷狗音乐数据可视化分析系统 &#x1f4cb; 目录 项目概述技术栈系统架构功能特性数据库设计核心代码实现数据可视化部署指南项目总结 &#x1f3af; 项目概述 本项目是一个基于Flask框架开发的酷狗音乐数据可视化分析系统&#xff0c;旨在为用户提供音乐数据的…

Java基础-红包雨游戏-多线程

目录 案例要求&#xff1a; 实现思路&#xff1a; 代码&#xff1a; Employee RedPacket RedPacketRain 总结&#xff1a; 案例要求&#xff1a; 实现思路&#xff1a; 创建一个员工类,id和抢到的金额&#xff0c;创建一个红包类&#xff0c;里面就是金额&#xff0c;创…

[激光原理与应用-203]:光学器件 - 增益晶体 - 增益晶体的使用方法

增益晶体是激光器的核心元件&#xff0c;其作用是通过受激辐射放大光信号。正确使用增益晶体需综合考虑晶体选型、光路设计、热管理、泵浦方式及安全防护等关键环节。以下是增益晶体的详细使用方法及注意事项&#xff1a;一、晶体选型&#xff1a;根据需求匹配参数材料选择Nd:Y…

​什么是抽象主义人工智能?​

什么是抽象主义人工智能&#xff1f; 传统的人工智能分为符号主义和连接主义两个派别&#xff0c;后来又增加了行为主义。 我发现符号主义和连接主义处理的都是文本&#xff0c;而不是语义。原来的专家系统是符号主义的产物。现在的大语言模型是连接主义的产物。它们处理的都…

OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具

下载地址获取点击这里打开&#xff1a;OpenSpeedy 简单介绍OpenSpeedy 是一款开源免费的游戏变速工具&#xff08;对某些网盘或者其他的一些下载也可进行加速&#xff09;&#xff0c;让你的游戏突破帧率限制&#xff0c;提供更流畅丝滑的游戏加速体验。1、完全免费且开源2、简…

Windows 电脑远程访问,ZeroTier 实现内网穿透完整指南(含原理讲解)

&#x1f9ed; 一、目标场景说明 想从安卓移动端远程到Windows电脑 实现如下效果&#xff1a; 家中 Windows 电脑开机联网&#xff1b;安卓手机/平板在外地&#xff0c;只要联网就能远程控制电脑桌面&#xff1b;不需要公网 IP&#xff0c;不用设置端口映射&#xff1b;免费…

解决本地连接服务器ollama的错误

1. 服务器 ollama 安装 $ curl -fsSL https://ollama.com/install.sh | sh >>> Cleaning up old version at /usr/local/lib/ollama >>> Installing ollama to /usr/local >>> Downloading Linux amd64 bundle ##################################…

详解Windows(十四)——PowerShell与命令提示符

详解Windows&#xff08;十四&#xff09;——PowerShell与命令提示符 一、Windows命令行工具概述 1. 什么是命令行界面(CLI) 命令行界面&#xff0c;简称CLI&#xff08;Command Line Interface&#xff09;&#xff0c;是一种通过输入文字命令来操作电脑的方式。与我们熟悉…

Spring源码解析 - SpringApplication 属性-初始化initializers, listeners -Spring提供的钩子函数

初始化源码 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {~~~setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));setListeners((Collection) getSpringFactoriesInstances(A…