Kaggle Machine Learning 教程学习(五)

 四、算法选择

  这一步骤让我很兴奋,终于谈到算法了,虽然没代码、没公式。因为教程君表示并不想过深的去探讨算法细节,于是着重于从算法的应用场景、算法的缺点、如何选择算法来纵向展开。

  我们的训练模型一般分为监督学习、无监督学习以及强化学习三种。教程中只提到了前两种,而训练算法又分为回归、分类以及聚类。其中回归与分类属于监督学习分,聚类属于无监督学习。

  教程中提到的适用于监督学习下的拟合算法:

    线性回归(Linear regression)、

    套索回归(Lasso regression)、

    岭回归(Ridge regression)、

    弹性网络正则化(Elastic net regularization)、

    p.s.逻辑回归(Logistic regression)。

  以及集成学习(Ensemble Learning)算法:

    集成算法是将多个分类器集成起来而形成的新的分类算法。又称元算法(meta-algorithm)。

    回归树(Regression Tree)、分类树(Classification Tree),统称CART。回归树是回归模型下的算法,分类树分类模型下的算法,它们都是一种决策树(Decision trees)。

    当集成模型是决策树时,一般有两种集成学习算法:随机森林(Random Forest)、梯度增强树(Gradient Boosted Tree)。

  1.回归

    线性回归使用最普遍的方法就是最小二乘法(Least Squares),最小二乘法的目标函数:

$$ min_{\omega}\space\space\space\Vert X_{\omega} - y \Vert_{2}^{2} $$

    虽然最小二乘是最常用的分析方法,然而,它有两个缺点:过拟合(overfitting)与不容易表达非线性(即离散)关系。

      (1)如何防止过拟合?比较好的方法就是对其加入正则化(regularization),其中常见的优化算法:索套回归(最小二乘法 + L1范数正则项(1阶范数))、岭回归(最小二乘法 + L2范数正则项(2阶范数))、弹性网正则化(L1 + L2范数正则项)。其中L1,L2范数正则项的系数叫做惩罚因子(penalty term)。

        Lasso的目标函数:

$$ min_{\omega}\space\space\space\frac{1}{2n}\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\Vert\omega\Vert_{1} $$

$$ 其中 \alpha 是常数(即惩罚系数),\Vert\omega\Vert_{1} 是L_{1}范数 $$。

        Ridge适用于训练模型发生过拟合、虚拟变量陷阱(第四篇提到过)等情况,Ridge的最小化目标函数:

$$ min_{\omega}\space\space\space\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\Vert\omega\Vert_{2}^{2} $$

$$ 这里 \alpha \geq 0 。 $$

         Elastic-net的目标函数:

$$ min_{\omega}\space\space\space\frac{1}{2n}\Vert X_{\omega} - y \Vert_{2}^{2} + \alpha\rho\Vert\omega\Vert_{1} + \frac{\alpha(1 - \rho)}{2}\Vert\omega\Vert_{2}^{2} $$

  2.分类

    逻辑回归(Logistic regression),逻辑回归是线性回归的分类任务下对应的算法。

      L2范数-Logistic regression模型:

$$ min_{\omega,c}\space\space\space\frac{1}{2}\omega^{T}\omega + C\sum_{i=1}^{n}log(e^{-y_{i}(X_{i}^{T}\omega + c)} + 1) $$

      L1范数-Logistic regression模型:

$$ min_{\omega,c}\space\space\space\Vert\omega\Vert_{1} + C\sum_{i=1}^{n}log(e^{-y_{i}(X_{i}^{T}\omega + c)} + 1) $$

  3.集成学习

    1.随机森林是基于Bagging思想的集成学习算法;

    2.梯度增强树是基于Boosting思想的集成学习算法。

  参考资料

    一些名词概念参考资料:

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

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

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

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

https://elitedatascience.com/algorithm-selection

    拟合算法及公式参考:

http://scikit-learn.org/stable/modules/linear_model.html

https://en.wikipedia.org/wiki/Lasso_(statistics)

https://en.wikipedia.org/wiki/Tikhonov_regularization

    关于两种集成学习思想的一些解释参考:

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

https://www.bbsmax.com/A/lk5axwNJ1O/

https://blog.csdn.net/autoliuweijie/article/details/50285817

https://blog.csdn.net/google19890102/article/details/46507387

http://scikit-learn.org/stable/modules/ensemble.html#classification

原文地址:https://www.cnblogs.com/darkchii/p/8902405.html

时间: 2024-10-08 02:33:13

Kaggle Machine Learning 教程学习(五)的相关文章

机器学习(Machine Learning)&深度学习(Deep Learning)资料

机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室Jurgen Schmidhuber写的最新版本

机器学习(Machine Learning)&amp;深入学习(Deep Learning)资料

<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost 到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室 Jurgen Schmidhuber 写的最新版本<神经网络与深度学习综述>本综述的特点是以时间排序,从 1940 年开始讲起,到

Coursera课程《Machine Learning》学习笔记(week1)

这是Coursera上比较火的一门机器学习课程,主讲教师为Andrew Ng.在自己看神经网络的过程中也的确发现自己有基础不牢.一些基本概念没搞清楚的问题,因此想借这门课程来个查漏补缺.目前的计划是先看到神经网络结束,后面的就不一定看了. 当然,看的过程中还是要做笔记做作业的,否则看了也是走马观花.此笔记只针对我个人,因此不会把已经会了的内容复述一遍,相当于是写给自己的一份笔记吧.如果有兴趣,可以移步<Machine Learning>仔细学习. 接下来是第一周的一些我认为需要格外注意的问题.

Andrew Ng 的 Machine Learning 课程学习 (week4) Multi-class Classification and Neural Networks

这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解和初步掌握机器学习的人来说是不二的选择.这门课程涵盖了机器学习的一些基本概念和方法,同时这门课程的编程作业对于掌握这些概念和方法起到了巨大的作用. 课程地址 https://www.coursera.org/learn/machine-learning 笔记主要是简要记录下课程内容,以及MATLAB

Andrew Ng 的 Machine Learning 课程学习 (week5) Neural Network Learning

这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解和初步掌握机器学习的人来说是不二的选择.这门课程涵盖了机器学习的一些基本概念和方法,同时这门课程的编程作业对于掌握这些概念和方法起到了巨大的作用. 课程地址 https://www.coursera.org/learn/machine-learning 笔记主要是简要记录下课程内容,以及MATLAB

Git教程学习(五)

14. 解决冲突 14.1. 场景 当分支A和分支B在同一个文件上都有修改时会出现冲突.常见的情况是从master分支的基础上生成了新分支dev,然后在dev上进行了修改并add&commit了.后来在master上对同一个文件进行了修改,也add&commit了.这时合并两个分支的操作就会失败. $ git merge feature1 Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Aut

Swift学习—教程学习五 函数(function)

5 函数(Functions) 函数是用来完成特定任务的独立的代码块. 5.1 定义与调用Defining and Calling Functions 函数名(参数列表)->返回值 { 函数体(要干什么) } 函数名用来描述其要完成的任务,调用函数时要向函数传递其要求的输入参数,参数顺序必须与函数参数列表一致. func greet(person: String) -> String { let greeting = "Hello, " + person + "!

机器学习(Machine Learning)&amp;amp;深度学习(Deep Learning)资料

机器学习(Machine Learning)&深度学习(Deep Learning)资料 機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008/Qix/blob/master/dl.md 原作作者會不斷更新.本文更新至2014-12-21 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍非常全面.从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep L

useful links about machine learning

机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2) <机器学习&&深度学习> 视频课程资源