如何从CoreML文本分类预测结果中获取confidence变量
获取CreateML文本分类器的置信度(Confidence)
要获取预测结果的置信度,你需要访问CoreML自动生成的预测类中的labelProbability属性,具体修改方式如下:
先确认Xcode自动生成的模型类(比如
Roll.swift)里,RollPrediction包含labelProbability字典——它的键是分类标签字符串,值是对应标签的置信度(0到1之间的浮点数)。修改你的预测方法,即可同时获取标签和对应置信度:
import CoreML func predict(phrase: String) -> (label: String, confidence: Double?) { guard let rollModel = try? Roll(configuration: MLModelConfiguration()) else { return ("Failed to load the Roll Model.", nil) } let rollModelInput = RollInput(text: phrase) guard let prediction = try? rollModel.prediction(input: rollModelInput) else { return ("Roll Model Prediction Failed", nil) } // 提取当前预测标签对应的置信度 let confidence = prediction.labelProbability[prediction.label] return (prediction.label, confidence) }
如果只需单独获取置信度值,可直接在得到prediction后添加:
let confidenceValue = prediction.labelProbability[prediction.label] ?? 0.0
补充说明
- 既然Xcode模型预览能显示置信度,说明模型本身包含该数据,CoreML自动生成的类必然提供对应访问属性,常规就是
labelProbability字典。 - 若找不到该属性,右键点击Xcode中的
.mlmodel文件,选择Show Code,查看自动生成的模型类代码,就能确认置信度对应的属性名称。
内容的提问来源于stack exchange,提问作者lando2319
相关产品推荐
相关产品推荐

