## KNearestNeighbors分类器 > 实现k近邻算法的分类器。 ### 构造函数参数 `$k` - 要扫描的最近邻居数(默认值:3) `$distanceMetric` - 距离对象,默认为欧几里德(见[官方文档](https://php-ml.readthedocs.io/en/latest/math/distance/)) ``` $classifier = new KNearestNeighbors($k=4); $classifier = new KNearestNeighbors($k=3, new Minkowski($lambda=4)); ``` ***** ## 训练 训练分类器只需提供训练样本(`$samples`)和标签(如`$labels`)。例: ``` $samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]]; $labels = ['a', 'a', 'a', 'b', 'b', 'b']; $classifier = new KNearestNeighbors(); $classifier->train($samples, $labels); ``` 您可以使用多个数据集训练分类器,预测将基于所有训练数据。 ***** ## 预测 预测样本标签使用`predict`方法。您可以提供一个样本或样本数组: ``` $classifier->predict([3, 2]); // return 'b' $classifier->predict([[3, 2], [1, 5]]); // return ['b', 'a'] ```