2014-04-29 42 views
0

在分層k均值中,深度D的分支因子K的詞彙樹應具有如下總節點數(不包括根節點):VLFeat分層k均值:詞彙樹中節點的數量

nodes = K + K^2 + ... + K^D 
nodes = (K^(D+1)-K)/(K-1) 

但是,vl_hikmeanshist給出了一個額外的bin的直方圖。在他們website,計算節點的數量爲:

nodes = (K^(D+1)-1)/(K-1) 

他們也說自己「不算不載信息的根」。那麼爲什麼他們的公式不同?他們不會在網站上發佈他們的聯繫,所以我無法問他們。有人可以從這個問題上了解一些情況嗎?

回答

1

不包含根節點,因爲它不包含附加信息。根節點將始終是數據集的平均值。見here

舉個簡單的例子,假設你有深入2.公式的樹5個節點你將不得不(5^3-5)/(4)=120/4=30節點(不含根節點)

他們的公式只是增加了根節點: (5^3-1)/(4)=124/4=31節點。這與之前的30加上一個根節點相同。

基本上它們都是指同一件事。只要知道額外的垃圾桶是根,並不是很有用。

+0

謝謝,但根據我的問題(和您提供的鏈接)中附加的鏈接,VLFeat表示,他們已經排除了根節點。但是它們的函數vl_hikmeanshist仍然爲K = 5,D = 2輸出31個節點。這就是我問的原因。還是他們忘記從輸出直方圖中刪除額外的bin(即根節點)? –

+1

我明白你的意思了。我想這是一個打字錯誤,因爲它是[開源](https://github.com/vlfeat/vlfeat)。 – Raab70

+0

+1。 Hummh,它有點奇怪,因爲它們的函數和它們的方程都表示31個節點。他們聲稱兩次(在兩個鏈接中)他們不計算根節點。無論如何,我會從vl_hikmeanshist的輸出中刪除一個bin,但不知道哪個bin對應於根節點? –