zoukankan      html  css  js  c++  java
  • 机器学习算法岗面试常见问题

    过拟合原因 
    数据:数据不规范,数据量少,数据穿越,统计特征用到了未来的信息或者标签信息 
    算法:算法过于复杂 
    解决: 
    1、将数据规范化,处理缺失值,增加数据量,采样,添加噪声数据 
    2、正则化,控制模型复杂程度, 
    3、early stoping,减少迭代次数,减少树的深度, 
    4、学习率调大/小点、 
    5、融合几个模型

    L1和L2的区别 
    1、L1是Lasso Regression,表示向量中每个元素绝对值的和:L1范数的解通常是稀疏性的,倾向于选择数目较少的一些非常大的值或者数目较多的insignificant的小值。 
    2、L2是岭回归,Ridge Regression,是欧氏距离也就是平方和的平方根。L2范数越小,可以使得w的每个元素都很小,接近于0,但L1范数不同的是他不会让它等于0而是接近于0。 
    3、L1正则化的w可取的值是转置的方形,L2对应的是圆形。这样损失函数l(w)的最小值更容易在L1对应的边角上取得,从而这些维度变成0了。 
    从贝叶斯的角度来看,加入正则项相当于加入了一种先验。即当训练一个模型时,仅依靠当前的训练数据集是不够的,为了实现更好的泛化能力,往往需要加入先验项。 
    L1范数相当于加入了一个Laplacean先验; 
    L2范数相当于加入了一个Gaussian先验。 
    4、L2对大数的惩罚更大,但是解相对来说比较均匀。

    生成模型和判别模型区别 
    对于输入x,类别标签y: 
    生成式模型估计它们的联合概率分布P(x,y) 
    Gaussians、Naive Bayes、Mixtures of Multinomials 
    Mixtures of Gaussians、Mixtures of Experts、HMMs 
    Sigmoidal Belief Networks, Bayesian Networks、Markov Random Fields 
    Latent Dirichlet Allocation

    判别式模型估计条件概率分布P(y|x) 
    Logistic Regression、SVM、Traditional Neural Networks、Nearest Neighbor、 
    CRF、Boosting、Linear Regression

    svm算法的原理、如何组织训练数据、如何调节惩罚因子、如何防止过拟合、svm的泛化能力、增量学习 
    1、SVM是一种二类分类的模型,它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。 
    2、 
    3、惩罚因子C决定了你有多重视离群点带来的损失,显然当所有离群点的松弛变量的和一定时,你定的C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的值马上变成无限大,马上让问题变成无解,这就退化成了硬间隔问题。 
    惩罚因子C不是一个变量,整个优化问题在解的时候,C是一个你必须事先指定的值,指定这个值以后,解一下,得到一个分类器,然后用测试数据看看结果怎么样,如果不够好,换一个C的值,再解一次优化问题,得到另一个分类器,再看看效果,如此就是一个参数寻优的过程,但这和优化问题本身决不是一回事,优化问题在解的过程中,C一直是定值,要记住。 
    4、解决过拟合的办法是为SVM引入了松弛变量ξ(slack variable),将SVM公式的约束条件改为。因为松弛变量能够容忍异常点的存在,我们的支持向量和超平面都不会受到它的影响。 
    我们加上松弛变量的平方和,并求最小值。这样就达到一个平衡:既希望松弛变量存在以解决异常点问题,又不希望松弛变量太大导致分类解决太差。 
    LR和SVM的联系与区别: 
    联系: 
    1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题) 
    2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。 
    区别: 
    1、LR是参数模型,SVM是非参数模型。 
    2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。 
    3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。 
    4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。 
    5、logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。

  • 相关阅读:
    POJ 3320 Jessica's Reading Problem
    引用参数和传值参数的区别
    IBM 的数据库Informix 常用代语法
    设计模式之原型模式
    UBoot中使用tftp下载文件出现错误TFTP error: 'Access violation' (2)的解决办法
    printf格式控制符的完整格式
    如何打印hostent结构体中的所有数据
    Informix 数据库客户端 dbvisualizer SQL Commander 乱码解决方案
    设计模式之模版方法模试
    nfs: server 192.168.37.200 not responding, still trying的解决办法
  • 原文地址:https://www.cnblogs.com/hfdkd/p/7782990.html
Copyright © 2011-2022 走看看