Python 如何为输出预测设置条件阈值?

Python 如何为输出预测设置条件阈值?,python,list,Python,List,我有一个机器学习模型,它可以进行多标签文本分类。我有一个predictor对象,它成功地预测了我用作输入的文本字符串的分类。它将其预测分配给单个预测作为列表,如下所示: [('unrelated', 0.9684208035469055), ('curated', 0.02895800955593586)] 我觉得这可能很简单,但本质上我只需要 为策划的匹配创建阈值 因此,如果策展人的信心高于0.90或类似水平,我可以打印一份声明 但是,我不知道如何指定这个条件 它是一个列表对象,所以我尝试指

我有一个机器学习模型,它可以进行多标签文本分类。我有一个predictor对象,它成功地预测了我用作输入的文本字符串的分类。它将其预测分配给单个预测作为列表,如下所示:

[('unrelated', 0.9684208035469055), ('curated', 0.02895800955593586)]
我觉得这可能很简单,但本质上我只需要 为策划的匹配创建阈值

因此,如果策展人的信心高于0.90或类似水平,我可以打印一份声明

但是,我不知道如何指定这个条件

它是一个列表对象,所以我尝试指定索引。但是,每个索引同时输出
['label',confidence]
。此外,索引的顺序取决于置信度。它总是首先显示最高级别的置信度标签。因此,指定索引编号不会有多大帮助,因为它会发生变化

single_prediction = predictor.predict(result)
df.at[0,'prediction'] = single_prediction
if single_prediction[0] >= .95:
    print('this is a match')
print(single_prediction)

您可以使用列表理解:

results = [ [('curated', 0.6), ('unrelated', 0.4)],
           [('unrelated', 0.55), ('curated', 0.45)],
          [('unrelated', 0.7), ('curated', 0.3)]]

threshold = 0.4
for result in results:
    if [x[1] for x in result if x[0] == 'curated'][0] > threshold:
        print(result)

输出:

[('curated', 0.6), ('unrelated', 0.4)]
[('unrelated', 0.55), ('curated', 0.45)]

我得到一个“索引器:列表索引超出范围”?你的数据有这个错误,不是我的吗?如果是这样的话,你能发布一个你的数据样本,这样我就可以看到我的代码在你的数据上失败的地方了吗?好的,idk为什么,但是当我删除结果_2并将结果_1更改为结果时,它起了作用。(这对我来说很好,非常感谢。