机器学习 - 高相关性筛选法

摘要:高相关性筛选法是机器学习中用于特征选择的技术,通过计算特征间的相关系数并设定阈值来移除冗余特征。该方法能减少多重共线性、提升模型性能并降低计算成本,但也存在信息丢失、无法处理非线性关系等局限。Python实现时需计算相关矩阵并设定阈值筛选特征,最终保留关键特征用于模型训练。该技术适用于线性关系数据集,但需权衡简化模型与潜在信息损失的风险。

目录

机器学习 - 高相关性筛选法

概述

工作原理

核心原理

实现步骤

优势

局限性

示例:Python 实现高相关性筛选法

输出结果

补充说明

优点详解

缺点详解


机器学习 - 高相关性筛选法

概述

高相关性筛选法是机器学习中一种特征选择技术,用于识别并移除数据集中高度相关的特征。该技术通过减少模型训练所用的特征数量,提升模型性能,同时避免多重共线性问题 —— 即两个或多个预测变量之间存在高度相关性的情况。

工作原理

高相关性筛选法的核心是计算数据集中每对特征之间的相关性,然后移除每对高度相关特征中的一个。具体操作是为特征间的相关系数设定阈值,若相关系数的绝对值超过该阈值,则移除其中一个特征。

核心原理

  1. 特征与目标变量的相关性衡量单个特征对目标变量的解释能力,相关性越高,该特征对模型的贡献可能越大。

    • 连续型目标变量(回归任务):用皮尔逊相关系数(Pearson Correlation Coefficient),取值范围[-1,1],绝对值越接近 1 相关性越强。
    • 离散型目标变量(分类任务):用斯皮尔曼相关系数(Spearman Correlation Coefficient)、互信息(Mutual Information)或卡方检验(Chi-square Test)。
  2. 特征与特征之间的相关性衡量特征间的冗余程度,若两个特征高度相关,保留其中一个即可,避免多重共线性问题。

  • 常用指标:皮尔逊相关系数、斯皮尔曼相关系数。

实现步骤

  1. 计算数据集的相关矩阵;
  2. 设定特征间相关系数的阈值;
  3. 找出相关系数超过阈值的特征对;
  4. 从每对高度相关的特征中移除其中一个;
  5. 使用剩余特征训练机器学习模型。

优势

使用高相关性筛选法具有以下优势:

  • 减少多重共线性:可有效缓解多重共线性问题(多个特征间高度相关的情况),而多重共线性会对机器学习模型的性能产生负面影响;
  • 提升模型性能:通过移除高度相关的特征,有助于改善机器学习模型的表现;
  • 简化模型:特征数量减少后,模型更易于解释和理解;
  • 节省计算资源:所需特征减少,训练机器学习模型的计算资源消耗也随之降低。

局限性

高相关性筛选法也存在一些局限性:

  • 信息丢失:可能会移除包含重要信息的特征,导致数据信息丢失;
  • 对非线性关系不适用:该方法假设特征间的关系为线性,对于特征间存在非线性关系的数据集,其效果可能不佳;
  • 影响因变量:移除高度相关的特征有时可能对因变量产生负面影响,尤其是当这些特征与因变量高度相关时;
  • 选择偏差:若移除了对预测因变量至关重要的特征,可能会引入选择偏差。

示例:Python 实现高相关性筛选法

# 导入必要的库 import pandas as pd import numpy as np # 加载糖尿病数据集 diabetes = pd.read_csv(r'C:\Users\Leekha\Desktop\diabetes.csv') # 定义预测变量(X)和目标变量(y) X = diabetes.iloc[:, :-1].values y = diabetes.iloc[:, -1].values # 计算相关矩阵 corr_matrix = np.corrcoef(X, rowvar=False) # 设置高相关性的阈值 threshold = 0.8 # 找出高度相关特征的索引 high_corr_indices = np.where(np.abs(corr_matrix) > threshold) # 创建待移除的特征对集合 features_to_remove = set() # 遍历高度相关特征的索引并添加到待移除集合 for i, j in zip(*high_corr_indices): if i != j and (j, i) not in features_to_remove: features_to_remove.add((i, j)) # 将特征对集合转换为列表 features_to_remove = list(features_to_remove) # 从每对高度相关特征中移除一个 X_filtered = np.delete(X, [j for i, j in features_to_remove], axis=1) # 打印筛选后数据集的形状 print('筛选后数据集的形状:', X_filtered.shape)

