我愿称之为史上最全的深度学习面经总结(附答案详解)向量高维贝叶斯方差算法

本文很全面的整理了深度学习方向的知识点以及一些面经书和GitHub项目的面经,有上百道题以及答案详解~>>

之前整理的材料主要是19年10月之前的,这次是整理的几乎能找到的所有的19年之后的面经,扩大了范围包括了cv,推荐,语音等面经中的知识点,同时增加了那三本面经书的内容一些github上一些比较火的项目,大部分问题是重复的,去重之后其实大概也就百道题的样子.

1.连续数据的距离计算:

闵可夫斯基距离家族:

当p=1时,就是曼哈顿距离;

当p=2时,就是欧氏距离;

当p→∞时,就是切比雪夫距离。

余弦距离:

当向量的模长归一化为1时候,余弦距离和欧式距离可以相互转换。余弦距离不是

2.离散数据的距离计算:

杰卡尔德距离:A,B集合的交集/A,B集合的并集

汉明距离:表示两个等长字符串在对应位置上不同字符的数目

关于距离计算,遇到了我在单独研究,因为也是非常大的一块内容。上述的距离计算公式都是基于样本-样本之间的简单距离计算,当引入了核方法进行映射之后还会有一些相应的更复杂的距离计算方法,除此之外,迁移学习中的样本群体,即不同数据集之间的分布的距离的计算也是一大块儿内容,面试的时候应该不会问的太复杂,这里就暂时不深入展开了。

问:你了解哪些常见的聚类算法?对聚类了解多少?

简单回答,基于划分,基于密度,基于网格,层次聚类,除此之外聚类和其它领域也有很多的结合形成的交叉领域比如半监督聚类,深度聚类,集成聚类等等;

问:kmeans的原理是什么?

kmeans是一种基于划分的聚类,中心思想很简单,类内距离尽量小,类间距离尽量大,算法过程为:

1.初始化k个质心,作为初始的k个簇的中心点,k为人工设定的超参数;

2.所有样本点n分别计算和k个质心的距离,这里的距离也是人工定义的可以是不同的距离计算方法,每个样本点和k个质心中最近的质心划分为1类簇;

3.重新计算质心,方法是针对簇进行聚合计算,kmeans中使用简单平均的方法进行聚合计算,也可以使用中位数等方式进行计算;

4.重复上述过程直到达到预定的迭代次数或质心不再发生明显变化

其中,K是聚类数量,p是样本,是第k个聚类的中心点。SSE越小,说明样本聚合程度越高。

问:kmeans的初始点怎么选择?不同的初始点选择策略有哪些缺陷?怎么解决?

1.随机初始化:随机选择k个样本点作为初始质心,缺陷在于如果选择到的质心距离很接近落在同一个簇内,则迭代的结果可能会比较差,因为最终迭代出来的质心点会落在簇间,

最理想的状态是k个质心恰好对应k个簇,由于随机初始化的随机性,可以考虑多次进行随机初始化,选择聚合结果最优的一次(这里涉及到聚类的评估方法);

2.随机分取初始化:即将所有样本点随机赋予1个簇的编号,则所有样本点最后会有k个编号,然后进行组平均,即对于同一个簇的样本进行平均得到初始化质心。相对于随机初始化,初始的质心会更鲁棒一些,但是仍旧存在随机初始化的缺陷,仅仅是缓解;

3.kmeans++

kmeans++是一种启发式的初始化策略:

①从数据集中随机(均匀分布)选取一个样本点作为第一个初始聚类中心;

②接着计算每个样本与当前已有聚类中心之间的最短距离,用表示;然后计算每个样本点被选为下一个聚类中心的概率,最后选择最大概率值所对应的样本点作为下一个簇中心;

其实就是选择最短距离最大的样本点作为下一个初始化聚类中心点

③重复第②步,直到选择出个聚类中心;

kmeans++是一种启发式的初始化策略,并没有严格的理论证明,是sklearn中kmeans的默认的初始化策略;

4.其它聚类算法初始化策略:

使用其它聚类算法计算得到k个质心点作为kmeans的初始质心,我挺懵的,这样好像有亿点麻烦。。。

4.kmeans聚的是特征还是样本?特征的距离如何计算?

5.为什么在高维空间中,欧式距离的度量逐渐失效?

《WhenIs“NearestNeighbor”Meaningful》

维度d趋于无穷大时,高维空间中任意两个样本点的最大距离和最小距离趋于相等,距离度量失效;

问.怎么确定聚类数量K(聚类如果不清楚有多少类,有什么方法?)

和评估分类或回归的方式一样,选择某个metric或某些metrics下最好的k,例如sse(其实就是kmeans的损失函数了),轮廓系数,兰德指数,互信息等;

如果聚类本身是为了有监督任务服务的(例如聚类产生features用于下游任务),则可以直接根据下游任务的metrics进行评估更好;

问:k-means如何调优

1.初始化策略调参;

2.k的大小调参,手工方法,手肘法为代表;

3.数据归一化和异常样本的处理;

问:介绍一下手肘法(gapstatistic的计算很麻烦,这里就不写了)?

手肘法其实没什么特别的,纵轴是聚类效果的评估指标,根据具体的问题而定,如果聚类是作为单独的任务存在则使用sse或轮廓系数这类无监督的metric作为纵坐标,然后找到metric最好并且k最小的结果对应的k为最终的选择;

手肘法其实也很容易做成自动化,我们计算metric变化的斜率就可以了,具体方法就是计算k=n和k=n+1之间的斜率,当斜率n和斜率n-1,斜率n+1和斜率n,斜率n+2和斜率n+1的差值均小于固定阈值时即可停止,代码实现上的思路和早停基本是一致的;

问:k-means的缺点,怎么解决?

1.对异常样本很敏感,簇心会因为异常样本被拉得很远

注意,这里的异常样本指的仅仅是在某些特征维度上取值特别大或者特别小的样本,是异常检测中定义的异常样本的一个子集,因为欧式距离的计算不考虑不同变量之间的联合分布,默认所有特征是相互独立的,所以kmeans中会对结果产生影响的异常样本特指简单的异常样本,即某些特征维度存在异常值的样本,这类异常样本通过简单的统计就可以得到;

解决方法即做好预处理,将异常样本剔除或修正;

2.k值需要事先指定,有时候难以确定;

解决方法即针对k调参;

3.只能拟合球形簇,对于流形簇等不规则的簇或是存在簇重叠问题的复杂情况等,效果较差

解决方法,换算法;

4.无法处理离散特征,缺失特征,

5.无法保证全局最优

解决方法:矮子里面挑高个,跑多次,取不同的局部最优里最优的

问:dbscan和optics是怎么解决这些缺点的?

dbscan和optics是基于密度的聚类

1.kmeans对异常样本很敏感,簇心会因为异常样本被拉得很远

dbscan和optics定义了密度的计算方式,不涉及到任何的平均这种鲁棒性较差的计算方式,对异常样本不敏感,还能检测异常样本呢;

dbscan和optics不需要指定簇的数量;算法迭代过程中自然而然产生最优的k个聚类簇;

基于密度的聚类可以拟合任意形状的簇,这也归功于密度的计算方式,基于密度的聚类本身不对聚类簇的形状有任何的假设;

4.无法处理离散特征,缺失特征:缺失特征要插补,离散特征可以换离散特征的距离度量方法,基于密度的聚类算法可以灵活搭配各种不同的distance的度量方式;

5.无法保证全局最优:未解决

问:讲一下dbscan和optics的大致思路?

dbscan:单个超球体,病毒式扩散;

optics:两个嵌套的超球体一大一小,先映射为直方图,然后从直方图上生成聚类结果

问:kmeans是否一定可以收敛,为什么?kmeans为什么无法保证全局最优?

收敛性证明就算了吧。。.这也太超纲了。.。

kmeans的损失函数是一个非凸函数,所以无法保证全局最优;

kmeans的损失函数,需要记忆一下

这里μk是第k个簇的质心,

为了方便描述,假设x是2维的,取k=1,则我们令:

uk是待求解变量,画出:z=

的函数图像:

可以看到,优化目标z存在(1,1),(-1,1)两个最优解,所以kmeans的损失函数不是一个凸函数而是一个非凸函数,难以保证收敛到全局最优。

