我有一个概率列表,用于指示 numpy 数组中的输出是 1 还是 0。我试图根据 75% 的确定性水平将这些概率分成两个单独的数组。如果任一概率高于 75%,则进入“确定”数组,如果两者都未超过该阈值,则进入“不确定”数组。
出于某种原因,当我运行此代码时,它没有正确区分两者,而是继续将所有实例添加到“特定”数组中。
代码:
probs = rfc.predict_proba(X_validate)
certain = []
uncertain = []
for i in probs[0:10]:
zero_val = i[0]
one_val = i[1]
if zero_val or one_val > 0.75:
certain.append(i)
else:
uncertain.append(i)
print(len(certain))
print(certain)
print(len(uncertain))
print(uncertain)
这是输出:
10
[array([0., 1.]), array([1., 0.]), array([0.95, 0.05]), array(
[0.77, 0.23]), array([0.74, 0.26]), array([0.38, 0.62]), array
([0.11, 0.89]), array([1., 0.]), array([0.94, 0.06]), array([0
.19, 0.81])]
0
[]
是什么导致每个实例都添加到“特定”数组中?谢谢!
zero_val or one_val > 0.75
或多或少相当于zero_val != 0 or one_val > 0.75
在这种情况下,因此zero_val
本质上被视为布尔标志。你需要写zero_val > 0.75 or one_val > 0.75
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句