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

从西瓜分类到贷款预测:卡方检验在机器学习中的花式应用

卡方检验的跨界实战从西瓜甜度预测到金融风控建模当数据科学家面对海量特征时如何快速识别出最具预测力的变量在金融风控中哪些客户特征真正与违约风险相关农产品品质检测时哪些外观指标能可靠判断内在质量这些看似迥异的问题都可以通过一个经典的统计学方法——卡方检验找到答案。1. 卡方检验的数学本质与可视化理解卡方检验的核心思想是比较观察值与理论值的偏离程度。其统计量计算公式为$$ \chi^2 \sum \frac{(O - E)^2}{E} $$其中O代表观察频数E代表期望频数。这个看似简单的公式背后蕴含着丰富的统计智慧分子部分(O-E)² 消除了正负偏差的抵消效应分母部分除以E实现了标准化使不同量纲的数据可以比较求和操作综合所有类别的差异情况让我们通过一个农产品检测的案例具体说明。假设我们有一批西瓜的检测数据表面纹理甜度高甜度低总计清晰12030150模糊8070150总计200100300期望频数的计算基于纹理与甜度无关的零假设清晰且甜度高的期望值 (150×200)/300 100清晰且甜度低的期望值 (150×100)/300 50模糊且甜度高的期望值 (150×200)/300 100模糊且甜度低的期望值 (150×100)/300 50卡方统计量计算过程chi2 ((120-100)**2)/100 ((30-50)**2)/50 ((80-100)**2)/100 ((70-50)**2)/50 print(chi2) # 输出结果为24.0查卡方分布表自由度为1临界值为3.84。由于24.0 3.84我们拒绝零假设认为纹理与甜度显著相关。2. 特征选择的工程实践SelectKBest与Scipy性能对比在实际机器学习项目中卡方检验最常用的场景是特征选择。sklearn提供了SelectKBest结合chi2的便捷实现from sklearn.feature_selection import SelectKBest, chi2 from sklearn.datasets import load_iris X, y load_iris(return_X_yTrue) selector SelectKBest(chi2, k2) X_new selector.fit_transform(X, y) print(Selected features:, selector.get_support(indicesTrue))与直接使用scipy相比sklearn的实现有以下优势批量处理所有特征自动排序与pipeline无缝集成提供特征重要性分数性能对比实验显示测试环境AMD Ryzen 7 5800X方法1000特征耗时(ms)内存占用(MB)sklearn SelectKBest45.212.3scipy chisquare循环78.618.7提示对于超大规模特征集建议使用sklearn的增量学习版本SelectKBest配合partial_fit3. 金融风控中的四格表高级应用在贷款审批场景中卡方检验能有效识别高风险特征。考虑以下客户职业与违约的联列表职业类型违约正常总计自由职业85215300稳定职业45655700总计1308701000Python实现代码from scipy.stats import chi2_contingency import numpy as np obs np.array([[85, 215], [45, 655]]) chi2, p, dof, expected chi2_contingency(obs) print(f卡方值{chi2:.2f}, p值{p:.4f})输出结果卡方值78.24, p值0.0000这个结果表明显著的关联性。我们可以进一步计算效应量来衡量关联强度phi np.sqrt(chi2/1000) print(fPhi系数{phi:.3f}) # 输出0.280根据Cohen的标准0.1-0.3弱相关0.3-0.5中等相关0.5强相关这表明职业类型与违约风险存在中等强度的关联。4. 实战中的陷阱与解决方案4.1 小期望频数问题当期望频数小于5时卡方检验的准确性会下降。解决方案包括合并相邻类别使用Fisher精确检验应用Yates连续性校正Python实现Yates校正from scipy.stats import chi2_contingency obs [[8, 2], [1, 7]] _, p_original chi2_contingency(obs, correctionFalse)[:2] _, p_corrected chi2_contingency(obs, correctionTrue)[:2] print(f原始p值{p_original:.4f}校正后p值{p_corrected:.4f})4.2 多分类变量的处理对于超过2×2的列联表卡方检验仍然适用但解释更复杂。建议先进行整体检验对显著的结果进行事后两两比较使用标准化残差识别具体差异# 多类别卡方检验示例 obs [[20, 30, 50], [40, 30, 30]] chi2, p, dof, expected chi2_contingency(obs) print(f整体检验p值{p:.4f}) # 计算调整后的标准化残差 from scipy.stats import norm residuals (obs - expected) / np.sqrt(expected * (1 - obs.sum(axis0)/obs.sum()) * (1 - obs.sum(axis1)/obs.sum())[:, None]) p_vals norm.sf(np.abs(residuals)) * 2 # 双侧检验 print(标准化残差p值矩阵\n, p_vals)4.3 连续变量的离散化策略将连续变量分箱时常见方法包括等宽分箱固定区间宽度等频分箱每个区间样本数相同基于决策树的最优分箱等频分箱实现代码import pandas as pd from sklearn.preprocessing import KBinsDiscretizer data pd.DataFrame({income: [15, 22, 35, 42, 56, 63, 71, 80, 92, 105]}) est KBinsDiscretizer(n_bins3, encodeordinal, strategyquantile) est.fit(data) print(分箱边界, est.bin_edges_)5. 超越基础卡方检验的创造性应用5.1 特征交互作用检测通过构建交互特征与目标的联列表可以发现变量间的协同效应def create_interaction_table(df, col1, col2, target): return pd.crosstab( indexdf[col1].astype(str) _ df[col2].astype(str), columnsdf[target] ) interaction_table create_interaction_table(df, education, occupation, default) chi2, p, _, _ chi2_contingency(interaction_table)5.2 时间序列模式识别将时间序列离散化后可以应用卡方检验发现周期性模式# 将时间序列转换为类别数据 hourly_patterns pd.cut(time_series.index.hour, bins[0,6,12,18,24], labels[night, morning, afternoon, evening]) event_table pd.crosstab(hourly_patterns, time_series[event_type]) # 检验事件类型是否与时间段相关 chi2_result chi2_contingency(event_table)5.3 多模态数据关联分析卡方检验可以扩展到图像和文本数据# 图像颜色与物体类别的关联 from skimage.color import rgb2lab image_data rgb2lab(images)[:,:,0] # 取L通道 discretized_colors np.digitize(image_data, binsnp.linspace(0,100,5)) color_object_table pd.crosstab(discretized_colors.flatten(), object_labels) chi2_contingency(color_object_table)在实际项目中我发现卡方检验虽然简单但配合适当的特征工程和后续验证往往能发现数据中意想不到的关联模式。特别是在金融风控的早期特征筛选中它帮助我快速从数百个原始特征中识别出20-30个真正有预测力的变量大幅提升了后续建模效率。

