python - 为数据点生成“K”最近邻
问题描述
给定一个数据点,我需要生成 K 个最近邻。我阅读了 sklearn 的sklearn.neighbours 模块,但它会在两组数据之间生成邻居。我想要的可能是最接近传递的数据点的 100 个数据点的列表。
无论如何,任何 KNN 算法都应在后台找到这些 K 数据点。有什么办法可以将这些 K 点作为输出返回?
这是我的示例笔记本。
解决方案
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]]))
推荐阅读
- javascript - 如何获取 Javascript 5 中某个字段的 JSON 字段的总和?
- swift - Xcode iOS 无需导入即可访问类
- python - 如何在 Python 中拼凑边缘检测结果和原始图片
- reactjs - 如何更改 Material UI 抽屉的边框颜色?
- rust - 使用 Serde 进行序列化时,有没有办法对结构的字段进行分组,例如“flatten”属性的反转?
- python - xlwings 持久化 Python 对象
- javascript - 当它是一个单独的 .js 文件时,无法让 JavaScript 在 HTML 网页中工作
- c++ - 调用模板提供的(静态)函数
- python - 从几个文件中拆分相同值文本的好方法
- python - 警告:未找到 BLAS 库,Qiskit 安装