如何可视化多实例多类分类?

数据挖掘 可视化 多类分类 数据框
2022-02-28 17:08:59

假设我有 3 个类和每个数据点的 1 个分数

  • 分数 z
  • 1级
  • 2 级
  • 3 级

例如输入看起来像:

0.529 5 7 4
0.310 3 4 2
0.774 10 7 6
0.774 10 8 5
0.172 3 0 2

在代码中:

>>> import pandas as pd
>>> df = pd.DataFrame([[0.529, 5.0, 7.0, 4.0], [0.31, 3.0, 4.0, 2.0], [0.774, 10.0, 7.0, 6.0], [0.774, 10.0, 8.0, 5.0], [0.172, 3.0, 0.0, 2.0]])
>>> df
       0     1    2    3
0  0.529   5.0  7.0  4.0
1  0.310   3.0  4.0  2.0
2  0.774  10.0  7.0  6.0
3  0.774  10.0  8.0  5.0
4  0.172   3.0  0.0  2.0

每行代表一个数据点,第 0 列是分数,第 1、2、3 列是类的某种系数。

分数是某种独立于系数的计算实体,目标是可视化系数和分数之间的相互作用。

如何可视化 3 个类(第 1、2、3 列)和分数(第 0 列)之间的交互?

1个回答

您可以使用 3d 散点图,其中每个类对应一个轴,点的颜色强度将指示得分值(例如,对于灰度颜色图,得分值越白越接近 1)。

使用上述格式:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd


df = pd.DataFrame([[0.529, 5.0, 7.0, 4.0], [0, 3.0, 4.0, 2.0], [0.774, 10.0, 7.0, 6.0], [0.774, 10.0, 8.0, 5.0], [1, 3.0, 0.0, 2.0]])
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(df[1].values, df[2].values, df[3].values, c=df[0].values, cmap='gray', s=50, vmin=0.,vmax=1)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

示例 3d您可以根据文档 更改标记大小、颜色图等的散点图属性以符合您的口味。