机器学习 面试常见问题&答案 ②

  • 欠拟合(一般表明高误差)html

    • 精度微信

      • 如前所述若是模型具备足够的数据,但因不够复杂而没法捕捉基本关系,则会出现误差。这样一来,模型一直会系统地错误表示数据,从而致使预测精度低。这种现象叫作欠拟合(underfitting)。
      • 简单来讲,若是模型不适当,就会出现误差。举个例子:若是对象是按颜色和形状分类的,但模型只能按颜色来区分对象和将对象分类(模型过分简化),于是一直会错误地分类对象。
      • 或者,咱们可能有本质上是多项式的连续数据,但模型只能表示线性关系。在此状况下,咱们向模型提供多少数据并不重要,由于模型根本没法表示其中的基本关系,咱们须要更复杂的模型。
  • 过拟合(一般表明高方差)网络

    • 过拟合又能够称之为维度灾难。
    • 机器学习中的维度灾难 -
      红色石头的专栏 - CSDN博客 https://blog.csdn.net/red_stone1/article/details/71692444
    • 过少的数据样本与有效特征,太高的维度,会致使模型学到噪声和没必要要的无效特征,这个概念叫作过拟合,是维度灾难的一个直接后果。机器学习

      • image
    • 在训练模型时,一般使用来自较大母体(训练集)的有限数量样本。若是利用选择的数据子集反复训练模型,能够预料它的预测结果会因提供给它的具体样本而异。在这里,方差(variance)用来测量预测结果对于任何给定的测试样本会出现多大的变化。
    • 出现方差是正常的,但方差太高代表模型没法将其预测结果泛化到从中抽取训练样本的较大母体。对训练集高度敏感也称为过拟合(overfitting),并且一般出如今模型过于复杂或咱们没有足够的数据支持它时。
    • 一般,能够利用更多数据进行训练,以下降模型预测结果的方差并提升精度。
  • 如何改进模型的有效性函数

    • 咱们能够看到,在给定一组固定数据时,模型不能过于简单或复杂。若是过于简单,模型没法了解数据并会错误地表示数据。可是,若是创建很是复杂的模型,则须要更多数据才能了解基本关系,不然十分常见的是,模型会推断出在数据中实际上并不存在的关系。
    • 关键在于,经过找出正确的模型复杂度来找到最大限度下降误差和方差的最有效点。固然,数据越多,模型随着时间推移会变得越好。  
    • 要详细了解误差和方差,建议阅读 Scott Fortmann-Roe
      撰写的这篇文章。http://scott.fortmann-roe.com...
    • 除了选定用来训练模型的数据子集外,您使用的哪些来自给定数据集的特征也会显著影响模型的误差和方差。
  • 聊一下模型训练过程当中的学习曲线性能

    • 咱们根据模型经过可视化图形从数据中学习的能力来探讨误差与方差之间的关系。机器学习中的学习曲线是一种可视化图形,能根据一系列训练实例中的训练和测试数据比较模型的指标性能。在查看数据与偏差之间的关系时,咱们一般会看到,随着训练点数量的增长,偏差会趋于降低。因为咱们尝试构建从经验中学习的模型,所以这颇有意义。咱们将训练集和测试集分隔开,以便更好地了解可否将模型泛化到未见过的数据而不是拟合到刚见过的数据。在学习曲线中,当训练曲线和测试曲线均达到稳定阶段,而且二者之间的差距再也不变化时,则能够确认模型已尽其所能地了解数据。学习

      • 误差测试

        • 在训练偏差和测试偏差收敛而且至关高时,这实质上表示模型具备误差。不管咱们向其提供多少数据,模型都没法表示基本关系,于是出现系统性的高偏差。
      • 方差spa

        • 若是训练偏差与测试偏差之间的差距很大,这实质上表示模型具备高方差。与误差模型不一样的是,若是有更多可供学习的数据,或者能简化表示数据的最重要特征的模型,则一般能够改进具备方差的模型。
      • 理想的学习曲线.net

        • 模型的最终目标是,偏差小并能很好地泛化到未见过的数据(测试数据)。若是测试曲线和训练曲线均收敛,而且偏差极低,就能看到这种模型。这种模型能根据未见过的数据很是准确地进行预测。
  • 说一下你理解的信息增益(Information gain)

    • 熵:表示变量的不肯定性。
    • 条件熵:在一个条件下,变量的不肯定性。
    • 信息增益:熵 - 条件熵
    • 在一个条件下,信息不肯定性减小的程度!

      • 例子:原来明天下雨例如信息熵是2,条件熵是0.01(由于若是是阴天就下雨的几率很大,信息就少了),这样相减后为1.99,在得到阴天这个信息后,下雨信息不肯定性减小了1.99!是不少的!因此信息增益大!也就是说,阴天这个信息对下雨来讲是很重要的!
      • 因此在特征选择的时候经常用信息增益,若是IG(信息增益大)的话那么这个特征对于分类来讲很关键~~

