原公式
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 鸟枪变大炮!!!!
转载请注明原文地址:https://ipadbbs.8miu.com/read-56189.html