可视化两个分类变量关系的最佳方法是什么

数据挖掘 聚类 可视化 分类数据
2022-02-13 16:53:08

我目前正在研究救护车数据集,我的任务之一是找出患者何时被呼叫调度员误诊。

我有两个代码;调度代码(调度员认为患者有什么问题)和医院代码(医生决定实际诊断在医院的代码)

我正在寻找一种可视化两个代码之间关系的方法,即给定救护车代码 x 每个救护车代码成为结果的概率是多少。

这可以很容易地使用 SQL 计算,但我正在寻找一种可视化/集群的方法,这会很棒。任何帮助,将不胜感激。

编辑:评论中有一些很好的反馈

首先是维度:调度代码可以采用 1722 个唯一值中的 1 个

医院代码可以采用 1058 个唯一值中的 1 个

这两个代码完全不同,一个例子如下

Dispatcher 17D03:Unconscious 
Hospital R41:Other symptoms and signs involving cognitive functions and awareness

我的兴趣是可视化这种关系。例如,给定一个无意识的调度员代码,最常见的医院代码是什么?

同样,这很容易用数字计算,但可视化会更容易向我的利益相关者解释。

3个回答

您可以使用混淆矩阵来生成数据的热图。

假设你有:

labels = ['cardiac arrest', 'choking', 'seizure']
dispatch_code = ['cardiac arrest', 'choking', 'seizure', 'choking', 'seizure', 'seizure', 'cardiac arrest', 'cardiac arrest']
hospital_code = ['cardiac arrest', 'choking', 'cardiac arrest', 'choking', 'seizure', 'seizure', 'seizure', 'cardiac arrest']

然后你可以绘制:

from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt

cm = confusion_matrix(hospital_code, dispatch_code)
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(cm)
plt.title('Confusion matrix of the classifier')
fig.colorbar(cax)
ax.set_xticklabels([''] + labels)
ax.set_yticklabels([''] + labels)
plt.xlabel('Predicted')
plt.ylabel('True')
plt.show()

在此处输入图像描述

这个例子表明,调度程序经常有一个正确的代码(中间的黄色条纹)。心脏骤停癫痫发作经常混淆(蓝色),而窒息从未被错误分类(紫色)。

如果您在计算多维变量,那么 Mosaicplot 可以提供帮助。在 R 中有一个来自图形包的函数,称为镶嵌图。它是 R 附带的基础包之一。

HairEyeColor , , 性别 = 男性

   Eye

头发 棕色 蓝色 淡褐色 绿色 黑色 32 11 10 3 棕色 53 50 25 15 红色 10 10 7 7 金色 3 30 5 8

, , 性别 = 女性

   Eye

头发 棕色 蓝色 淡褐色 绿色 黑色 36 9 5 2 棕色 66 34 29 14 红色 16 7 7 7 金色 4 64 5 8

mosiacplot(HairEyeColor) 在此处输入图像描述

最后,我最终在rawgraphs上使用了冲积图。