跳转至

机器学习笔试/面试题目一

本文讨论了机器学习笔试和面试题目,涵盖多个知识点及对应解析,还阐述了机器学习项目流程和距离计算方法等内容。关键要点包括:

模型拟合与预测:GARCH 模型适用于波动性分析和预测;Pearson 相关性系数为零,变量仍可能非线性相关。

算法性质与特点:PCA 是确定性算法;k-均值算法中尝试不同质心初始化、调整迭代次数、找到最佳集群数量可获全局最小。

特征选择与降维:特征选择可用卡方、信息增益等方法;SparseAutoencoder 多数情况升维,聚类分析不太适合高维数据降维。

学习类型区分:k-means 是无监督学习,SVM、最大熵、CRF 是监督学习。

模型评估与优化:log-loss 越低模型越好;解决多重共线性可去除变量、计算 VIF、使用正则化方法。

机器学习项目流程:包括抽象成数学问题、获取数据、特征预处理与选择、训练模型与调优、模型诊断、模型融合、上线运行。

距离计算方法:欧氏距离是常见距离表示法,曼哈顿距离是投影距离总和,依赖坐标系统转动。

笔试题:

1、下列时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测。

A AR模型

B MA模型

C ARMA模型

D GARCH模型

正确答案是:D

解析:

AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值。

2、以下说法中错误的是()

A SVM对噪声(如来自其他分部的噪声样本)具备鲁棒性

B 在 adaboost 算法中,所有被分错样本的权重更新比例不相同

C boosting和bagging都是组合多个分类器投票的方法,二者都


D 给定n个数据点,如果其中一半用于训练,一半用户测试,则训练误差和测试误差之间的差别会随着n的增加而减少的

正确答案是:C

解析:

A 软间隔分类器对噪声是有鲁棒性的。

C boosting是根据分类器正确率确定权重,bagging不是。

D 训练集变大会提高模型鲁棒性。

3、你正在使用带有 L1 正则化的 logistic 回归做二分类,其中 C 是正则化参数,w1 和 w2 是 x1 和 x2 的系数。当你把 C 值从 0 增加至非常大的值时,下面哪个选项是正确的?

Image

A 第一个 w2 成了 0,接着 w1 也成了 0

B 第一个 w1 成了 0,接着 w2 也成了 0

C w1 和 w2 同时成了 0

D 即使在 C 成为大值之后,w1 和 w2 都不能成 0

正确答案是:C

解析:

代码块

1 答案是C。L1正则化的函数如下图,所以w1和w2可以为 $ \emptyset $。同时w1和w2是对称的,不会导致一个为 $ \emptyset $另一个不为 $ \emptyset $的状态。


这里的 $ L_{1} $和 $ L_{2} $是指的向量范数的种类。

向量 $ x=(x_{1},x_{2},\cdots,x_{n}) $的 $ L_{1} $范数表示为

