社会焦点

回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)(2)

字号+ 作者: 来源: 2017-05-20

梯度提升树 R 实现:https://cran.r-project.org/web/packages/gbm/index.html 1.3 深度学习 深度学习是指能学习极其复杂模式的多层神经网络。该算法使用在输入层和输出层之间的隐藏层对数据的中间表征建模,这也是

梯度提升树 R 实现:https://cran.r-project.org/web/packages/gbm/index.html

1.3 深度学习

深度学习是指能学习极其复杂模式的多层神经网络。该算法使用在输入层和输出层之间的隐藏层对数据的中间表征建模,这也是其他算法很难学到的部分。

  回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)

深度学习还有其他几个重要的机制,如卷积和 drop-out 等,这些机制令该算法能有效地学习到高维数据。然而深度学习相对于其他算法需要更多的数据,因为其有更大数量级的参数需要估计。

  • 优点:深度学习是目前某些领域最先进的技术,如计算机视觉和语音识别等。深度神经网络在图像、音频和文本等数据上表现优异,并且该算法也很容易对新数据使用反向传播算法更新模型参数。它们的架构(即层级的数量和结构)能够适应于多种问题,并且隐藏层也减少了算法对特征工程的依赖。

  • 缺点:深度学习算法通常不适合作为通用目的的算法,因为其需要大量的数据。实际上,深度学习通常在经典机器学习问题上并没有集成方法表现得好。另外,其在训练上是计算密集型的,所以这就需要更富经验的人进行调参(即设置架构和超参数)以减少训练时间。

  • Python 资源:https://keras.io/

  • R 资源:http://mxnet.io/

  • 1.4 最近邻算法

    最近邻算法是「基于实例的」,这就意味着其需要保留每一个训练样本观察值。最近邻算法通过搜寻最相似的训练样本来预测新观察样本的值。

    而这种算法是内存密集型,对高维数据的处理效果并不是很好,并且还需要高效的距离函数来度量和计算相似度。在实践中,基本上使用正则化的回归或树型集成方法是最好的选择。

    2、分类方法

    分类方法是一种对离散型随机变量建模或预测的监督学习算法。使用案例包括邮件过滤、金融欺诈和预测雇员异动等输出为类别的任务。

    许多回归算法都有与其相对应的分类算法,分类算法通常适用于预测一个类别(或类别的概率)而不是连续的数值。

    2.1 Logistic 回归(正则化)

    Logistic 回归是与线性回归相对应的一种分类方法,且该算法的基本概念由线性回归推导而出。Logistic 回归通过 Logistic 函数(即 Sigmoid 函数)将预测映射到 0 到 1 中间,因此预测值就可以看成某个类别的概率。

      回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)

    该模型仍然还是「线性」的,所以只有在数据是线性可分(即数据可被一个超平面完全分离)时,算法才能有优秀的表现。同样 Logistic 模型能惩罚模型系数而进行正则化。

  • 优点:输出有很好的概率解释,并且算法也能正则化而避免过拟合。Logistic 模型很容易使用随机梯度下降和新数据更新模型权重。

  • 缺点:Logistic 回归在多条或非线性决策边界时性能比较差。

  • Python 实现:http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression

  • R 实现:https://cran.r-project.org/web/packages/glmnet/index.html

  • 2.2 分类树(集成方法)

    与回归树相对应的分类算法是分类树。它们通常都是指决策树,或更严谨一点地称之为「分类回归树(CART)」,这也就是非常著名的 CART 的算法。

    回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)

      简单的随机森林

  • 优点:同回归方法一样,分类树的集成方法在实践中同样表现十分优良。它们通常对异常数据具有相当的鲁棒性和可扩展性。因为它的层级结构,分类树的集成方法能很自然地对非线性决策边界建模。

  • 缺点:不可约束,单棵树趋向于过拟合,使用集成方法可以削弱这一方面的影响。

  • 随机森林 Python 实现:http://scikit-learn.org/stable/modules/ensemble.html#regression

  • 随机森林 R 实现:https://cran.r-project.org/web/packages/randomForest/index.html

  • 梯度提升树 Python 实现:http://scikit-learn.org/stable/modules/ensemble.html#classification

  • 梯度提升树 R 实现:https://cran.r-project.org/web/packages/gbm/index.html

  • 2.3 深度学习

    深度学习同样很容易适应于分类问题。实际上,深度学习应用地更多的是分类任务,如图像分类等。

  • 优点:深度学习非常适用于分类音频、文本和图像数据。

  • 缺点:和回归问题一样,深度神经网络需要大量的数据进行训练,所以其也不是一个通用目的的算法。

  • Python 资源:https://keras.io/

  • 转载请注明出处。


  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章