集群质量评估:属性,指标,GitHub代码

集群是一件神奇的事情:它将大量的非结构化数据转换为一组潜在可见的集群,对其进行分析可以使我们得出有关该数据内容的结论。


聚类方法有很多应用。例如,我们对搜索查询进行聚类以提高排名算法的泛化能力:从一组相似查询中计算出的任何统计信息都比为一个单独查询计算出的相同统计信息更可靠。群集使您可以使用很少遇到的公式来提高查询的质量。另一个明显的例子是Yandex.News,它会自动生成新闻报道。


早在2013年,我很幸运地参与了非常复杂的聚类算法的开发。有必要以非常高的质量对成千上万个对象进行群集,并迅速地完成它:在一台机器上花费数十秒。第一步是建立质量评估系统,在本文中我将讨论它。




, , , .


, : , , , /- . , . — .


1.


, . .



, . Amigo et. al, 2009. A comparison of Extrinsic Clustering Evaluation Metrics based on Formal Constraints , , .


1.1. Cluster Homogeneity,



.


1.2. Cluster Completeness,



, . .


1.3. Rag Bag



: , , («»), . , , , .


, . , . «» : , .


1.4. Size vs Quantity



.


2.


.


D={d1,...,dN}. . , E2D — ,


e1,e2E:(e1e2)(e1=e2)


: . , .


, : T={t1,...,tn} C={c1,...,cm}. t(d) c(d) , , , d.


2.1. , ()


. , . , .


. 3 («»), 3 («») 2 («»). : «» , «» «».



88=64 , :
33+33+22=22 ;
6422=42 .


«» «» , - «» .


, :
TP=18 ;
FP=6 , ;
TN=36 ;
FN=4 , .


, :


P=TP/(TP+FP)=0.75


R=TP/(TP+FN)=0.82


F1=2PRP+R=0.78


, : .


. , : .


pairwise- — . - pairwise- .


2.2. ,


:


P(c,t)=|ct||c|


R(c,t)=|ct||t|


: «» (y) «» (v). 25 10 . 25/35, — 10/35. . , 30 12 , 25/30, — 10/12.



: , . :


P(c,t)=R(t,c)


F-:


F1(c,t)=2P(c,t)R(c,t)P(c,t)+R(c,t)


. «» , Purity:


Pü[R一世Ťÿ=一世=1个|C一世|最高1个ĴñPC一世ŤĴ


, :


一世vË[RsËPü[R一世Ťÿ=ñĴ=1个|ŤĴ|ñ最高1个一世PC一世ŤĴ


Pü[R一世Ťÿ , . 一世vË[RsËPü[R一世Ťÿ — . , ? , . :


|C2||Ť2||Ť1个||C1个|



|C2|=1000, |C1个|=2, |Ť1个|=二十, |Ť2|=982. C1个 Ť1个, :


|C1个Ť1个|=2|C1个Ť2|=0


|C2Ť1个|=十八|C2Ť2|=982


:


PC1个Ť1个=|C1个Ť1个|/|C1个|=2/2=1个


PC2Ť2=|C2Ť2|/|C2|=982/1000=0.982


PŤ1个C2=|Ť1个C2|/|Ť1个|=十八/二十=0.9


PŤ2C2=|C2Ť2|/|Ť2|=982/982=1个


, Purity InversePurity . :


Pü[R一世Ťÿ=0.9982


一世vË[RsËPü[R一世Ťÿ=0.9823


, Ť1个 . , . . Purity Ť1个 C1个, InversePurity — C2. !


F-:


F=ñĴ=1个|ŤĴ|ñ最高1个一世FC一世ŤĴ


, , . , , , .


2.3. BCubed-


. , . , , ? ?



, BCubed- . :


CPd=|CdŤd||Cd|


C[Rd=|CdŤd||Ťd|


:


CP=1个ñddCPd


C[R=1个ñddC[Rd


BCubed Precision Cluster Homogeneity Rag Bag, BCubed Recall — Cluster Completeness Size vs Quantity. — F- — :


CF=2CPC[RCP+C[R


3.


, . , .


, , . d={一个bCdËFGH一世} , Ť1个={一个bCdË} Ť2={FGH一世} («» «» ).


: C1个={一个bCdG}, C2={ËFH一世}.



3.1. BCubed


BCubed- :


CPŤ一世=1个|Ť一世|dŤ一世CPd


C[RŤ一世=1个|Ť一世|dŤ一世C[Rd


:


CP一个=CPb=CPC=CPd=|Ť1个C1个||C1个|=0.8CPË=|Ť1个C2||C2|=0.25


CPF=CPH=CP一世=|Ť2C2||C2|=0.75CPG=|Ť2C1个||C1个|=0.2


:


CPŤ1个=CP一个+CPb+CPC+CPd+CPË5=40.8+0.255=0.69


CPŤ2=CPF+CPG+CPH+CP一世4=30.75+0.24=0.6125


:


C[R一个=C[Rb=C[RC=C[Rd=|Ť1个C1个||Ť1个|=0.8C[RË=|Ť1个C2||Ť1个|=0.2


C[RF=C[RH=C[R一世=|Ť2C2||Ť2|=0.75CPG=|Ť2C1个||Ť2|=0.25


C[RŤ1个=C[R一个+C[Rb+C[RC+C[Rd+C[RË5=40.8+0.25=0.68


C[RŤ2=C[RF+C[RG+C[RH+C[R一世4=30.75+0.254=0.625


BCP BCR :


CP=CPŤ1个+CPŤ22=0.65125


C[R=C[RŤ1个+C[RŤ22=0.6525


.


3.2. Expected Cluster Completeness


. , , , , - .


— F- — . , ? .


, , «». . — . : , , .


— :


FCŤ


F (cluster completeness):


CCFŤ=最高CF--1个Ť|CŤ||Ť|


:


CCFŤ=1个ŤŤŤCCFŤ


— , F. : .


. , FC=Ť,


PFC=Ť=PCŤ=|CŤ||C|


F :


PF=CC|CFC||C|


:


ËCCŤ=FCŤPFCCFŤ


:


ËCC=1个|Ť|ŤŤËCCŤ


:


ËCC=FCŤPFCCFŤ


. Ť C1个, C2, ..., Cķ, :


|ŤC1个||ŤC2||ŤCķ|


C1个 Ť


PFC1个=Ť=|C1个Ť||C1个|



[RC1个Ť=|C1个Ť||Ť|


, , . [RC1个Ť.


C1个 , pC2Ť Ť C2. [RC2Ť. , ,


PC1个Ť[RC1个Ť+PC2Ť[RC2Ť1个--PC1个Ť+


ECC . sortedMatchings , , . Precision() Recall() . :


double ExpectedClusterCompleteness(const TMatchings& sortedMatchings) {
    double expectedClusterCompleteness = 0.;
    double probability = 1.;
    for (const TMatching& matching : sortedMatchings) {
        expectedClusterCompleteness += matching.Recall() * matching.Precision() * probability;
        probability *= 1. - matching.Precision();
    }
    return expectedClusterCompleteness;
}

, F1个-, !


ECC , 3. Ť1个 C1个, Ť2C2. :


ËCCŤ1个=[RC1个Ť2PC1个Ť1个+[RC2Ť1个PC2Ť1个1个--PC1个Ť1个
ËCCŤ1个=0.82+0.20.251个--0.8=0.65


ËCCŤ2=[RC2Ť2PC2Ť2+[RC1个Ť2PC1个Ť21个--PC2Ť2
ËCCŤ2=0.752+0.250.21个--0.75=0.575


, :


ËCC=ËCCŤ1个+ËCCŤ22=0.6125


4.


, 3, C++ MIT GitHub. Linux, Windows.


:


git clone https://github.com/yandex/cluster_metrics/ .
cmake .
cmake --build .

, 3. !


./cluster_metrics samples/sample_markup.tsv samples/sample_clusters.tsv
ECC   0.61250 (0.61250)
BCP   0.65125 (0.65125)
BCR   0.65250 (0.65250)
BCF1  0.65187 (0.65187)

«» , , . , , . , , . — .


5. ,


, , , .


. , , . , , :



: , . , , . , , , — . — ECC!


, , — . .


, , , . .


, , , ECC! ECC - , , , 100% . .


, 1 . : — .



Cluster Completeness


, , . , Cluster Homogeneity, Cluster Completeness, Rag Bag , Size vs Quantity .


, : , , , .


, 3, , .


, , : . , , .


All Articles