## 距离
> 选定的算法需要使用函数来计算距离。
### 欧几里德
计算类欧氏距离。
![](https://box.kancloud.cn/978ec343781dbfb1a1f175f3ed212235_535x119.png)
要计算欧几里德距离:
```
$a = [4, 6];
$b = [2, 5];
$euclidean = new Euclidean();
$euclidean->distance($a, $b);
// return 2.2360679774998
```
*****
### 曼哈顿
用于计算曼哈顿距离的类:
![](https://box.kancloud.cn/75cce2c885e061aeedc44ff956b10def_297x55.png)
要计算曼哈顿距离:
```
$a = [4, 6];
$b = [2, 5];
$manhattan = new Manhattan();
$manhattan->distance($a, $b);
// return 3
```
*****
### 切比雪夫
计算Chebyshev距离的类。
![](https://box.kancloud.cn/d25d1670a23c89299756992a0196606f_280x27.png)
要计算Chebyshev距离:
```
$a = [4, 6];
$b = [2, 5];
$chebyshev = new Chebyshev();
$chebyshev->distance($a, $b);
// return 2
```
*****
### 闵可夫斯基
用于计算Minkowski距离的类。
![](https://box.kancloud.cn/6d82fdf8a3232dd522ec13f19748958e_147x57.png)
要计算Minkowski距离:
```
$a = [4, 6];
$b = [2, 5];
$minkowski = new Minkowski();
$minkowski->distance($a, $b);
// return 2.080
```
您可以提供`lambda`参数:
```
$a = [6, 10, 3];
$b = [2, 5, 5];
$minkowski = new Minkowski($lambda = 5);
$minkowski->distance($a, $b);
// return 5.300
```
*****
### 自定义距离
要应用自己的距离使用距离界面功能。例
```
class CustomDistance implements Distance
{
/**
* @param array $a
* @param array $b
*
* @return float
*/
public function distance(array $a, array $b) : float
{
$distance = [];
$count = count($a);
for ($i = 0; $i < $count; ++$i) {
$distance[] = $a[$i] * $b[$i];
}
return min($distance);
}
}
```
- 基本介绍
- 关联规则学习
- 分类
- SVC
- k近邻算法
- NaiveBayes
- 回归
- 最小二乘法
- SVR
- 聚类
- k均值聚类算法
- DBSCAN聚类算法
- 公
- 准确性
- 混乱矩阵
- 分类报告
- 工作流程
- 神经网络
- 交叉验证
- 随机拆分
- 分层随机分裂
- 特征选择
- 方差阈值
- 特征选择
- 预处理
- 标准化
- 缺失值补全
- 特征提取(自然语言)
- 令牌计数矢量化器(文本处理)
- Tf-idf转换
- 数据集
- ArrayDataset
- CsvDataset
- FilesDataset
- SvmDataset
- MnistDataset
- 准备使用数据集
- Iris Dataset
- Wine Dataset
- Glass Dataset
- 模型管理
- 数学
- 距离
- 矩阵
- 组
- 统计