Skip to content

NearestNeighbors

NearestNeighbors可以说是机器学习中最为简单粗暴的算法,即所谓的近邻算法。

NearestNeighbors 无监督的近邻搜索

NearestNeighbors 是最简单的能够进行无监督近邻搜索的类,他的构造参数包括:

  • n_neighbors: 最近邻的数量
  • radius: 用于半径搜索的邻居数
  • algorithm: 用于搜索的算法(auto/ball_tree/kd_tree/brute)
  • metric: 距离度量的算法(euclidean/manhattan/cosine)

他提供了几个主要的方法:

  • fit(X): 输入训练模型的数据集(他是惰性的并不立即执行训练)
  • kneighbors(simple_X, n_neighbors=int) -> (array(距离), array(数据集中近邻索引)): 返回给定样本的最近邻及其距离
  • radius_neighbors(simple_X, radius=1): 返回给定样本在指定半径内的邻居

通常我们会敲定需要使用 algorithm 和 metric 来创建 NearestNeighbors 对象,然后使用 fit 输入训练数据集。之后将需要匹配近邻的样本集传入调用 k/radius_neighbors 方法来真正的开启训练。

Tips

训练只有通过 kneighbors 和 radius_neighbors 才会启动