python - 生成 'K' 数据点的最近邻

标签 python pandas scikit-learn knn nearest-neighbor

我需要在给定数据点的情况下生成 K 个最近的邻居。我读了 sklearn.neighbours module of sklearn但它会在两组数据之间生成邻居。我想要的可能是最接近传递的数据点的 100 个数据点的列表。

无论如何,任何 KNN 算法都应该在底层找到这 K 个数据点。有什么办法可以将这些 K 点作为输出返回吗?

这是我的 sample notebook .

最佳答案

from sklearn.neighbors import NearestNeighbors 

这可以为您提供数据集中 k 个最近邻居的索引。使用kneighbors,第一个值是距离,第二个值是邻居的索引。来自文档:

>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(n_neighbors=1)
>>> neigh.fit(samples) 
NearestNeighbors(algorithm='auto', leaf_size=30, ...)
>>> print(neigh.kneighbors([[1., 1., 1.]])) 
(array([[0.5]]), array([[2]]))

关于python - 生成 'K' 数据点的最近邻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885426/

相关文章:

python - Django 模型、添加新值(value)、迁移

python - matplotlibs xticks 中的表情符号

python - 从字典列表中创建嵌套的 json 对象

python - groupby 和滚动窗口的问题

从 Pandas 高效创建字典的 Pythonic 方法

scikit-learn - DPGMM 将所有值聚类到单个聚类中

python - 为什么 mouseMoveEvent() 不跟踪 event.button() 的变化

pandas - 如何确保所有行/列都出现在 pandas 交叉表中?

python - 找不到真正的 FFmpeg 安装(ffprobe 自带)

python - 我是否必须分别为训练和测试数据做拟合 PCA