首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确保pandas.crosstab返回一个平方矩阵

确保pandas.crosstab返回一个平方矩阵
EN

Stack Overflow用户
提问于 2022-07-06 14:24:30
回答 2查看 93关注 0票数 2

我目前正在使用pandas.crosstab来生成我的分类器测试后的混淆矩阵。不幸的是,有时我的分类器失败了,并将每个信号分类为一个标签(而不是多个标签)。在这种情况下,pandas.crosstab生成单个向量(或非平方矩阵),而不是平方矩阵。

举个例子,我的基本真理是

代码语言:javascript
运行
复制
true_data = pandas.Series([1, 1, 2, 2, 3, 3, 4, 4, 5, 5])

我的预测数据是

代码语言:javascript
运行
复制
pred_data = pandas.Series([3, 3, 2, 3, 2, 1, 1, 3, 4, 1])

应用pandas.crosstab(true_data, pred_data, dropna=False)给出

代码语言:javascript
运行
复制
col_0  1  2  3  4
row_0
1      0  0  2  0
2      0  1  1  0
3      1  1  0  0
4      1  0  1  0
5      1  0  0  1

有没有办法

代码语言:javascript
运行
复制
col_0  1  2  3  4  5
row_0
1      0  0  2  0  0
2      0  1  1  0  0
3      1  1  0  0  0
4      1  0  1  0  0
5      1  0  0  1  0

相反,即保留矩阵正方形并用0填充缺失的标签。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-06 15:00:55

您可以创建一个所需形状的zeros数组,然后用crosstab替换数组的一部分。

代码语言:javascript
运行
复制
xtab = pd.crosstab(pred_data, true_data, dropna=False).sort_index(axis=0).sort_index(axis=1)
all_unique_values = sorted(set(true_data) | set(pred_data))
z = np.zeros((len(all_unique_values), len(all_unique_values)))
rows, cols = xtab.shape
z[:rows, :cols] = xtab
square_xtab  = pd.DataFrame(z, columns=all_unique_values, index=all_unique_values) 

输出

代码语言:javascript
运行
复制
     1    2    3    4    5
1  0.0  0.0  1.0  1.0  1.0
2  0.0  1.0  1.0  0.0  0.0
3  2.0  1.0  0.0  1.0  0.0
4  0.0  0.0  0.0  0.0  1.0
5  0.0  0.0  0.0  0.0  0.0

我还没有考虑/测试,如果错配在“中间”,这种方法是否会起作用?比如,如果,pred_data = [1, 2, 4, 5]true_data = [1, 2, 3, 4]

票数 1
EN

Stack Overflow用户

发布于 2022-07-06 14:47:16

在计算crosstab之后,您可以沿着索引和列轴对数据进行reindex

代码语言:javascript
运行
复制
i = df.index.union(df.columns)
df.reindex(index=i, columns=i, fill_value=0)

代码语言:javascript
运行
复制
   1  2  3  4  5
1  0  0  2  0  0
2  0  1  1  0  0
3  1  1  0  0  0
4  1  0  1  0  0
5  1  0  0  1  0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72885273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档