我試圖設計一個矢量量化的實現作爲一個C++模板類,可以處理矢量的不同類型和尺寸(例如16維矢量字節,或4d矢量雙打等)。如何在n維中執行空間分區?
我一直在閱讀了對算法,我理解大部分:
我要實現的林德BUZO灰色(LBG)算法,但我m難以找出劃分簇的一般算法。我想我需要定義一個平面(超平面?),將平面中的矢量分開,這樣在平面的每一側上都有相同的數字。
[編輯以添加更多信息] 這是一個反覆的過程,但我想我開始通過尋找所有向量的重心,然後使用質心來定義分裂平面,讓每一個的心直到我有VQ算法所需的簇的數量(迭代以優化以減少沿途的失真)爲止。上面第一個鏈接中的動畫很好地顯示了它。
我的問題是:
什麼是算法來找出飛機一旦我有質心?
如何測試矢量以查看它是否在該平面的任一側?
當你說「測試矢量」時,我假設你的意思是「測試一個點?「矢量沒有位置 – 2010-04-09 23:15:53
是的,你是對的,我的意思是一個點。 – kevin42 2010-04-09 23:44:20