k-NN分类|点火文件

点燃2023年峰会-按需观看-立即注册!

编辑

k-NN分类

Apache Ignite机器学习组件提供了广泛使用的k-NN(k-最近邻)算法的两个版本,一个用于分类任务,另一个用于回归任务。

本文档将k-NN作为分类任务的解决方案进行了审查。

培训师和模特

k-NN算法是一种非参数方法,其输入由特征空间中k个最近的训练样本组成。

此外,k-NN分类的输出表示类成员身份。一个物体是由其邻居的多数票决定的。该对象被指定给一个特定类,该类在其k个最近邻居中最常见。k个是一个正整数,通常很小。有一种特殊情况k个1,则该对象被简单地分配给该单个最近邻居的类。

目前,Ignite支持k-NN分类算法的几个参数:

  • k个-许多最近的邻居

  • 距离测量-ML框架提供的距离度量之一,如欧几里德、汉明或曼哈顿。

  • 是加权的-默认情况下为false,如果为true,则启用加权KNN算法。

  • 数据缓存-持有类已为其已知的对象的训练集。

  • 索引类型-分布式空间索引,有三个值:ARRAY、KD_TREE、BALL_TREE。

//创建培训师
KNN分类培训师 教练 = 新的 KNN分类培训师();

//创建培训师
KNN分类培训师 教练 = 新的 KNN分类培训师()
  .使用K()
  .带IdxType(空间索引类型.球_树)
  .带距离测量(新的 欧几里得距离())
  .带加权(真的);

//列车模型。
KNN分类模型 knnMdl(千牛顿米) = 教练.适合(
  点燃,
  数据缓存,
  矢量器
);

//做出预测。
双重的 预测 = knnMdl(千牛顿米).预测(观察);

例子

要了解如何在实践中使用kNN分类,请尝试以下操作例子它在GitHub上提供,并随每个Apache Ignite发行版一起提供。

训练数据集是Iris数据集,可以从UCI机器学习库.