大家好,又见面了,我是你们的朋友全栈君。
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因此将机器学习中常见的原理性问题记录下来,保持对各个机器学习算法原理和特点的熟练度。
本文总结了机器学习一些面试题和笔试题,以便自己学习,当然了也为了方便大家,题目是网上找的额,如果有侵权请联系小编,还有,不喜勿喷,谢谢!!!
后一篇笔记: Python机器学习笔记:不得不了解的机器学习知识点(2)
下面图片是借用网友做的,很好的总结了机器学习的算法分类:
答:相关性是协方差的标准化格式。协方差本身很难做比较。例如:如果我们计算工资(¥)和年龄(岁)的协方差,因为这两个变量有不同的度量,所以我们会得到不能做比较的不同的协方差。为了解决这个问题,我们计算相关性来得到一个介于-1和1之间的值,就可以忽略它们各自不同的度量。
答:为了得到更好的预测,只有在分类变量在本质上是有序的情况下才可以被当做连续型变量来处理。
答:这种推荐引擎的基本想法来源于协同过滤。协同过滤算法考虑用于推荐项目的“用户行为”。他们利用的是其他用户的购物行为和针对商品的交易历史记录,评分,选择和购物信息。针对商品的其他用户的行为和偏好用来推荐项目(商品)给新用户。在这中情况下,项目(商品)的特征是未知的。
答:我们不用曼哈顿距离,因为它只计算水平或者垂直距离,有维度的限制。另一方面,欧氏距离可以用于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧式距离是更可行的选择。例如:想象一下国际象棋棋盘,象或者车所有的移动的由曼哈顿距离计算的,因为他们是在各自的水平和垂直方向做的运动。
答:因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的,因此说朴素贝叶斯真的很“朴素”。
答:我们可以使用以下方法:
1,由于逻辑回归是用来预测概率的,我们可以用AUC-ROC曲线以及混淆矩阵来确定其性能。
2,此外,在逻辑回归中类似于校正R2 的指标是AIC。AIC是对模型系数数量惩罚模型的拟合度量。因此,我们更偏爱有最小的AIC的模型。
3,空偏差指的是只有截距项的模型预测的响应。数值越低,模型越好。残余偏差表示由添加自变量的模型预测的响应。数值越低,模型越好。
答:真阳性率 == 召回 他们有共同的公式(TP/(TP+FN))
答:从数学的角度来看,任何模型出现的误差可以分为三个部分。分别是:
偏差误差在量化平均水平之上,预测值跟实际值相差多远时有用。高偏差误差意味着我们的模型表现不太好,因为没有抓到重要的趋势。而另一方面,方差量化了在同一个观察上进行的预测是如何彼此不同的。高方差模型会过度拟合你的训练集,而在训练集以外的数据上表现很差。
答:你的面试官应该非常了解很难在有限的内存上处理高纬的数据,以下是你可以使用到的方法:
1,由于我们的RAM很小,首先要关闭机器上正在运行的其他程序,包括网页浏览器等,以确保大部分内存可以使用。
2,我们可以随机采样数据集。这意味着,我们可以创建一个较小的数据集,比如有1000个变量和30万行,然后做计算。
3,为了降低维度,我们可以吧数值变量和分类变量分开,同时删掉相关联的变量,对于数据变量,我们将使用相关性分析;对于分类变量,我们可以用卡方检验。
4,另外,我们还可以使用PAC,并挑选可以解释在数据集中有最大偏差的成分。
5,利用在线学习算法,如VowpalWabbit(在Python中可用)是一个不错的选择。
6,利用Stochastic GradientDescent(随机梯度下降法)建立线性模型也很有帮助。
7,我们也可以用我们对业务的理解来估计个预测变量对响应变量的影响的大小。但是,这是一个主观的方法,如果没有找到有用的预测变量可能会导致信息的显著丢失。
答:不能够这样说,这是一个“因果关系和相关性”的经典案例。全球平均温度和海盗数量之间有可能有相关性,但基于这些信息,我们不能说因为全球平均气温的上升而导致了海盗的消失。我们不能断定海盗的数量减少是引起气候变化的原因,因为可能有其他因素(潜伏或混杂因素)影响这一现象。
答:大约有32%的数据将不会受到缺失值的影响。因为,由于数据分布在中位数附近,让我们先假设这是一个正态分布。我们知道,在一个正态分布中,约有68%的数据位于跟平均值(或者众数,中位数)1个标准差范围内,那么剩下的约32%的数据是不受影响的。因此,约有32%的数据将不受缺失值的影响。
有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。(LR,SVM,BP,RF,GBDT)
无监督学习:对未标记的样本进行训练学习,比发现这些样本中的结构知识。(KMeans,DL)
答:正则化是针对过拟合而提出的,以为在求解模型最优的是一般优化最小的经验风险,现在在该经验风险上加上模型复杂度这一项(正则化项是模型参数向量的范数),并使用一个rate比率来权衡模型复杂度比以往经验风险的权重,如果模型复杂度越高,结构化的经验风险会越大,现在的目标就变为了结构经验风险的最优化,可以防止模型训练过度复杂,有效的降低过拟合的风险。
奥卡姆剃刀原理:能够很好的解释已知数据并且十分简单才是最好的模型。
答:如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,负责不是。 常用的线性分类器有:LR ,贝叶斯分类,单层感知器,线性回归
常见的非线性分类器:决策树,RF,GBDT,多层感知机
SVM两种都有(看线性核还是高斯核)
线性分类器速度快,编程方便,但是可能拟合效果不会很好
非线性分类器编程复杂,但是效果拟合能力强
卷积神经网络的特点是卷积核,CNN中使用了权共享,通过不断的上采用和卷积得到不同的特征表示,采样层又称为pooling层,基于局部相关性原理进行亚采样,在减少数据量的同时保持有用的信息。DBN是深度信念网络,每一层是一个RBM,整个网络可以视为RBM堆叠得到,通常使用无监督逐层训练,从第一层开始,每一层利用上一层的输入进行训练,等各层训练结束之后再利用BP算法对整个网络进行训练。
用EM算法求解的模型一般有GMM或者协同过滤,k-means其实也属于EM。EM算法一定会收敛,但是可能收敛到局部最优。由于求和的项数将随着隐变量的数目指数上升,会给梯度计算带来麻烦。
k-means算法是高斯混合聚类在混合成分方差相等,且每个样本仅指派一个混合成分时候的特例。注意k-means在运行之前需要进行归一化处理,不然可能会因为样本在某些维度上过大导致距离计算失效。k-means中每个样本所属的类就可以看成是一个隐变量,在E步中,我们固定每个类的中心,通过对每一个样本选择最近的类优化目标函数,在M步,重新更新每个类的中心点,该步骤可以通过对目标函数求导实现,最终可得新的类中心就是类中样本的均值。
k-means算法,聚类性能的度量一般分为两类,一类是聚类结果与某个参考模型比较(外部指标),另外是直接考察聚类结果(内部指标)。后者通常有DB指数和DI,DB指数是对每个类,找出类内平均距离/类间中心距离最大的类,然后计算上述值,并对所有的类求和,越小越好。类似k-means的算法仅在类中数据构成簇的情况下表现较好,密度聚类算法从样本密度的角度考察样本之间的可连接性,并基于可连接样本不断扩展聚类蔟得到最终结果。
DBSCAN(density-based spatial clustering of applications with noise)是一种著名的密度聚类算法,基于一组邻域参数进行刻画,包括邻域,核心对象(邻域内至少包含个对象),密度直达(j由i密度直达,表示j在i的邻域内,且i是一个核心对象),密度可达(j由i密度可达,存在样本序列使得每一对都密度直达),密度相连(xi,xj存在k,i,j均有k可达),先找出样本中所有的核心对象,然后以任一核心对象作为出发点,找出由其密度可达的样本生成聚类蔟,直到所有核心对象被访问过为止。
聚类算法中的距离度量一般用闽科夫斯基距离,在p取不同的值下对应不同的距离,例如p=1的时候对应曼哈顿距离,p=2的情况下对应欧式距离,p=inf的情况下变为切比雪夫距离,还有jaccard距离,幂距离(闽科夫斯基的更一般形式),余弦相似度,加权的距离,马氏距离(类似加权)作为距离度量需要满足非负性,同一性,对称性和直递性,闽科夫斯基在p>=1的时候满足读来那个性质,对于一些离散属性例如{飞机,火车,轮船}则不能直接在属性值上计算距离,这些称为无序属性,可以用VDM(Value Diffrence Metrix),属性u上两个离散值a,b之间的VDM距离定义为
其中表示在第i个簇中属性u上a的样本数,样本空间中不同属性的重要性不同的时候可以采用加权距离,一般如果认为所有属性重要性相同则要对特征进行归一化。一般来说距离需要的是相似性度量,距离越大,相似度越小,用于相似性度量的距离未必一定要满足距离度量的所有性质,例如直递性。比如人马和人,人马和马的距离较近,然后人和马的距离可能就很远。
贝叶斯公式
最小化分类错误的贝叶斯最优分类器等价于最大化后验概率。
基于贝叶斯公式来估计后验概率的主要困难在于,条件概率是所有属性上的联合概率,难以从有限的训练样本直接估计得到。朴素贝叶斯分类器采用了属性条件独立性假设,对于已知的类别,假设所有属性相互独立。这样,朴素贝叶斯分类则定义为
如果有足够多的独立同分布样本,那么可以根据每个类中的样本数量直接估计出来。在离散情况下先验概率可以利用样本数量估计或者离散情况下根据假设的概率密度函数进行最大似然估计。朴素贝叶斯可以用于同时包含连续变量和离散变量的情况。如果直接基于出现的次数进行估计,会出现一项为0而乘积为0的情况,所以一般会用一些平滑的方法,例如拉普拉斯修正,
TF指Term frequecy,代表词频,IDF代表inverse document frequency,叫做逆文档频率,这个算法可以用来提取文档的关键词,首先一般认为在文章中出现次数较多的词是关键词,词频就代表了这一项,然而有些词是停用词,例如的,是,有这种大量出现的词,首先需要进行过滤,比如过滤之后再统计词频出现了中国,蜜蜂,养殖且三个词的词频几乎一致,但是中国这个词出现在其他文章的概率比其他两个词要高不少,因此我们应该认为后两个词更能表现文章的主题,IDF就代表了这样的信息,计算该值需要一个语料库,如果一个词在语料库中出现的概率越小,那么该词的IDF应该越大,一般来说TF计算公式为(某个词在文章中出现次数/文章的总词数),这样消除长文章中词出现次数多的影响,IDF计算公式为log(语料库文章总数/(包含该词的文章数)+1)。将两者乘乘起来就得到了词的TF-IDF。传统的TF-IDF对词出现的位置没有进行考虑,可以针对不同位置赋予不同的权重进行修正,注意这些修正之所以是有效的,正是因为人观测过了大量的信息,因此建议了一个先验估计,人将这个先验估计融合到了算法里面,所以使算法更加的有效。
余弦距离是两个向量的距离的一种度量方式,其值在-1~1之间,如果为1表示两个向量同相,0表示两个向量正交,-1表示两个向量反向。使用TF-IDF和余弦距离可以寻找内容相似的文章,例如首先用TF-IDF找出两篇文章的关键词,然后每个文章分别取出k个关键词(10-20个),统计这些关键词的词频,生成两篇文章的词频向量,然后用余弦距离计算其相似度。
简单的说,机器学习就是让机器从数据中学习,进而得到一个更加符合现实规律的模型,
通过对模型的使用使得机器比以往表现的更好,这就是机器学习。
对上面这句话的理解:
数据:从现实生活抽象出来的一些事物或者规律的特征进行数字化得到。
学习:在数据的基础上让机器重复执行一套特定的步骤(学习算法)进行事物特征的萃取,
得到一个更加逼近于现实的描述(这个描述是一个模型它的本身可能就是一个函数)。我
们把大概能够描述现实的这个函数称作我们学到的模型。
更好:我们通过对模型的使用就能更好的解释世界,解决与模型相关的问题。
数据挖掘和机器学习的区别和联系,周志华有一篇很好的论述《机器学习和
数据挖掘》可以帮助大家理解。
数据挖掘受到很多学科领域的影响,其中数据库、机器学习、统计学无疑影响
最大。简言之,对数据挖掘而言,数据库提供数据管理技术,机器学习和统计学
提供数据分析技术。
由于统计学往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的
很多技术通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能
再进入数据挖掘领域。从这个意义上说,统计学主要是通过机器学习来对数据挖
掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。
从数据分析的角度来看,绝大多数数据挖掘技术都来自机器学习领域,但机器
学习研究往往并不把海量数据作为处理对象,因此,数据挖掘要对算法进行改造,
使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容,
即关联分析。
而模式识别和机器学习的关系是什么呢,传统的模式识别的方法一般分为两种:
统计方法和句法方法。句法分析一般是不可学习的,而统计分析则是发展了不少机
器学习的方法。也就是说,机器学习同样是给模式识别提供了数据分析技术。
至于,数据挖掘和模式识别,那么从其概念上来区分吧,数据挖掘重在发现知识,
模式识别重在认识事物。
机器学习的目的是建模隐藏的数据结构,然后做识别、预测、分类等。因此,机器
学习是方法,模式识别是目的。
总结一下吧。只要跟决策有关系的都能叫 AI(人工智能),所以说 PR(模式识别)、
DM(数据挖掘)、IR(信息检索) 属于 AI 的具 体应用应该没有问题。 研究的东西则
不太一样, ML(机器学习) 强调自我完善的过程。 Anyway,这些学科都是相通的。
如果一味的去提高训练数据的预测能力,所选模型的复杂度往往会很高,这种现象称为过拟合,所表现的就是模型训练时候的误差很小,但在测试的时候误差很大。
指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,
复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表
现就是训练集上效果好,在测试集上效果差。模型泛化能力弱。
过拟合的第一个原因,就是建模样本抽取错误,包括(但不限于)样本数量太少,
抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点,等等导致抽出
的样本数据不能有效足够代表业务逻辑或业务场景;
过拟合的第二个原因,就是样本里的噪音数据干扰过大,大到模型过分记住了噪音
特征,反而忽略了真实的输入输出间的关系;
过拟合的第三个原因,就是在决策树模型搭建中,如果我们对于决策树的生长没有
合理的限制和修剪的话,决策树的自由生长有可能每片叶子里只包含单纯的事件
数据(event)或非事件数据(no event),可以想象,这种决策树当然可以完
美匹配(拟合)训练数据,但是一旦应用到新的业务真实数据时,效果是一塌糊涂。
过拟合的第四个原因,就是建模时的“逻辑假设”到了模型应用时已经不能成立了。任
何预测模型都是在假设的基础上才可以搭建和应用的,常用的假设包括:假设历
史数据可以推测未来,假设业务环节没有发生显著变化,假设建模数据与后来的
应用数据是相似的,等等。如果上述假设违反了业务场景的话,根据这些假设搭
建的模型当然是无法有效应用的。
过拟合的第五个原因,就是建模时使用了太多的输入变量,这跟上面第二点(噪音数据)
有些类似,数据挖掘新人常常犯这个错误,自己不做分析判断,把所有的变量交给
软件或者机器去“撞大运”。须知,一个稳定优良的模型一定要遵循建模输入变量“
少而精”的原则的。
上面的原因都是现象,但是其本质只有一个,那就是“业务理解错误造成的”,无论是抽样,
还是噪音,还是决策树,神经网络等等,如果我们对于业务背景和业务知识非常了解,
非常透彻的话,一定是可以避免绝大多数过拟合现象产生的。因为在模型从确定需求,
到思路讨论,到搭建,到业务应用验证,各个环节都是可以用业务敏感来防止过拟合
于未然的。
当你使用较小的数据集进行机器学习时,容易产生过度拟合,因此使用较大的数据量能避免过度拟合现象。但是当你不得不使用小型数据集进行建模时候,可以使用被称为交叉验证的技术。在这种方法中数据集被分为两节,测试和训练数据集,测试数据集只测试模型,而在训练数据集中,数据点被用来建模。
在该技术中,一个模型通常是被给定有先验知识的数据集(训练数据集)进行训练,没有先验知识的数据集进行测试,交叉验证的思想是:在训练阶段,定义一个数据集用来测试模型。
1. dropout:训练神经网络模型时,如果训练样本较少,为了防止模型过拟合,
Dropout可以作为一种trikc供选择。
2. early stop结合cross validation使用。
3. 尽可能的扩大 training dataset,增加训练集的全面性和数量
感应机器学习涉及由实践进行学习的过程,能从一组可观测到的例子的尝试推导出普遍性规则
1,决策树
2,神经网络
3,概率网络
4,最邻近法
5,支持向量机
在机器学习中不同类型的算法技术是:
1,监督学习 2,非监督学习
3,半监督学习 4,转导推理(Transduction)
5, 学习推理(Learning to Learn)
1,建模
2,模型测试
3,模型应用
监督学习的标准方法是将一组示例数据的分成训练数据集和测试数据集
在类似于机器学习的各个信息科学相关领域中,一组数据被用来发现潜在的预测关系,
称为“训练数据集”。训练数据集是提供给学习者的案例,而试验数据集是用于测试由学习
者提出的假设关系的准确度。
机器学习的各种方法如下“
1.概念与分类学习(Concept Vs Classification Learning)。
2.符号与统计学习(Symbolic Vs Statistical Learning)。
3.归纳与分析学习(Inductive Vs Analytical Learning)。
人工智能 规则推理
1.求数据的集群
2. 求出数据的低维表达
3. 查找数据有趣的方向
4. 有趣的坐标和相关性
5.发现显著的观测值和数据集清理
1.分类 2.语音识别 3.回归 4.时间序列预测 5. 注释字符串
机器学习在基础数学领域独立于任何特定分类器或者学习算法,被称为算法独立的机器学习。
基于经验数据的特性而设计和开发的算法被称为机器学习。而人工智能不但包
括机器学习,还包括诸如知识表示,自然语言处理,规划,机器人技术等其它方法。
在机器学习中,分类器是指输入离散或连续特征值的向量,并输出单个离散值或者类型的系统。
朴素贝叶斯分类器将会比判别模型,譬如逻辑回归收敛得更快,因此你只需要
更少的训练数据。其主要缺点是它学习不了特征间的交互关系。
模式识别被应用在:
1计算机视觉 2.语言识别 3.统计 4.数据挖掘 5. 非正式检索 6. 生物信息学。
遗传编程的机器学习中两种常用的方法之一。该模型是基于测试,并在一系列的
结果当中,获取最佳选择。
归纳逻辑程序设计(ILP)是利用逻辑程序设计表达的背景知识和实例,它是机器学习的一个分支。
在不同的数学模型中,选择用于描述相同的数据集的模型的过程被称为模型选择。
模型选择被应用于统计,机器学习和数据挖掘的等相关领域。
在监督学习中,用于预测良好概率的两种方法是:
1,普拉特校准 2, 保序回归。
这些方法被设计为二元分类,而且有意义的。
当有足够的数据进行等渗回归时,这通常被用来防止过拟合问题。
决策树的启发式方法评价的是一系列不相交的集合的平均质量;然而规则学习的
启发式方法仅仅评价在候选规则覆盖下的实例集。
在机器学习,感知器是一种输入到几个可能的非二进制输出的监督分类算法。
贝叶斯逻辑程序由两部分组成。第一成分由一组贝叶斯条款组成,能捕捉特定
域的定性结构。第二组分是定量的,它能对域的量化信息进行编码。
贝叶斯网络是用来表示一组变量之间为概率关系的图像模型。
基于实例的学习算法也被称为懒惰学习算法,因为它们延缓诱导或泛化过程,直到分类完成。
1.结合二分类法
2. 修改二进制纳入多类学习法。
为了解决特定的计算程序,如分类器或专家知识等多种模式,进行战略性生产
和组合。这个过程被称为集成学习。
集成学习能提高模型的分类,预测,函数逼近等方面的精度。
当你构建一个更准确,相互独立的分类器时,使用集成学习。
集成方法的两种范式是:
1. 连续集成方法
2. 并行集成方法。
集成方法的一般原则是要结合定的学习算法多种预测模型,相对于单一模型,
其有更强的健壮性。套袋是一种能提高易变的预测或分类方案集成方法。爆发方
法被依次用来减少组合模型的偏差。爆发和装袋都可以通过降低方差减少误差。
学习算法的期望误差可以分解为偏差和方差。偏置项衡量由学习方法产生的平
均分类器与目标函数是否匹配。
增量学习方法是一种从新数据进行学习,并能应用于后续由现有的数据集生成的分类器的算法。
PCA(主成分分析),KPCA(基于内核主成分分析)和ICA(独立成分分析)是用
于降维的重要特征提取技术。
在机器学习和统计应用中,降维是指在计算时减少随机变量数目的处理过程,并
且可以分为特征选择和特征提取。
支持向量机是一种监督学习算法,适用于分类和回归分析。
关系评价技术的重要组成部分如下:
1.数据采集2. 地面实况采集3. 交叉验证技术4. 查询类型5. 评分标准6. 显着性检验。
连续监督学习问题的不同解决办法如下:
1.滑动窗口方法
2. 复发性推拉窗
3. 隐藏马尔科夫模型
4. 最大熵马尔科夫模型
5. 条件随机域
6. 图变换网络
在机器人技术和信息处理技术中,相继出现预测问题的是:
1.模仿学习 2. 结构预测 3. 基于模型的强化学习
统计学习技术允许根据一组观察到的数据进行学习功能和预测,这可以对无法观
察和未知的数据进行预测。这些技术提供的学习预测器对未来未知数据的预测提供性能保证。
可能近似正确模型 (PAC) 学习是一个已经被引入到分析学习算法和统计效率的学习框架。
1.序列预测 2. 序列生成 3. 序列识别 4. 顺序决定.
序列学习是一种以合乎逻辑的方式进行教学和学习的方法。
机器学习的两种技术是:
1.遗传编程
2.归纳学习
各大电商网站上已部署好的推荐引擎使用的是机器学习。
https://max.book118.com/html/2018/0702/5114220014001301.shtm
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156171.html原文链接:https://javaforall.cn