2017-03-30 40 views
0

給定一個點座標數組,我想生成n新座標,最好「定義」未填充的空間的如何生成未填充空間的骨架點?

我的方法的第一部分涉及使用K均值聚類來生成合理代表所有點的k點。然後我想使用這些點爲未填充的空間生成骨架點。

一個例子如下所示。初始點顯示爲小點,K-Means聚類中心顯示爲大點(k = 5),我的人體骨骼點放置位置的估計顯示爲黃色方塊,其中n = 4

estimated skeletal points

什麼是對於未填充的空間內產生這些骨架點的最佳方法? (看起來好像我需要一個「逆聚類」算法。)隨意提供一個不使用所示的K-Means聚類的解決方案;這只是我試圖簡化問題。

# Dataset used: 
X = np.array([ 
    [0.0, 0.0], [0.1, 0.0], [0.2, 0.0], [0.2, 0.1], [0.3, 0.1], [0.4, 0.1], 
    [0.4, 0.2], [0.5, 0.2], [0.5, 0.3], [0.6, 0.3], [0.7, 0.3], [0.8, 0.3], 
    [0.9, 0.3], [0.9, 0.4], [0.9, 0.5], [0.9, 0.5], [0.9, 0.6], [0.9, 0.7], 
    [0.9, 0.7], [0.9, 0.8], [0.8, 0.8], [0.8, 0.9], [0.7, 0.9], [0.6, 0.9], 
    [0.5, 0.9], [0.4, 0.9], [0.4, 0.8], [0.3, 0.8], [0.3, 0.7], [0.2, 0.7], 
    [0.2, 0.6], [0.2, 0.5], [0.2, 0.4] 
]) 
+0

我認爲,直到你知道如何以數學方式做這件事,這不是一個編程問題。這是一個數學/統計/數據科學的問題。我不清楚如何從數據中獲得黃點(我的意思是即使在概念上)。 – BrenBarn

回答

1

這裏是在翻譯你問一個嘗試:

1)填寫有關地區執行定期間隔點的網格。

2)從這個規則網格中移除靠近你的初始點的點。

3)使用k-means聚類來聚集剩餘的網格點。

如果你有P個初始點並且打算創建k個簇,我會去掉大約P * 100 /(P + k)%的網格點。應該有一些聰明的方法來獲得使用非常細的網格的準確性,而不是實際處理所有網格點,例如,通過遞歸地將空間分割成塊,但是一個簡單的網格可以讓你快速測試這個想法並且看看它的樣子。