2016-02-01 27 views
-1

在這篇文章中Test Run K-Means++他使用C#代碼和輪盤賭選擇,以獲得下一個重心爲什麼在輪盤賭選擇循環是停車時首先累積值> =隨機值

有實現輪盤賭選擇

代碼

if (cumulative >= p && used.Contains(ii) == false) 

爲什麼不循環,直到指數19 ???:

while (sanity < data.Length * 2) 
{ 
    cumulative += dSquared[ii]/sum; 
    if (cumulative >= p && used.Contains(ii) == false) 
    { 
     newMean = ii; // the chosen index 
     used.Add(newMean); // don't pick again 
     break; // WHY BREAK ?? THERE IS ANOTHER BIGGER CUMULATIVE VALUES 
    } 
    ++ii; // next candidate 

    if (ii >= dSquared.Length) 
     ii = 0; // past the end 

    ++sanity; 
} 

但爲什麼當第一次相遇在這裏的真實情況打破

N:20項

隨機值= 0,817325359590969

我比較從Excel中的結果代碼:Result if not stop at index 16

任何人都可以向我解釋這個問題的答案?

回答

0

因爲你想要一個加權隨機採樣。

否則,你總是會選擇最後一個值。