问:为什么在一些场景中要使用余弦相似度而不是欧氏距离?

如果A,B两个向量e的模场均为1,则欧式距离和余弦距离之间满足:

问:余弦距离是否是一个严格定义的距离(一个度量标准要满足什么要求才能算是距离)

该题主要考察面试者对距离的定义的理解,以及简单的反证和推导。首先看距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。

余弦距离满足正定性和对称性,但是不满足三角不等式,因此它并不是严格定义的距离。

问:K-means中我想聚成100类结果发现只能聚成98类,为什么?

迭代的过程中出现空簇,原因在于k太大,实际的簇数量小于k;

初始化策略不会导致空簇的问题,因为即使最简单的随机初始化也是从原始的样本点里选择部分样本作为质心,如果初始质心中存在异常样本,则最终聚类的结果,这个异常点会自成一个簇而不会出现空簇的问题;

空簇对应的中心点和任意一个样本点的距离都不是该样本点距离其它质心点的距离的最小值。

问:kmeans,GMM,EM之间有什么关系?

kmeans是基于划分的聚类算法,GMM是基于模型的聚类算法,EM是估计GMM的参数使用的优化算法;

1.kmeans可以看作是GMM的一种特例,于协方差为单位矩阵,故kmeans聚类的形状是球形的,而GMM是椭球型的;

2.kmeans使用hardEM求解,GMM使用softEM求解(kmeans感觉还是从直观上的计算过程上理解比较舒服,通过hardem也是一个解释就是了);

关于上述的原因,在下一个问题里说明

问:高斯混合模型的核心思想是什么?(GMM和多元高斯有什么区别?,多元高斯函数的期望是什么)

理解GMM之前,先回归基本概念:

1.一元高斯分布:

现在我们将高斯分布扩展到多维空间,简单说就是有x1,x2,x3。。。xn等多个维度。当我们假设多维空间的每一个空间之间完全独立,则独立的n元高斯分布为:

可以看到,是非常类似的,根号2pi部分取n次方,方差用协方差矩阵代替,代数的乘法转化为矩阵乘法;多元高斯分布的期望就是观测样本的(样本向量-所有特征向量的均值构成的均值向量)进行和自身的向量乘计算;

协方差矩阵:

协方差矩阵是一个nXn的矩阵,n代表了多元的大小,对于协方差矩阵中的每一个元素,计算公式如下:

具体展开来看就是:

现实世界中,不同的特征(多个特征=多元)很难完全独立,因此我们也会使用非独立的多元高斯分布,公式写作:

高斯混合模型:

其中:

而GMM的极大似然函数较为复杂:

由于存在(观测数据属于第个子模型的概率)这个隐变量,无法直接求导得到参数的估计结果,因此通过EM算法来进行迭代式的求解;

问:GMM是如何迭代计算的?为什么kmeans,GMM,EM满足上面描述的方式?(EM算法数学原理)

首先需要了解em算法,em算法和梯度下降法一样,都可以用来优化极大似然函数,当极大似然函数中存在隐变量时,EM算法是一种常用的优化算法;

EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以EM算法被称为EM算法(Expectation-MaximizationAlgorithm)

jensen不等式:

如果f是凸函数,X是随机变量,那么:。当且仅当X是常量时,该式取等号。其中,E(X)表示X的数学期望。Jensen不等式应用于凹函数时,不等号方向反向。当且仅当x是常量时,该不等式取等号。

如上图,实线f表示凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。X的期望值就是a和b的中值,从图中可以看到成立。

优点:基于集成异常检测的思路,鲁棒性强;不涉及距离和密度计算,计算速度很快;每棵树独立生成可并行或分布式;

iforest的算法流程:

(1)底层是极限随机树,随机选择一个特征,随机选择部分样本(bagging),每次分裂随机选择一个分裂节点,最大深度是log2(bagging的样本数量)

(2)整合所有极限随机树的结果,使用scorefunction打分:

h(x)为样本x在每棵树的高度(其实就是x在这棵树上分裂了几次),对样本x在所有树上的分裂次数进行平均得到分子项目,c(Ψ)为给定样本数Ψ时路径长度的平均值,用来对样本x的路径长度h(x)进行标准化处理。

(3)scorefunction的计算结果在0~1之间,

如果异常得分接近1,那么一定是异常点;

如果异常得分远小于0.5,那么一定不是异常点;

如果异常得分所有点的得分都在0.5左右,那么样本中很可能不存在异常点。

详细的可见:

追问:为什么高度为log2(bagging的样本数量)?为什么每次随机仅选择一小部分的样本(默认是min(bagging的样本数量,256))?

直观上来看,m个特征,我们用m个极限随机树分别进行完全分裂,分裂到叶子节点的样本特征值完全相同,得到n个样本在m个极限随机树上的分裂次数,即得到n个样本在m个特征上的分裂次数,然后取平均就可以满足我们的预测目标了。本质上通过分裂次数代替聚类或密度的计算,分裂越少,则样本在这个特征上的异常程度越高,然后综合考虑样本在多个特征上的异常程度;

但是这么做的问题有:

2.本质上做的是基于集成学习的无监督学习,鲁棒性强,但是单纯用1个极限随机树分裂1个特征,随机因素影响太大,重新训练的结果差异可能会很大。解决的方法是每个特征用多个极限随机树来拟合,则计算复杂度进一步扩大为O(mnk),k为树的数量;

3.无监督的核心缺陷,无法自动特征选择,所有特征的重要性一视同仁,则如果存在大量无用特征或者噪声特征,会严重影响计算结果;

iforest针对上述问题做了改进:

1.针对问题1,树的最大深度限制为log2(bagging的样本数量),之所以对树的高度做限制,是因为我们只关心路径长度较短的点,它们更可能是异常点,而并不关心那些路径很长的正常点。之所以使用log2的底数,是为了和scorefunction的公式对应起来,为了计算scorefuction上的便利性:

2-log2(2)=1/2,2log2(2)=2(指数和log计算公式)

总结一下,log2(bagging的样本数量)和服务于scorefunction的设计的,计算上提供了便利性,;

2.仍旧是针对问题1,树每次使用的样本默认为min(采样的样本数,256),这么做主要避免了太大数量的样本上分裂次数过多计算复杂度高的问题,然后通过集成提高整个模型的鲁棒性。(精度和效率之间的一种折衷,根据论文和实际的应用结果,效果还ok);

3.针对问题2,仍旧是精度和效率上的折衷,k个极限随机树通过采样,最终一共使用k个特征,每一轮随机选择一个特征生成一棵树;

4.针对问题1和2的不精确分裂的问题(实质上也没有办法做精确分裂),tree分裂上的不精确在实践中可以被认为提高了算法的鲁棒性,类似于lgb直方图;

5.针对问题3,特征的随机采样某些情况下缓解了无效特征的问题(大部分特征有效少部分特征无效的情况),但是本质上没有解决(大部分特征无效,少部分特征有效的情况),最终的特征工程还是要基于业务经验来进行;

追问:iforest的scorefunction,为什么这么设计?

一步一步拆解来看:

1.指数函数形式的设计

我们希望iforest输出的结果能够在一个有限的范围内,例如像auc的取值范围为0.5~1一般,有界的评估指标便于比较(高度必然为正数,因此分子部分可以保证为负数,2**-x必然是大于0小于1的);

2.分子的设计:

h(x)部分,并不是简单的直接计算样本在tree上的分裂次数,观察上述公式,其中e表示的才是样本在tree上的分裂次数,后面额外多了一项c(T.size)的修正项,T.size表示的样本所在叶子节点中所有样本的数量。

c(n)表示样本数量为n的情况下,生成随机二叉树的期望高度:

3.分母部分的设计:

分母部分使用的仍旧是上述的C(n)的公式,只不过分母部分的n指的是每一棵极限随机树使用的全部样本数量,即bagging得到的样本数量,默认是256个样本。这里的分母也是作为修正项存在的。

追问:为什么这里要引入分子和分母部分的修正项?

1.分子部分的修正项:

