【Python特征工程系列】基于卡方分析的特征重要性分析

这是我的第299篇原创文章。一、引言卡方检验是一种用于测量两个分类变量之间相关性的统计方法。它适用于分析两个类别型变量之间的关联程度,例如观察到

这是我的第299篇原创文章。

一、引言

卡方检验是一种用于测量两个分类变量之间相关性的统计方法。它适用于分析两个类别型变量之间的关联程度,例如观察到的频数与期望的频数之间的差异。

方法简介:

卡方检验的核心思想是比较观察到的频数与期望的频数之间的差异。它通过计算卡方统计量来衡量观察值和预期值之间的偏离程度。卡方统计量越大,意味着观察值与预期值之间的差异越大,从而支持拒绝原假设,即两个变量之间存在关联。

应用场景:

  • 分析两个分类变量之间的关联性,例如性别和吸烟习惯之间的关系
  • 评估分类变量对于某个事件或结果的影响程度,例如不同教育水平对就业率的影响。

二、实现过程

2.1 准备数据

data = pd.read_csv(r'dataset.csv')
df = pd.DataFrame(data)
【Python特征工程系列】基于卡方分析的特征重要性分析

2.2 目标变量和特征变量

target = 'target'features = df.columns.drop(target)

特征变量如下:

【Python特征工程系列】基于卡方分析的特征重要性分析

2.3 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(df[features].values, df[target].values, test_size=0.2, random_state=0)

2.4 特征值转化为非负数

X_positive = np.abs(X_train)

2.5 计算卡方统计量

进行卡方分析,通过计算每个特征与目标变量之间的卡方统计量,来判断哪些特征与目标变量最相关:

chi_scores, p_values = chi2(X_positive, y_train)
# 打印每个特征的卡方统计量和 p 值
for i, feature_name in enumerate(features):
    print(f"特征 '{feature_name}' 的卡方统计量:{chi_scores[i]}, p 值:{p_values[i]}")

打印结果:

【Python特征工程系列】基于卡方分析的特征重要性分析

2.6 可视化卡方统计量

代码:

sns.set(font_scale=1.2)
plt.rc('font',family=['Times New Roman', 'SimSun'], size=12)
plt.figure(figsize=(10, 6))
plt.bar(features, chi_scores, color='skyblue')
plt.xticks(rotation=45)
plt.xlabel('特征')
plt.ylabel('卡方统计量')
plt.title('各特征的卡方统计量')
plt.show()

结果:

【Python特征工程系列】基于卡方分析的特征重要性分析

卡方统计量越大,表示观察值与期望值之间的差异越大,从而支持拒绝原假设,即变量之间存在关联。p 值表示观察到的差异产生的概率。当 p 值低于显著性水平(通常为0.05),则拒绝原假设,认为两个变量之间存在关联。

作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。

原文链接:

【Python特征工程系列】基于卡方分析的特征重要性分析(案例+源码)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84748.html

(0)
上一篇 2024-09-23 22:15
下一篇 2024-09-24 16:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信