如何从该集成模型获取预测?输出结果含义解析
集成模型预测结果解析与获取方法
一、输出结果的含义
你得到的输出 [[9.9993783e-01 1.3912816e-06 6.0800008e-05 2.9077312e-09]] 是集成模型对单张输入图片的预测概率分布,具体细节:
- 这是形状为
(1, 4)的二维数组,第一个维度代表样本数量(这里是1张图片),第二个维度对应你的任务中的4个类别。 - 每个数值是模型预测该样本属于对应类别的概率,用科学计数法表示:
9.9993783e-01= 0.99993783,即约99.9938%的概率属于第1个类别(索引0)1.3912816e-06= 0.0000013912816,即约0.00014%的概率属于第2个类别(索引1)6.0800008e-05= 0.000060800008,即约0.0061%的概率属于第3个类别(索引2)2.9077312e-09= 0.0000000029077312,概率几乎为0,属于第4个类别(索引3)
另外需要注意:你代码里注释写的是“majority vote(多数投票)”,但实际实现的是概率平均的集成方式——对两个模型的预测概率取均值,这是集成学习中常用的方法,和基于类别预测的多数投票逻辑不同。
二、如何获取最终预测类别
要得到明确的预测类别,只需从概率分布中选取概率最大的类别索引,再对应到你任务中的实际类别标签即可,用numpy的argmax函数就能实现:
import numpy as np # 你的集成预测结果 predictions = np.array([[9.9993783e-01, 1.3912816e-06, 6.0800008e-05, 2.9077312e-09]]) # 获取每个样本的预测类别索引(axis=1表示按样本维度取最大值索引) predicted_class_indices = np.argmax(predictions, axis=1) print(predicted_class_indices) # 输出: [0] # 假设你的类别标签对应关系是:比如 ["cat", "dog", "bird", "fish"] class_labels = ["cat", "dog", "bird", "fish"] predicted_class = class_labels[predicted_class_indices[0]] print(predicted_class) # 输出: cat
如果是多张图片输入,predictions的形状会是(N, 4)(N为样本数),argmax会自动返回每个样本的类别索引数组。
内容的提问来源于stack exchange,提问作者Saad Saleem
相关产品推荐
相关产品推荐

