You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取SharpLearning神经网络分类的预测概率?

获取SharpLearning神经网络的分类预测概率

问题背景

使用C#的SharpLearning框架完成二分类任务(将202维物理曲线分为'Bad'/'Good'两类),已实现模型训练与分类标签预测,现需额外获取每条样本对应类别的预测概率。

解决方案

SharpLearning的ClassificationNeuralNetModel类提供了PredictProbabilities方法,专门用于输出每个样本在各类别上的预测概率,替换原有Predict方法即可满足需求:

修改后的核心代码

// 模型训练逻辑保持不变
ClassificationNeuralNetModel model = learner.Learn(Data_matrix, Labels_matrix);

// 调用PredictProbabilities获取概率矩阵
// 返回二维数组结构:[样本数量, 类别数量],二分类场景下每个样本对应2个概率值
double[][] final_probabilities = model.PredictProbabilities(Test_matrix);

// 示例:遍历输出每个样本的概率与对应标签
for (int i = 0; i < final_probabilities.Length; i++)
{
    // 假设标签0对应'Bad'、标签1对应'Good',可根据实际标签映射调整
    Console.WriteLine($"样本{i+1}: Bad概率={final_probabilities[i][0]:F4}, Good概率={final_probabilities[i][1]:F4}");
    
    // 从概率推导分类标签:取概率最大值对应的索引
    int predictedLabel = Array.IndexOf(final_probabilities[i], final_probabilities[i].Max());
    Console.WriteLine($"预测标签: {predictedLabel}\n");
}

关键说明

  • PredictProbabilities返回的二维数组中,每一行对应一个测试样本,每一列对应一个类别的预测概率,顺序与训练时的标签类别顺序一致。
  • 因模型末尾使用SoftMaxLayer,二分类场景下每个样本的两个概率值之和接近1。
  • 若需同时得到分类标签,只需取每个样本概率数组中最大值对应的索引即可。

内容的提问来源于stack exchange,提问作者Gal V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:18:10