def f_measure(cluster, labels):
def get_set(data):
products=[]
for i in itertools.product(data, data):
temp = list(i)
temp.sort()
products.append(tuple(temp))
products = [(i,j) for i,j in products if i!=j]
return products
P,Q =[],[]
for i in np.unique(labels):
setA = np.where(labels == i)[0] #
P.extend(get_set(setA))
for i in np.unique(cluster): #Q是
setB = np.where(cluster == i)[0] #
Q.extend(get_set(setB))
P,Q =set(P),set(Q)
a,b,c = len(P & Q),len(P - Q),len(Q - P)
return (2 * a)/(2*a+b+c)