输出结果

运行上述代码后,将得到以下输出:

筛选后数据集的形状: (768, 8)

补充说明

优点详解

  1. 减少多重共线性:多重共线性会导致模型参数估计不稳定、不可靠,高相关性筛选法通过剔除冗余的相关特征,从源头降低这种影响;
  2. 提升模型性能:去除无关或冗余的高度相关特征后,模型能更聚焦于关键信息,减少噪声干扰,从而提升预测准确性;
  3. 简化模型解释:特征数量减少后,用户更容易理解每个特征对模型预测结果的影响,降低模型的复杂度;
  4. 节省计算成本:特征越少,模型训练、验证和预测过程中所需的内存、计算时间等资源越少,尤其适用于大规模数据集。

缺点详解

  1. 信息丢失风险:即使两个特征高度相关,其中一个特征可能仍包含另一个特征未覆盖的重要信息,直接移除可能导致模型性能下降;
  2. 仅适用于线性关系:该方法基于线性相关系数(如皮尔逊相关系数)计算,无法捕捉特征间的非线性相关关系,对非线性数据集适应性差;
  3. 可能影响因变量拟合:若被移除的特征与因变量存在强相关性,可能导致模型无法充分学习到与目标变量相关的信息,进而降低预测效果;
  4. 潜在选择偏差:筛选过程仅基于特征间的相关性,未考虑特征与因变量的关联程度,可能误删对预测至关重要的特征,引入选择偏差。

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

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

相关文章

AI如何帮你优化JAVA foreach循环代码

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Java项目,展示如何使用AI优化foreach循环。首先,提供一个包含低效foreach循环的示例代码,比如在循环内频繁调用耗时方法或重复计算。然…

吐血推荐10个AI论文软件,助你轻松搞定本科毕业论文!

吐血推荐10个AI论文软件,助你轻松搞定本科毕业论文! AI 工具正在重塑论文写作方式 随着人工智能技术的不断发展,越来越多的本科生开始借助 AI 工具来提升论文写作效率。无论是撰写开题报告、梳理研究思路,还是优化语言表达、降低 …

AI如何自动化特征工程?提升数据预处理效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用快马平台生成一个自动化特征工程的Python脚本,包括数据清洗、特征选择、特征变换和特征构建。要求支持常见的数据类型(数值、分类、文本)&a…

MGeo模型极速体验:无需CUDA的云端推理方案

MGeo模型极速体验:无需CUDA的云端推理方案 地址识别是自然语言处理中的常见需求,但传统方法往往需要复杂的本地环境配置和GPU支持。MGeo作为达摩院与高德联合研发的多模态地理文本预训练模型,能够高效完成地址要素解析、实体对齐等任务。本文…

FSCAN效率翻倍:多线程与批量扫描技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个优化的FSCAN多线程扫描脚本,要求支持同时扫描多个IP段,动态调整线程数量以避免网络拥堵,实时显示扫描进度,并在扫描完成后自…

1小时验证创意:用人生K线模型做产品原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建人生K线原型生成器。输入参数包括:1)时间跨度(如最近5年)2)分析维度数量(建议3-5个)3&#…

1小时搞定:用快马平台开发洛雪链接解析器原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用快马平台快速开发一个洛雪音乐链接解析器原型,功能要求:1.识别主流音乐平台URL模式 2.提取关键元数据(歌名、歌手等) 3.生成标准JSON输出 4.错误处理机…

Z-Image-Turbo推理步数怎么选?不同场景下的最佳配置

