BAT 机器学习 1000 题 301-400(转)

BAT 机器学习 1000 题 301-400(转)

https://github.com/wizardforcel/data-science-notebook/blob/master/ml/BAT_%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0_1000_%E9%A2%98/301-400.md

301.在以下不同的场景中,使用的分析方法不正确的有 (B)

A.根据商家最近一年的经营及服务数据,用聚类算法判断出天猫商家在各自主营类目下所属的商家层级

B.根据商家近几年的成交数据,用聚类算法拟合出用户未来一个月可能的消费金额公式

C.用关联规则算法分析出购买了汽车坐垫的买家,是否适合推荐汽车脚垫

D.根据用户最近购买的商品信息,用决策树算法识别出淘宝买家可能是男还是女

302.什么是梯度爆炸?

【解析】误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。

在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。

网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。

303.梯度爆炸会引发什么问题?

【解析】在深度多层感知机网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,而最坏的结果是出现无法再更新的 NaN 权重值。

梯度爆炸导致学习过程不稳定。—《深度学习》,2016.

在循环神经网络中,梯度爆炸会导致网络不稳定,无法利用训练数据学习,最好的结果是网络无法学习长的输入序列数据。

304.如何确定是否出现梯度爆炸?

【解析】训练过程中出现梯度爆炸会伴随一些细微的信号,如:

模型无法从训练数据中获得更新(如低损失)。

模型不稳定,导致更新过程中的损失出现显著变化。

训练过程中,模型损失变成 NaN。

如果你发现这些问题,那么你需要仔细查看是否出现梯度爆炸问题。

以下是一些稍微明显一点的信号,有助于确认是否出现梯度爆炸问题。

训练过程中模型梯度快速变大。

训练过程中模型权重变成 NaN 值。

训练过程中,每个节点和层的误差梯度值持续超过 1.0。

305.如何修复梯度爆炸问题?

【解析】有很多方法可以解决梯度爆炸问题,本节列举了一些最佳实验方法。

  1. 重新设计网络模型

在深度神经网络中,梯度爆炸可以通过重新设计层数更少的网络来解决。

使用更小的批尺寸对网络训练也有好处。

在循环神经网络中,训练过程中在更少的先前时间步上进行更新(沿时间的截断反向传播,truncated Backpropagation through time)可以缓解梯度爆炸问题。

  1. 使用 ReLU 激活函数

在深度多层感知机神经网络中,梯度爆炸的发生可能是因为激活函数,如之前很流行的 Sigmoid 和 Tanh 函数。

使用 ReLU 激活函数可以减少梯度爆炸。采用 ReLU 激活函数是最适合隐藏层的新实践。

  1. 使用长短期记忆网络

在循环神经网络中,梯度爆炸的发生可能是因为某种网络的训练本身就存在不稳定性,如随时间的反向传播本质上将循环网络转换成深度多层感知机神经网络。

使用长短期记忆(LSTM)单元和相关的门类型神经元结构可以减少梯度爆炸问题。

采用 LSTM 单元是适合循环神经网络的序列预测的最新最好实践。

  1. 使用梯度截断(Gradient Clipping)

在非常深且批尺寸较大的多层感知机网络和输入序列较长的 LSTM 中,仍然有可能出现梯度爆炸。如果梯度爆炸仍然出现,你可以在训练过程中检查和限制梯度的大小。这就是梯度截断。

处理梯度爆炸有一个简单有效的解决方案:如果梯度超过阈值,就截断它们。

——《Neural Network Methods in Natural Language Processing》,2017.

具体来说,检查误差梯度的值是否超过阈值,如果超过,则截断梯度,将梯度设置为阈值。

梯度截断可以一定程度上缓解梯度爆炸问题(梯度截断,即在执行梯度下降步骤之前将梯度设置为阈值)。

——《深度学习》,2016.

在 Keras 深度学习库中,你可以在训练之前设置优化器上的 clipnorm 或 clipvalue 参数,来使用梯度截断。

默认值为 clipnorm=1.0 、clipvalue=0.5。详见:https://keras.io/optimizers/。

  1. 使用权重正则化(Weight Regularization)

如果梯度爆炸仍然存在,可以尝试另一种方法,即检查网络权重的大小,并惩罚产生较大权重值的损失函数。该过程被称为权重正则化,通常使用的是 L1 惩罚项(权重绝对值)或 L2 惩罚项(权重平方)。