$$ |x|{1}=\sum| $$ }^{n}|x_{i

比如说 $ x = (3, -4) $,那么 $ ||x||_1 = 3 + 4 = 7 $

向量 $ x = (x_1, x_2, \cdots, x_n) $的 $ L_2 $范数表示为

$$ |x|{2}=\sqrt{\sum $$ }^{n}x_{i}^{2}

比如说 $ x = (3, -4) $,那么 $ ||x||_2 = \sqrt{3^2 + 4^2} = 5 $

这些范数在Lasso和Ridge中的具体体现,可以参考Ridge,Lasso目标函数的表达式

代码块

14、在 k-均值算法中,以下哪个选项可用于获得全局最小?

A 尝试为不同的质心(centroid)初始化运行算法

B 调整迭代的次数

C 找到集群的最佳数量

D 以上所有

正确答案是:D

解析:

代码块

1 答案(D):所有都可以用来调试以找到全局最小。

代码块

15、假设你使用 log-loss 函数作为评估标准。下面这些选项,哪些是对作为评估标准的 log-loss 的正确解释。

A 如果一个分类器对不正确的分类很自信,log-loss 会严重的批评它


B 对一个特别的观察而言,分类器为正确的类别分配非常小的概率,然后对 log-loss 的相应分布会非常大

C log-loss 越低,模型越好

D 以上都是

正确答案是:D

代码块

1 6、下面哪个选项中哪一项属于确定性算法?

A PCA

B K-Means

C 以上都不是

正确答案是:A,

解析:

代码块

答案为(A):确定性算法表明在不同运行中,算法输出并不会改变。如果我们再一次运行算法,PCA会得出相同的结果,而 k-means 不会

代码块

17、两个变量的 Pearson 相关性系数为零,但这两个变量的值同样可以相关。这句描述是正确还是错误?

A 正确

B 错误

正确答案是:A

解析:

代码块

1 答案为(A):Pearson相关系数只能衡量线性相关性,但无法衡量非线性关系。如 $ y=x^{2} $,x和y有很强的非线性关系。

代码块


18、下面哪个/些超参数的增加可能会造成随机森林数据过拟合?

A 树的数量

B 树的深度

C 学习速率

正确答案是:B

解析:

代码块

1 9、下列哪个不属于常用的文本分类的特征选择算法?

A 卡方检验值

B 互信息

C 信息增益

D 主成分分析

正确答案是:D

解析:

代码块

1 常采用特征选择方法。常见的六种特征选择方法:

代码块

1 10、机器学习中做特征选择时,可能用到的方法有?

A 卡方

B 信息增益

C 平均互信息


D 期望交叉熵

E 以上都有

正确答案是:E

A 主成分分析PCA

B 线性判别分析LDA

C 深度学习SparseAutoEncoder

D 矩阵奇异值分解SVD

正确答案是:C

代码块

2 PCA, LLE, Isomap

3 SVD和PCA类似,也可以看成一种降维方法

4 LDA: 线性判别分析,可用于降维

5 AutoEncoder: AutoEncoder的结构与神经网络的隐含层相同,由输入L1,输出L2组成,中间则是权重连接。Autoencoder通过L2得到输入的重构L3,最小化L3与L1的差别,进行训练得到权重。在这样的权重参数下,得到的L2可以尽可能的保存L1的信息。

6 Autoencoder的输出L2的维度由输出的神经元个数决定。当输出维度大于L1时,则需要在训练目标函数中加入sparse 惩罚项,避免L2直接复制L1(权重全为1)。所以称为sparseAutoencoder(Andrew Ng提出的)。

7 结论:SparseAutoencoder大多数情况下都是升维的,所以称之为特征降维的方法不准确。

代码块

1 2、下列哪些不特别适合用来对高维数据进行降维

A LASSO

B 主成分分析法

C 聚类分析

D 小波分析法

E 线性判别法

F 拉普拉斯特征映射

正确答案是:C

解析:


代码块asso通过参数缩减达到降维的目的;

2 pca就不用说了

3 线性鉴别法即LDA通过找到一个空间使得类内距离最小类间距离最大所以可以看做是降维;

4 小波分析有一些变换的操作降低其他干扰可以看做是降维

5 拉普拉斯请看这个http://f.dataguru.cn/thread-287243-1-1.html

代码块

13、下列属于无监督学习的是

A k-means

B SVM

C 最大熵

D CRF

正确答案是:A

解析:

A是聚类,属于无监督学习。BC是分类,属于监督学习。至于D是序列化标注,也是有监督学习。

代码块

1 4、下列哪个不属于CRF模型对于HMM和MEMM模型的优势()

A 特征灵活

B 速度快

C 可容纳较多上下文信息

D 全局最优

正确答案是:B

解析:

1 CRF 的优点:特征灵活,可以容纳较多的上下文信息,能够做到全局最优CRF 的缺点:速度慢

2 CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样)——与HMM比较

3 同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。——与MEMM比较


代码块

15、以下哪个是常见的时间序列算法模型

A RSI

B MACD

C ARMA

D KDJ

正确答案是:C

解析:

代码块

1 自回归滑动平均模型(ARMA)

2 其建模思想可概括为:逐渐增加模型的阶数,拟合较高阶模型,直到再增加模型的阶数而剩余残差方差不再显著减小为止。

3

4 其他三项都不是一个层次的。

5 A.相对强弱指数(RSI,Relative Strength Index)是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。

6 B.移动平均聚散指标(MACD,Moving Average Convergence Divergence),是根据均线的构造原理,对股票价格的收盘价进行平滑处理,求出算术平均值以后再进行计算,是一种趋向类指标。

7 D. 随机指标(KDJ)一般是根据统计学的原理,通过一个特定的周期(常为 9 日,9 周等)内出现过的最高价,最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成熟随机值 RSV,然后根据平滑移动平均线的方法来计算 K 值,D 值与 J 值,并绘成曲线图来研判股票走势。

代码块

1 6、下列不是SVM核函数的是

多项式核函数

logistic核函数

