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

调用predict()函数计算模型预测时触发NameError错误求助

问题分析与解决

你定义了接受预测概率列表和阈值的predict()函数,同时创建了预测概率数组probs和阈值变量thresh,但调用predict(predict_prob, thresh)时触发NameError: name 'predict_prob' is not defined错误。

完整代码(含报错调用)

import numpy as np

# 定义predict()函数
def predict(predict_prob,thresh):
    pred = []  
    for i in range(len(predict_prob)):
        if predict_prob[i] >= thresh: 
            pred.append(1) 
        else:
            pred.append(0)
    return pred

# 预测概率数组
probs = [0.886,0.375,0.174,0.817,0.574,0.319,0.812,0.314,0.098,0.741,
         0.847,0.202,0.31,0.073,0.179,0.917,0.64,0.388,0.116,0.72]

# 阈值变量
thresh = 0.5

# 调用代码(报错行)
preds = predict(predict_prob, thresh)  # 调用predict函数报错

错误原因

predict_prob是函数的形参名,仅在函数内部有效,你实际创建的预测概率数组变量名为probs,调用时误用了形参名而非实际存在的变量名,导致Python找不到名为predict_prob的变量,触发NameError。

解决方法

将调用时的第一个参数替换为实际定义的probs:

preds = predict(probs, thresh)

优化建议(可选)

可以用列表推导式简化predict函数,让代码更简洁:

def predict(predict_prob, thresh):
    return [1 if prob >= thresh else 0 for prob in predict_prob]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:55:25