对循环权重使用 L1 或 L2 惩罚项有助于缓解梯度爆炸。

——On the difficulty of training recurrent neural networks,2013.

在 Keras 深度学习库中,你可以通过在层上设置 kernel_regularizer 参数和使用 L1 或 L2 正则化项进行权重正则化。

306. LSTM神经网络输入输出究竟是怎样的?

@YJango,本题解析来源:https://www.zhihu.com/question/41949741

Recurrent Layers——介绍(https://zhuanlan.zhihu.com/p/24720659?refer=YJango)

  • 第一要明确的是神经网络所处理的单位全部都是:向量

下面就解释为什么你会看到训练数据会是矩阵和张量

  • 常规feedforward 输入和输出:矩阵

    输入矩阵形状:(n_samples, dim_input)

    输出矩阵形状:(n_samples, dim_output)

注:真正测试/训练的时候,网络的输入和输出就是向量而已。加入n_samples这个维度是为了可以实现一次训练多个样本,求出平均梯度来更新权重,这个叫做Mini-batch gradient descent。 如果n_samples等于1,那么这种更新方式叫做Stochastic Gradient Descent (SGD)。

Feedforward 的输入输出的本质都是单个向量。

  • 常规Recurrent (RNN/LSTM/GRU) 输入和输出:张量

    输入张量形状:(time_steps, n_samples, dim_input)

    输出张量形状:(time_steps, n_samples, dim_output)

注:同样是保留了Mini-batch gradient descent的训练方式,但不同之处在于多了time step这个维度。

Recurrent 的任意时刻的输入的本质还是单个向量,只不过是将不同时刻的向量按顺序输入网络。所以你可能更愿意理解为一串向量 a sequence of vectors,或者是矩阵。

python代码表示预测的话:

import numpy as np 
#当前所累积的hidden_state,若是最初的vector,则hidden_state全为0
hidden_state=np.zeros((n_samples, dim_input))
#print(inputs.shape):(time_steps, n_samples, dim_input) outputs = np.zeros((time_steps, n_samples, dim_output)) for i in range(time_steps): #输出当前时刻的output,同时更新当前已累积的hidden_state outputs[i], hidden_state = RNN.predict(inputs[i],hidden_state) #print(outputs.shape):(time_steps, n_samples, dim_output)

但需要注意的是,Recurrent nets的输出也可以是矩阵,而非三维张量,取决于你如何设计。

  1. 若想用一串序列去预测另一串序列,那么输入输出都是张量 (例如语音识别或机器翻译 一个中文句子翻译成英文句子(一个单词算作一个向量),机器翻译还是个特例,因为两个序列的长短可能不同,要用到seq2seq;

  2. 若想用一串序列去预测一个值,那么输入是张量,输出是矩阵 (例如,情感分析就是用一串单词组成的句子去预测说话人的心情)

**Feedforward 能做的是向量对向量的one-to-one mapping,

Recurrent 将其扩展到了序列对序列 sequence-to-sequence mapping.**

但单个向量也可以视为长度为1的序列。所以有下图几种类型:null

除了最左侧的one to one是feedforward 能做的,右侧都是Recurrent所扩展的

若还想知道更多

  • 可以将Recurrent的横向操作视为累积已发生的事情,并且LSTM的memory cell机制会选择记忆或者忘记所累积的信息来预测某个时刻的输出。

  • 以概率的视角理解的话:就是不断的conditioning on已发生的事情,以此不断缩小sample space

  • RNN的思想是: current output不仅仅取决于current input,还取决于previous state;可以理解成current output是由current input和previous hidden state两个输入计算而出的。并且每次计算后都会有信息残留于previous hidden state中供下一次计算

307.以下关于PMF(概率质量函数),PDF(概率密度函数),CDF(累积分布函数)描述错误的是?

A.PDF描述的是连续型随机变量在特定取值区间的概率

B.CDF是PDF在特定区间上的积分

C.PMF描述的是离散型随机变量在特定取值点的概率

D.有一个分布的CDF函数H(x),则H(a)等于P(X<=a)

正确答案:A

解析:

概率质量函数 (probability mass function,PMF)是离散随机变量在各特定取值上的概率。

概率密度函数(p robability density function,PDF )是对 连续随机变量 定义的,本身不是概率,只有对连续随机变量的取值进行积分后才是概率。

累积分布函数(cumulative distribution function,CDF) 能完整描述一个实数随机变量X的概率分布,是概率密度函数的积分。对于所有实数x 与pdf相对。

308.线性回归的基本假设有哪些?(ABDE)

A.随机误差项是一个期望值为0的随机变量;

B.对于解释变量的所有观测值,随机误差项有相同的方差;

C.随机误差项彼此相关;

D.解释变量是确定性变量不是随机变量,与随机误差项之间相互独立;

E.随机误差项服从正态分布

309.处理类别型特征时,事先不知道分类变量在测试集中的分布。要将 one-hot encoding(独热码)应用到类别型特征中。那么在训练集中将独热码应用到分类变量可能要面临的困难是什么?

A. 分类变量所有的类别没有全部出现在测试集中

B. 类别的频率分布在训练集和测试集是不同的

C. 训练集和测试集通常会有一样的分布

答案为:A、B ,如果类别在测试集中出现,但没有在训练集中出现,独热码将不能进行类别编码,这是主要困难。如果训练集和测试集的频率分布不相同,我们需要多加小心。

310.假定你在神经网络中的隐藏层中使用激活函数 X。在特定神经元给定任意输入,你会得到输出「-0.0001」。X 可能是以下哪一个激活函数?

A. ReLU

B. tanh

C. SIGMOID

D. 以上都不是

答案为:B,该激活函数可能是 tanh,因为该函数的取值范围是 (-1,1)。

311、下面哪些对「类型 1(Type-1)」和「类型 2(Type-2)」错误的描述是正确的?

A. 类型 1 通常称之为假正类,类型 2 通常称之为假负类。

B. 类型 2 通常称之为假正类,类型 1 通常称之为假负类。

C. 类型 1 错误通常在其是正确的情况下拒绝假设而出现。

答案为(A)和(C):在统计学假设测试中,I 类错误即错误地拒绝了正确的假设即假正类错误,II 类错误通常指错误地接受了错误的假设即假负类错误。

312、在下面的图像中,哪一个是多元共线(multi-collinear)特征?

null

A. 图 1 中的特征

B. 图 2 中的特征

C. 图 3 中的特征

D. 图 1、2 中的特征

E. 图 2、3 中的特征

F. 图 1、3 中的特征

答案为(D):在图 1 中,特征之间有高度正相关,图 2 中特征有高度负相关。所以这两个图的特征是多元共线特征。

313、鉴别了多元共线特征。那么下一步可能的操作是什么?

A. 移除两个共线变量

B. 不移除两个变量,而是移除一个

C. 移除相关变量可能会导致信息损失,可以使用带罚项的回归模型(如 ridge 或 lasso regression)。

答案为(B)和(C):因为移除两个变量会损失一切信息,所以我们只能移除一个特征,或者也可以使用正则化算法(如 L1 和 L2)。

314、给线性回归模型添加一个不重要的特征可能会造成?

A. 增加 R-square

B. 减少 R-square

答案为(A):在给特征空间添加了一个特征后,不论特征是重要还是不重要,R-square 通常会增加。

315、假定目标变量的类别非常不平衡,即主要类别占据了训练数据的 99%。现在你的模型在测试集上表现为 99% 的准确度。那么下面哪一项表述是正确的?

A. 准确度并不适合于衡量不平衡类别问题

B. 准确度适合于衡量不平衡类别问题

C. 精确率和召回率适合于衡量不平衡类别问题

D. 精确率和召回率不适合于衡量不平衡类别问题

答案为(A)和(C)

316、什么是偏差与方差?

泛化误差可以分解成偏差的平方加上方差加上噪声。偏差度量了学习算法的期望预测和真实结果的偏离程度,刻画了学习算法本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响,噪声表达了当前任务上任何学习算法所能达到的期望泛化误差下界,刻画了问题本身的难度。偏差和方差一般称为bias和variance,一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合。

偏差:null

方差:null

317、解决bias和Variance问题的方法是什么?

交叉验证

High bias解决方案:Boosting、复杂模型(非线性模型、增加神经网络中的层)、更多特征

High Variance解决方案:agging、简化模型、降维

318.采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?

用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。

319、xgboost怎么给特征评分?

在训练的过程中,通过Gini指数选择分离点的特征,一个特征被选中的次数越多,那么该特征评分越高。

# feature importance
print(model.feature_importances_)
# plot  pyplot.bar(range(len(model.feature_importances_)), model.feature_importances_)
pyplot.show() 
# plot feature importance plot_importance(model) pyplot.show() 

Python是最好的语言 ——鲁迅

向所有的程序员致敬

null

320、什么是OOB?随机森林中OOB是如何计算的,它有什么优缺点?

bagging方法中Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中,当然也就没有参加决策树的建立,把这1/3的数据称为袋外数据oob(out of bag),它可以用于取代测试集误差估计方法。

袋外数据(oob)误差的计算方法如下:

对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为O,用这O个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出O个数据相应的分类,因为这O条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为X,则袋外数据误差大小=X/O;这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。

321、假设张三的mp3里有1000首歌,现在希望设计一种随机算法来随机播放。与普通随机模式不同的是,张三希望每首歌被随机到的概率是与一首歌的豆瓣评分(0~10分)成正比的,如朴树的《平凡之路》评分为8.9分,逃跑计划的《夜空中最亮的星》评分为9.5分,则希望听《平凡之路》的概率与《夜空中最亮的星》的概率比为89:95。现在我们已知这1000首歌的豆瓣评分:

(1)请设计一种随机算法来满足张三的需求。

(2)写代码实现自己的算法。

#include <iostream>
#include <time.h> #include <stdlib.h> using namespace std; int findIdx(double songs[],int n,double rnd){ int left=0; int right=n-1; int mid; while(left<=right){ mid=(left+right)/2; if((songs[mid-1]<=rnd) && (songs[mid]>=rnd)) return mid; if(songs[mid]>rnd) right=mid-1; else left=mid+1; } // return mid; } int randomPlaySong(double sum_scores[],int n){ double mx=sum_scores[n-1]; double rnd= rand()*mx/(double)(RAND_MAX); return findIdx(sum_scores,n,rnd); } int main() { srand(time(0)); double scores[]={
                                                     5.5,6.5,4.5,8.5,9.5,7.5,3.5,5.0,8.0,2.0}; int n=sizeof(scores)/sizeof(scores[0]); double sum_scores[n]; sum_scores[0]=scores[0]; for(int i=1;i<n;i++) sum_scores[i]=sum_scores[i-1]+scores[i]; cout<<"Calculate the probability of each song: "<<endl; int totalScore=sum_scores[n-1]; for(int i=0;i<n;i++) cout<<scores[i]/totalScore<<" "; cout<<endl; int counts[n]; for(int i=0;i<n;i++) counts[i]=0; int i=0; int idx; int MAX_ITER=100000000; while(i<MAX_ITER){ idx=randomPlaySong(sum_scores,n); counts[idx]++; i++; } cout<<"After simulation, probability of each song: "<<endl; for(int i=0;i<n;i++) cout<<1.0*counts[i]/MAX_ITER<<" "; cout<<endl; return 0; }