径向基核函数

Sigmoid核函数

正确答案是:B

解析:


1 本题题目及解析来源:http://blog.csdn.net/column/details/16442.html

3 SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数。

5 核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K(x i,x j)满足Mercer条件,它就对应某一变换空间的内积。对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到 Mercer定理和以下常用的核函数类型:

6 (1)线性核函数

7 K(x,x i)= x·x i

8 (2)多项式核

9 K(x,x i)= ((x·x i)+1)d

10 (3)径向基核(RBF)

11 K(x,x i)= exp(-//x - x i //2σ2)

12 Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 $ \sigma $ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。

7、解决隐马模型中预测问题的算法是

A 前向算法

B 后向算法

C Baum-Welch算法

D 维特比算法

正确答案是:D

解析:

代码块

1 本题题目及解析来源:http://blog.csdn.net/column/details/16442.html

2 A、B:前向、后向算法解决的是一个评估问题,即给定一个模型,求某特定观测序列的概率,用于评估该序列最匹配的模型。

3 C: Baum-Welch算法解决的是一个模型训练问题,即参数估计,是一种无监督的训练方法,主要通过EM迭代实现;

代码块

1 8、一般,k-NN最近邻方法在()的情况下效果较好

A 样本较多但典型性不好

B 样本较少但典型性好

C 样本呈团状分布


D 样本呈链状分布

正确答案是:B

解析:

1 K近邻算法主要依靠的是周围的点,因此如果样本过多,那肯定是区分不出来的。因此应当选择B

2 样本呈团状颇有迷惑性,这里应该指的是整个样本都是呈团状分布,这样kNN就发挥不出其求近邻的优势了,整体样本应该具有典型性好,样本较少,比较适宜。

代码块

A 作正态分布概率图

B 作盒形图

C 马氏距离

D 作散点图

正确答案是:C

代码块

1 马氏距离是基于卡方分布的,度量多元outlier离群点的统计方法。

2 有M个样本向量X1~Xm,协方差矩阵记为S,均值记为向量μ,则其中样本向量X到u的马氏距离表示为:

3 (协方差矩阵中每个元素是各个矢量元素之间的协方差 $ \mathrm{Cov}(X,Y) $, $ \mathrm{Cov}(X,Y) = E{[X-E(X)][Y-E(Y)]} $,其中E为数学期望)

4 而其中向量 $ X_i $与 $ X_j $之间的马氏距离定义为:

5 若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了:

6 也就是欧氏距离了。

7 若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。

8 (2)马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。

代码块

1 10、对数几率回归(logistics regression)和一般回归分析有什么区别?


A 对数几率回归是设计用来预测事件可能性的

B 对数几率回归可以用来度量模型拟合程度

C 对数几率回归可以用来估计回归系数

D 以上所有

正确答案是:D

解析:

代码块

1 A:对数几率回归其实是设计用来解决分类问题的

2 B:对数几率回归可以用来检验模型对数据的拟合度

3 C:虽然对数几率回归是用来解决分类问题的,但是模型建立好后,就可以根据独立的特征,估计相关的回归系数。就我认为,这只是估计回归系数,不能直接用来做回归模型。

代码块

1、bootstrap数据是什么意思?(提示:考“bootstrap”和“boosting”区别)

A 有放回地从总共M个特征中抽样m个特征

B 无放回地从总共M个特征中抽样m个特征

C 有放回地从总共N个样本中抽样n个样本

D 无放回地从总共N个样本中抽样n个样本

正确答案是:C

解析:

解析:

代码块

1 boostrap是提鞋自举的意思(武侠小说作者所说的左脚踩右脚腾空而起)。它的过程是对样本(而不是特征)进行有放回的抽样,抽样次数等同于样本总数。这个随机抽样过程决定了最终抽样出来的样本,去除重复之后,占据原有样本的1/e比例。

代码块

1 2、“过拟合”只在监督学习中出现,在非监督学习中,没有“过拟合”,这是()

A 对的

B 错的


正确答案是:B

解析:

代码块

1 我们可以评估无监督学习方法通过无监督学习的指标,如:我们可以评估聚类模型通过调整兰德系数(adjusted rand score)

代码块

1 3、对于k折交叉验证,以下对k的说法正确的是()

A k越大, 不一定越好, 选择大的k会加大评估时间

B 选择更大的 k,就会有更小的 bias (因为训练集更加接近总数据集)

C 在选择k时, 要最小化数据集之间的方差

D 以上所有

正确答案是:D

解析:

代码块

1 k越大,bias越小,训练时间越长.在训练时,也要考虑数据集间方差差别不大的原则.比如,对于二类分类问题,使用2-折交叉验证,如果测试集里的数据都是A类的,而训练集中数据都是B类的,显然,测试效果会很差.

代码块

1 4、回归模型中存在多重共线性,你如何解决这个问题?

2

3 1 去除这两个共线性变量

4 2 我们可以先去除一个共线性变量

5 3 计算VIF(方差膨胀因子),采取相应措施

6 4 为了避免损失信息,我们可以使用一些正则化方法,比如,岭回归和lasso回归

A1

B2

C2和3

D2,3和4


正确答案是:D

解析:

代码块

解决多重公线性,可以使用相关矩阵去去除相关性高于75%的变量(有主观成分)。也可以VIF,如果VIF值<=4说明相关性不是很高,VIF值>=10说明相关性较高。

1 解决多重公线性,可以使用相关矩阵去去除相关性高于75%的变量(有主观成分)。也可以VIF,如果VIF值<=4说明相关性不是很高,VIF值>=10说明相关性较高。

2 我们也可以用岭回归和lasso回归的带有惩罚正则项的方法,我们也可以在一些变量上加随机噪声,使得变量之间变得不同,但是这个方法要小心使用,可能会影响预测效果。

代码块

1 5、模型的高bias是什么意思,我们如何降低它?

A 在特征空间中减少特征

B 在特征空间中增加特征

C 增加数据点

D B和C

E 以上所有

正确答案是:B

解析:

代码块

bias太高说明模型太简单了,数据维数不够,无法准确预测数据,所以,升维吧!

代码块

16、训练决策树模型,属性节点的分裂,具有最大信息增益的图是下图的哪一个()


Image

A Outlook

B Humidity

C Windy

D Temperature

正确答案是:A

代码块

17、对于信息增益,决策树分裂节点,下面说法正确的是()

21 纯度高的节点需要更多的信息去区分

32 信息增益可以用”1比特-熵”获得

43 如果选择一个属性具有许多归类值,那么这个信息增益是有偏差的

A1

B2

C2和3

D 所有以上

正确答案是:C

代码块

1 8、下图是同一个SVM模型,但是使用了不同的径向基核函数的 $ \gamma $。函数为 $ f(x) $,其中 $ x $ 是参数。每次参数的函数值 $ f(x) $ 是函数 $ f(x) $ 的函数项, $ f(x) $ 是函数 $ f(x) $ 的插值项。下面是一个在 $ x=0 $ 处的函数: $ f(x) = x^2 + 2x + 1 $。


Image

$$ A g1>g2>g3 $$

B g1 = g2 = g3

C g1 < g2 < g3

D g1 >= g2 >= g3

E. g1 <= g2 <= g3

正确答案是:C

解析:

代码块

1 所谓径向基函数(Radial Basis Function 简称 RBF),就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心点xc之间欧氏距离的单调函数,可记作 $ k(||x-xc||) $,其作用往往是局部的,即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数,形式为 $ k(||x-xc||)=\exp{-||x-xc||^2/(2\sigma^2)} $ 其中xc为核函数中心, $ \sigma $为函数的宽度参数,控制了函数的径向作用范围。由radial basis: $ \exp(-gamma|u-v|^2) $ 可知, $ \gamma $ Small,模型越简单,平滑度越好,分类边界越不容易过拟合,

代码块

19、假设我们要解决一个二类分类问题,我们已经建立好了模型,输出是0或1,初始时设阈值为0.5,超过0.5概率估计,就判别为1,否则就判别为0;如果我们现在用另一个大于0.5的阈值,那么现在关于模型说法,正确的是:

21 模型分类的召回率会降低或不变

3 2 模型分类的召回率会升高

4 3 模型分类准确率会升高或不变

54 模型分类准确率会降低

A1


C 1 和 3

D 2和4

E 以上都不是

正确答案是:A

解析:

代码块

1 精确率,准确率和召回率是广泛用于信息检索和统计学分类领域的度量值,用来评价结果的质量。下图可以帮助理解和记忆它们之间的关系,其中精确率(precision)和准确率(accuracy)都是关于预测效果的描述。召回率是关于预测样本的描述。

2 精确率表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是P = TP / (TP + FP)。

4 准确率表示的是预测的正负样本有多少是真实的正和负,预测正确的数量占全部预测数量的比例,也就是 $ A = (TP + TN) / (TP + FP + TN + FN) = (TP + TN) / 全部样本 $。

5

6 召回率表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN),也就是R = TP / (TP + FN)。