相关文章:

从西瓜分类到贷款预测:卡方检验在机器学习中的花式应用

卡方检验的跨界实战:从西瓜甜度预测到金融风控建模 当数据科学家面对海量特征时,如何快速识别出最具预测力的变量?在金融风控中,哪些客户特征真正与违约风险相关?农产品品质检测时,哪些外观指标能可靠判断内…...

SSD202开发环境搭建踩坑实录:Ubuntu 16.04下交叉编译工具链配置与内核编译

SSD202开发环境深度构建指南:从工具链配置到内核编译实战 引言:为什么选择Ubuntu 16.04作为SSD202开发环境? 在嵌入式开发领域,环境配置往往比想象中更具挑战性。特别是对于SSD202这类采用ARM Cortex-A7架构的芯片,开发…...

强力浏览器扩展:如何用Markdown Viewer优雅预览本地与在线技术文档

强力浏览器扩展:如何用Markdown Viewer优雅预览本地与在线技术文档 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 你是否曾经为无法直接在浏览器中查看Markdown文件而…...

告别纯逻辑:在FPGA里“种”一颗Cortex-M3,打造自定义加密SOC的第一步

在FPGA上构建定制化加密SOC:Cortex-M3软核实战指南 当现成的MCU芯片无法满足特定需求时,FPGA的灵活性为我们打开了一扇全新的大门。想象一下,你可以在硅片上"种植"一个完全定制的处理器系统,就像在数字世界中培育自己的…...

从U-Net到ResNet:拆解TFNet双流网络,看遥感图像融合模型如何‘进化’

从U-Net到ResNet:拆解TFNet双流网络,看遥感图像融合模型如何‘进化’ 遥感图像处理领域的技术演进,就像一场精心设计的接力赛。当U-Net的跳跃连接遇上ResNet的残差思想,在双流网络架构中碰撞出新的火花。TFNet的出现绝非偶然&…...

MAA明日方舟助手:3分钟解放双手的完整自动化解决方案

MAA明日方舟助手:3分钟解放双手的完整自动化解决方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitc…...

别再花钱买服务器了!手把手教你用GitLab Pages免费托管个人博客(附.gitlab-ci.yml配置)