322.对于logistic regession问题:prob(t|x)=1/(1+exp(w*x+b))且label y=0或1,请给出loss function和权重w的更新公式及推导。

Logistic regression 的loss function 是log loss, 公式表达为:

null

w的更新公式可以由最小化loss function得到,即:

null

其中大括号里面的部分,等价于逻辑回归模型的对数似然函数,所以也可以用极大似然函数方法求解,

根据梯度下降法,其更新公式为:

null

323.决策树的父节点和子节点的熵的大小关系是什么?

A. 决策树的父节点更大

B. 子节点的熵更大

C. 两者相等

D. 根据具体情况而定

正确答案:B。在特征选择时,应该给父节点信息增益最大的节点,而信息增益的计算为 IG(Y|X) = H(Y) - H(Y/X),H(Y/X) 为该特征节点的条件熵, H(Y/X) 越小,即该特征节点的属性对整体的信息表示越“单纯”,IG更大。 则该属性可以更好的分类。H(Y/X) 越大,属性越“紊乱”,IG越小,不适合作为分类属性。

324.欠拟合和过拟合的原因分别有哪些?如何避免?

欠拟合的原因:模型复杂度过低,不能很好的拟合所有的数据,训练误差大;

避免欠拟合:增加模型复杂度,如采用高阶模型(预测)或者引入更多特征(分类)等。

