亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

高效測地最近的鄰居

高效測地最近的鄰居

翻閱古今 2021-04-01 17:14:18
從緯度/經度數據(以弧度為單位)開始,我試圖有效地找到最接近的n個鄰居,理想情況下是測地線(WGS-84)的距離。現在,我使用sklearn的BallTree與半正矢距離(KD-特雷斯只需要minkowskian距離),這是很好的和快速(3-4秒內找到最近的5個鄰居在7500個可能的匹配1200個位置),但不準確的我需要。代碼:tree = BallTree(possible_matches[['x', 'y']], leaf_size=2, metric='haversine')distances, indices = tree.query(locations[['x', 'y']], k=5)當我用自定義函數代替metric(metric=lambda u, v: geopy.distance.geodesic(u, v).miles)時,將花費“不合理的”長時間(在與上述相同的情況下為4分鐘)。據記載,自定義函數可能會花費很長時間,但是并不能幫助我解決問題。我看過使用帶有ECEF坐標和歐幾里得距離的KD-Tree,但是我不確定這是否更準確。如何保持當前方法的速度,但提高距離精度?
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

指標緩慢的主要原因是它是用Python編寫的,而sklearn中的其他指標是用Cython / C ++ / C編寫的。

因此,例如在此處針對“隨機森林”進行的討論或在此處,您將必須在Cython中實現指標,派生自己的BallTree版本,并在其中包含自定義指標。


查看完整回答
反對 回復 2021-04-09
  • 1 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號