零成本打造个人技术博客:GitLab Pages全实战指南 你是否曾经为了展示个人项目而纠结于服务器租用费用?或者因为技术博客的托管问题而迟迟没有开始写作?现在,这些困扰都可以迎刃而解。GitLab Pages提供了一个完全免费的解决方案&am…...

Blazor + OpenTelemetry + eBPF可观测性闭环(某全球TOP3药企FDA审计通关方案,含源码级Span注入日志)

第一章:Blazor OpenTelemetry eBPF可观测性闭环(某全球TOP3药企FDA审计通关方案,含源码级Span注入日志) 该方案已在某全球TOP3制药企业核心临床试验数据平台落地,通过FDA 21 CFR Part 11 审计验证。其核心在于构建端…...

数据驱动战斗:GBFR Logs如何让你的《碧蓝幻想:Relink》输出提升30%

数据驱动战斗:GBFR Logs如何让你的《碧蓝幻想:Relink》输出提升30% 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors…...

OCR文字识别镜像实战:发票、文档、路牌等图片文字提取

OCR文字识别镜像实战:发票、文档、路牌等图片文字提取 1. 项目概述 基于CRNN模型的OCR文字识别镜像是一款专为日常办公和业务场景设计的智能文字识别工具。它能快速准确地从各类图片中提取文字内容,特别适合处理发票、文档、路牌等常见场景的识别需求。…...

告别手动MIGO!用Python脚本批量调用BAPI_GOODSMVT_CREATE实现物料凭证自动化

Python自动化SAP物料凭证:告别MIGO手工操作的终极方案 每天面对数百条物料移动记录,在SAP系统中重复点击MIGO界面,填写相同的字段,检查数据准确性——这可能是许多SAP运维人员和业务顾问的日常噩梦。当企业规模扩大,物…...

OpenUtau:一站式免费开源虚拟歌手制作平台,开启音乐创作新纪元

OpenUtau:一站式免费开源虚拟歌手制作平台,开启音乐创作新纪元 【免费下载链接】OpenUtau Open singing synthesis platform / Open source UTAU successor 项目地址: https://gitcode.com/gh_mirrors/op/OpenUtau 你是否曾经梦想过创作属于自己的…...

从CTF实战出发:手把手教你用取反、异或绕过PHP命令执行黑名单(附脚本)

从CTF实战出发:手把手教你用取反、异或绕过PHP命令执行黑名单(附脚本) 在CTF竞赛和安全研究中,PHP命令执行漏洞是常见的考察点。面对严格的黑名单过滤机制,传统的攻击手法往往失效。本文将深入剖析两种高效绕过技术——…...

5分钟快速修复损坏MP4视频:untrunc终极指南

5分钟快速修复损坏MP4视频:untrunc终极指南 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否因为相机突然断电、存储卡故障或传输中断而丢失了珍贵…...

nli-distilroberta-base镜像免配置:一键生成HTTPS证书并启用TLS 1.3加密

nli-distilroberta-base镜像免配置:一键生成HTTPS证书并启用TLS 1.3加密 1. 项目介绍 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务。这个镜像提供了开箱即用的句子关系判断能力,特别适合需要快速部署NLI服务的开发者…...

CANoe数据回放踩坑实录:从BLF文件清洗到节点过滤,我的避坑指南

CANoe数据回放实战:从BLF清洗到智能过滤的工程实践 当面对一份来自真实车辆测试的BLF日志文件时,数据回放往往变成一场与噪声数据的博弈。我曾接手过一个项目,原始日志包含12个ECU节点的通信数据,但实际测试只需要关注其中2个目标…...

树莓派4B接移动硬盘总掉盘?一文讲透USB供电‘潜规则’与固件配置真相

树莓派4B接移动硬盘频繁掉盘?深度解析USB供电机制与实战解决方案 树莓派作为一款广受欢迎的单板计算机,其USB接口的供电问题一直是开发者们讨论的热点。特别是当用户连接移动硬盘、USB网卡等高功耗设备时,经常遇到设备频繁断开连接、数据传输…...

Stanford Doggo深度解析:打造高性能开源四足机器人的实战指南

Stanford Doggo深度解析:打造高性能开源四足机器人的实战指南 【免费下载链接】StanfordDoggoProject Stanford Doggo is an open source quadruped robot that jumps, flips, and trots! 项目地址: https://gitcode.com/gh_mirrors/st/StanfordDoggoProject …...