过拟合的原因:模型复杂度过高,训练数据过少,训练误差小,测试误差大;

避免过拟合:降低模型复杂度,如加上正则惩罚项,如L1,L2,增加训练数据等。

325.语言模型的参数估计经常使用MLE(最大似然估计)。面临的一个问题是没有出现的项概率为0,这样会导致语言模型的效果不好。为了解决这个问题,需要使用:

A. 平滑

B. 去噪

C. 随机插值

D. 增加白噪音

正确答案:A

326.下面关于Hive的说法正确的是( )

A. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文本映射为一张数据库表,并提供简单的SQL查询功能

B. Hive可以直接使用SQL语句进行相关操作

C. Hive能够在大规模数据集上实现低延迟快速的查询

D. Hivez在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive设定的目录下

正确答案:A

Hive使用类sql语句进行相关操作,称为HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive在几百MB 的数据集上执行查询一般有分钟级的时间延迟。

Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。

327.关于input split和block的描述正确的是( )

A. Mapreduce 的input split就是一个block

B. input split是一种记录的逻辑划分,而block是对输入数据的物理分割,两者之间有着本质的区别

C. 由于Block是本地的,DFSCline可以不用向DataNode建立连接,直接读磁盘上的文件

D. 为了发挥计算本地化性能,应该尽量使inputSplit大小与block大小相当

