Python scikit-learn k-最近邻 - 3D 距离矩阵
Python skicit-learn k-nearest neighbors - 3D distance matrix
我正在研究 3D 环境中数千个球形物体的距离。我使用 numpy 在球体之间创建了一个距离矩阵,最初想挑选出某些距离,例如在使用 k 最近算法之前,3D 环境中所有对象中最近的 5 个。是否有任何包可以像 kneighbors 输出一样使用索引和值而不使用 k-nearest 算法?输入是一个预先计算的距离矩阵,其中包含每个球体到所有其他对象的所有距离。
您可以使用预先计算的距离矩阵作为 sklearn neighbours.NearestNeighbors
的输入,方法是将 metrics 参数设置为“precomputed”
让我们在某些 3D space(或任何维度 space)中的 6 个点之间创建一个虚拟距离矩阵。
from sklearn.neighbors import NearestNeighbors
#Distance matrix from numpy (dummy)
precomputed_distances = np.random.random((6,6))
#Get top 5 neighbours from precomputed distance matrix
nn = NearestNeighbors(n_neighbors=5, metric='precomputed')
nn.fit(precomputed_distances)
#Fetch kneighbors
distances, indexes = nn.kneighbors()
print(indexes)
print('')
print(distances)
#neighbours indexes
[[2 5 3 1 4]
[0 4 3 2 5]
[5 3 0 1 4]
[1 2 4 0 5]
[3 1 2 5 0]
[3 2 0 1 4]]
#distances
[[0.07355072 0.30327092 0.32645641 0.54227088 0.76145093]
[0.06451358 0.13867276 0.7570105 0.84383876 0.92184049]
[0.52953184 0.59474913 0.63211483 0.80958676 0.99361867]
[0.10885239 0.31822021 0.39327313 0.47670755 0.6764581 ]
[0.18309627 0.69483384 0.74029263 0.82705113 0.92923248]
[0.28584336 0.42956108 0.43323451 0.64124948 0.90154176]]
阅读更多相关信息 here。
我正在研究 3D 环境中数千个球形物体的距离。我使用 numpy 在球体之间创建了一个距离矩阵,最初想挑选出某些距离,例如在使用 k 最近算法之前,3D 环境中所有对象中最近的 5 个。是否有任何包可以像 kneighbors 输出一样使用索引和值而不使用 k-nearest 算法?输入是一个预先计算的距离矩阵,其中包含每个球体到所有其他对象的所有距离。
您可以使用预先计算的距离矩阵作为 sklearn neighbours.NearestNeighbors
的输入,方法是将 metrics 参数设置为“precomputed”
让我们在某些 3D space(或任何维度 space)中的 6 个点之间创建一个虚拟距离矩阵。
from sklearn.neighbors import NearestNeighbors
#Distance matrix from numpy (dummy)
precomputed_distances = np.random.random((6,6))
#Get top 5 neighbours from precomputed distance matrix
nn = NearestNeighbors(n_neighbors=5, metric='precomputed')
nn.fit(precomputed_distances)
#Fetch kneighbors
distances, indexes = nn.kneighbors()
print(indexes)
print('')
print(distances)
#neighbours indexes
[[2 5 3 1 4]
[0 4 3 2 5]
[5 3 0 1 4]
[1 2 4 0 5]
[3 1 2 5 0]
[3 2 0 1 4]]
#distances
[[0.07355072 0.30327092 0.32645641 0.54227088 0.76145093]
[0.06451358 0.13867276 0.7570105 0.84383876 0.92184049]
[0.52953184 0.59474913 0.63211483 0.80958676 0.99361867]
[0.10885239 0.31822021 0.39327313 0.47670755 0.6764581 ]
[0.18309627 0.69483384 0.74029263 0.82705113 0.92923248]
[0.28584336 0.42956108 0.43323451 0.64124948 0.90154176]]
阅读更多相关信息 here。