def ch_eva(f_encode, f_probi, prepare_data, data, iterator, options):
accuracy = 0.0
counter = 0.0
area = 0.0
for _, valid_index in iterator:
chv = [data[t] for t in valid_index]
v, vm, vx, vxm, vy, vym = prepare_data(chv)
r = gen_hull(v, vm, f_encode, f_probi, options)
hull_idx = r
for s in range(hull_idx.shape[0]):
acc, area_per = hull_accuracy(v[:, s, :], hull_idx[s, :], vy[:, s])
if acc >= 0:
accuracy += acc
counter += 1
area += area_per
if counter > 0:
return 1 - accuracy / len(data), counter / len(data), area / counter
return 1.0, 0.0, 0.0
评论列表
文章目录