主要目的在于将样本落在的叶子节点中的样本数量大小这一因素考虑进来,假设某个样本A落入了叶子节点1,叶子节点1中有5个样本;某个样本B落入了叶子节点2,叶子节点2中有5000个样本,并且假设A和B的树的深度e都是3,则如果我们不引入修正项c(T.size),计算结果是完全相同的。但实际上很明显,A的异常程度是要高于B的,因为B所在的叶子节点的样本数量很大,其实是可以继续分裂很多次,然而考虑到性能的问题,我们对树的高度做了限制,因此会引发这样的误差。

修正项的引入可以很好的解决这个问题,C(n)代表了给定n个叶子节点,所能生成的随机二叉树的平均高度,显然,叶子节点数量越多,则平均高度越大,则scorefunction的计算结果越小,从而巧妙地缓解了上述存在的问题;

2.分母部分的修正项:

主要目的在于将每个tree所训练的bagging的样本数大小这一因素考虑进来,假设bagging的样本大小为64和256,则根据iforest的设计,max_depth分别为5和8,显然,bagging的样本数量越大则树可以生成的树的深度大概率越深,因此在分母部分引入给定bagging样本数量下,所能生成的随机二叉树的平均高度,显然,bagging样本数越多,平均高度越大,则scorefunction计算的结果越大。

问:KNN算法是否存在损失函数?

无,knn是一种懒惰学习(lazylearning)的算法,对应的有eagerlearning:

lazylearning:

eagerlearning:

1.从收集到的数据中学习,需要模型训练;

2.受到测试数据后直接完成分类或回归

不均衡学习:问:数据不均衡如何解决,抽样得到的分类准确率如何转换为原准确率?

将采样后的预测的类别按照采样比例进行相应的增大或减少,例如对类别A下采样了50%,则预测结果中类别A的预测数量为m,令m=m/0.5=2m,然后计算分类准确率;

这种处理方式是不准确的,合理的方式应该是直接对原始数据进行评估指标的计算;

问:解决难样本问题的方法(hardsampleproblem),ohem与focalloss的相同点和不同点

问:如果把不平衡的训练集(正负样本1:3)通过降采样平衡后,那么对于平衡后的AUC值和预测概率值有怎样的变化?

roc曲线对类别数量的变化不敏感,因此auc的计算结果整体不会发生明显变化;

通过下采样平衡后,变相增大了正样本数量,分类决策边界远离正样本,预测概率整体变大;

问:class_weight的思想是什么?

class_weight对应的简单加权法是代价敏感学习最简单的一种方法,思想就是小类样本加权,使其在loss中比重变大;

问:不均衡学习原理?

目前主流的不均衡学习主要是关于分类问题的不均衡。所谓不均衡分类,指的是样本不同类别的数量差异越来越大的情况下,模型越来越偏向于预测大类样本的现象,因此,模型分类性能越来越差。

单纯从样本不均衡的角度出发(不考虑分布变化,小样本学习,分类问题的困难程度等其它问题),不均衡的类别对模型造成影响的原因:

1.目标函数优化的方法,使用梯度下降法优化目标函数的模型对于不均衡问题更敏感;而tree模型纯粹基于贪心策略进行分裂的方法则对此并不敏感;

2.目标函数的使用,hingeloss和交叉熵对于不均衡的敏感度不同;

不均衡是一个现象,是分类模型效果差的潜在原因之一;

问:了解哪些不均衡学习的处理方法?讲讲smote算法的原理?为什么平常很少使用smote这类基于样本生成的方法?问:过采样(上采样)和生成样本的区别?

上采样不一定是生成样本,例如简单的repeat式的上采样,通过repeat不涉及样本生成的过程,但生成样本一定是一种上采样;

模型的lossfunction,metrics和optimizers无监督metrics:问:如何评价聚类结果的好坏(知道哪些聚类的评估指标)?轮廓系数有没有用过

sse很简单

轮廓系数:

轮廓系数是为每个样本定义的,由两个分数组成:

对于单个样本而言,轮廓系数的计算公式如下:

对于模型评估而言,取所有样本的轮廓系数的均值作为模型聚类效果的评估指标;

其它评估方式可见:

有监督metrics:问:准确率的局限性是什么?

1.不同分类阈值下准确率会发生变化,评估起来比较麻烦;

2.对样本不均衡问题特别敏感,例如当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率;

公式:分类正确的样本数/总样本数

问:ROC曲线如何绘制,ROC和PRC的异同点;准确率(accuracy)、精确率(precision)、召回率(recall),各自的定义,各自的缺陷;PR曲线的绘制;使用PR曲线判断模型好坏;ROC曲线的横坐标、纵坐标意义;

TP,FP,TN,FN,都是英文缩写很好记忆

准确率=(tp+tn)/total

精确率=tp/(tp+fp)分子为正确预测的正样本的样本数量,分母为预测为正样本的样本数量

召回率=tp/(tp+fn)分子为正确预测的正样本的样本数量,分母为所有正样本的样本数量

误杀率=fp/(fp+tn)分子为错误预测的正样本数量,分母为所有负样本的样本数量

极度不均衡情况下,模型将所有样本预测为大类则准确率就能很高了;

分类阈值接近0,则模型将所有样本预测为正样本则召回率接近100%;

分类阈值接近1,则模型将极少样本预测为正样本则精确率接近100%(例如就预测一个样本为正样本并且这个样本恰好为正样本则精确率为1);

召回和精确率都受到分类阈值的影响较大;

pr曲线,以召回率为横坐标,精确率为纵坐标

如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可认为后者的性能优于前者,例如上面的A和B优于学习器C;

一般使用平衡点来评估无法直接比较的情况例如上图的A和B模型,平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。而F1=2*召回率*精确率/(召回率+精确率),同样,F1值越大,我们可以认为该学习器的性能较好。

roc曲线,和pr曲线一样,纵坐标是精确率,但是横坐标是误杀率。

其中第一行ab均为原数据的图,左边为ROC曲线,右边为P-R曲线。第二行cd为负样本增大10倍后俩个曲线的图。可以看出,ROC曲线基本没有变化,但P-R曲线确剧烈震荡。因此,在面对正负样本数量非常不均衡的场景下,ROC曲线会是一个更加稳定能反映模型好坏的指标,

问:ROC曲线和PR曲线的区别,适用场景,各自优缺点;

roc曲线对于正负样本比例不敏感,因为roc曲线的纵坐标是精确率=预测正确的正样本/预测为正样本的样本数量,横坐标是误杀率=预测错误的负样本/所有负样本数量,改变了标签中类别的分布之后,预测正确的正样本/预测为正样本的样本数量会同时发生同向的变化,预测错误的负样本/所有负样本数量也会发生同向的变化,即roc的横纵坐标的计算结果是独立的,分别是针对正样本和针对负样本独立计算的,两个坐标的计算不会发生互相影响,因此类别比例发生变化的情况下,roc也不会产生剧烈的变动;

pr曲线的纵坐标是精确率=预测正确的正样本/预测为正样本的样本数量,横坐标是召回率=预测正确的正样本/所有正样本的数量,即pr的横纵坐标的计算结果是存在相互关系的,他们都是针对正样本进行计算,两个坐标的计算发生互相影响,从而使得pr曲线对类别的变化很敏感;

问:AUC的意义,AUC的计算公式?

auc是roc的曲线下面积,但是auc的实际意义仅仅从roc的曲线下面积不好理解,这里可以先了解一下auc的计算公式有哪些:

直接根据roc曲线进行计算,计算roc曲线下面积,缺点是计算误差较大,我们需要确定非常大量的分类阈值才能毕竟auc的真实计算结果;

3.在2的基础上改进,先对预测的结果进行rank,预测概率越大则rank值越大,

这里的公式写的比较简略,详细解释一下:

首先,假设某个样本S的rank值为k,则意味着有k-1个样本的预测概率小于样本S,即对于这k-1个样本中的每一个样本s来说,他们分别和样本S构成的samplepair(S,s)都是S的rank大而s的rank小的,则我们可以先得到:

然后,对于M个正样本而言,两个正样本构成的pair是没有意义的,我们在2里的计算不涉及到正样本之间的匹配,因此这部分需要减掉,则M个正样本两两配对的组合数量为

最后,对于rank值而言,例如样本S的rank值为10,则实际上是有9个样本的预测值小于样本S的,但是我们前面的求和部分实际上将样本S和自身的samplepair(S,S)都考虑进去了,所以这里减掉和自身匹配的情况,一共是M种;

最终,我们就得到了:

