我有一組數據,數據的散點圖是這樣的: plot http://www.avayequran.ir/rapid/files/figure_111.png尋找最好的結果數據 - 散點圖 - 蟒蛇
我已經展示了由紅色區域的正確答案,這是幾乎在兩個分支的中心。 (散點圖是'V'形式) 我需要一個算法來找到這個區域並收集這個區域中包含的所有散佈數據。 (因爲有這樣的另一組數據) 兩個X,Y數據在這裏已經上傳: Data
我有一組數據,數據的散點圖是這樣的: plot http://www.avayequran.ir/rapid/files/figure_111.png尋找最好的結果數據 - 散點圖 - 蟒蛇
我已經展示了由紅色區域的正確答案,這是幾乎在兩個分支的中心。 (散點圖是'V'形式) 我需要一個算法來找到這個區域並收集這個區域中包含的所有散佈數據。 (因爲有這樣的另一組數據) 兩個X,Y數據在這裏已經上傳: Data
根據您的問題,到目前爲止,它是很難知道如何評估哪些是正確的(即爲什麼。該區域是否正確?是基於點的值/座標,區域中的點密度?是基於相對於較大結構(即,分支的中心)等的位置)。
這就是說;有很多機器學習算法可用;例如。 python的scikit-learn。使用監督式學習算法,您可以對某些數據進行訓練,然後可以(嘗試)找到其他數據的正確答案。
更改您的問題之前,難以提供更多答案。
如果您的所有數據如下所示,則可能需要對數據執行PCA(即降維)以將分支分爲兩個羣集。然後,您將獲得一些數據點,這些數據點不能清楚地標識爲僅屬於一個分支,然後您可以選擇(scikit-learn's PCA docs)。請注意,雖然它應該是相當準確的,但您永遠無法使用它獲得完美的圈子。
如果你只需要爲這一個數據集,你已經知道了「半徑」和中心,你能確定你的圈子(橢圓形),其半長軸(&未成年人)的中心a
(& b
)軸,然後使用其canonical form計算距離。
不過,使用正方形可能會更簡單。
因此,這將是這個樣子(假設1D numpy.ndarrays):
#selecting points in a square
condition=(xarr>xmin) & (xarr<xmax) & (yarr>ymin) & (yarr<ymax)
#depending on what you want, coordinates or value at coordinates
xsq=xarr[condition]
ysq=yarr[condition]
squaredata=data[condition]
#for ellipse:
#x0, y0, a and b can be preset if only this function.
in_ellipse=np.vectorize(\
lambda x,y,x0,y0,a,b: np.sqrt(((x-x0)/a)**2 + ((y-y0)/b)**2)<=1.0)
ellipsedata=data[in_ellipse(xarr,yarr,1.6,-1125,0.1,10)]
x_ellipse=xarr[in_ellipse(xarr,yarr,1.6,-1125,0.1,10)]
y_ellipse=yarr[in_ellipse(xarr,yarr,1.6,-1125,0.1,10)]
爲X0,Y0,a和b的值通過看圖片只是估計了。
正如我所說的,我只需要收集包含在分支中心的數據(具有任意半徑的圓)。可能嗎? – Saeed
這是你在想什麼? –
謝謝。這是適當的如果我想看看圖片。我不能做的是自動執行此操作。 – Saeed