这是我的第299篇原创文章。
一、引言
卡方检验是一种用于测量两个分类变量之间相关性的统计方法。它适用于分析两个类别型变量之间的关联程度,例如观察到的频数与期望的频数之间的差异。
方法简介:
卡方检验的核心思想是比较观察到的频数与期望的频数之间的差异。它通过计算卡方统计量来衡量观察值和预期值之间的偏离程度。卡方统计量越大,意味着观察值与预期值之间的差异越大,从而支持拒绝原假设,即两个变量之间存在关联。
应用场景:
- 分析两个分类变量之间的关联性,例如性别和吸烟习惯之间的关系。
- 评估分类变量对于某个事件或结果的影响程度,例如不同教育水平对就业率的影响。
二、实现过程
2.1 准备数据
data = pd.read_csv(r'dataset.csv')
df = pd.DataFrame(data)
2.2 目标变量和特征变量
target = 'target'features = df.columns.drop(target)
特征变量如下:
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]}")
打印结果:
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()
结果:
卡方统计量越大,表示观察值与期望值之间的差异越大,从而支持拒绝原假设,即变量之间存在关联。p 值表示观察到的差异产生的概率。当 p 值低于显著性水平(通常为0.05),则拒绝原假设,认为两个变量之间存在关联。
作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。
原文链接:
【Python特征工程系列】基于卡方分析的特征重要性分析(案例+源码)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/74402.html