cindex的计算加速(numpy)

    技术2025-04-15  10

    原公式

    def CI(P, Y): pair = 0 summ = 0 for i in range(1, len(Y)): for j in range(0, i): if i != j: if(Y[i] > Y[j]): pair +=1 summ += 1* (P[i] > P[j]) + 0.5 * (P[i] == P[j]) return summ/pair

    新公式

    def CI(P, Y): print(P.shape) pair = 0 summ = 0 temp1 = [(y > Y) for y in Y] temp2 = [(p > P) + (p == P) * 0.5 for p in P] summ = 0 for i, t in enumerate(temp2): summ += np.sum(t[:i][temp1[i][:i]]) pair += np.sum(temp1[i][:i]) return summ/pair

    效果:1h -> 0.5min 鸟枪变大炮!!!!

    Processed: 0.011, SQL: 9