使用pandas的crosstab函数计算混淆矩阵及Seaborn作图实战

本文介绍了如何在机器学习中利用pandas的crosstab函数计算混淆矩阵,并结合Seaborn库进行可视化。通过引入pandas、numpy、matplotlib和seaborn库,创建真实和预测标签数组,计算混淆矩阵,并使用heatmap方法展示混淆矩阵图,有助于评估模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用pandas的crosstab函数计算混淆矩阵及Seaborn作图实战

在机器学习领域,混淆矩阵(confusion matrix)是评估模型性能非常重要的工具。它可以帮助我们了解分类模型在验证集上的准确性。本文介绍如何使用Python中的pandas和Seaborn库实现混淆矩阵可视化功能。

首先,我们需要引入需要使用的库:pandas、numpy、matplotlib、seaborn。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

接下来,我们生成两个随机的分类标签数组,一个为真实标签,另一个为预测标签。


                
### 卡方检验及其可视化 要在 Python 中执行卡方检验并绘制统计图表,可以按照以下方法操作: #### 数据准备 假设有一个二维表格表示分类变量之间的关系。例如,给定的数据集 `df` 可能包含两个类别列(如性别和幸存状态),可以通过交叉表构建观测频率矩阵。 ```python import pandas as pd from scipy.stats import chi2_contingency import matplotlib.pyplot as plt import seaborn as sns # 构建示例数据框 data = { 'Category_A': ['A', 'B', 'A', 'B', 'A', 'B'], 'Category_B': ['X', 'Y', 'X', 'Y', 'X', 'Y'] } df = pd.DataFrame(data) # 使用 Pandascrosstab 函数生成频数表 observed = pd.crosstab(df['Category_A'], df['Category_B']) print(observed) ``` 此代码片段通过 `pd.crosstab()` 方法生成了一个频数表作为输入矩阵[^2]。 #### 执行卡方检验 利用 SciPy 库中的 `chi2_contingency` 函数来完成卡方独立性检验。 ```python # 进行卡方检验 chi2, p_value, dof, expected = chi2_contingency(observed.values) print(f"Chi-Square Statistic: {chi2}") print(f"P-value: {p_value}") print(f"Degrees of Freedom: {dof}") print("Expected Frequencies:\n", expected) ``` 上述代码返回了卡方统计量、P 值以及自由度等重要指标。 #### 结果可视化 为了更好地理解结果,可将期望值与实际值对比作图。 ```python plt.figure(figsize=(8, 6)) # 将预期值转换为 DataFrame 并设置索引/列名一致于原始数据 expected_df = pd.DataFrame(expected, index=observed.index, columns=observed.columns) # 绘制热力图比较观察值和期望值 sns.heatmap(observed, annot=True, fmt=".0f", cmap="Blues", linewidths=.5, ax=plt.subplot(1, 2, 1)) plt.title('Observed Values') sns.heatmap(expected_df, annot=True, fmt=".1f", cmap="Greens", linewidths=.5, ax=plt.subplot(1, 2, 2)) plt.title('Expected Values') plt.tight_layout() plt.show() ``` 这段脚本使用 Seaborn 和 Matplotlib 来分别展示观察到的数值和理论上的期望数值,并采用热图形式呈现两者差异[^4]。 --- ### 总结 以上展示了如何在 Python 中进行卡方检验及相应的图形化表达方式。这不仅有助于验证两组离散型随机变量间是否存在关联性,还能直观看出哪些单元格偏离较大从而影响整体结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编码实践

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值