如何快速掌握Steam成就管理:SteamAchievementManager终极实战指南

如何快速掌握Steam成就管理:SteamAchievementManager终极实战指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager SteamAchievementManager&am…...

Qwen3.5-2B模型在Dify平台上的无缝集成:打造可视化AI工作流

Qwen3.5-2B模型在Dify平台上的无缝集成:打造可视化AI工作流 1. 引言:当大模型遇上可视化开发 最近在AI应用开发领域,一个明显的趋势是:越来越多的开发者开始寻求更高效、更直观的方式来构建AI应用。传统的大模型部署和调用方式往…...

DayZ社区离线模组:如何打造完全掌控的单机生存体验?

DayZ社区离线模组:如何打造完全掌控的单机生存体验? 【免费下载链接】DayZCommunityOfflineMode A community made offline mod for DayZ Standalone 项目地址: https://gitcode.com/gh_mirrors/da/DayZCommunityOfflineMode 厌倦了网络延迟、服务…...

终极指南:5个快速解决Ryujinx模拟器常见问题的完整教程

终极指南:5个快速解决Ryujinx模拟器常见问题的完整教程 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx是一款用C#编写的开源Nintendo Switch模拟器,致力…...

OpenWrt网络性能优化:如何通过turboacc插件提升路由器转发效率300%

OpenWrt网络性能优化:如何通过turboacc插件提升路由器转发效率300% 【免费下载链接】turboacc 一个适用于官方openwrt(22.03/23.05/24.10) firewall4的turboacc 项目地址: https://gitcode.com/gh_mirrors/tu/turboacc 在现代家庭和企业网络中,路…...

【研报321】电动车行业策略:动储共振迎景气拐点,全球锂电量价齐升

本报告提供限时下载,请查看文后提示以下仅为报告部分内容:摘要:2026年电动车与储能行业动储共振、产销两旺,全球电动车销量上修至2330万辆(同比10%),欧洲增30%、新兴市场增77%,国内出…...

别再死记硬背了!用Python可视化带你秒懂p-积分的敛散性(附完整代码)

用Python动画破解p-积分:当微积分遇见可视化编程 数学分析课本上那些关于p-积分敛散性的证明总是让人昏昏欲睡——直到你看到彩色动画里积分面积在屏幕上跳舞。本文将带你用Python的Matplotlib库,把抽象的数学定理变成会说话的可视化故事。不需要死记硬背…...

ONNX到PyTorch的终极转换指南:onnx2torch完整教程

ONNX到PyTorch的终极转换指南:onnx2torch完整教程 【免费下载链接】onnx2torch Convert ONNX models to PyTorch. 项目地址: https://gitcode.com/gh_mirrors/on/onnx2torch 你是否曾经遇到这样的困境?拿到了一个ONNX格式的深度学习模型&#xff…...

Win11自带的数据保险箱:手把手教你用BitLocker给硬盘上锁(附恢复密钥保存指南)

Win11数据保险箱实战指南:BitLocker加密全流程与密钥管理艺术 在数字时代,我们的硬盘就像装满珍贵物品的保险箱——家庭照片、工作文档、财务记录,这些数据一旦泄露或丢失,后果不堪设想。微软Windows 11内置的BitLocker功能&#…...

打造个人专属数字图书馆:Talebook私有书库的三大核心优势

打造个人专属数字图书馆:Talebook私有书库的三大核心优势 【免费下载链接】talebook 一个简单好用的个人书库 项目地址: https://gitcode.com/gh_mirrors/ta/talebook 你是否曾梦想拥有一个完全由自己掌控的数字图书馆?一个可以随时随地访问、管理…...

51单片机数码管显示入门:从硬件接线到代码实战,手把手教你点亮第一个数字

51单片机数码管实战指南:从硬件搭建到动态显示的全流程解析 第一次拿到51单片机开发板和数码管时,那些密密麻麻的引脚和杜邦线确实让人望而生畏。记得我刚开始接触时,花了整整一个下午才让第一个数字"0"亮起来。本文将带你避开所有…...

紧急预警:Dify v0.12.3升级后Webhook签名机制变更!3类存量集成即将失效(附热修复补丁)

第一章:紧急预警:Dify v0.12.3升级后Webhook签名机制变更!3类存量集成即将失效(附热修复补丁) Dify v0.12.3 版本于 2024-06-15 正式发布,核心变更之一是强制启用 RFC 8941 兼容的 Webhook 签名验证机制&am…...