决策树就是这样来找特征的。

  • 说一下分类和回归的区别?

    • 二者追到本质是同样。

      • 分类模型和回归模型本质同样,分类模型可将回归模型的输出离散化,回归模型也可将分类模型的输出连续化,举几个例子:
    • Logistic Regression 和 Linear Regression:

      • Linear Regression: 输出一个标量
        wx+b,这个值是连续值,因此能够用来处理回归问题
      • Logistic Regression:把上面的 wx+b 经过 sigmoid
        函数映射到(0,1)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另外一类,能够用来处理二分类问题
      • 更进一步:对于N分类问题,则是先获得N组w值不一样的
        wx+b,而后归一化,好比用 softmax
        函数,最后变成N个类上的几率,能够处理多分类问题
    • Support Vector Regression 和 Support Vector Machine:

      • SVR:输出
        wx+b,即某个样本点到分类面的距离,是连续值,因此是回归模型
      • SVM:把这个距离用 sign(·)
        函数做用,距离为正(在超平面一侧)的样本点是一类,为负的是另外一类,因此是分类模型
    • Naive Bayes 用于分类 和 回归:

      • 用于分类:y是离散的类别,因此获得离散的 p(y|x),给定 x
        ,输出每一个类上的几率
      • 用于回归:对上面离散的 p(y|x)求指望
        ΣyP(y|x),就获得连续值。但由于此时y自己是连续的值,因此最地道的作法是,获得连续的几率密度函数p(y|x),而后再对y求指望。参考 http://www.cs.waikato.ac.nz/~eibe/pubs/nbr.pdf
    • 前馈神经网络(如 CNN 系列) 用于 分类 和 回归:

      • 用于回归:最后一层有m个神经元,每一个神经元输出一个标量,m个神经元的输出能够看作向量
        v,现所有连到一个神经元上,则这个神经元输出
        wv+b,是一个连续值,能够处理回归问题,跟上面 Linear Regression
        思想同样
      • 用于N分类:如今这m个神经元最后链接到 N 个神经元,就有 N
        组w值不一样的 wv+b,同理能够归一化(好比用 softmax )变成
        N个类上的几率(补充一下,若是不用 softmax,而是每一个 wx+b
        用一个
        sigmoid,就变成多标签问题,跟多分类的区别在于,样本能够被打上多个标签)
    • 循环神经网络(如 RNN 系列) 用于分类 和 回归:

      • 用于回归 和 分类: 跟 CNN 相似,输出层的值 y =
        wv+b,可作分类可作回归,只不过区别在于,RNN
        的输出跟时间有关,即输出的是 {y(t),
        y(t+1),...}序列(关于时间序列,见下面的更新)
    • 上面的例子其实都是从 prediction 的角度举例的,若是从 training 角度来看,分类模型和回归模型的目标函数不一样,分类常见的是 log loss,hinge loss, 而回归是 square loss

 
 
  
 机器学习技术交流二维码

如文章你已看懂,点个「喜欢」便可。如若错误以及不清晰的地方,随时提出。欢迎扫一扫上面二维码加入个人我的微信号进行技术交流。    

相关文章
相关标签/搜索