Closed Cverchen closed 12 months ago
Thank you for raising this good question. The overlapping area in this diagram is estimated using the following method.
Draw the frequency histogram:
n1, bins1, patches1 = plt.hist(IDScore,bins=100,density=True,color='orange',alpha=0.)
plt.fill_between(bins1[:-1], n1, color='orange', alpha=1.0,label="ImageNet")
plt.plot(bins1[:-1],n1,'--',color='coral')
n2, bins2, patches2 = plt.hist(OODScore,bins=100,density=True,color='lightgreen',alpha=0.)
plt.fill_between(bins2[:-1], n2, color='lightgreen', alpha=0.8,label="SUN")
plt.plot(bins2[:-1],n2,'--',color='green')
The estimated overlapping position of the two parts: for example, threshold = 13.5.
Then:
overlap = []
flag1=0
for i in range(100):
if bins1[i]<threshold :
flag1=i
for i in range(flag1):
overlap.append(n1[i])
flag2=0
for i in range(100):
if bins2[i]<threshold :
flag2=i
for i in range(99-flag2):
overlap.append(n2[99-i])
At last you can get the overlap by: print(sum(overlap)*(bins1[:-1][1]-bins1[:-1][0]))
Of note, this is only an estimated value derived during the plotting process, and there might be better computational methods.
If you have any further questions, please feel free to email me at ee_zhuy@zju.edu.cn or chat with me on WeChat.
Wishing you all the best!
Thanks for your reply!
Great works! But i want to know how you calculate the overlap value of the visualization of the BATS. For example, in following figure: overlap = 33.49% how can i get it? Thanks for your reply!