7 精确率和召回率二者计算方法其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。

8 提高分界阈值大于0.5,则预测为正的样本数要降低,相当于把图中圆圈变小,按下图则可计算

10 召回率的分子变小分母不变,所以召回率会变小或不变;

11 精确率的分子分母同步变化,所以精确率的变化不能确定;

12 准确率的分子为圆内绿色加圆外右侧矩形面积所围样本,两者之和变化不能确定;分母为矩形所含全部样本不变化,所以准确率的变化不能确定;

13 综上,所以选A。

代码块

1 10、“点击率问题”是这样一个预测问题,99%的人是不会点击的,而1%的人是会点击进去的,所以这是一个非常不平衡的数据集.假设,现在我们已经建了一个模型来分类,而且有了99%的预测准确率,我们可以以下的结论是

A 模型预测准确率已经很高了,我们不需要做什么了

B 模型预测准确率不高,我们需要做点什么改进模型

C 无法下结论

D 以上都不对

正确答案是:C

解析:


代码块

如寒老师所说,类别不均衡的情况下,不要用准确率做分类评估指标,因为全判断为不会点,准确率也是99%,但是这个分类器一点用都没有。

面试题:

1、机器学习中,为何要经常对数据做归一化

首先明白归一化的目的是什么

归一化的目的是为了避免数值较大的特征A变化掩盖了数值较小的特征B变化.最终希望让特征AB都能对结果有影响.