因此,auc的实际意义是任意选定一个正负样本对,正样本的预测结果大于负样本的预测结果的概率;

预测值取rank然后套上面公式就行了;

问:IV值,woe值是什么?

woe是一种用于类别特征编码的编码方法,公式为:

简单来说,就是某个类别的好坏比/全量数据的好坏比;

iv是对woe值的修正,主要是考虑类别中包含的样本数量大小不同从而导致相同woe计算结果下,统计特征不明显的问题,不同样本数量下计算出来的woe是具有不同意义的,简单来说,woe计算结果相同的情况下,类别中包含的样本数量越多,woe的显著性越明显;

woe因为存在上述的问题,所以从整个特征的层面来看不能直接求和,但iv可以

roc曲线的对角线,表示一个随机预测模型的性能,如果模型的roc曲线在对角线下方,则该模型比随机模型还差,高于对角线则表示模型比随机模型好,模型是有意义的;

具体的,可以从auc的物理意义上去理解,roc的对角线下方面积为0.5,意味着对角线的随机模型的auc为0.5,结合auc的物理意义:任意选择一个正负样本对,正样本的预测结果高于负样本的预测结果的概率,则说明对角线代表的随机模型对于正负样本对的相对大小的判定是随机的;

问:多分类auc怎么算?

多分类问题中,在二分类指标的基础上需要进行一些处理才能适配多分类的评估,整体有两种计算策略:

基于macro的策略:ovr的划分方式,分别计算每个类别的metrics然后再进行平均

基于micro的策略:所有类放在一起算metrics;

micro的评估方式,当类别非常不均衡时,micro的计算结果会被样本数量多的类别主导,此时需要使用macro

问:F1,F2.。。.Fn值是什么,Fbeta怎么计算?

fbeta是f_metrics系列的最终定义式,公式如下:(f系列的可以统一用这个公式来记忆)

当beta=1时,Fbeta=F1,当beta=n时,Fbeta=fn;

beta用于定义召回率和精确率的相对重要性,越大,则recall越重要,当beta趋于无穷大时,Fbeta=recall,越小,则precision越重要,当beta**2趋于0时,Fbeta=precision

ks曲线的横坐标是分类的阈值,纵坐标代表了精确率或者误杀率,一个分类阈值对应的一个精确率和一个误杀率,而ks曲线就是用每个分类阈值下的精确率-误杀率,ks值则是指ks曲线上的最大值;

psi:

psi就是对称的kl散度的平均,kl散度的公式如下:

用来衡量两个离散随机变量的分布的差异

lossfunction问:知道哪些常见的损失函数?

点预测问题:

0-1损失函数:

非凸,直接优化困难

logloss(交叉熵)(多分类),

最常用,相对hingeloss对噪声敏感(无意义的hardsample);

Cross-entropy(二元交叉熵)(logloss在二分类的特例):

当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。

exponentialloss

对噪声敏感,adaboost中使用过,其它情况很少接触

hingeloss,

对噪声健壮性强;

mse,mae,rmse,mape,smape:

mse,mae,rmse对标签y取值特别大的样本鲁棒性都较差,mae和rmse相对有所缓解,

mape:范围[0,+∞),MAPE为0%表示完美模型,MAPE大于100%则表示劣质模型。

可以看到,MAPE就是mae多了个分母。

注意点:当真实值有数据等于0时,存在分母0除问题,需要做平滑

mape对标签y取值特别大的样本的鲁棒性较强,因为通过除以真实标签(即分母项),对单个异常样本的loss进行了放缩;缺陷在于对标签y取值接近0的样本鲁棒性很差,一点点的偏差就会使得单个样本的mape的loss的计算结果很大,

smape:smape是针对mape的对异常小样本的鲁棒性很差的问题进行了修正,可以较好的避免mape因为真实值yi小而计算结果太大的问题;同时对异常大的样本的鲁棒性也较好;

mape和smape都可以作为lossfunction进行优化;

区间预测问题:

问:mse对于异常样本的鲁棒性差的问题怎么解决?

1、如果异常样本无意义,则对异常样本进行平滑等方式处理成正常样本,如果异常样本很稀少,直接删除也可以;

2.如果异常样本有意义,例如双十一销量,需要模型把这些有意义的异常考虑进来,则从模型侧考虑使用表达能力更强的模型或复合模型或分群建模等;

3.lossfunction层面选择更鲁棒的损失函数例如smape;

问:二分类为什么用二元交叉熵?为什么不用mse?

原因:sigmoid对模型输出进行压缩到(0,1)区间的条件下,根据二元交叉熵得到的梯度更新公式中不包含sigmoid的求导项,根据mse的得到的梯度更新公式则会包含。

使用mse推导出的梯度更新量:

因为sigmoid的性质,导致在取大部分值时会很小(如下图的两端,几乎接近于平坦),这样会使得很小,导致参数和更新非常慢。

根据二元交叉熵推导出来的梯度更新公式:

不包含sigmoid的求导项,没这个问题

问:mse,sigmoid+交叉熵梯度推导

mse

没有sigmoid或其它的转换,则公式中求导项为1,

二元交叉熵(带sigmoid,求导过程中用到sigmoid的导数公式,否则到第二张图的第二步就可以停止了):

信息量用来度量一个事件的不确定性程度,不确定性越高则信息量越大,一般通过事件发生的概率来定义不确定性,信息量则是基于概率密度函数的log运算,用以下式子定义:

这里的p(x)可以是离散数据的概率,也可以是连续数据的概率密度函数

信息熵,衡量的是一个事件集合的不确定性程度,就是事件集合中所有事件的不确定性的期望,公式定义如下:

相对熵(kl散度):kl散度,从概统角度出发,表示用于两个概率分布的差异的非对称衡量,kl散度也可以从信息理论的角度出发,从这个角度出发的kl散度我们也可以称之为相对熵,实际上描述的是两个概率分布的信息熵的差值:

对于离散和连续的随机变量分布都可以使用kl散度进行定义

kl散度和余弦距离一样,不满足距离的严格定义;

kl散度的性质:

js散度公式如下:

js散度的范围是[0,1],相同则是0,相反为1。相较于KL,对相似度的判别更准确;同时,js散度满足对称性JS(P||Q)=JS(Q||P)

交叉熵:

可见,交叉熵就是真值分布的信息熵与KL散度的和,而真值的熵是确定的,与模型的参数θ无关,所以梯度下降求导时,优化交叉熵和优化kl散度(相对熵)是一样的;

联合熵:

联合熵实际上衡量的是两个事件集合,经过组合之后形成的新的大的事件集合的信息熵;

条件熵:

事件集合Y的条件熵=联合熵-事件集合X的信息熵,用来衡量在事件集合X已知的基础上,事件集合Y的不确定性的减少程度;

互信息:

互信息=事件集合X的信息熵-事件集合X在已知事件集合Y下的条件熵=事件集Y的信息熵-事件集合Y在已知事件集合X下的条件熵;

问:怎么衡量两个分布的差异?KL散度和交叉熵损失有什么不同?关系是啥?

kl散度,js散度,以及迁移学习里的许多更advanced的评估方式例如mmd,交叉熵=真实的标签分布的信息熵+相对熵(kl散度)

问:距离的定义?哪些度量方法不符合距离的定义

距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。

1:正定性,d(x,y)>=0,仅当x=y则不等式等号成立,说白了就是如果样本A和样本B的距离为0,则样本A和样本B可以看作同一个样本;

2:对称性:d(x,y)=d(y,x),即样本A到样本B的距离等于样本B到样本A的距离;

3:d(x,y)

余弦距离不满足三角不等式,kl散度不满足对称性,因此二者都不是严格意义上的距离的定义;

问:交叉熵的设计思想是什么?

优化交叉熵等价于优化kl散度,

这里的是真实分布,它的信息熵是一个定值,对于模型来说是一个不可优化的常数项,你可以把它替换成包括1、在内的任何常数,对优化都没有影响。在这种问题中优化交叉熵和优化KL散度是等价的。P.S.在多分类的问题中,这两者是完全一致的,因为对于onehot标签来说:所以交叉熵实际上就是希望模型的预测结果能够尽量和标签的分布保持一致;

通过引入超参数sigma,huberloss可以灵活动态的调整模型使用的lossfunction是mse还是mae,

