Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何口述机器学习模型原理

如何口述机器学习模型原理

作者头像
Ai学习的老章
发布于 2019-07-22 08:54:32
发布于 2019-07-22 08:54:32
8420
举报

作者: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个的可能性,直至目标函数收敛。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《统计学习方法》 ( 李航 ) 读书笔记
因为要准备面试,本文以李航的《统计学习方法》为主,结合西瓜书等其他资料对机器学习知识做一个整理。
石晓文
2019/06/04
1.7K0
《统计学习方法》 ( 李航 ) 读书笔记
算法工程师-机器学习面试题总结(3)
FM(因子分解机)模型和逻辑回归是两种常见的预测建模方法,它们在一些方面有不同的优缺点
机器学习AI算法工程
2023/09/04
9750
算法工程师-机器学习面试题总结(3)
从决策树到XGBOOST
XGBoost在机器学习领域可谓风光无限,作为从学术界来的模范生,帮助工业界解决了许多实际问题,真可谓:
西西木木
2020/06/07
1.5K0
通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考
——以下是抛砖引玉。 观其大略,而后深入细节,一开始扎进公式反正我是觉得效率不高,还容易打消人的积极性。
全栈程序员站长
2022/08/23
3420
通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考
机器学习面试干货精讲
本内容涉及模型核心数学公式,把本人面试中常被问到问题以及模型知识点的总结,起到提纲挈领作用,在准备的过程中抓住每个模型的重点。
Coggle数据科学
2019/09/12
8590
机器学习面试干货精讲
【白话机器学习】算法理论+实战之LightGBM算法
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法:
石晓文
2020/06/28
7.2K0
搞定机器学习面试,这些是基础
本文尽可能的不涉及到繁杂的数学公式,把面试中常问的模型核心点,用比较通俗易懂但又不是专业性的语言进行描述。希望可以帮助大家在找工作时提纲挈领的复习最核心的内容,或是在准备的过程中抓住每个模型的重点。
昱良
2018/07/31
8010
搞定机器学习面试,这些是基础
机器学习算法梳理
前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公司里百度,阿里,腾讯,网易,搜狐,华为(华为的岗位基本都是随机分配,机器学习等岗位基本面向的是博士)等会有相关职位
IT派
2018/03/29
9590
机器学习算法梳理
整理一份机器学习资料!
本系列主要根据吴恩达老师的课程、李航老师的统计学习方法以及自己平时的学习资料整理!在本文章中,有些地方写的十分简略,不过详细的介绍我都附上了相应的博客链接,大家可以根据相应的博客链接学习更详细的内容。
石晓文
2018/07/25
7190
整理一份机器学习资料!
【陆勤践行】面试之机器学习算法思想简单梳理
找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公司里百度,阿里,腾讯,网易,搜狐,华为(华为的岗位基本都是随机分配,机器学习等岗位基本面向的是博士)等会有相关职位,另外一
陆勤_数据人网
2018/02/26
8530
【陆勤践行】面试之机器学习算法思想简单梳理
决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost总结
决策树是一个有监督分类模型,本质是选择一个最大信息增益的特征值进行输的分割,直到达到结束条件或叶子节点纯度达到阈值。下图是决策树的一个示例图:
Ai学习的老章
2019/09/03
1.8K0
决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost总结
【算法面经】:机器学习面试算法梳理
机器学习算法面试一直是大家比较苦恼的事情,各种算法经常弄混,或者无法透彻理解。分享一篇非常好的机器学习算法面试干货总结,梳理算法原理,优缺点。
Python数据科学
2018/12/14
4740
深入解析机器学习算法
机器学习已经成为当今技术进步的核心推动力量,推动了众多行业的创新。其背后依赖的是各种各样的算法,帮助计算机通过从数据中学习来完成任务。这篇文章将对常见的几类机器学习算法进行深入探讨,帮助你理解其工作原理、应用场景以及各自的优势和局限。
用户11295429
2024/10/31
2010
从决策树到GBDT梯度提升决策树和XGBoost
决策树可以转换成if-then规则的集合,也可以看作是定义在特征空间划分类的条件概率分布。决策树学习算法包括三部分:特征选择,数的生成和数的剪枝。最大优点: 可以自学习。在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。显然,属于有监督学习。 常用有一下三种算法:
大鹅
2021/06/15
1.2K0
从决策树到GBDT梯度提升决策树和XGBoost
精华 | 机器学习岗面试,这些是基础!(ML,DL,SL相关知识整理)
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 明天推出第3期送书活动 数量10本 Are You Ready? 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大
昱良
2018/04/09
1.2K0
精华 | 机器学习岗面试,这些是基础!(ML,DL,SL相关知识整理)
图解机器学习 | XGBoost模型详解
教程地址:http://www.showmeai.tech/tutorials/34
ShowMeAI
2022/03/10
4.6K0
图解机器学习 | XGBoost模型详解
一文详尽XGBOOST的前世今生
XGBOOST:简单来说是集成了很多个基学习器(如Cart决策树)的模型。它是集成学习的串行方式(boosting)的一种经典实现,是广泛应用在工业、竞赛上的一大神器。
算法进阶
2022/06/01
9400
一文详尽XGBOOST的前世今生
xgboost算法详细介绍
“弱分类器”的分类能力不强,但它又比随机选的效果稍微好点,类似于“臭皮匠”。“强分类器”具有很强的分类能力,也就是把特征扔给它,他能分的比较准确,算是“诸葛亮”一类的。如果直接可以建立一个强分类器,那弱分类器实际上就是多余的,但是,这世上“绝顶聪明的诸葛亮”少之又少,反而,在某方面有才华的人很多。于是,Boost选择了用三个臭皮匠去顶诸葛亮。
润森
2022/09/22
1.4K0
xgboost算法详细介绍
通俗的将Xgboost的原理讲明白
初看Xgboost,翻了多篇博客发现关于xgboost原理的描述实在难以忍受,缺乏逻辑性,写一篇供讨论。 观其大略,而后深入细节,一开始扎进公式反正我是觉得效率不高,还容易打消人的积极性。 首先说下决策树 决策树是啥? 举个例子,有一堆人,我让你分出男女,你依靠头发长短将人群分为两拨,长发的为“女”,短发为“男”,你是不是依靠一个指标“头发长短”将人群进行了划分,你就形成了一个简单的决策树,官方细节版本自行baidu或google 划分的依据是啥? 这个时候,你肯定问,为什么用“头发长短”划分啊,我可
机器学习AI算法工程
2018/03/30
3.8K0
通俗的将Xgboost的原理讲明白
关于XGBoost、GBDT、Lightgbm的17个问题
9.lightgbm和xgboost有什么区别?他们的loss一样么?算法层面有什么区别?
Ai学习的老章
2019/10/22
5.3K0
关于XGBoost、GBDT、Lightgbm的17个问题
相关推荐
《统计学习方法》 ( 李航 ) 读书笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档