$$ x_{1}=size\ (\underline{0-2000} feet^{2})\ \leftarrow $$

$$ \begin{aligned}\rightarrow x_{1}&=\frac{size(feet^{2})}{2000}\\rightarrow x_{2}&=\frac{number of bedrooms}{5}\end{aligned} $$

Image
Image

代码块

1 一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化。

2

3 为什么要归一化呢?很多同学并未搞清楚,维基百科给出的解释:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。

4

5 下面再简单扩展解释下这两点。

6

71 归一化为什么能提高梯度下降法求解最优解的速度?

8

9 如下两图所示(来源:斯坦福机器学习视频)

10

11

12 蓝色的圈圈代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是[1,5],像这种有的数据那么大,有的数据那么小,两类之间的幅度相差这么


大,其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;

14 而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。

16 因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

182 归一化有可能提高精度

19 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

213 归一化的类型

221)线性归一化

24 这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。

2 请简要说说一个完整机器学习项目的流程

解析:

代码块

1 1 抽象成数学问题

2 明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。

3 这里的抽象成数学问题,指的我们明确我们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,如果划归为其中的某类问题。

52 获取数据

6 数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。

7 数据要有代表性,否则必然会过拟合。

8 而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。

9 而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。

11 3 特征预处理与特征选择

12 良好的数据要能够提取出良好的特征才能真正发挥效力。

13 特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。

14 筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技


术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。

4、在k-means或kNN,我们常用欧氏距离来计算最近的邻居之间的距离,有时也用曼哈顿距离,请对比下这两种距离的差别

(1)欧氏距离,最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 $ x = (x_1, \ldots, x_n) $ 和 $ y = (y_1, \ldots, y_n) $ 之间的距离为:

(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:

$$ d_{12}=\sqrt{(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}} $$

(2)三维空间两点 $ a(x_{1},y_{1},z_{1}) $与 $ b(x_{2},y_{2},z_{2}) $间的欧氏距离:

$$ d_{12}=\sqrt{(x_{1}-x_{2})^{2}+(y_{1}-y_{2})^{2}+(z_{1}-z_{2})^{2}} $$

(2)曼哈顿距离,我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。例如在平面上,坐标(x1,y1)的点P1与坐标(x2,y2)的点P2的曼哈顿距离为:

,要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。

通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,同时,曼哈顿距离也称为城市街区距离(City Block distance)。

(1)二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离

$$ d_{12}=|x_{1}-x_{2}|+|y_{1}-y_{2}| $$

切比雪夫距离,若二个向量或二个点p、and q,其座标分别为

及,则两者之间的切比雪夫距离定义如下:

$$ D_{\mathrm{C h e b y s h e v}}(p,q):=\max_{i}(\left|p_{i}-q_{i}\right|). $$

闵可夫斯基距离(Minkowski Distance),闵氏距离不是一种距离,而是一组距离的定义。