这确保了损失函数不会受到异常值的严重影响,同时不会完全忽略它们的影响。

最优化方法:问:推导梯度下降公式

这里问的是梯度下降的一般性的表达式:

不知道这种问题有什么好问的。。

问:知道哪些常见的一、二阶优化方法?

牛顿法的收敛速度,是不是一定比梯度下降快(举反例),Hessian矩阵的求逆与计算量问题(正则化,Hessian矩阵的近似),牛顿下降的几个phase,KKT的仔细描述。拟牛顿法和牛顿法的关系,拟牛顿法解决了牛顿法哪个问题?推导下牛顿法。牛顿法在什么时候只需要迭代一次就能求解,什么时候牛顿法不能适用

问:极大似然估计,结构,经验风险最小化的关系,交叉熵和最大似然损失函数的区别,讲一下极大似然估计,极大似然估计和最大后验估计的区别是什么?最小二乘与极大似然函数的关系?先验,后验,最大似然估计,最大后验估计?问:讲一下jaccob矩阵和Hessian矩阵?Hessian矩阵是对称矩阵吗?问:机器学习中的优化问题,哪些是凸优化问题,哪些是非凸优化问题?请各举一个例子。

凸函数的严格定义为,函数_L_(·)是凸函数当且仅当对定义域中的任意两点_x_,_y_和任意实数_λ_∈[0,1]总有

该不等式的一个直观解释是,凸函数曲面上任意两点连接而成的线段,其上的任意一点都不会处于该函数曲面的下方,如下图所示。(注意,这只是一种判定方法,实际上还有许多其它的判定方法,因为比较超纲所以不多介绍了)

凸优化问题的例子包括支持向量机、线性回归等线性模型,非凸优化问题的例子包括低秩模型(如矩阵分解)、深度神经网络模型等,凸函数和优化算法没有直接的关系,对于模型而言其目标函数是凸函数,不一定使用梯度下降法进行求解,例如GMM的目标函数(带隐变量的极大似然函数)使用EM算法进行迭代求解。

自动化机器学习:

问:模型和超参数有哪些自动化调优方法?它们各自有什么特点?

问:简述贝叶斯优化中用高斯过程回归计算目标函数后验分布的方法。高斯过程回归可以用于种类型或者层次型模型配置参数的优化吗?

问:贝叶斯优化中的获得函数是什么?起到什么作用?请介绍常用的获得函数。

模型应用和特征工程部分:问:什么是偏差和方差?

偏差指的是由所有采样得到的大小为_m_的训练数据集训练出的所有模型的输出的平均值和真实模型输出之间的差异。偏差通常是由于我们对学习算法做了错误的假设所导致的,比如真实模型是某个二次函数,但我们假设模型是一次函数。由偏差带来的误差通常在训练误差上就能体现出来

方差指的是由所有采样得到的大小为_m_的训练数据集训练出的所有模型的输出的方差。方差通常是由于模型的复杂度相对于训练样本数_m_过高导致的,比如一共有100个训练样本,而我们假设模型是阶数不大于200的多项式函数。由方差带来的误差通常体现在测试误差相对于训练误差的增量上。

问:如何从减小方差和偏差的角度解释Boosting和Bagging的原理?

数据清洗:异常值怎么判断?箱型图:上界怎么定义?极端异常值怎么判断?

怎么填补用缺失值填补,缺失值怎么处理?

1.为什么使用中位数对缺失值进行填充,这样做的好处是什么

5.one-hot编码的原理及意义

6.特征维度很高时你是怎样做的操作

标准化的适用场景、不适应场景?

所有模型都要求对数据进行标准化么?

如果onehot等操作之后维度过高你会怎么做;

为什么K折交叉验证能防止过拟合?

问:一般怎么做交叉验证.

缺失值怎么处理?验证集怎么划分?哪些指标说明你的模型调优了?调节过模型的哪些参数

异常值的影响,如何消除

为什么要离散化,离散化的参数如何确定

训练集和测试集分布不一致的问题是怎么发现的,怎么诊断定位,除了可视化还有没有其他直观的指标

1.类别特征编码方式有哪些?如何解决targetencoding的targetleakage?countencoding有个缺点:测试集和训练集分布不同,导致特征频率不一样。怎么解决?

为什么需要计算特征重要性,计算特征重要性的方法有哪些

连续特征怎么分箱,如何判断分箱的结果是好是坏

特征平滑方法有哪些

什么样的ID经过Embedding后可能有效,如何筛选有效的ID。有些ID数量级很大,怎么处理

1.哪些算法需要对特征先进行归一化,这类算法有什么特点,不进行归一化的缺点是

5.####常见的筛选特征的方法有哪些?

6.####数据怎么清洗,缺失值怎么填充

7.####出现Nan的原因

8.####特征筛选,怎么找出相似性高的特征并去掉

11.####类别型数据你是如何处理的?比如游戏品类,地域,设备

卡方检验的原理?

问:如何判断一个模型是处于高方差还是高偏差?高方差如何调节模型,高偏差如何调节模型?过拟合产生的原因有哪些?如何防止过拟合?

特征选择的方法有哪些?

过滤式,包裹式,嵌入式特征选择,过滤式特征选择主要采用独立于模型的评估指标来评估特征的好坏,计算快,能够方便迅速的对特征进行粗筛,缺陷在于评估指标的计算与模型解耦,很多时候精度都不好,

问:那请你解释一下什么是偏差和方差和泛化误差,过拟合和欠拟合,怎么衡量一般?

问题1在模型评估过程中,过拟合和欠拟合具体是指什么现象?

一般我们解释模型的泛化性能会用到偏差-方差分解,模型在训练阶段的预测和训练标签的偏离程度为偏差,刻画模型的拟合能力,模型在样本数相同的不同训练数据集下偏差的期望为方差,刻画数据变化对模型噪声的影响,泛化误差=偏差+方差+噪声,噪声是模型所能达到的期望泛化误差的下界,刻画了模型在学习当前问题本身的难度。

当然,这只是一种用于解释模型泛化误差的很理论的说法,我们在应用的过程中更常提到的是过拟合和欠拟合,过拟合意味着模型在训练集上的预测误差和模型在验证集上的预测误差存在较大差异,欠拟合则意味着模型在训练集上的预测误差本身就比较大,在验证集上的预测误差往往也会比较大。而所谓泛化误差,我们也称之为泛化能力等,在实际应用的时候一般指的是模型对未知数据的预测能力,这个能力是根据预测的误差决定的。

问:在模型评估过程中,过拟合和欠拟合具体是指什么现象?

过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是

模型在训练集上的表现很好,但在测试集和新数据上的表现较差。欠拟合指的是

模型在训练和预测时表现都不好的情况。

决绝nfa解决方法:

数据,特征,模型

问:有没有遇到过模型在训练集上预测误差大,在测试集上预测误差小的情况?为什么会发生这种情况?

答:有,模型恰好在验证数据上的泛化性能好,例如二分类问题中,测试集数据恰好是和分界超平面距离很远的样本或者是回归问题中,验证数据在模型的拟合曲面上;

问:为什么会发生过拟合和欠拟合,怎么解决模型的过拟合和欠拟合的问题?

这是一道很好回答又很难回答的面试题,之所以很好回答是因为有很多直观的思路可以解释过拟合和欠拟合,很难回答是因为很多的答案都无法回到过拟合和欠拟合的本质上导致了不同场景下不能自洽的问题;

在实际应用的过程中,实际上没有什么绝对的准则:

过拟合:

样本层面:大部分情况下增加样本可以缓解过拟合,少部分情况下减少样本可以缓解过拟合;

特征层面:大部分情况下减少特征可以缓解过拟合,少部分情况下增加特征可以缓解过拟合;

模型层面:约束模型的复杂程度;不同模型有不同的约束方式,lr有l1,l2或l1+l2,树模型有增大行列采样比例,限制树深,学习率放缩,早停等等,nn有dropout,bn等等,这是模型本身的处理,除此之外对模型进行集成也可在一定程度上缓解过拟合;

欠拟合:

同上,倒过来即可

问:为什么增加或减少样本会影响过拟合问题为什么对特征的增减会影响过拟合问题为什么约束模型的复杂程度会缓解过拟合问题

首先,上述所提到的三种方法都是一种经验性的解决方法,并不一定奏效,存在前提条件.

