点击上方“机器学习与统计学”,选择“置顶”公众号

重磅干货,第一时间送达

作者:Ricky翘  zhuanlan.zhihu.com/p/34128571

有时碰到跟别人聊起模型的熟悉时,不免要阐述下模型的原理,但一般口头交流都比较难,因为脑海里面都是一些公式,似乎从功利角度有必要把模型原理用文字表达一遍,所以自己整理了下机器学习的部分,有遗漏或者不对的地方也请多多指教~

线性回归

首先我们会定一个函数假定y和x的关系,如y=wx+b。但实际y的值肯定会和实际有偏差,所以就有残差项。如残差项e的求和=y-(wx+b)的求和。然后把公式化开,分别对w和b求偏导数,就可以得出w和b的值。

如何是对于矩阵,原理是一样的,不会设计矩阵的转置和矩阵的求导,最后参数为delta=X的转置乘以X,这两个乘起来再求他们的逆,最后再乘X的转置和Y


逻辑回归

首先引进sigmoid函数,形如1+e的负x次方分之一(这个大家都知道这个公式是什么),我们这里称sigmoid为h(x)然后对于每个样本,对于给定X和参数delta后,其对于y的后验概率为h(x)的y次方乘以(1-h(x))的1-y次方,这个分别对应y是0和1的情况。所以扩展到所有样本的话就把各样本的概率连乘起来,这里就像极大似然求解那样,连乘后再作对数处理,而一作对数处理,连乘就变成log相加求和了。对这个新得到的函数用梯度下降就能够不断更新参数delta了。

k-mean

1、从D中随机取k个元素,作为k个簇的各自的中心。

2、分别计算剩下的元素到k个簇中心的距离,将这些元素分别划归到距离最短的簇。

3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。

4、将D中全部元素按照新的中心重新聚类。

5、重复第4步,直到聚类结果不再变化。

决策树

首先从根节点开始,计算所有变量的信息增益,主要有ID3和C4.5这两个算法。然后选择信息增益最大的作为结点的特征,确定了具体节点变量后,就要计算在变量里面具体哪个位置做切割,一般是在不同的切割点下的组别计算熵或者信息增益进行比较,选择最佳切割点。对子节点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或者没有特征可选时为止。

随机森林

可以抽象理解为很多颗决策树放在一起,然后各自产生的结果投票产生最终的结果,就是bagging的框架。但在细节上,就是每颗树通过有放回的方法抽取一定的数据量和一定的变量属性再去做分裂。

GBDT

首先先说GB这边,就是Gradient
Boost,在梯度上进行boost。每一次的计算是为了减少上一次的残差(residual),而为了消除残差,我们可以在 残差减少的梯度(Gradient)方向 上建立一个新的模型。所以说,在Gradient Boost中,每个新的模型的遍历是为了使得之前模型的残差往梯度方向减少。与传统Boost对正确、错误的样本进行加权有着很大的区别。从公式上,就是下一个函数等于上一个函数+拟合了残差的函数(实际上这个残差函数会乘以一个乘数,是让目标函数最小化,这个乘数怎么来不作展开)。

而DT就是cart树,结合GB后做法上,比如说是3分类问题,每轮训练实际上就是训练3颗树,如(0,1,0)就是对应(X,0)(X,1) (X,0),作为样本得到3个预测值,进而可以得到残差(残差为=0-f(x)),然后下一轮迭代就可以输入(x,f(x))。在每次迭代中计算目标函数(由树权重函数和结构函数组成),选择最优解。

XGboost

在GBDT的基础上,xgboost不仅有cart分类器,还有线性分类器。

xgboost的目标函数优化用到二阶泰勒展开,还有一阶和二阶导数,而且代价函数里面加了正则项。列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

SVM

想得到一个超平面如wx+b=0,如果对于y=正负1的话,margin距离为w的绝对值分之2,所以我们要最大化它就是最小化w的绝对值,一般写为二分之一w平方。其约束条件为y(wx+b)-1>=0。

这个其实是一个规划问题,SVM里面引入拉格朗日乘子式进行转化。式子就可以变成二分之一w平方减去本来拉格朗日乘子乘以约束条件(y(wx+b)-1),就可以转化为最大最小对偶问题(maxmin)。对转化后的公式分别对w和b求偏导数。解出来的东西再代回去原式就变成一个单求拉格朗日乘子最大化的问题,里面含alpha-i,alpha-j,yi,yj,xi,xj。来到这步,线性可分的话可以直接求解,不可分的可以引入核函数,将xi,xj映射到高纬。至于怎么求解,SVM里面用了SMO算法,做法上就是通过选择两个alpha,其他的固定起来,因为之前朗格朗日式中求出一个约束条件,是alpha*y的求和=0。所以固定n-2的乘子,不断试剩下2个的可能性,直至目标函数收敛。

