gpt4 book ai didi

java - 用JAVA打印出混淆矩阵

转载 作者:行者123 更新时间:2023-12-01 22:35:58 24 4
gpt4 key购买 nike

这听起来可能很愚蠢!但是,我想找到任何简单的例子来引用!有人可以举一个使用java打印混淆矩阵的例子吗?

类似这样的东西(输出):

p\a   Head    Tail
Head 1 4
Tail 4 1

假设HashMap中存储的数据是这样的

HashMap<String,Integer>
String = "Head, Tail"
Integer = 4

更新(示例代码):

public static void main(String[] args) {

HashMap<String,Integer> cmatrix = new HashMap<String,Integer>();

//the string part can hold more the 2 values, all separated with comma
cmatrix.put("tail, head", 1);
cmatrix.put("head ,tail", 4);
cmatrix.put("tail, tail", 1);
cmatrix.put("head, head", 4);

for (Map.Entry entry : cmatrix.entrySet()) {
System.out.println(entry.getKey() +" : "+entry.getValue());
}
}

谢谢!

最佳答案

为了简化代码,我们假设源数据中没有空格:

cmatrix.put("tail,head", 1);
cmatrix.put("head,tail", 4);
cmatrix.put("tail,tail", 1);
cmatrix.put("head,head", 4);

首先,我们需要收集类的名称:

Set<String> classNames = new HashSet<String>();
for(String key : cmatrix.keySet()) {
String[] classes = key.split(",");
if(classes != null && classes.length > 0) {
classNames.addAll(Arrays.asList(classes));
}
}

接下来,对类名进行排序:

List<String> sortedClassNames = new ArrayList<String>();
sortedClassNames.addAll(classNames);
Collections.sort(sortedClassNames);

然后打印出标题行。

System.out.print("p/a");
for(String predictedClassName : sortedClassNames) {
System.out.print("\t" + predictedClassName);
}
System.out.println();

然后打印出每一行:

for(String actualClassName : sortedClassNames) {
System.out.print(actualClassName);
for(String predictedClassName : sortedClassNames) {
Integer value = cmatrix.get(actualClassName + "," + predictedClassName);
System.out.print("\t");
if(value != null) {
System.out.print(value);
}
}
System.out.println();
}

我将把输出的“美化”作为读者的练习。

关于java - 用JAVA打印出混淆矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26856917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com