过拟合分为两种过拟合的情况:

1在当前数据集上的过拟合;

2在未来未知的数据集上的过拟合

在当前的数据集上的过拟合的评估涉及到train和valid数据集,一般我们判定过拟合是否发生,就是计算model在train数据,即X_train和y_train上的metrics和在valid数据,即X_valid和y_valid上的metrics的差异从而衡量过拟合的程度;

潜在的全量数据(这样的数据一般是不可获取的,这里面有两个原因,

这里我们假设潜在的全量数据为X,潜在的真实标签为y

需要明确三点:

回到问题上,现在假设我们在train和test上的预测的metrics差异很大,即出现了当前数据集上的过拟合问题,则我们需要这么分析(注意,下面是对当前过拟合问题的分析):

1当X-->y的映射关系不存在的时候,无论使用什么方法,我们都无法解决当前过拟合问题或未来过拟合问题,,模型的预测结果是无意义的,例如使用淘宝商品的价格预测华盛顿的温度,这种情况一般在使用train和valid数据进行模型构建和验证的阶段就会发现;

2.当X-->y的映射关系存在且稳定,则

在当前的train和test的数据集上出现过拟合的原因在于train和test数据集不相似,或者说train数据集相对于test数据集是有偏的,这个时候增加数据有可能缓解模型的过拟合问题,例如我们引入的数据恰好和test相似甚至和test完全一样的样本,则此时在test上的metrics评估结果会大大改善,例如对图像做翻转可以作为cv中的一种基本的数据增强的方式主要原因在于test数据集中也会存在翻转的图像;

但是如果引入的数据完全和test不同,则对于模型在test上的评估是没有帮助甚至可能起到负效果,这种情况下引入的样本我们常常称之为噪声样本,例如通过上采样的方式对结构化数据进行样本生成很容易产生这种噪声样本,;

这个时候增加或者减少特征也是可能缓解过拟合问题的,

问:为何模型总是难以拟合真实情况问:为什么你认为增加样本、减少特征,约束模型复杂度,能够解决过拟合问题?

答:因为我主要接触的是表格数据,所以,就表格数据来谈这个问题吧,在表格数据里增加样本的方式无非是通过一些代价获得更多的真实数据和标签,另一种方式就是通过一些上采样的方式来做数据增强,增加的是伪数据。

所以,之所以模型会发生过拟合,是因为未来的数据的部分特征的分布或者是部分特征的联合分布发生了变化从而导致模型的预测出错,有两种情况:

1、肉眼可见的特征的取值发生变化了,例如训练集的特征的取值范围在0~1之间,预测数据的特征的取值范围为0~10之间;

2、特征的取值可能没有明显变化,但是特征的联合分布发生变化了,一个简单例子,两列类别特征,f1和f2,f1的取值为a,b,f2的取值为A,训练集中f1和f2的组合为aA,aB,测试集中出现了bA.

增加数据能够缓解过拟合的情况在于我们增加的数据引入了更多会未来将出现的样本相似或完全相同的样本,但是如果引入的数据和未来的样本完全不相似,例如不均衡学习中的许多上采样的方法,纯粹基于训练数据的一些加减计算,难以扩充和未来相似的样本,自然是不能缓解过拟合问题了;

回到问题,增加样本可能可以缓解过拟合问题但并不绝对,之所以有时候能够缓解过拟合问题

问:为什么需要对数值类型的特征做归一化?

1.通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、基于梯度下降法视角下的支持向量机、神经网络等模型,主要原因在于归一化能够大大加快梯度下降法收敛的速度,

具有相似尺度的特征可以帮助梯度下降更好更快地收敛;

具有不同程度的幅度和范围的特征将导致每个特征的步长不同。因此,为了确保梯度下降更平滑、更快速地收敛,我们需要缩放我们的特征,使它们共享相似的尺度;

(逻辑回归的梯度公式对比一下就造了)

2.基于距离计算的模型例如典型的knn,kmeans等对于不同量纲下的特征的距离计算非常敏感,这个原因很简单不多解释了;

问在对数据进行预处理时,应该怎样处理类别型特征?

特征编码,onehot,woe,targetencoding等(具体编码方法可以参考categoryencoding),lgb内部其实做的是梯度编码也算是一种编码的方法,深度学习里可以使用embedding等;

问:什么是组合特征?如何处理高维组合特征?

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征

广义线性模型问:什么是广义线性模型?问:推导一下线性回归和l逻辑回归?

逻辑回归:

y_pred=sigmoid(w*x),x的增加一个维度为1,这样截距项直接包含到w里,形式上更简洁和记忆。

损失函数:二元交叉熵,

合并同类项,y_pred带入,就可以得到简化的二元交叉熵:

对W求导可得:

推导完毕。

线性回归:

懒得推了,很简单的,最终的梯度的形式是一样的:

追问:为什么做线性回归,逻辑回归之前要做归一化?

从上面的梯度计算公式可以看出来了,特征两个不一样,则W权重中的每一个wi的梯度更新量差异很大,量纲大的特征对应的权重w的梯度更新的量纲也大。导致梯度中的偏导差异极大,使得模型收敛很慢甚至无法收敛。

1/N(N表示样本数量)可以融合到learningrate里去理解,torch的损失函数里面也设计了对loss进行平均和对loss进行求和,平均不求和的差异就在于每一个step对参数w的梯度更新量的差异为N(样本数量)倍,数据量很大时,会导致梯度更新量非常大,权重的变化会非常的剧烈,收敛困难,所以用1/N,不过其实learningrate缩小n倍达到的效果是一样的。

梯度表达式前面的以乘数的形式存在的常数项对梯度下降法的收敛没有任何的影响,本质上可以理解为learningrate的变化。

问:逻辑回归使用梯度下降法的时候的停止条件是什么?

1、达到最大迭代次数

2、所有的权重的梯度更新量的值都小于预先设定的阈值

3、早停等.

问:逻辑回归是线性模型还是非线性模型?

这个地方很有意思,这涉及到我们怎么去定义线性还是非线性(1.根据模型的决策超平面来定义模型的线性和非线性,一般比较难,很难画出高维超平面;2.模型的参数是否是线性组合的,tree和nn的参数都是非线性组合的形式),如果从输出的角度来看,逻辑回归输出的是非线性的数据,经过sigmoid映射之后的输出值是非线性的:

但是如果我们从他的决策面来说,它又是超平面而不是曲面:

上述现象的原因是:

sigmoid函数就是一个纯粹的数学变换没有任何的可学习参数,我们的决策是直接根据右边的式子得到的,sigmoid只是负责映射成非线性的输出罢了,直观的说就是我们的逻辑回归的输出在进入sigmoid函数之前是图2这样的线性的值,经过sigmoid之后称为非线性的值,所以从决策平面的来说逻辑回归是线性模型,从输出来看逻辑回归是非线性模型,不过一般是从决策平面来定义线性和非线性的,所以我们还是将逻辑回归视为线性模型。

严格的定义:模型的参数是否是线性组合的

问:试着从3个角度来解释逻辑回归?(1、概率角度分析逻辑回归;2、GLM角度分析线性回归和逻辑回归;3、最大熵模型和逻辑回归的关联;)

lr之所以能衍生出很多面试的问题,主要在于逻辑回归这个模型可以从很多角度解释,每个角度所代表的领域知识各不相同,是一个非常好的考察面试者的机器学习基础的问题,所以这种题目基本上不会断。

问:为什么逻辑回归要用极大似然法来进行参数估计?

极大似然估计是一种参数估计的方法,它是频率学派最经典的方法之一,认为真实发生的结果的概率应该是最大的,那么相应的参数,也应该是能让这个状态发生的概率最大的参数。简单说就是如果事件发生了被我们观测到了,那么这个事件对应发生的概率一定是最大的才能被我们观测到否则就不会被我们观测到,所以当前的状态是这个事件发生概率最大的结果。

逻辑回归假设数据服从伯努利分布,则P(y|X)——在已知x的情况下y服从伯努利分布,通过极大化似然函数的方法,运用梯度下降或者拟牛顿法等最优化方法来求解参数,以达到将数据二分类的目的。

逻辑回归与线性回归的区别(因为项目中有用到逻辑回归)、p值、假设检验、参数估计、方差和标准差的区别(自己平时如何使用他们)

LR为什么用sigmoid函数。这个函数有什么优点和缺点?为什么不用其他函数?sigmoid函数由那个指数族分布,加上二项分布导出来的。损失函数是由最大似然估计求出的。

naivebayes和logisticregression的区别

为什么LR需要归一化或者取对数,为什么LR把特征离散化后效果更好,、逻辑回归为啥使用sigmoid函数,有何优缺点逻辑回归中为啥用对数,并且为啥不用log而用ln

(1)为什么可以用Sigmoid函数定义了逻辑回归的条件概率,的内积代表数据属于正类(y=1)的确信度。越大则x属于正类的确信度越大。由于建模需求,需要将从整个实数空间映射到条件概率P(y=1|w,x),Sigmoid函数单调递增能反映确信度,并且能够将实数空间(-无穷,+无穷)映射到(0,1)区间内,能表示概率意义,更加直观。

(2)为什么要用:指数分布具有最大熵的性质,即在满足前提假设下的分布,分布越均匀越好.在逻辑回归中认为P(Y|x)服从伯努利二分布,并且P(y|x)=f(wx),可根据最大熵的性质推出sigmoid函数。

L0范数:向量中非0元素的个数。

L1范数(LassoRegularization):向量中各个元素绝对值的和。

L2范数(RidgeRegression):向量中各元素平方和再求平方根。

L0范数和L1范数都能够达到使参数稀疏的目的,但L0范数更难优化求解,L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。

L2范数不但可以防止过拟合,提高模型的泛化能力,还可以让我们的优化求解变得稳定和快速。L2范数对大数和outlier更敏感!

·LR(5星):损失函数、交叉熵、权重更新的推导(建议每次面试之前推一遍);从权重更新的公式中,明白交叉熵相对于MSE损失函数的优点(大部分CNN网络结构用的损失函数都是交叉熵);多个角度解释逻辑回归与SVM之间的关系;标签是-1/1时损失函数形式推导。

线性回归(4星):权重更新方式的推导,包括矩阵形式的和非矩阵形式的(西瓜书上有);包含L1或者L2正则化的权重更新的推导;L1/L2正则化包含的贝叶斯先验假设(或者从多个角度解释L1/L2对特征选择的作用);在包含重复特征情况下,线性回归存在的问题,L1正则化是否能解决等细节问题。

为什么交叉熵损失函数有log项?

.lr的基本原理,为什么要用sigmoid的函数,最大熵模型是否了解过

LR模型里面有共线性的问题怎么解决?

逻辑回归采用的是交叉熵,那你知道相对熵(KL)吗?

问:手写一下逻辑回归的损失函数,推导

逻辑回归为什么不用最小二乘?基于mse来进行模型求解的称之为最小二乘法

l1l2正则区别

LR的基本假设(当时没回答出来,应该是满足伯努利分布)

LR的缺点

什么时候lr比xgb好

对于LR来说,LR如果多了一维冗余特征,其权重和AUC会怎样变化(权重变为1/2,AUC不会变化)

什么情况下需要将连续变量分桶

为什么LR模型又可称最大熵模型?

逻辑回归怎么分类非线性数据?

逻辑回归引入核方法后损失函数如何求导?

LR可以处理非线性问题吗

L1L2的作用,为什么有这样的作用?一般求L1的优化方法(坐标下降,LARS角回归)

L1为什么能让参数稀疏,L2为什么会让参数趋于较小值,L1优化方法

LR模型中为何使用交叉熵而不使用MSE作为损失函数(从损失函数建立的目标和效果上谈)

LogisticRegression的原理及其推导;

8、L2正则的本质?限制解空间范围,缩小解空间,控制模型复杂度

svm怎么用于多分类

svm的推导,什么是凸函数,为什么拉格朗日对偶方程成立

svm与lr的对比与区别

svm系列,参考一下书

问题1在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在

超平面上的投影仍然是线性可分的吗?

Q:线性模型和决策树模型对特征选择特征利用有哪些区别

Q:决策树和线性模型哪个更好在线更新

写线性回归的解析解,矩阵不可逆怎么办?

4)SVM的对偶问题(我没想起来)