Z-Image-Turbo推理步数怎么选?不同场景下的最佳配置 引言:快速生成模型的“节奏”控制艺术 在AI图像生成领域,推理步数(Inference Steps) 是影响生成质量与速度的核心参数之一。阿里通义推出的 Z-Image-Turbo WebUI …

AI助力DDNS-GO配置:自动生成动态域名解析脚本

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个DDNS-GO的自动配置脚本,要求:1.支持阿里云DNS解析API 2.自动检测本机公网IP变化 3.包含错误处理机制 4.提供日志记录功能 5.支持多域名同时解析。使…

零基础入门:小乌龟SVN安装配置图文教程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式小乌龟SVN学习模拟器,功能包括:1.分步安装向导模拟;2.基础操作演示(检出、更新、提交、解决冲突)&#x…

M2FP结果可导出吗?支持JSON Mask与PNG双格式输出

M2FP结果可导出吗?支持JSON Mask与PNG双格式输出 🧩 M2FP 多人人体解析服务 (WebUI API) 项目背景与核心价值 在计算机视觉领域,人体解析(Human Parsing) 是一项关键的细粒度语义分割任务,旨在将人体分解为…

如何用Z-Image-Turbo生成高清产品概念图?完整案例分享

如何用Z-Image-Turbo生成高清产品概念图?完整案例分享 在AI图像生成技术飞速发展的今天,设计师、产品经理和创意团队对高效、高质量的产品视觉呈现需求日益增长。阿里通义推出的 Z-Image-Turbo WebUI 模型,凭借其快速推理能力与高保真图像输…

TinyMCE中文实战:从零搭建企业级富文本编辑器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个完整的TinyMCE集成项目示例,包含:1) 基础编辑器初始化代码;2) 自定义工具栏配置;3) 图片上传功能实现;4) 内容过…

RedisInsight中文设置图解:小白也能轻松上手

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式新手引导应用,包含:1. RedisInsight安装动画演示;2. 中文设置分步截图指导;3. 鼠标点击高亮提示;4. 常见…

多人场景分割总出错?M2FP镜像一键解决遮挡识别难题

多人场景分割总出错?M2FP镜像一键解决遮挡识别难题 📖 项目简介:M2FP 多人人体解析服务 在计算机视觉领域,多人人体解析(Human Parsing) 是一项极具挑战性的任务——不仅要准确识别每个人的身体部位&#x…

游戏动画制作辅助:M2FP实现角色动作区域智能分割

游戏动画制作辅助:M2FP实现角色动作区域智能分割 在游戏开发与动画制作领域,角色动作的精细化处理是提升视觉表现力的关键环节。传统的人工逐帧标注方式效率低下、成本高昂,难以满足现代项目对高精度和快速迭代的需求。随着深度学习技术的发展…

基于SpringBoot和Vue的WMS仓储管理系统毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一套基于SpringBoot和Vue的WMS(Warehouse Management System)仓储管理系统,以满足现代物流仓储管理的高…

如何用Z-Image-Turbo生成逼真宠物照片?附完整案例

如何用Z-Image-Turbo生成逼真宠物照片?附完整案例 引言:AI图像生成新利器——Z-Image-Turbo WebUI 在AI图像生成领域,速度与质量的平衡一直是开发者和创作者关注的核心问题。阿里通义推出的 Z-Image-Turbo 模型,基于Diffusion架…

Z-Image-Turbo语音输入集成:说一句话生成对应图像

Z-Image-Turbo语音输入集成:说一句话生成对应图像 引言:从“输入提示词”到“说出想法”的跨越 在AI图像生成领域,提示词(Prompt)的质量直接决定输出图像的表现力。然而,撰写精准、结构化的提示词对大多数…

地址数据增强实战:用少量标注数据提升模型效果

地址数据增强实战:用少量标注数据提升模型效果 在物流、电商等行业中,地址匹配是一个常见但极具挑战性的任务。当企业只有少量标注数据(如5000条)却需要处理全国范围的地址时,如何通过数据增强技术提升模型效果成为关键…