2 回答

TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊
您可以使用成對距離來計算每個點與 X_emb 中每個點的質(zhì)心的距離,然后使用 numpy 查找最小 20 個元素的索引,最后從 X_emb 中獲取它們
from sklearn.metrics import pairwise_distances
distances = pairwise_distances(centroids, X_emb, metric='euclidean')
ind = [np.argpartition(i, 20)[:20] for i in distances]
closest = [X_emb[indexes] for indexes in ind]
最接近的形狀為(質(zhì)心數(shù) x 20)

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
您可以NearestNeighbors通過以下方式從 sklearn 獲取課程:
from sklearn.neighbors import NearestNeighbors
def find_k_closest(centroids, data):
nns = {}
neighbors = NearesNieghbors(n_neighbors=20).fit(data)
for center in centroids:
nns[center] = neighbors.kneighbors(center, return_distance=false)
return nns
nns 字典應(yīng)包含中心作為鍵和鄰居列表作為值
添加回答
舉報