推荐阅读

统计学最全思维导图,值得收藏!

现代统计学的发展史

机器学习算法之岭回归、Lasso回归和ElasticNet回归

整理一份详细的数据预处理方法

资源|《Python数据分析与数据化运营》PDF高清+数据+代码

机器学习算法优缺点对比及选择(汇总篇)

Python sklearn模型选择

从概率角度,5局3胜和3局2胜,哪个胜算更大?

数据预处理|关于标准化和归一化的一切

14 幅思维导图 | Python 编程核心知识体系

点赞,转发,支持作者

机器学习模型_如何口述机器学习模型原理相关推荐

  1. 机器学习结构化学习模型_生产化机器学习模型

    机器学习结构化学习模型 The biggest issue in the life-cycle of ML project isn't to create a good algorithm or to ...

  2. 机器学习初学者_绝对初学者的机器学习

    机器学习初学者 In recent times, we hear these few things a lot: 最近,我们经常听到以下几件事: First is -The COVID-19 Pand ...

  3. 机器学习股票_使用概率机器学习来改善您的股票交易

    机器学习股票 Note from Towards Data Science's editors: While we allow independent authors to publish artic ...

  4. 机器学习 测试_测试优先机器学习

    机器学习 测试 Testing software is one of the most complex tasks in software engineering. While in traditio ...

  5. 一般线性模型和线性回归模型_您的线性回归模型指南

    一般线性模型和线性回归模型 Interpretability is one of the biggest challenges in machine learning. A model has mor ...

  6. 机器学习算法_无监督机器学习算法:主成分分析

    之前我们曾经讲过,无监督学习是一种不使用标记数据(无目标变量)的机器学习.因此,算法的任务是在数据本身中寻找模式.无监督机器学习算法的两种主要类型分别是使用主成分分析的降维算法和聚类算法(包括K-Me ...

  7. 深度学习 机器学习基础_实用的机器学习基础

    深度学习 机器学习基础 This article describes my attempt at the Titanic Machine Learning competition on Kaggle. ...

  8. [并发并行]_[线程模型]_[Pthread线程使用模型之一管道Pipeline]

    场景 1.经常在Windows, MacOSX 开发C多线程程序的时候, 经常需要和线程打交道, 如果开发人员的数量不多时, 同时掌握Win32和pthread线程 并不是容易的事情, 而且使用Win ...

  9. 软件工程生命周期模型_软件生命周期模型比较| 软件工程

    软件工程生命周期模型 软件生命周期模型 (Software Lifecycle Models) There are five software lifecycle models that are co ...

最新文章

  1. 实践教程 | 浅谈 PyTorch 中的 tensor 及使用
  2. linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...
  3. 【代码笔记】iOS-获得设备型号
  4. 如何使用JSON和Servlet创建JQuery DataTable
  5. (转)Linux服务器磁盘空间占满问题
  6. sysbench --with-mysql-libs_linux安装sysbench
  7. oracle中如何取消外键的,ORACLE中添加删除主键、外键
  8. 化学实验中计算机技术的应用,浅谈计算机在基础化学实验中的应用
  9. 如何在校外下载期刊全文--应对大家工作后的资料搜寻
  10. 5.stm32L476在freeRTOS下使用低功耗
  11. Spring——自动装配
  12. win7计算机ip地址怎么查,win7电脑的IP地址怎样查看
  13. Mono.Cecil ReaderParameters
  14. sessionid java_java如何获取sessionid
  15. js 对象中添加新属性
  16. 用户划分——RMF方法
  17. 双环形图表_excel两个环形图怎么画
  18. 从Page结构来看达梦数据库是不是纯自研
  19. Android Accessibility(辅助功能) 学习
  20. CF#764(div.3A~D)dp进阶

热门文章

  1. apachecommon连接mysql_使用 apache common dbcp +common pool+mysql连接无效的问题
  2. android 异步图片加载 开源,异步加载图片BitmapFun分析
  3. php统计字数指定位置,php实现的统计字数函数定义与使用示例
  4. 命运歌姬服务器停服维护中,命运歌姬3月4日更新什么?命运歌姬3月4日更新维护公告[多图]...
  5. bae java乱码_BAE安装HotNews Pro乱码解决方案
  6. linux两文件对比,linux对比两个文件的差异
  7. mysql数据库设计255_MySQL数据库设计规范
  8. hadoop hbase java_Hadoop、Hbase伪分布式安装
  9. 计算机彻底删除删除后如何恢复,如何完全恢复从计算机删除的文件?
  10. Java编码规范注意