返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

【AI】【特征选择】独立性评估来Get

[复制链接]
链载Ai 显示全部楼层 发表于 1 小时前 |阅读模式 打印 上一主题 下一主题

在上次的spark分析中,我遇到一个问题就是数据预处理,用决策树思维做了特征feature的重要性评估,后续还做了指标间是否独立的验证!今天针对指标间是否相关,即特征选择部分做个快速探索实践来Get!


看效果


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.034em;text-align: justify;">

这个值按照0.05显著水平,自由度是(6-1)(11-1)= 50,查询的临界值是68.667;而我们计算的卡方统计量大于68.667,则拒绝原假设,即品类和价格是有关联的,不是独立的!


如上下是转了编码后的数据,问题是判断品类、颜色是否存在关联!


话原理


好的,在验证变量的关联性上,我们关注几个点


1)变量是否是连续变量


如上的品类、颜色就不是连续变量,我们认为是分类变量


什么是连续变量?


数值型变量:比如表示某种数量、大小或程度,如身高、体重、温度、时间


时间型变量:它可以被细分为无限个单位


距离型变量:两个地点之间的距离可以被精确地测量


比率型变量:比率、百分比、持续时间等


2)评估方法


卡方分析(平方和):可以用户评估2个分类变量关联程度或独立性,为什么?


因为分类变量是乱序的,他编码后为1或2,并不代表这个特征的数值大小!而卡方分布是通过统计频数,和数值的大小无关!【需要理解】


方差分析:可用于评估比较组别之间的平均值是否关联或独立性


相关系数:用户评估2个连续连续变量关联程度,为什么?


因为分类变量是乱序的,他编码后为1或2,并不代表这个特征的数值大小!而相关系数是通过数值大小趋势来判断的,所以不能用于两个分类变量去评估独立性!如果一个是连续变量,一个是分类的,则用相关系数来评估


3)卡方分析(平方和)


Chi-square test,其中Chi是指χ,有读卡,凯,柴等


卡方检验(Chi-square test)是一种用于评估两个分类变量之间的关联性的统计方法。它的基本思想是比较观察到的频数和期望的频数之间的差异,从而确定这两个变量是否独立。


1. 建立假设:


零假设(H0):两个分类变量之间不存在关联,即它们是相互独立的。


备择假设(H1):两个分类变量之间存在关联,它们不是相互独立的。


2. 计算期望频数:


首先,对每个分类变量进行计数,得到它们在样本中出现的频数。


然后,计算每个分类变量组合的期望频数,这是在零假设成立的情况下,我们期望在每个组合中观察到的频数。期望频数的计算基于样本中的总体比例和每个分类变量的边际频数。


3. 计算卡方统计量:


4. 判断关联性:


最后,通过卡方统计量的大小和对应的显著性水平(通常是显著性水平为0.05),来决定是否拒绝零假设。


如果卡方统计量大于临界值,则拒绝零假设,认为两个分类变量之间存在显著的关联。


如果卡方统计量小于临界值,则无法拒绝零假设,不能得出两个分类变量之间存在关联的结论


1)显著性水平为0.05如何理解?


在零假设成立的情况下进行多次统计,大约会有5%的检验结果和零假设相矛盾


可以理解,如果设置为0.01,则检验结果的置信度会更高即为99%


2)自由度如何理解?


自由度大,则在计算期望频数时粒度更细,更容易接近观察频数,卡方统计量的值也越小,从而表明两个变量之间的关联性越弱!


$(r-1) \times (c-1)$,其中$r$为行数,$c$为列数


3)卡方统计量大于临界值,要拒绝零假设【如何理解】


表示我们观察到的频数和期望频数之前是存在显著差异的,不能归因为随机误差或抽样误差


假设我们正在研究男女性别与对某种产品的购买偏好之间的关联性。我们收集了以下数据:


A 观察到的频数(Observed Frequencies):


| 购买 | 不购买


---------|------|--------


男性 | 30 | 20


女性 | 40 | 10


B 期望频数是在零假设成立的情况下,每个单元格的预期频数。在这种情况下,如果性别与购买偏好是独立的,我们可以根据行列边际总计和总样本量来计算期望频数。


首先,计算行和列的边际总计:


| 购买 | 不购买 | 总计


---------|------|--------|------


男性 | 30 | 20 | 50


女性 | 40 | 10 | 50


总计 | 70 | 30 | 100


然后,计算每个单元格的期望频数。以男性购买为例:


期望频数 = (男性总计 × 购买总计) / 总样本量 = (50 × 70) / 100 = 35


来实践


1、准备数据


2、pyhon代码如下


importpandasaspdfromscipy.statsimportchi2_contingency#读取CSV文件data=pd.read_csv('purchase.csv')#提取特征和目标变量X=data[['品类']]#品类y=data['颜色']#颜色#定义一个函数来计算卡方统计量defcalculate_chi2(feature,target):contingency_table=pd.crosstab(feature,target)chi2,_,_,_=chi2_contingency(contingency_table)returnchi2#计算每个特征与目标变量之间的卡方统计量chi2_scores={}forfeature_nameinX.columns:chi2_score=calculate_chi2(X[feature_name],y)chi2_scores[feature_name]=chi2_score#打印结果print("品类与颜色之间的卡方统计量:")forfeature_name,scoreinchi2_scores.items():print(f"{feature_name}:{score}")


写在最后


好几天没锻炼了,回头想感觉不在状态!Q2已来,快速调整,加油!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