什么样的函数是核函数

如何去选择核函数,线性,高斯核函数。

讲了下SVM的推导:hardmargin,softmargin,几何距离、函数距离,最优化,拉格朗日乘子法,对偶问题,KKT条件,损失函数,惩罚系数等。

为什么SVM求解要求解他的对偶问题?

为了使原问题更好求解,因为原问题不好求解,引入对偶问题之后就更好求解了。

其实,是因为对偶问题可以降低原问题的计算复杂度。

问题2是否存在一组参数使SVM训练误差为0?

问题3训练误差为0的SVM分类器一定存在吗?

问题4加入松弛变量的SVM的训练误差可以为0吗?

1.问SVM算法原理,如果数据分布是同心圆怎么办?答核函数,然后就是讲述过程;

SVM的支持向量是什么?

梯度下降法是一阶导,牛顿法是二阶导?为什么还会有牛顿法的出现?说明数学原理

SVM可以处理非线性问题吗

问了svm的推导,问的非常细,问距离到底如何定义的,不可分的svm中松弛变量怎么理解,如果有个点特别异常,是否还能找到分割面

svm的原理,smo算法,

svm的核函数的作用,lr能不能用核函数,为什么

SVM的原理及其推导

手推svm

svm推导,核函数的体现,常用的核函数有哪些

为什么svm可以使用和函数,LR不可以使用

SVM原理,支撑向量越多越好还是越少越好

svm推导,为什么要用拉格朗日乘数法,对偶问题是什么

KKT条件都有什么,如何求解svm的最优化问题

2、特征工程做的有哪些?非线性可分的情况怎么处理的?

9、SVM引入核函数本质?提高维度,增加模型复杂度

Q:这样啊,那我手推一下SVM吧

Q:为什么必须满足KKT条件?

·SVM(5星):理解SVM目标函数的由来;理解SVM中核技巧的使用;将目标函数转化成对偶问题的推导(软间隔、硬间隔);为什么要转换成对偶问题求解,求解...

