为您推荐:
精华内容
最热下载
问答
  • 5星
    135.91MB qq_34351067 2021-04-16 14:11:28
  • 5星
    35.15MB HowardEmily 2021-01-14 11:50:13
  • 5星
    3.78MB weixin_44857688 2021-06-26 10:26:23
  • 5星
    867KB weixin_44573410 2021-01-20 19:29:18
  • 5星
    4.81MB weixin_44573410 2021-01-26 18:42:31
  • 5星
    11.55MB xxzhaoming 2021-06-05 15:16:19
  • 5星
    1.11MB shooter7 2021-01-28 19:04:09
  • 5星
    603KB xxzhaoming 2021-01-05 15:13:10
  • 5星
    6KB weixin_43723517 2021-01-28 22:05:30
  • 5星
    17.02MB zdxxinlang 2021-01-13 10:24:46
  • 第一部分:深度学习 1、CNN 1、CNN问题 2、如何减少参数 权值共享、VGG的感受野、GoogLeNet的inception 3、激活函数选择 4、filter的尺寸选择 5、pooling的作用 6、常用的几个模型 2、RNN 1、RNN、LSTM、...

    第一部分:深度学习

    1、神经网络基础问题

    (1)Backpropagation(要能推倒)
      后向传播是在求解损失函数L对参数w求导时候用到的方法,目的是通过链式法则对参数进行一层一层的求导。这里重点强调:要将参数进行随机初始化而不是全部置0,否则所有隐层的数值都会与输入相关,这称为对称失效
    大致过程是:

    • 首先前向传导计算出所有节点的激活值和输出值,
      激活值

    • 计算整体损失函数:
      损失函数

    • 然后针对第L层的每个节点计算出残差(这里是因为UFLDL中说的是残差,本质就是整体损失函数对每一层激活值Z的导数),所以要对W求导只要再乘上激活函数对W的导数即可
      cancha

    (2)梯度消失、梯度爆炸
      梯度消失:这本质上是由于激活函数的选择导致的, 最简单的sigmoid函数为例,在函数的两端梯度求导结果非常小(饱和区),导致后向传播过程中由于多次用到激活函数的导数值使得整体的乘积梯度结果变得越来越小,也就出现了梯度消失的现象。
      梯度爆炸:同理,出现在激活函数处在激活区,而且权重W过大的情况下。但是梯度爆炸不如梯度消失出现的机会多。
      
    (3)常用的激活函数

    激活函数公式缺点优点
    Sigmoid σ(x)=1/(1+ex)
    1、会有梯度弥散
    2、不是关于原点对称
    3、计算exp比较耗时
    -
    Tanh tanh(x)=2σ(2x)1
    梯度弥散没解决1、解决了原点对称问题
    2、比sigmoid更快
    ReLU f(x)=max(0,x)
    梯度弥散没完全解决,在(-)部分相当于神经元死亡而且不会复活1、解决了部分梯度弥散问题
    2、收敛速度更快
    Leaky ReLU f(x)=1(x<0)(αx)+1(x>=0)(x)
    -解决了神经死亡问题
    Maxout max(wT1x+b1,wT2x+b2)
    参数比较多,本质上是在输出结果上又增加了一层克服了ReLU的缺点,比较提倡使用

    (4)参数更新方法

    方法名称公式
    Vanilla updatex += - learning_rate * dx
    Momentum update动量更新v = mu * v - learning_rate * dx # integrate velocity
    x += v # integrate position
    Nesterov Momentumx_ahead = x + mu * v
    v = mu * v - learning_rate * dx_ahead
    x += v
    Adagrad
    (自适应的方法,梯度大的方向学习率越来越小,由快到慢)
    cache += dx**2
    x += - learning_rate * dx / (np.sqrt(cache) + eps)
    Adamm = beta1*m + (1-beta1)dx
    v = beta2*v + (1-beta2)
    (dx**2)
    x += - learning_rate * m / (np.sqrt(v) + eps)

    (5)解决overfitting的方法
      dropout, regularization, batch normalizatin,但是要注意dropout只在训练的时候用,让一部分神经元随机失活。
      Batch normalization是为了让输出都是单位高斯激活,方法是在连接和激活函数之间加入BatchNorm层,计算每个特征的均值和方差进行规则化。
      

    2、CNN问题

    (1) 思想
      改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可以通过使用多个filter来提取图片的不同特征(多卷积核)。
      
    (2)filter尺寸的选择
      通常尺寸多为奇数(1,3,5,7)
      
    (3)输出尺寸计算公式
      输出尺寸=(N - F +padding*2)/stride + 1
      步长可以自由选择通过补零的方式来实现连接。
      
    (4)pooling池化的作用
      虽然通过.卷积的方式可以大范围的减少输出尺寸(特征数),但是依然很难计算而且很容易过拟合,所以依然利用图片的静态特性通过池化的方式进一步减少尺寸。
      
    (5)常用的几个模型,这个最好能记住模型大致的尺寸参数。

    名称特点
    LeNet5–没啥特点-不过是第一个CNN应该要知道
    AlexNet引入了ReLU和dropout,引入数据增强、池化相互之间有覆盖,三个卷积一个最大池化+三个全连接层
    VGGNet采用1*1和3*3的卷积核以及2*2的最大池化使得层数变得更深。常用VGGNet-16和VGGNet19
    Google Inception Net
    我称为盗梦空间网络
    这个在控制了计算量和参数量的同时,获得了比较好的分类性能,和上面相比有几个大的改进:
      1、去除了最后的全连接层,而是用一个全局的平均池化来取代它;
      2、引入Inception Module,这是一个4个分支结合的结构。所有的分支都用到了1*1的卷积,这是因为1*1性价比很高,可以用很少的参数达到非线性和特征变换。
      3、Inception V2第二版将所有的5*5变成2个3*3,而且提出来著名的Batch Normalization;
      4、Inception V3第三版就更变态了,把较大的二维卷积拆成了两个较小的一维卷积,加速运算、减少过拟合,同时还更改了Inception Module的结构。
    微软ResNet残差神经网络(Residual Neural Network)1、引入高速公路结构,可以让神经网络变得非常深
    2、ResNet第二个版本将ReLU激活函数变成y=x的线性函数

    2、RNN

    1、RNN原理:
      在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward+Neural+Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出。所以叫循环神经网络
    2、RNN、LSTM、GRU区别

    • RNN引入了循环的概念,但是在实际过程中却出现了初始信息随时间消失的问题,即长期依赖(Long-Term Dependencies)问题,所以引入了LSTM。
    • LSTM:因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。推导forget gate,input gate,cell state, hidden information等因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸的变化是关键,下图非常明确适合记忆:
    • GRU是LSTM的变体,将忘记门和输入们合成了一个单一的更新门。

    3、LSTM防止梯度弥散和爆炸
      LSTM用加和的方式取代了乘积,使得很难出现梯度弥散。但是相应的更大的几率会出现梯度爆炸,但是可以通过给梯度加门限解决这一问题。
      
    4、引出word2vec
      这个也就是Word Embedding,是一种高效的从原始语料中学习字词空间向量的预测模型。分为CBOW(Continous Bag of Words)和Skip-Gram两种形式。其中CBOW是从原始语句推测目标词汇,而Skip-Gram相反。CBOW可以用于小语料库,Skip-Gram用于大语料库。具体的就不是很会了。

    3、GAN

    1、GAN的思想
      GAN结合了生成模型和判别模型,相当于矛与盾的撞击。生成模型负责生成最好的数据骗过判别模型,而判别模型负责识别出哪些是真的哪些是生成模型生成的。但是这些只是在了解了GAN之后才体会到的,但是为什么这样会有效呢?
      假设我们有分布Pdata(x),我们希望能建立一个生成模型来模拟真实的数据分布,假设生成模型为Pg(x; θ ),我们的目的是求解 θ 的值,通常我们都是用最大似然估计。但是现在的问题是由于我们相用NN来模拟Pdata(x),但是我们很难求解似然函数,因为我们没办法写出生成模型的具体表达形式,于是才有了GAN,也就是用判别模型来代替求解最大似然的过程。
      在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

    2、GAN的表达式

      通过分析GAN的表达可以看出本质上就是一个minmax问题。其中V(D, G)可以看成是生成模型和判别模型的差异,而minmaxD说的是最大的差异越小越好。这种度量差异的方式实际上叫做Jensen-Shannon divergence。
    3、GAN的实际计算方法
      因为我们不可能有Pdata(x)的分布,所以我们实际中都是用采样的方式来计算差异(也就是积分变求和)。具体实现过程如下:

    有几个关键点:判别方程训练K次,而生成模型只需要每次迭代训练一次,先最大化(梯度上升)再最小化(梯度下降)。
      但是实际计算时V的后面一项在D(x)很小的情况下由于log函数的原因会导致更新很慢,所以实际中通常将后一项的log(1-D(x))变为-logD(x)。
      实际计算的时候还发现不论生成器设计的多好,判别器总是能判断出真假,也就是loss几乎都是0,这可能是因为抽样造成的,生成数据与真实数据的交集过小,无论生成模型多好,判别模型也能分辨出来。解决方法有两个:1、用WGAN 2、引入随时间减少的噪声

    4、对GAN有一些改进有引入f-divergence,取代Jensen-Shannon divergence,还有很多,这里主要介绍WGAN

    5、WGAN
      上面说过了用f-divergence来衡量两个分布的差异,而WGAN的思路是使用Earth Mover distance (挖掘机距离 Wasserstein distance)。

    第二部分、机器学习准备

    1、决策树树相关问题

    (1)各种熵的计算
      熵、联合熵、条件熵、交叉熵、KL散度(相对熵)

    • 熵用于衡量不确定性,所以均分的时候熵最大
    • KL散度用于度量两个分布的不相似性,KL(p||q)等于交叉熵H(p,q)-熵H(p)。交叉熵可以看成是用q编码P所需的bit数,减去p本身需要的bit数,KL散度相当于用q编码p需要的额外bits。
    • 交互信息Mutual information :I(x,y) = H(x)-H(x|y) = H(y)-H(y|x) 表示观察到x后,y的熵会减少多少。

    (2)常用的树搭建方法:ID3、C4.5、CART
      上述几种树分别利用信息增益、信息增益率、Gini指数作为数据分割标准。

    • 其中信息增益衡量按照某个特征分割前后熵的减少程度,其实就是上面说的交互信息。
    • 用上述信息增益会出现优先选择具有较多属性的特征,毕竟分的越细的属性确定性越高。所以提出了信息增益率的概念,让含有较多属性的特征的作用降低。
    • CART树在分类过程中使用的基尼指数Gini,只能用于切分二叉树,而且和ID3、C4.5树不同,Cart树不会在每一个步骤删除所用特征。

    (3)防止过拟合:剪枝
      剪枝分为前剪枝和后剪枝,前剪枝本质就是早停止,后剪枝通常是通过衡量剪枝后损失函数变化来决定是否剪枝。后剪枝有:错误率降低剪枝、悲观剪枝、代价复杂度剪枝

    (4)前剪枝的几种停止条件

    • 节点中样本为同一类
    • 特征不足返回多类
    • 如果某个分支没有值则返回父节点中的多类
    • 样本个数小于阈值返回多类

    2、逻辑回归相关问题

    (1)公式推导一定要会

    (2)逻辑回归的基本概念
      这个最好从广义线性模型的角度分析,逻辑回归是假设y服从Bernoulli分布。

    (3)L1-norm和L2-norm
      其实稀疏的根本还是在于L0-norm也就是直接统计参数不为0的个数作为规则项,但实际上却不好执行于是引入了L1-norm;而L1norm本质上是假设参数先验是服从Laplace分布的,而L2-norm是假设参数先验为Gaussian分布,我们在网上看到的通常用图像来解答这个问题的原理就在这。
      但是L1-norm的求解比较困难,可以用坐标轴下降法或是最小角回归法求解。

    (4)LR和SVM对比
      首先,LR和SVM最大的区别在于损失函数的选择,LR的损失函数为Log损失(或者说是逻辑损失都可以)、而SVM的损失函数为hinge loss。

      其次,两者都是线性模型。
      最后,SVM只考虑支持向量(也就是和分类相关的少数点)
      
    (5)LR和随机森林区别
      随机森林等树算法都是非线性的,而LR是线性的。LR更侧重全局优化,而树模型主要是局部的优化。
      
    (6)常用的优化方法
      逻辑回归本身是可以用公式求解的,但是因为需要求逆的复杂度太高,所以才引入了梯度下降算法。
      一阶方法:梯度下降、随机梯度下降、mini 随机梯度下降降法。随机梯度下降不但速度上比原始梯度下降要快,局部最优化问题时可以一定程度上抑制局部最优解的发生。
      二阶方法:牛顿法、拟牛顿法:
      这里详细说一下牛顿法的基本原理牛顿法的应用方式。牛顿法其实就是通过切线与x轴的交点不断更新切线的位置,直到达到曲线与x轴的交点得到方程解。在实际应用中我们因为常常要求解凸优化问题,也就是要求解函数一阶导数为0的位置,而牛顿法恰好可以给这种问题提供解决方法。实际应用中牛顿法首先选择一个点作为起始点,并进行一次二阶泰勒展开得到导数为0的点进行一个更新,直到达到要求,这时牛顿法也就成了二阶求解问题,比一阶方法更快。我们常常看到的x通常为一个多维向量,这也就引出了Hessian矩阵的概念(就是x的二阶导数矩阵)。缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定的下降,严重时甚至会失败。还有就是牛顿法要求函数一定是二阶可导的。而且计算Hessian矩阵的逆复杂度很大。
    拟牛顿法: 不用二阶偏导而是构造出Hessian矩阵的近似正定对称矩阵的方法称为拟牛顿法。拟牛顿法的思路就是用一个特别的表达形式来模拟Hessian矩阵或者是他的逆使得表达式满足拟牛顿条件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩阵)、 L-BFGS(可以减少BFGS所需的存储空间)。

    3、SVM相关问题

    (1)带核的SVM为什么能分类非线性问题?
      核函数的本质是两个函数的內积,而这个函数在SVM中可以表示成对于输入值的高维映射。注意核并不是直接对应映射,核只不过是一个內积
      
    (2)RBF核一定是线性可分的吗
      不一定,RBF核比较难调参而且容易出现维度灾难,要知道无穷维的概念是从泰勒展开得出的。
      
    (3)常用核函数及核函数的条件:
      核函数选择的时候应该从线性核开始,而且在特征很多的情况下没有必要选择高斯核,应该从简单到难的选择模型。我们通常说的核函数指的是正定和函数,其充要条件是对于任意的x属于X,要求K对应的Gram矩阵要是半正定矩阵。

    • RBF核径向基,这类函数取值依赖于特定点间的距离,所以拉普拉斯核其实也是径向基核。
    • 线性核:主要用于线性可分的情况
    • 多项式核

    (4)SVM的基本思想:
      间隔最大化来得到最优分离超平面。方法是将这个问题形式化为一个凸二次规划问题,还可以等价位一个正则化的合页损失最小化问题。SVM又有硬间隔最大化和软间隔SVM两种。这时首先要考虑的是如何定义间隔,这就引出了函数间隔和几何间隔的概念(这里只说思路),我们选择了几何间隔作为距离评定标准(为什么要这样,怎么求出来的要知道),我们希望能够最大化与超平面之间的几何间隔x,同时要求所有点都大于这个值,通过一些变化就得到了我们常见的SVM表达式。接着我们发现定义出的x只是由个别几个支持向量决定的。对于原始问题(primal problem)而言,可以利用凸函数的函数包来进行求解,但是发现如果用对偶问题(dual )求解会变得更简单,而且可以引入核函数。而原始问题转为对偶问题需要满足KKT条件(这个条件应该细细思考一下)到这里还都是比较好求解的。因为我们前面说过可以变成软间隔问题,引入了惩罚系数,这样还可以引出hinge损失的等价形式(这样可以用梯度下降的思想求解SVM了)。我个人认为难的地方在于求解参数的SMO算法。

    (5)是否所有的优化问题都可以转化为对偶问题:
    这个问题我感觉非常好,有了强对偶和弱对偶的概念。用知乎大神的解释吧
    (6)处理数据偏斜:
      可以对数量多的类使得惩罚系数C越小表示越不重视,相反另数量少的类惩罚系数变大。

    4、Boosting和Bagging

    (1)随机森林
      随机森林改变了决策树容易过拟合的问题,这主要是由两个操作所优化的:1、Boostrap从袋内有放回的抽取样本值2、每次随机抽取一定数量的特征(通常为sqr(n))。
      分类问题:采用Bagging投票的方式选择类别频次最高的
      回归问题:直接取每颗树结果的平均值。

    常见参数误差分析优点缺点
    1、树最大深度
    2、树的个数
    3、节点上的最小样本数
    4、特征数(sqr(n))
    oob(out-of-bag)
    将各个树的未采样样本作为预测样本统计误差作为误分率
    可以并行计算
    不需要特征选择
    可以总结出特征重要性
    可以处理缺失数据
    不需要额外设计测试集
    在回归上不能输出连续结果

    (2)Boosting之AdaBoost
      Boosting的本质实际上是一个加法模型,通过改变训练样本权重学习多个分类器并进行一些线性组合。而Adaboost就是加法模型+指数损失函数+前项分布算法。Adaboost就是从弱分类器出发反复训练,在其中不断调整数据权重或者是概率分布,同时提高前一轮被弱分类器误分的样本的权值。最后用分类器进行投票表决(但是分类器的重要性不同)。
      
    (3)Boosting之GBDT
      将基分类器变成二叉树,回归用二叉回归树,分类用二叉分类树。和上面的Adaboost相比,回归树的损失函数为平方损失,同样可以用指数损失函数定义分类问题。但是对于一般损失函数怎么计算呢?GBDT(梯度提升决策树)是为了解决一般损失函数的优化问题,方法是用损失函数的负梯度在当前模型的值来模拟回归问题中残差的近似值。
      注:由于GBDT很容易出现过拟合的问题,所以推荐的GBDT深度不要超过6,而随机森林可以在15以上。
      
    (4)GBDT和Random Forest区别
    这个就和上面说的差不多。

    (5)Xgboost
    这个工具主要有以下几个特点:

    • 支持线性分类器
    • 可以自定义损失函数,并且可以用二阶偏导
    • 加入了正则化项:叶节点数、每个叶节点输出score的L2-norm
    • 支持特征抽样
    • 在一定情况下支持并行,只有在建树的阶段才会用到,每个节点可以并行的寻找分裂特征。

    5、KNN和Kmean

    (1)KNN 和Kmean缺点
      都属于惰性学习机制,需要大量的计算距离过程,速度慢的可以(但是都有相应的优化方法)。
    (2)KNN
      KNN不需要进行训练,只要对于一个陌生的点利用离其最近的K个点的标签判断其结果。KNN相当于多数表决,也就等价于经验最小化。而KNN的优化方式就是用Kd树来实现。
    (3)Kmean
      要求自定义K个聚类中心,然后人为的初始化聚类中心,通过不断增加新点变换中心位置得到最终结果。Kmean的缺点可以用Kmean++方法进行一些解决(思想是使得初始聚类中心之间的距离最大化)

    6、EM算法、HMM、CRF

      这三个放在一起不是很恰当,但是有互相有关联,所以就放在这里一起说了。注意重点关注算法的思想。
    (1)EM算法
      EM算法是用于含有隐变量模型的极大似然估计或者极大后验估计,有两步组成:E步,求期望(expectation);M步,求极大(maxmization)。本质上EM算法还是一个迭代算法,通过不断用上一代参数对隐变量的估计来对当前变量进行计算,直到收敛。
      注意:EM算法是对初值敏感的,而且EM是不断求解下界的极大化逼近求解对数似然函数的极大化的算法,也就是说EM算法不能保证找到全局最优值。对于EM的导出方法也应该掌握。
    (2)HMM算法
      隐马尔可夫模型是用于标注问题的生成模型。有几个参数( π ,A,B):初始状态概率向量 π ,状态转移矩阵A,观测概率矩阵B。称为马尔科夫模型的三要素。
    马尔科夫三个基本问题:

    • 概率计算问题:给定模型和观测序列,计算模型下观测序列输出的概率。–》前向后向算法
    • 学习问题:已知观测序列,估计模型参数,即用极大似然估计来估计参数。–》Baum-Welch(也就是EM算法)和极大似然估计。
    • 预测问题:已知模型和观测序列,求解对应的状态序列。–》近似算法(贪心算法)和维比特算法(动态规划求最优路径)

    (3)条件随机场CRF
      给定一组输入随机变量的条件下另一组输出随机变量的条件概率分布密度。条件随机场假设输出变量构成马尔科夫随机场,而我们平时看到的大多是线性链条随机场,也就是由输入对输出进行预测的判别模型。求解方法为极大似然估计或正则化的极大似然估计。
      之所以总把HMM和CRF进行比较,主要是因为CRF和HMM都利用了图的知识,但是CRF利用的是马尔科夫随机场(无向图),而HMM的基础是贝叶斯网络(有向图)。而且CRF也有:概率计算问题、学习问题和预测问题。大致计算方法和HMM类似,只不过不需要EM算法进行学习问题。

    (4)HMM和CRF对比
      其根本还是在于基本的理念不同,一个是生成模型,一个是判别模型,这也就导致了求解方式的不同。
      

    7、常见基础问题

    (1)数据归一化(或者标准化,注意归一化和标准化不同)的原因
      要强调:能不归一化最好不归一化,之所以进行数据归一化是因为各维度的量纲不相同。而且需要看情况进行归一化。

    • 有些模型在各维度进行了不均匀的伸缩后,最优解与原来不等价(如SVM)需要归一化。
    • 有些模型伸缩有与原来等价,如:LR则不用归一化,但是实际中往往通过迭代求解模型参数,如果目标函数太扁(想象一下很扁的高斯模型)迭代算法会发生不收敛的情况,所以最坏进行数据归一化。

    补充:其实本质是由于loss函数不同造成的,SVM用了欧拉距离,如果一个特征很大就会把其他的维度dominated。而LR可以通过权重调整使得损失函数不变。

    (2)衡量分类器的好坏:
      这里首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四种(可以画一个表格)。
    几种常用的指标:

    • 精度precision = TP/(TP+FP) = TP/~P (~p为预测为真的数量)
    • 召回率 recall = TP/(TP+FN) = TP/ P
    • F1值: 2/F1 = 1/recall + 1/precision
    • ROC曲线:ROC空间是一个以伪阳性率(FPR,false positive rate)为X轴,真阳性率(TPR, true positive rate)为Y轴的二维坐标系所代表的平面。其中真阳率TPR = TP / P = recall, 伪阳率FPR = FP / N

    (3)SVD和PCA
      PCA的理念是使得数据投影后的方差最大,找到这样一个投影向量,满足方差最大的条件即可。而经过了去除均值的操作之后,就可以用SVD分解来求解这样一个投影向量,选择特征值最大的方向。

    (4)防止过拟合的方法
      过拟合的原因是算法的学习能力过强;一些假设条件(如样本独立同分布)可能是不成立的;训练样本过少不能对整个空间进行分布估计。
      处理方法:

    • 早停止:如在训练中多次迭代后发现模型性能没有显著提高就停止训练
    • 数据集扩增:原有数据增加、原有数据加随机噪声、重采样
    • 正则化
    • 交叉验证
    • 特征选择/特征降维

    (5)数据不平衡问题
      这主要是由于数据分布不平衡造成的。解决方法如下:

    • 采样,对小样本加噪声采样,对大样本进行下采样
    • 进行特殊的加权,如在Adaboost中或者SVM中
    • 采用对不平衡数据集不敏感的算法
    • 改变评价标准:用AUC/ROC来进行评价
    • 采用Bagging/Boosting/ensemble等方法
    • 考虑数据的先验分布
    展开全文
    woaidapaopao 2017-09-07 01:13:54
  • 抽象为机器学习能处理的数学问题 理解实际业务场景问题机器学习的第一步,机器学习中特征工程和模型训练都是非常费时的,深入理解要处理的问题,能避免走很多弯路。 获取数据。“ 数据决定机器学习结果的上限,...

    http://blog.csdn.net/u011239443/article/details/76360294

    1 基础概念

    1.1 熵、联合熵、条件熵、交叉熵与相对熵的意义?

    1.2 归一化方法?

    1、线性函数归一化(Min-Max scaling)
    线性函数将原始数据线性化的方法转换到[0 1]的范围,归一化公式如下:

    2、0均值标准化(Z-score standardization)
    均值归一化方法将原始数据集归一化为均值为0、方差1的数据集,归一化公式如下:

    1.3 准确率,召回率,F值,ROC,AUC?

    准确率


    理解为你预测对的正例数占你预测正例总量的比率

    召回率

    理解为你预测对的正例数占真正的正例数的比率

    F值

    为准确率和召回率的调和平均值

    ROC和AUC

    http://blog.csdn.net/ybdesire/article/details/51999995

    1.4 过拟合与正则化

    1.4.1 为什么过拟合不好?

    训练集中的数据有噪音,过拟合会学习到这些噪音,导致泛化性能变差。

    1.4.2 正则化

    这里写图片描述

    缺点:L1,不好求导。 L2,本质上是在对原来的w根据一定比例缩小,然而原来w中大权重缩小后还是比原来小的权重大。解决方法—— 权消去正则化:

    1.5 优化方法

    描述梯度下降?

    牛顿法 拟牛顿法?

    牛顿法

    牛顿法动图

    拟牛顿法

    DFP

    BFGS

    1.6 各算法的优缺点

    算法优点缺点
    KNN1.简单、有效。2.重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)3.计算时间和空间线性于训练集的规模(在一些场合不算太大)4.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。5.该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。1.KNN算法是懒散学习方法(lazy learning,基本上不学习),一些积极学习的算法要快很多。2.类别评分不是规格化的(不像概率评分)。3.输出的可解释性不强,例如决策树的可解释性较强。4.该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。5.计算量较大。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。
    朴素贝叶斯1.朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。2.NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单,常用于文本分类。3.对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。1.理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的(可以考虑用聚类算法先将相关性较大的属性聚类),这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。2.需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。3.由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。4.对输入数据的表达形式很敏感。
    决策树1.决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。2.对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。3.能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。4.决策树是一个白盒模型。如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。5.易于通过静态测试来对模型进行评测。表示有可能测量该模型的可信度。6.在相对短的时间内能够对大型数据源做出可行且效果良好的结果。7.可以对有许多属性的数据集构造决策树。8.决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小。1.对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。2.决策树处理缺失数据时的困难。3.过度拟合问题的出现。4. 忽略数据集中属性之间的相关性。
    支持向量机1.可以解决小样本情况下的机器学习问题。2.可以提高泛化性能。3.可以解决高维问题。4.可以解决非线性问题。5.可以避免神经网络结构选择和局部极小点问题。1.对缺失数据敏感。2.对非线性问题没有通用解决方案,必须谨慎选择Kernel function来处理。
    Adaboosting1.adaboost是一种有很高精度的分类器。2.可以使用各种方法构建子分类器,Adaboost算法提供的是框架。3.当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单。4.简单,不用做特征筛选。5.不用担心overfitting。
    神经网络1.分类的准确度高2.并行分布处理能力强,分布存储及学习能力强3.对噪声神经有较强的鲁棒性和容错能力4.能充分逼近复杂的非线性关系5.具备联想记忆的功能等。1.神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值2.不能观察之间的学习过程,输出结果难以解释,会影响到结果的可信度和可接受程度3.学习时间过长,甚至可能达不到学习的目的。

    1.7 机器学习项目流程?

    • 理解实际问题。抽象为机器学习能处理的数学问题 理解实际业务场景问题是机器学习的第一步,机器学习中特征工程和模型训练都是非常费时的,深入理解要处理的问题,能避免走很多弯路。
    • 获取数据。“ 数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限”。总的来说数据要有具有“代表性”,对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。不仅如此还要对评估数据的量级,样本数量、特征数量,估算训练模型对内存的消耗。如果数据量太大可以考虑减少训练样本、降维或者使用分布式机器学习系统。
    • 特征工程
      特征工程包括从原始数据中特征构建、特征提取、特征选择,非常有讲究。深入理解实际业务场景下的问题,丰富的机器学习经验能帮助我们更好的处理特征工程。特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。数据挖掘的大部分时间就花在特征工程上面,是机器学习非常基础而又必备的步骤。数据预处理、数据清洗、筛选显著特征、摒弃非显著特征等等都非常重要。
    • 模型训练、诊断、调优
      模型诊断中至关重要的是判断过拟合、欠拟合,常见的方法是绘制学习曲线,交叉验证。通过增加训练的数据量、降低模型复杂度来降低过拟合的风险,提高特征的数量和质量、增加模型复杂来防止欠拟合。诊断后的模型需要进行进一步调优,调优后的新模型需要重新诊断,这是一个反复迭代不断逼近的过程,需要不断的尝试,进而达到最优的状态。
    • 模型验证、误差分析
      通过测试数据,验证模型的有效性,观察误差样本,分析误差产生的原因,往往能使得我们找到提升算法性能的突破点。误差分析主要是分析出误差来源与数据、特征、算法。
    • 模型融合
      提升算法的准确度主要方法是模型的前端(特征工程、清洗、预处理、采样)和后端的模型融合。

    1.8 样本不均衡问题

    主要三个方面,数据,模型和评估方法。

    • 数据上重采样和欠采样,使之均衡;

    • 模型上选对样本不均衡问题不敏感的模型,如决策树;

    • 评估方法,想之前所说查全率,查准率之类。

    1.9 损失函数

    • 0-1损失
    • 感知损失
    • Hinge损失
    • log损失、交叉熵
    • 平方损失
    • 指数损失
    • 绝对值损失

    参阅:http://www.csuldw.com/2016/03/26/2016-03-26-loss-function/

    2 监督学习

    2.1 朴素贝叶斯

    描述朴素贝叶斯?

    http://blog.csdn.net/u011239443/article/details/53735609#t35

    朴素贝叶斯对输入的数据有何要求?

    朴素贝叶斯对输入数据的表达形式敏感。NBC模型假设属性之间相互独立。

    极大似然估计与EM算法的区别?

    极大似然估计

    上式可以理解为,右边为在向量c条件下得到数据集 Dc D c 的概率,那么它便等于左边的向量c条件下得到数据集 Dc D c 中各条数据的概率的乘积。

    EM算法

    属性之间不完全相互独立,如何优化?

    2.2 决策树

    2.2.1 如何划分节点?

    • p(x):分类结果x的概率,即分类结果为x的数据量/总数据量
    • 信息:l(x) = -log2(p(x))
    • 信息熵:信息的期望值 p(x1)l(x1) + p(x2)l(x2) + …… ,可以评价一组不同类别的划分结果的混沌度。

    计算信息增益,选择信息增益最大的特征:

    2.2.2 如何做剪枝?

    2.2.3 信息增益缺点?

    2.2.4 基尼系数?

    2.2.5 决策树 有哪些类?哪些适合做gbdt ?

    决策树有ID3算法,2.2.1 所描述的就是ID3算法。除了ID3算法外,还有C4.5算法,C4.5和ID3的不同是使用了信息增益率,解决了2.2.3 所讲的信息增益的缺点。但是,GBDT使用的树是回归树。回归树算法有CART的最小二乘回归树:


    CART的分类树思想与回归树类似,不同的是 需要优化的是 2.2.4 所示的基尼系数。

    2.3 SVM

    2.3.1 推导svm?

    http://blog.csdn.net/u011239443/article/details/76572743
    http://blog.csdn.net/u011239443/article/details/76574969
    http://blog.csdn.net/u011239443/article/details/76598872

    2.3.2 支撑向量是什么?

    那些在间隔区边缘的训练样本点

    2.3.3 svm的损失函数?

    2.3.4 如何解决线性不可分的情况?

    • 少数点不可分,加入松弛变量。
    • 整体都不可分的话,核函数映射到高维空间使得线性可分

    ‌ 2.3.5 SVM与逻辑回归的联系与区别?

    软间隔SVM与逻辑回归的联系?

    损失函数
    软间隔SVM表示样本数据不必要求全部正确分类,允许少量的数据点犯错。于是将硬间隔SVM的优化目标由:

    在上面的优化目标中加上了惩罚项,C越大惩罚越大允许的错误越小。但是直接使用0/1损失函数的话其非凸、非连续,数学性质不好优化起来比较复杂,因此需要使用其他的数学性能较好的函数进行替换,替代损失函数一般有较好的数学性质。常用的三种替代函数:
    这里写图片描述

     一般的软间隔SVM采用的是hinge损失函数(合页损失函数)进行替代,可以得到常见的软件的SVM的优化目标函数。如果采用的是对数损失函数进行替代那么就和逻辑回归的优化目标几乎相同,这就得到了软间隔SVM与逻辑回归的数学上的联系,因此一般来说SVM的性能和逻辑回归的性能差不多。

    软间隔SVM与逻辑回归的区别

    • 逻辑回归通过输出预测概率后根据阈值进行判断类别,SVM则直接输出分割超平面,然后使用0/1函数对距离进行分类,不能直接输出概率值,如果需要SVM输出概率值则需要进行特殊处理,可以根据距离的大小进行归一化概率输出。
    • 逻辑回归可以使用多阈值然后进行多分类,SVM则需要进行推广。
    • SVM在训练过程只需要支持向量的,依赖的训练样本数较小,而逻辑回归则是需要全部的训练样本数据,在训练时开销更大。

    2.3.6 核函数有哪些?

    http://blog.csdn.net/u011239443/article/details/76598872

    2.4 集成学习

    2.4.1 gbdt

    2.4.1.1 gbdt、rf的区别?

    随机森林是 bagging 集成学习,是多棵树进行投票。
    gbdt

    更多可见 : http://blog.csdn.net/u011239443/article/details/77435463

    3 无监督学习

    3.1 k-means

    3.1.1 k-means 是时间、空间复杂度?

    时间复杂度:O(T * n * k * m)
    空间复杂度:O(( n + k ) * m)
    n:元素个数,k:聚类中心数,m:每个元素的特征项个数,T:迭代的次数

    4 深度学习

    4.1 神经网络

    4.1.1 描述神经网络?推导反向传播?

    http://blog.csdn.net/u011239443/article/details/76680704

    4.1.2 对比激活函数(注意优缺点)?

    http://blog.csdn.net/cyh_24/article/details/50593400

    4.1.3 描述dropout?

    4.1.4 ‌什么情况下,浅层神经网络更好?什么情况下,深层神经网络更好?

    浅层神经网络深层神经网络
    更加有效的训练难以训练
    更简单的结构选择复杂的结构选择
    更具有理论依据,但可能难以提取特征更加武断的依据,简化特征提取
    适合多项式组合比较明确的情况下适合多项式组合复杂未知的情况下

    4.1.5 梯度消失产生的原因?

    • 反向传播,前一层的梯度是由后一层梯度的乘积计算得到。假如每一层上的梯度小于1,越乘越小,到最前面的层就会梯度消失。

    • S型神经元,在01附近梯度很小,而w和b的梯度是有S函数的梯度因式,从而导致梯度变小。

    4.2 CNN

    4.2.1 feature map 计算?

    (n+2p-f)/s + 1

    • n:上一层长
    • p:填充数
    • f:过滤器长
    • s:步长

    4.2.2 池化层

    常见的池化方式有哪些?

    最大池,平均池,l2池

    检测图像的纹理,用什么池化层?

    max-pooling,可以进行信息压缩,不关心纹理的具体位置,而是否出现,大概在哪。

    池化层作用

    • invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
    • 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力

    https://www.zhihu.com/question/36686900

    4.3 LSTM

    • 遗忘门限
    • 输入门限

    • 输出门限

    参考:http://blog.csdn.net/u011239443/article/details/73196473

    5 平台架构

    5.1 Spark

    5.1.1 spark 为什么不适合做神经网络?

    (待~)

    5.2 Tensorflow

    5.2.1 描述下 Tensorflow 的基本架构?

    http://blog.csdn.net/u011239443/article/details/78945486

    6 业务场景题

    问题一

    数据格式: (用户特征,商品特征),预测用户是否会购买该商品?

    这里给出之前在导师公司做的一个解决方法:
    1.根据用户特征,按照一定规则给用户打上基础标签。
    2.根据基础标签,做聚类,得到K个聚类中心。
    3.各个聚类中心下的各个用户的所有(商品特征,是否购买)作为训练集,训练出K个二分类模型。
    4.测试数据根据其用户特征与各中心的距离,将其归为最近的聚类重心C下。根据商品特征,使用对应的二分类模型,进行预测。

    问题二

    打车软件从定价到下单,预测转化率,可以做哪些特征?

    展开全文
    u011239443 2017-07-30 11:43:27
  • 4.46MB qq_41445357 2020-08-17 10:38:41
  • 3星
    19.28MB sinat_35512245 2018-03-29 10:36:15
  • 问题1: 什么是偏差(bias)、方差(variable)之间的均衡? Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,...

    Q1: What’s the trade-off between bias and variance?

    问题1: 什么是偏差(bias)、方差(variable)之间的均衡?

    Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力。Bias 可能会导致模型欠拟合,使其难以具有较高的预测准确性,也很难将你的知识从训练集推广到测试集。

    Variance 是由于你使用的学习算法过于复杂而产生的错误。它反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。Variance 过高会导致算法对训练数据的高纬度变化过于敏感,这样会导致模型过度拟合数据。从而你的模型会从训练集里带来太多噪音,这会对测试数据有一定的好处。

    Bias-Variance 的分解,本质上是通过在基础数据集中添加偏差、方差和一点由噪声引起的不可约误差,来分解算法上的学习误差。从本质上讲,如果你使模型更复杂并添加更多变量,你将会失去一些 Bias 但获得一些 Variance,这就是我们所说的权衡(tradeoff)。这也是为什么我们在建模的过程中,不希望这个模型同时拥有高的偏差和方差。

    image

    Q2: What is the difference between supervised and unsupervised machine learning?

    问题2:监督学习和非监督学习有什么不同?

    监督学习需要train有label的数据。例如,为了进行classification(一项受监督的学习任务),您需要首先标记将用于培训模型的数据,以便将数据分类到标记的组中。相反的,无监督学习不需要明确标记数据。

    Q3: How is KNN different from k-means clustering?

    问题3: KNN和 k-means 聚类由什么不同?

    K-Nearest Neighbors是一种监督分类算法,而 k-means聚类是一种无监督的聚类算法。 虽然这些机制起初可能看起来相似,但这实际上意味着为了使K-Nearest Neighbors工作,你需要标记数据,以便将未标记的点分类(因此是最近邻居部分)。 K均值聚类仅需要一组未标记的点和阈值:算法将采用未标记的点并逐渐学习如何通过计算不同点之间的距离的平均值将它们聚类成组。

    这里的关键区别在于,KNN需要标记点,因此是有监督的学习,而k-means不是,因此是无监督学习。

    Q4: Explain how a ROC curve works.

    问题4:解释一下ROC曲线的原理

    ROC曲线是真阳率与各种阈值下的假阳率之间的对比度的图形表示。 它通常用作代表模型灵敏度(真阳性)与跌落之间的平衡或它将触发误报(假阳性)的概率。

    image

    Q5: Define precision and recall.

    问题5:定义精度和召回率

    召回(率)也称为真阳性率:您的模型声称的阳性数量与整个数据中的实际阳性数量相比。 精确度也称为阳性预测值,它衡量的是您的模型声称与实际声称的阳性数量相比的准确阳性数量。 在您预测在10个苹果的情况下有10个苹果和5个橙子的情况下,可以更容易地想到回忆和精确度。 你有完美的召回(实际上有10个苹果,你预测会有10个),但66.7%的精度,因为在你预测的15个事件中,只有10个(苹果)是正确的。

    Q6: What is Bayes’ Theorem? How is it useful in a machine learning context?

    问题6:什么是贝叶斯定理?它在机器学习环境中如何有用?

    贝叶斯定理描述了当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。 它给出了已知先验知识下事件的后验概率。

    在数学上,它表示为条件样本的真阳性率除以总体的假阳性率和条件的真阳性率之和。假设你在流感测试后有60%的机会真的感染了流感,但是在感染了流感的人中,50%的测试都是错误的,总人口只有5%的机会感染了流感。在做了阳性测试后,你真的有60%的机会患上流感吗?

    贝叶斯定理说不,它说你有一个(0.60.05)(条件样本的真阳性率)/(0.60.05)(条件样本的真阳性率)+(0.5*0.95)(人群的假阳性率)= 5.94%的机会感染流感。

    image

    贝叶斯理论是机器学习一个分支的幕后操纵大佬,所以在你考虑要准备一个机器学习的面试的时候一定不能忽略这个知识点。

    Q7: Why is “Naive” Bayes naive?

    问题7:为什么我们要称“朴素”贝叶斯?

    尽管 Naive Bayes 具有实际应用,特别是在文本挖掘中,但它被认为是“天真的”,因为它假设在实际数据中几乎不可能看到:条件概率被计算为组件个体概率的纯乘积。 这意味着特征的绝对独立性 – 这种情况在现实生活中可能永远不会遇到。

    正如 Quora 上一些评论者所说的那样,Naive Bayes 分类器发现你喜欢泡菜和冰淇淋之后,可能会天真地推荐你一个泡菜冰淇淋。

    image

    Q8: Explain the difference between L1 and L2 regularization.

    问题8:L1、L2正则之间有什么不同?

    L2正则,对应的是加入2范数,使得对权重进行衰减,从而达到惩罚损失函数的目的,防止模型过拟合。保留显著减小损失函数方向上的权重,而对于那些对函数值影响不大的权重使其衰减接近于0。相当于加入一个gaussian prior。

    L1正则 对应得失加入1范数,同样可以防止过拟合。它会产生更稀疏的解,即会使得部分权重变为0,达到特征选择的效果。相当于加入了一个laplacean prior。

    image

    Q9: What’s your favorite algorithm, and can you explain it to me in less than a minute?

    问题9:你最喜欢的算法是什么?把它解释一下。

    这种类型的问题测试了你对如何用平衡来传达复杂和技术上的细微差别的理解,以及快速和有效地总结的能力。确保你有选择,确保你能简单有效地解释不同的算法,使一个五岁的孩子能够掌握基础知识!

    Q10: What’s the difference between Type I and Type II error?

    问题10:第一类误差和第二类误差有什么区别?

    第一类误差指的是假正率,第二类指的是假负率。简单来说,第一类误差意味着假设为真的情况下,作出了拒绝原假设的一种错误推断。第二类误差意味着假设为假的情况下,做出了接受原假设的一种错误判断。

    举个例子:第一类误差,你误判一个男的他怀孕了。第二类误差,你误判了一位其实已经怀孕的女子没怀孕。

    Q11: What’s a Fourier transform?

    问题11:什么是傅立叶变换?

    傅立叶变换是将一般函数分解成对称函数叠加的一般方法。或者,正如这篇更直观的教程所说,在一杯冰沙中,我们就是这样找到配方的。傅立叶变换找到一组循环速度、振幅和相位,以匹配任何时间信号。傅立叶变换将信号从时间域转换为频率域-这是从音频信号或其他时间序列(如传感器数据)中提取特征的一种非常常见的方法。

    Q12: What’s the difference between probability and likelihood?

    问题12:概率和似然有什么区别?

    概率和似然都是指可能性,但在统计学中,概率和似然有截然不同的用法。概率描述了已知参数时的随机变量的输出结果;似然则用来描述已知随机变量输出结果时,未知参数的可能取值。例如,对于“一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;而对于“一枚硬币上抛十次,我们则可以问,这枚硬币正反面对称的“似然”程度是多少。

    概率(密度)表达给定θ下样本随机向量X=x的可能性,而似然表达了给定样本X=x下参数θ1(相对于另外的参数θ2)为真实值的可能性。我们总是对随机变量的取值谈概率,而在非贝叶斯统计的角度下,参数是一个实数而非随机变量,所以我们一般不谈一个参数的概率,而说似然。

    image

    Q13: What is deep learning, and how does it contrast with other machine learning algorithms?

    问题13:什么是深度学习,它与机器学习算法之间有什么联系?

    深度学习是与神经网络有关的机器学习的一个子集:如何使用反向传播和神经科学中的某些原理来更精确地建模大量未标记或半结构化数据。从这个意义上说,深度学习是一种无监督的学习算法,它通过使用神经网络来学习数据的表示。

    Q14: What’s the difference between a generative and discriminative model?

    问题14:生成模型与判别模型有什么区别?

    生成模型将学习数据类别,而判别模型将简单地学习不同类别数据之间的区别。 判别模型通常优于分类任务的生成模型。

    Q15- What cross-validation technique would you use on a time series dataset?

    问题15:交叉检验如何用在时间序列数据上?

    与标准的k-folds 交叉检验不同,数据不是随机分布的,而是具有时序性的。如果模式出现在后期,模型仍然需要选择先前时间的数据,尽管前期对模式无影响。我们可以如下这么做:

    fold1:training[1], test[2]

    fold2:training[1 2], test[3]

    fold3:training[1 2 3], test[4]

    fold4:training[1 2 3 4], test[5]

    fold5:training[1 2 3 4 5], test[6]

    Q16- How is a decision tree pruned?

    问题16:如何对决策树进行剪枝?

    剪枝是在决策树中,为了降低模型的复杂度,提高决策树模型的预测精度,去除预测能力较弱的分支后所发生的现象。修剪可以自下而上和自上而下进行,方法包括减少错误修剪和成本复杂度修剪。

    减少错误修剪可能是最简单的版本:替换每个节点。如果不降低预测精度,则保持修剪。虽然很简单,但这种启发式方法实际上非常接近于一种可以最大限度地优化准确性的方法。

    image

    Q17: Which is more important to you? Model accuracy, or model performance?

    问题17:模型的精度和模型的性能哪个对你更重要?

    这个问题测试您对机器学习模型性能细微差别的理解!机器学习面试问题往往着眼于细节。有些模型具有更高的准确度,而在预测能力方面表现较差 — 这有什么意义?

    好吧,这一切都与模型的准确性仅仅是模型性能的一个子集有关,在这一点上,有时是一个误导。例如,如果你想在一个拥有数百万样本的海量数据集中检测欺诈行为,那么一个更准确的模型很可能会预测,如果只有极少数的案例是欺诈行为,那么根本就不会有欺诈行为。然而,对于预测模型来说,这是无用的——一个旨在发现声称根本没有欺诈的欺诈的模型!这样的问题可以帮助您证明您理解模型的准确性并不是模型性能的全部。

    Q18: What’s the F1 score? How would you use it?

    问题18:什么是F1数,怎么使用它?

    F1分数是衡量模型性能的指标。它是模型精度和召回的加权平均值,结果趋向于1是最好的,结果趋向于0是最差的。你可以在分类测试中使用它,而真正的否定并不重要。

    Q19: How would you handle an imbalanced dataset?

    问题19:如何处理一个不平衡的数据集?

    例如,当您有一个分类测试,并且90%的数据都在一个类中时,就会产生一个不平衡的数据集。这就导致了问题:如果您对其他类别的数据没有预测能力,那么90%的精度然而可能会出现偏差!下面是一些克服困难的策略:

    1-收集更多数据,甚至数据集中的不平衡。

    2-对数据集重新取样以纠正不平衡。

    3-在你的数据集中尝试一个不同的算法。

    这里重要的是,您对不平衡数据集可能造成的损害以及如何平衡具有敏锐的感知。

    image

    Q20: When should you use classification over regression?

    问题20:什么时候你应该使用分类而不是回归?

    分类产生离散值并将数据集转换为严格的类别,而回归则提供连续的结果,使您能够更好地区分各个点之间的差异。如果您希望结果反映数据集中数据点对某些明确类别的归属性(例如:如果您希望知道某个名称是男性还是女性,而不仅仅是它们与男性和女性名称之间的关联性),则可以使用分类而不是回归。

    Q21: Name an example where ensemble techniques might be useful.

    问题21:举个例子,说明使用集成学习会很有用。

    集成学习通过组合一些基学习算法来优化得到更好的预测性能,通常可以防止模型的过拟合使模型更具有鲁棒性。

    你可以列举一些集成学习的例子,如bagging、boosting、stacking等,并且了解他们是如何增加模型预测能力的。

    Q22: How do you ensure you’re not overfitting with a model?

    问题22:你如何确保你的模型没有过拟合?

    过度拟合的训练数据以及数据携带的噪音,对于测试数据会带来不确定的推测。有如下三种方法避免过拟合:

    1. 保持模型尽可能地简单:通过考量较少的变量和参数来减少方差,达到数据中消除部分噪音的效果。

    2. 使用交叉检验的手段如:k-folds cross-validation。

    3. 使用正则化的技术如:LASSO方法来惩罚模型中可能导致过拟合的参数。

    Q23: What evaluation approaches would you work to gauge the effectiveness of a machine learning model?

    问题23:如何评估你的机器学习模型的有效性?

    首先你需要将数据分成训练集和测试集,或者使用给交叉验证方法分割。然后你需要选择度量模型表现的metrics,如F1数、准确率、混淆矩阵等。更重要的是,根据实际情况你需要理解模型度量的轻微差别,以便于选择正确的度量标准。

    Q24: How would you evaluate a logistic regression model?

    问题24:如何评估一个LR model?

    上述问题的一部分。你必须演示对逻辑回归的典型目标(分类、预测等)的理解,并提供一些示例和用例。

    Q25: What’s the “kernel trick” and how is it useful?

    问题25:什么是核技巧,有什么用处?

    核技巧使用核函数,确保在高维空间不需要明确计算点的坐标,而是计算数据的特征空间中的内积。这使其具有一个很有用的属性:更容易的计算高维空间中点的坐标。许多算法都可以表示称这样的内积形式,使用核技巧可以保证低维数据在高维空间中运用算法进行计算。

    image

    Q26: How do you handle missing or corrupted data in a dataset?

    问题26:如何处理数据集中丢失或损坏的数据?

    您可以在数据集中找到丢失/损坏的数据,然后删除这些行或列,或者决定用另一个值替换它们。

    在pandas中,有两种非常有用的方法:isNull()和dropna(),这两种方法将帮助您查找缺少或损坏数据的数据列,并删除这些值。如果要用占位符值(例如0)填充无效值,可以使用fillna()方法。

    Q27: Do you have experience with Spark or big data tools for machine learning?

    问题27:你是否有使用Spark或大数据工具进行机器学习的经验?

    您需要熟悉不同公司的大数据含义以及他们想要的不同工具。Spark是目前最受欢迎的大数据工具,能够快速处理海量数据集。老实说,如果你没有所需工具的经验,同时看看工作描述,看看什么工具需要:你会想投资去熟悉它们。

    Q28: Pick an algorithm. Write the ****psuedo-code for a parallel implementation.

    问题28:选择一个算法。为并行实现编写psuedo代码。

    这类问题展示了您并行思考的能力,以及如何在处理大数据的编程实现中处理并发性。请看一下伪代码框架(如peril-L)和可视化工具(如Web序列图),以帮助您展示编写反映并行性的代码的能力。

    Q29: What are some differences between a linked list and an array?

    问题29:链表和数组之间有什么区别?

    数组是有序的对象集合。 链表是一系列带有指针的对象,指示如何按顺序处理它们。 与链表不同,数组假定每个元素具有相同的大小。 链表可以更容易地有机增长:必须预先定义或重新定义阵列以进行有机增长。 改组链接列表涉及改变哪些点指向哪里 – 同时,改组数组更复杂并占用更多内存。

    Q30: Describe a hash table.

    问题30:描述哈希表。

    哈希表是一种产生关联数组的数据结构。 通过使用散列函数将键映射到某些值。 它们通常用于数据库索引等任务。

    image

    Q31: Which data visualization libraries do you use? What are your thoughts on the best data visualization tools?

    问题31:你使用哪些数据可视化库? 你对最佳数据可视化工具有何看法?

    这里重要的是定义您对如何在工具方面正确可视化数据和个人偏好的看法。 流行的工具包括R的ggplot,Python的seaborn和matplotlib,以及Plot.ly和Tableau等工具。

    这些机器学习面试问题涉及如何将您的一般机器学习知识应用于特定公司的要求。 您将被要求创建案例研究,并通过您的机器学习技能扩展您所申请的公司和行业的知识。

    image

    Q32: How would you implement a recommendation system for our company’s users?

    问题32:您如何为我们公司的用户实施推荐系统?

    许多这种类型的机器学习面试问题将涉及机器学习模型的实施以解决公司的问题。 您必须深入研究公司及其行业,尤其是公司的收入驱动因素,以及公司在其所在行业中所采用的用户类型。

    Q33: How can we use your machine learning skills to generate revenue?

    问题33:我们如何利用您的机器学习技能来创造收入?

    这是一个棘手的问题。理想的答案将证明您对推动业务发展的因素以及您的技能如何关联的了解。例如,如果你正在面试音乐流初创公司Spotify,你可以说,你在开发更好的推荐模式方面的技能将增加用户保留率,从长远来看这将增加收入。

    上面链接的Startup Metrics Slideshare将帮助您准确了解在考虑支出和成长时,哪些绩效指标对初创技术公司是重要的。

    Q34: What do you think of our current data process?

    问题34:你认为我们当前的数据处理过程如何?

    这类问题要求你认真倾听,并以富有建设性和洞察力的方式传达反馈。 你的面试官正在试图判断您是否是他们团队中的重要成员,以及你是否根据公司或行业特定条件,掌握了为什么某些事情按照公司数据流程的方式设置的细微差别。 他们试图看看你是否可以成为有见地同行。 随行而动。

    这一系列的机器学习面试问题试图衡量你对机器学习的热情和兴趣。正确的答案将作为你承诺终身学习机器学习的证明。

    image

    Q35: What are the last machine learning papers you’ve read?

    问题35:你读过的最后一篇机器学习论文是什么?

    如果你想表现出对机器学习职位的兴趣,就必须掌握最新的机器学习科学文献。这篇深入学习的后代(从Hinton到Bengio再到LeCun)对自然的深入学习的概述可以是一篇很好的参考论文,也可以是一篇深入学习中正在发生的事情的概述,以及你可能想引用的那种论文。

    Q36: Do you have research experience in machine learning?

    问题36:你在机器学习方面有研究经验吗?

    与最后一点相关的是,大多数为机器学习职位招聘的组织都会寻找你在该领域的正式经验。由该领域的先行者共同撰写或监督的研究论文,可以使你在被雇佣和不被雇佣之间产生差异。确保你已经准备好了一份关于你的研究经验和论文的总结,如果你不准备的话,还要对你的背景和缺乏正式研究经验做出解释。

    Q37: What are your favorite use cases of machine learning models?

    问题37:你最喜欢的机器学习模型的用例是什么?

    这里我们拿 Quora 上面的一个帖子为例,帖子在这里:https://bit.ly/2MGYyQY

    上面的 Quora 帖子里包含一些示例,例如决策树,它根据智商分数将人们分类为不同的智力层次。确保你心里有几个例子,并描述与你产生共鸣的地方。重要的是你要对机器学习的实现方式表现出兴趣。

    Q38:How would you approach the “Netflix Prize” competition?

    问题38:你想以什么方式赢得“Netflix奖”比赛?

    Netflix奖是一项著名的竞赛,Netflix提供了 $1,000,000的奖金,以获得更好的协同过滤算法(collaborative filtering algorithm)。关于这个比赛的最后赢家, BellKor;他们让这个算法效率提升百分之十,并且给出了多种解法。多了解这些行业相关的 Case 并且和你面试官侃侃而谈能够体现你对于机器学习这个领域的关注

    Q39: Where do you usually source datasets?

    问题39:您通常在哪里寻找数据集?

    像这样的机器学习面试问题试图让你了解机器学习兴趣的核心。 真正热衷于机器学习的人将会独自完成侧面项目,并且很清楚那些伟大的数据集是什么。 如果您遗失任何内容,请查看 Quandl 获取的经济和财务数据,以及 Kaggle 的数据集集合,以获取其他优秀列表。

    Q40: How do you think Google is training data for self-driving cars?

    问题40:你认为谷歌是如何为自动驾驶汽车提供培训数据的?

    像这样的机器学习面试问题确实测试了你对不同机器学习方法的知识,如果你不知道答案,你的创造力。谷歌目前正在使用 recaptcha 来获取店面和交通标志上的标签数据。他们还建立在由Sebastian Thrun在谷歌(Googlex)收集的培训数据的基础上 — 其中一些数据是由他在沙漠沙丘上驾驶马车的研究生获得的!

    Q41: How would you simulate the approach AlphaGo took to beat Lee Sedol at Go?

    问题41:你将如何模拟阿尔法戈在围棋中****击败李世乭的****方法?

    在五个系列赛中,阿尔法戈击败了围棋中最优秀的人类选手李思多,这是机器学习和深度学习史上一个真正具有开创性的事件。上面的 Nature 论文描述了这是如何通过“蒙特卡洛树搜索(Monte Carlo Tree Search)和深神经网络(Deep Neural Networks)来实现的,这些神经网络经过有监督的学习、人类专家游戏和加强自玩游戏的学习。”

    看完这篇文章,你是不是觉得自己在机器学习的道理上可以走的更顺畅了呢

     


    作者:婉妃
    链接:https://www.jianshu.com/p/2b375a770f6e
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
    wuxiaosi808 2020-07-02 15:08:03
  • 以下内容接机器学习面试问题3。内容比较粗略,细化会在后期完成,敬请期待。

    以下内容接机器学习面试问题3。内容比较粗略,细化会在后期完成,敬请期待。

    神经网络

    神经网络算法涉及的知识点内容较多,需要深入专研,可参考:
    http://max.book118.com/html/2016/0303/36785438.shtm

    BP网络的四个学习过程:(δ规则)

    1)模式顺传播 ,输入模式由输入层经中间层向输出层的“模式顺传播”过程

    2)误差逆传播 ,网络的希望输出与网络实际输出之差的误差信号由输出层经中间层向输入层逐层修正连接权的“误差逆传播”过程

    3)记忆训练 ,由“模式顺传播”与“误差逆传播”的反复交替进行的网络“记忆训练”过程

    4)学习收敛 ,网络趋向收敛即网络的全局误差趋向极小值的“学习收敛”过程

    协同过滤

    是一种基于内容的推荐算法。

    协同过滤的核心:
    要实现协同过滤,需要进行如下几个步骤
    1)收集用户偏好
    2)找到相似的用户或者物品
    3)计算并推荐

    可参考的博客:
    http://blog.csdn.net/acdreamers/article/details/44672305

    EM算法

    EM算法是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

    训练数据只有输入没有对应的输出{(x1, ),(x2, ),…,(xn, )},从这样的数据学习模型称为非监督学习问题
    EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。X为观测数据,Y为未观测数据。

    EM算法应用极其广泛,主要应用于含有隐变量的概率模型的学习。高斯混合模型的参数估计和隐马尔可夫模型的非监督学习均是EM算法的重要应用。

    EM算法还可以解释为F函数的极大-极大算法。EM算法有许多变形,如GEM算法。GEM算法的特点是每次迭代增加F函数值(并不一定是极大化F函数),从而增加似然函数值。

    展开全文
    u012073449 2016-07-28 22:17:12
  • 9.17MB wuzhongqiang 2019-11-24 19:06:24
  • ChenVast 2018-09-17 11:00:18
  • 874KB q118008984 2018-05-04 15:51:04
  • q383700092 2017-02-28 17:08:18
  • alicelmx 2019-08-13 07:58:54
  • 1.03MB huhuyanyanqiang 2020-07-15 13:29:51
  • 4.73MB yangyang3401 2019-07-15 17:01:48
  • 2.42MB wrgcon520 2018-09-25 10:35:14
  • 9.59MB rocky_su 2019-03-18 12:06:59
  • 282KB tox33 2018-07-15 22:49:16
  • 76KB back_to_myself 2018-06-22 14:52:23
  • alicelmx 2019-08-31 23:11:11
  • 1003KB chf1094 2018-07-06 09:06:39
  • 5.93MB tommyxue 2018-01-03 11:37:26
  • 9.55MB rfhjty 2018-10-27 21:42:36
  • 83KB qq_43245200 2020-04-09 22:15:08
  • wyisfish 2018-01-25 22:09:33
  • 315KB weixin_38711041 2021-01-07 03:01:58
  • yolohohohoho 2019-02-24 09:22:41
  • yolohohohoho 2019-02-24 10:43:00

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,657
精华内容 32,662
关键字:

机器学习面试问题