在BIRCH聚類算法原理中,我們對BIRCH聚類算法的原理做了總結(jié),本文就對scikit-learn中BIRCH算法的使用做一個總結(jié)。
1. scikit-learn之BIRCH類
在scikit-learn中,BIRCH類實現(xiàn)了原理篇里講到的基于特征樹CF Tree的聚類。因此要使用BIRCH來聚類,關(guān)鍵是對CF Tree結(jié)構(gòu)參數(shù)的處理。
在CF Tree中,幾個關(guān)鍵的參數(shù)為內(nèi)部節(jié)點的最大CF數(shù)B, 葉子節(jié)點的最大CF數(shù)L, 葉節(jié)點每個CF的最大樣本半徑閾值T。這三個參數(shù)定了,CF Tree的結(jié)構(gòu)也基本確定了,最后的聚類效果也基本確定。可以說BIRCH的調(diào)參就是調(diào)試B,L和T。
至于類別數(shù)K,此時反而是可選的,不輸入K,則BIRCH會對CF Tree里各葉子節(jié)點CF中樣本的情況自己決定類別數(shù)K值,如果輸入K值,則BIRCH會CF Tree里各葉子節(jié)點CF進行合并,直到類別數(shù)為K。
2. BIRCH類參數(shù)
在scikit-learn中,BIRCH類的重要參數(shù)不多,下面一并講解。
1) threshold:即葉節(jié)點每個CF的最大樣本半徑閾值T,它決定了每個CF里所有樣本形成的超球體的半徑閾值。一般來說threshold越小,則CF Tree的建立階段的規(guī)模會越大,即BIRCH算法第一階段所花的時間和內(nèi)存會越多。但是選擇多大以達到聚類效果則需要通過調(diào)參決定。默認(rèn)值是0.5.如果樣本的方差較大,則一般需要增大這個默認(rèn)值。