如何用数组预测二分类概率?现有代码报错求修正
解决方法
1. 排查row变量的有效性
首先确认row是否被正确赋值——很多时候报错是因为row的值为None。先打印变量状态验证:
print(row) print(type(row))
如果输出显示None,得先补全row的数据源:要么手动构造对应特征的列表/数组,要么检查读取未知数据的代码逻辑(比如文件路径错误、数据读取函数返回空值)。
2. 调整输入形状匹配模型要求
神经网络要求输入为二维数组(格式为[样本数, 特征数]),哪怕是单条数据也不能用一维结构。如果row是一维列表/数组,用以下代码转换:
import numpy as np # 转成(1, 特征数)的二维结构 row = np.array(row).reshape(1, -1) # 或者用expand_dims实现 row = np.expand_dims(row, axis=0)
3. 核对特征数量一致性
确保row的特征数量和训练模型时的输入特征数完全一致。比如训练时用了7个特征,row也必须包含7个对应数值,多一个少一个都会触发格式错误。
4. 修正预测代码逻辑
以Keras/TensorFlow为例,正确的预测类别1概率的代码应该是:
# model为训练完成的模型 prob_class_1 = model.predict(row)[0][1] print(prob_class_1)
避免出现model.predict()未传参、传参为None这类低级错误。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