正确答案:B

  1. 一个split不会包含零点几或者几点几个Block,一定是包含大于等于1个整数个Block

  2. 一个split不会包含两个File的Block,不会跨越File边界

  3. split和Block的关系是一对多的关系

  4. maptasks的个数最终决定于splits的长度

328.推导朴素贝叶斯分类 P(c|d),文档 d(由若干 word 组成),求该文档属于类别 c 的概率, 并说明公式中哪些概率可以利用训练集计算得到。

根据贝叶斯公式P(c|d)=(P(c)P(d|c)/P(d))。

这里,分母P(d)不必计算,因为对于每个类都是相等的。 分子中,P(c)是每个类别的先验概率,可以从训练集直接统计,

P(d|c)根据独立性假设,可以写成如下 P(d|c)=¥P(wi|c)(¥符号表示对d中每个词i在c类下概率的连乘),

P(wi|c)也可以从训练集直接统计得到。 至此,对未知类别的d进行分类时,类别为c=argmaxP(c)¥P(wi|c)。

329.逻辑回归与多元回归分析有哪些不同?

A. 逻辑回归预测某事件发生的概率

B. 逻辑回归有较高的拟合效果

C. 逻辑回归回归系数的评估

D. 以上全选

答案:D

逻辑回归是用于分类问题,我们能计算出一个事件/样本的概率;一般来说,逻辑回归对测试数据有着较好的拟合效果;建立逻辑回归模型后,我们可以观察回归系数类标签(正类和负类)与独立变量的的关系。

330."过拟合是有监督学习的挑战,而不是无监督学习"以上说法是否正确:

A. 正确

B. 错误

答案:B

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

331题

哪些机器学习算法不需要做归一化处理?

解析:

概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。而像adaboost、svm、lr、KNN、KMeans之类的最优化问题就需要归一化。

我理解归一化和标准化主要是为了使计算更方便 比如两个变量的量纲不同 可能一个的数值远大于另一个那么他们同时作为变量的时候 可能会造成数值计算的问题,比如说求矩阵的逆可能很不精确 或者梯度下降法的收敛比较困难,还有如果需要计算欧式距离的话可能 量纲也需要调整 所以我估计lr 和 knn 保准话一下应该有好处。

至于其他的算法 我也觉得如果变量量纲差距很大的话 先标准化一下会有好处。

引用自@管博士一般我习惯说树形模型,这里说的概率模型可能是差不多的意思。引用自@寒小阳

332题

对于树形结构为什么不需要归一化?

解析:

数值缩放,不影响分裂点位置。因为第一步都是按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。对于线性模型,比如说LR,我有两个特征,一个是(0,1)的,一个是(0,10000)的,这样运用梯度下降时候,损失等高线是一个椭圆的形状,这样我想迭代到最优点,就需要很多次迭代,但是如果进行了归一化,那么等高线就是圆形的,那么SGD就会往原点迭代,需要的迭代次数较少。

另外,注意树模型是不能进行梯度下降的,因为树模型是阶跃的,阶跃点是不可导的,并且求导没意义,所以树模型(回归树)寻找最优点事通过寻找最优分裂点完成的。

333题

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

解析:

欧氏距离,最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:

null

欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求。例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性。因此,欧氏距离适用于向量各分量的度量标准统一的情况。

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值