THE END
1.24期丨信息学竞赛入门&拓展推荐书单及10大工具网站!建议收藏《信息学奥塞一本通》初赛篇和C++版,这套书比较适合零基础入门使用的,且有专门收录这套书所有习题进行在线评测的一本通题库网站(下文有介绍),初赛篇辅助学员学习信息学竞赛初赛知识。 05 《算法竞赛入门经典(第2版)》 作者:刘汝佳(NOI竞赛https://mp.weixin.qq.com/s?__biz=MzAwNDAzODg3NQ==&mid=2652999200&idx=4&sn=d8d09aa53fc360313c9883df2fe36139&chksm=818b64e26d863d533de572dbe5c816e34a38baa9f219e2a54bf1b1085a1421ab440db82a4f13&scene=27
2.推荐几个算法可视化网站,从此轻松学算法!@程序员大彬: 推荐几个算法可视化网站,从此轻松学算法! 大家好,我是大彬~ 很多初学者在学习数据结构与算法的时候,都会觉得很难,很大一部分是因为数据结构与算法本身比较抽象,不好理解。对于这一点,可以通过一些可视化动画来帮助理解。 下面大彬推荐几个学习数据结构和算法的可视化工具。 Data Structure Vihttps://m.nowcoder.com/feed/main/detail/6ecdab56f00b44bfacf3cb854929059e
3.吴师兄学算法五分钟学算法吴师兄学算法(www.cxyxiaowu.com)提供许多数据结构与算法学习的基础知识, 涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。https://www.cxyxiaowu.com/
4.有哪些高质量的自学网站?网站上还有专业团队为你服务,帮助你接单赚钱。为手中的画作增添变现途径,让我们的爱好,可以更长期地坚持下去。 10、优优课程网(http://uiiiuiii.com/) 学习设计必不可少的网站,设计界的同学都懂。 流传的一句“看行业设计文章到优设,学热门软件教程在优优。”就是最好的证明。 https://www.douban.com/note/767851363/
5.推荐几个正经网站,让你的数据结构和算法学习事半功倍!相信对于大部分程序员来说,数据结构和算法学起来是比较难的,但是它在工作中又是非常的重要,可以说是开发中的一块基石。 所以为了更好的学习和理解数据结构和算法,当时我是趁着双十一搞活动买了几本算法书,打算一鼓作气把它吃透,可想而知有点吃不消。 https://blog.csdn.net/weixin_48655626/article/details/112442781
6.全网最全程序员学习网站汇总,还不赶快收藏摘要:程序员是一个需要不断学习的职业。幸运的是,在这个互联网时代,知识就在那里,等着我们去获取。作为一个“收藏从未中止,学习从未开始”的博主,秉承着好东西不能独享的态度,把收藏的学习网站整理分享出来,希望大家不要学我,肯定要好好学习,天天进步,升职加薪?。好了,下面开始上货,因为博主是个Java程序员, https://www.songma.com/news/txtlist_i66992v.html
7.十大学习网站排名网上学习平台哪个好在线网络学习网站推荐→09 学银在线 0 10 智慧树网 0 学习强国 慕课网 Coursera 可汗学院 我要自学网 国图公开课 终身教育平台 大学资源网 Udacity 十大学习网站榜单中,榜单主要依据AI大数据算法关于学习平台的“用户规模、服务质量、运营状况、用户口碑、知名度与影响力、主题契合程度、网络十大排行情况”等因素综合判断得分系统自动生成https://www.maigoo.com/top/420080.html
8.6个超酷的练习算法,学习编程的网站如果您已经编程了一段时间,想学习一种新的语言,学习一种新的思维方式,那就去运动吧! 总结 在本文中,我分享了6个超酷的网站来练习算法和学习编程! 我个人认为您不需要学习太多,如果想在面试之前进行练习,请访问Skilled / Hackerrank / Leetcode。 或者,如果您需要学习新的语言,请选择运动。https://news.51cto.com/art/202006/618315.htm
9.通常从哪里获取最新的编程技术资讯和教程?Stack Overflow:全球最大的程序员专业问答网站,涵盖编程语言、软件开发工具、算法等多方面的问题和答案,https://www.zhihu.com/question/5392002679/answer/56183345264
10.九章算法九章算法致力于让顶尖的工程师在线传授最优质的计算机课程,帮助更多程序员找到好工作http://jiuzhang.com/
11.Pytorch深度学习实战教程(三):UNet模型训练好了,任务介绍完毕,开始准备训练模型。 三、UNet训练 想要训练一个深度学习模型,可以简单分为三个步骤: 数据加载:数据怎么加载,标签怎么定义,用什么数据增强方法,都是这一步进行。 模型选择:模型我们已经准备好了,就是该系列上篇文章讲到的 UNet 网络。 算法选择:算法选择也就是我们选什么 loss ,用什么优化算法。https://cuijiahua.com/blog/2020/03/dl-16.html
12.有哪些学习算法的网站推荐?推荐的讲解算法的网站、好博客:讲解、代码格式、图表都很规范,覆盖广Matrix67 的一些算法讲解类经典文章,平易近人BYVoid 的博客,计算机科学标签范浩强的博客(曾经)https://www.jianshu.com/p/06ff13b234e3
13.如何选择机器学习算法统计学和机器学习中的线性度表示数据集中的某个变量与常数之间存在线性关系。 例如,线性分类算法假设直线(或其更高维的模拟)可以将类分离。 许多机器学习算法都使用线性。 在 Azure 机器学习设计器中,这些算法包括: 多类逻辑回归 双类逻辑回归 支持向量机 https://docs.microsoft.com/zh-cn/azure/machine-learning/studio/algorithm-choice
14.2020年深度学习算法工程师面经(微软阿里商汤滴滴华为简单分为深度学习、机器学习基础、图像处理基础、数学基础、算法基础、程序设计语言、模型部署、HR面试以及与我本人简历相关的目标检测、属性识别、Kaggle及天池的比赛、创新想法等几个部分介绍。可能开始会有重叠或者分类不恰当,后面会逐渐更新完善。其中第一篇先介绍到HR面试,第二篇介绍个人相关的项目和比赛部分。https://maimai.cn/article/detail?fid=1514590373&efid=Oph3033j5Qs70xHZdz0sGA
15.相由心生?面部算法分析能否窥测你的内心?思想市场澎湃新闻而批评者认为,被建构起来的面部算法分析实际上不过是一种脆弱的、文化构建的假设,这是最令人担忧的。德布林在一封电子邮件中说:“社会心理学也有严肃的问题,它往往受到英语母语使用者、异性恋者、白人意识的主导,这无疑推动了这类研究。我无法想象,如果整个渠道的某些节点(同事、伦理委员会、编辑、评论家等)有更多不https://www.thepaper.cn/newsDetail_forward_1864416
16.人工智能机器学习常用算法总结及各个常用算法精确率对比相关技巧学过概率的同学一定都知道贝叶斯定理,这个在250多年前发明的算法,在信息领域内有着无与伦比的地位。贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian) 是其中应用最为广泛的分类算法之一。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相https://www.jb51.net/article/182909.htm
17.AlphaZero加强版AlphaTensor问世,发现史上最快矩阵乘法算法医学图像的模式可以通过ML技术识别,允许放射科医生根据放射信息做出明智的决定,如基本放射照相术、计算机断层扫描(CT)、MRI、正电子发射断层扫描(PET)图像和放射学报告。例如研究人员提出了一种序列增强学习技术,用于在乳房X光片中使用SVM检测微钙化(MC)簇时提高性能等。ML和模式识别算法对大脑成像有重大影响,从长远来看https://www.medsci.cn/article/show_article.do?id=97c6e419443f
18.英语词汇软件哪个好?英语词汇大全词汇app下载英语词汇大全,集合了扇贝单词、网易有道词典、星火简词汇、乐词、英语四级词汇、海词词典、词管家等众多单词学习软件,拥有海量的词汇书、权威的例句、有趣的智慧词根,提供了多种模式的词汇记忆方法,其中包括情节、游戏、串词、歌曲等方式,智能启发用户记词汇流程,让记词汇不再变得枯燥,还可以定制适合你的学习计划,更好http://www.downcc.com/k/yingyucihui/
19.图分析与学习算法自动驾驶技术……这两位人大学子,获奖她曾获研究生国家奖学金、中国石油奖学金、一等学业奖学金等,入选中国人民大学“拔尖创新人才培育资助计划”。其研究关注大规模图分析与学习算法的可扩展性问题。她在计算机理论研究,特别是图分析和学习算法方向,取得了突破性的成果。其成果有望在搜索等业务领域落地,发挥重大作用。https://t.m.youth.cn/transfer/index/url/tech.youth.cn/wzlb/202201/t20220129_13411740.htm
20.常见用户行为分析模型解析MySecretRainbow预测用户分群——通过机器学习算法预测事件概率 互联网金融产品常常会用到预测用户分群的功能。互联网金融客户按照风险投资偏好这一属性分为保守、稳健和激进,按照投资行为可分为已投资和未投资。 运营人员可以根据这一属性和行为将满足某种条件的用户群体提取出来,譬如激进型但未投资的这群用户,然后分析这一群体的行为特http://www.mysecretrainbow.com/blog/12611.html
21.大数据基础术语精粹来袭由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。http://www.mudan.gov.cn/2c908084831c4eb30183205259ac001f/2c908084831c4eb3018320df837d0020/1669185201282129920.html
22.每日热点1102Nature子刊:深度学习算法可以在显微镜图像中识别出各种细菌 BMJ:人工甜味剂安全性再添新忧!超10万人研究发现,饮食中总甜味剂摄入量高,与心血管疾病和脑血管疾病风险增加9%和18%相关 舆情信息 新冠病毒疫苗接种情况 世卫组织:黎巴嫩霍乱疫情迅速蔓延 “个人碳账户”还应更多些 https://sccdc.cn/Article/View?id=30661
23.和数据滥用说再见,“少样本学习”能否拯救推荐系统?如果用户很懒,或者不愿意让系统知道自己的个人信息,推荐系统还可以使用热度模型,基于统计分析推荐一些大部分人都会感兴趣的热点信息。虽然很容易让平台调性显得有点low,但从概率学角度看,说不定就正好撞到用户心口上了呢。 比如一直强调算法推荐的今日头条,在冷启动状态就采用了这种做法,向新用户推荐的大多是“新娘给https://www.tmtpost.com/3559257.html