当前位置: 首页 > news >正文

建设旅游网站目标客户分析网站怎样制作 优帮云

建设旅游网站目标客户分析,网站怎样制作 优帮云,广水市建设局网站,购物商城英语本文是综合了之前的以往多个笔记汇总而成#xff0c;内容较长。感兴趣的建议收藏用到时随时翻阅内容包含#xff1a; 若有遗漏错误之处请反馈修改#xff0c;感激不尽 一、Boosting基本概念 二、前向分步加法模型1. 加法模型2. 前向分步算法 三、AdaBoost1. 算法解析2. 模…本文是综合了之前的以往多个笔记汇总而成内容较长。感兴趣的建议收藏用到时随时翻阅内容包含 若有遗漏错误之处请反馈修改感激不尽 一、Boosting基本概念 二、前向分步加法模型1. 加法模型2. 前向分步算法 三、AdaBoost1. 算法解析2. 模型构建3. 算法缺点 四、二叉分类树 五、回归分类树1. 算法解析2. 模型构建 六、梯度提升树GBDT1. 算法解析2. 模型构建 七、XGBoost1. 原理详解2. 目标函数3. 学习过程4. 损失函数5. 正则化6. 决策树的构建7. 流程步骤8. 优缺点 八、总结1. Boosting家族2. AdaBoost3. 回归提升树和AdaBoost4. GBDT和回归提升树 5. XGBoost和GBDT6. 参考文献提升(Boosting)是集成学习方法里的一个重要方法其主要思想是将弱分类器组装成一个强分类器。在 PAC概率近似正确学习框架下则一定可以将弱分类器组装成一个强分类器。 提升树模型实际采用加法模型即基函数的线性组合与前向分步算法以决策树为基函数的提升方法称为提升树Boosting Tree。 对分类问题决策树是二叉分类树对回归问题决策树是二叉回归树。 提升树模型可以表示为决策树的加法模型 fM(x)∑Mi1T(x;Θm)fM(x)∑i1MT(x;Θm) f_M(x)=∑^M_{i=1}T(x;\Theta _m)其中T(x;Θm)T(x;Θm)T(x;\Theta _m)表示决策树ΘmΘm\Theta_m表示决策树的参数MMM为树的个数。不同问题的提升树学习算法,其主要区别在于损失函数不同。平方损失函数常用于回归问题,用指数损失函数用于分类问题,以及绝对损失函数用于决策问题。由于树的线性组合可以很好的拟合训练数据,即使数据中的输入和输出之间的关系很复杂也是如此,所以提升树是一个高功能的学习算法。 一、基本概念提升(Boosting)方法是一类应用广泛且非常有效的统计学习方法。它基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。强可学习:如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的弱可学习:如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的AdaBoost算法:那么如何将弱学习算法提升为强学习算法呢?关于提升方法的研究很多,有很多算法被提出。最具代表性的是AdaBoost算法(AdaBoost algorithm)Boosting算法的两个核心问题 在每一轮如何改变训练数据的权值或概率分布通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。。 如何将弱分类器组合成一个强分类器通过加法模型将弱分类器进行线性组合,比如 AdaBoost 通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。。 AdaBoost的巧妙之处就在于它将这些想法自然且有效地实现在一种算法里。 AdaBoost算法是损失函数为指数函数时的Boosting算法 二、前向分步加法模型(Forward Stagewise Additive Modeling)1. 加法模型(形为Y=I+U+T+K" role="presentation" style="position: relative;">Y=I+U+T+KY=I+U+T+KY=I+U+T+K的模型为加法模型 f(x)∑Mm1βmb(x;γm)f(x)∑m1Mβmb(x;γm) f(x)=∑^M_{m=1}\beta _mb(x;\gamma _m) 其中b(x;γm)b(x;γm)b(x;\gamma_m)为基函数βmβm\beta_m为基函数的系数。2. 前向分步算法 在给定训练数据及损失函数L(y,f(x))L(y,f(x))L(y,f(x))的条件下学习加法模型f(x)f(x)f(x)称为经验风险极小化即损失函数极小化的问题 min(βm,γm)∑Ni1L(yi,∑Mm1βmb(xi;γm))min(βm,γm)∑i1NL(yi,∑m1Mβmb(xi;γm)) min_{(\beta_m,\gamma_m)}∑^N_{i=1}L(y_i,∑^M_{m=1}\beta _mb(x_i;\gamma_m )) 通常这是一个复杂的优化问题。前向分布算法forward stagwise algorithm求解这一优化问题的思路是因为学习的是加法模型如果能够从前向后每一步只学习一个基函数及其系数逐步逼近优化目标函数式f(x)∑Mm1βmb(x;γm)f(x)∑m1Mβmb(x;γm)f(x)=∑^M_{m=1}\beta _mb(x;\gamma _m)那么就可以简化优化的复杂度。 具体地每步只需优化如下损失函数: minβ,γ∑Mi1L(yi,βb(xi;γ))minβ,γ∑i1ML(yi,βb(xi;γ)) min_{\beta, \gamma}∑^M_{i=1}L(y_i,\beta b(x_i;\gamma))前向分布算法步骤如下 输入训练数据集D(x1,y1),(x2,y2),(x3,y3),...,(xN,yN)D(x1,y1),(x2,y2),(x3,y3),...,(xN,yN)D={(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_N,y_N)};损失函数L(y,f(x))L(y,f(x))L(y,f(x))基函数集(β(x;γ))(β(x;γ))(\beta (x;\gamma)); 输出加法模型f(x)f(x)f(x) 1初始化f0(x)0f0(x)0f_0(x)=0 2对于k1,2,...,Kk1,2,...,Kk=1,2,...,K a极小化损失函数得到βm,γmβm,γm\beta_m ,\gamma_m: (βm,γm)argmin(β,γ)∑Ni1L(yi,fm−1(xi)βb(xi,γ))(βm,γm)argmin(β,γ)∑i1NL(yi,fm−1(xi)βb(xi,γ))(\beta _m,\gamma_m)=argmin_{(\beta,\gamma)}∑^N_{i=1}L(y_i,f_{m-1}(x_i)+\beta b(x_i,\gamma)) b更新 fm(x)fm−1(x)βmb(x;γm)fm(x)fm−1(x)βmb(x;γm)f_m(x)=f_{m-1}(x)+\beta _mb(x;\gamma_m) 3得到加法模型 f(x)fM(x)∑Mm1βmb(x;γm)f(x)fM(x)∑m1Mβmb(x;γm)f(x)=f_M(x)=∑^M_{m=1}\beta_mb(x;\gamma_m) 这样。前向分步算法将同时求解从m1m1m=1到mMmMm=M所有参数βm,γmβm,γm\beta_m,\gamma_m的优化问题简化为逐次求解βm,γmβm,γm\beta_m,\gamma_m的优化问题。 前向分布算法学习的是加法模型当基函数为基本分类器是该加法模型等价于Adaboost的最终分类器。AdaBoost算法参数迭代公式就是由此而来 基学习器基函数为同一类型反之称为组件学习器或直接成个体学习器 三、AdaBoost AdaBoost算法是前向分步算法的特例其模型是由基本分类器组成的加法模型损失函数是指数函数。 1. AdaBoost算法解析 AdaBoost模型是弱分类器的线性组合 f(x)∑Mm1αmGm(x)f(x)∑m1MαmGm(x) f(x)=∑^M_{m=1}\alpha _mG_m(x)MMM表示该提升树共有M" role="presentation" style="position: relative;">MMM个弱分类器组成Gm(x)Gm(x)G_m(x)表示第mmm个弱分类器 #x03B1;m" role="presentation" style="position: relative;">αmαm\alpha_m为第mmm个弱分类器的参数(反应该分类器的重要性) Adaboost算法在分类问题中的主要特点:通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类性能。 AdaBoost-算法描述(伪代码)如下:输入:训练数据集T=(x1,y1),(x2,y2),...,(xN,yN)" role="presentation" style="position: relative;">T=(x1,y1),(x2,y2),...,(xN,yN)T=(x1,y1),(x2,y2),...,(xN,yN)T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}其中xi∈χ⊆Rn,yi∈Y{−1,1}xi∈χ⊆Rn,yi∈Y{−1,1}x_i\in \chi ⊆R^n,y_i\in Y=\{-1,1\}弱学习算法Gm(x)Gm(x)G_m(x); 输出最终强化算法分类器G(x)G(x)G(x) 1初始化训练数据总和为1的权值分布初始权重为归一化后的均值既1N1N\frac 1N D1(w11,...,w1i,...w1N),w1i1N,i1,2,...ND1(w11,...,w1i,...w1N),w1i1N,i1,2,...ND_1=(w_{11},...,w_{1i},...w_{1N}),w_{1i}=\frac 1N, i=1,2,...N 2对m1,2,...Mm1,2,...Mm=1,2,...M弱分类器的个数 a使用具有权值分布的DmDmD_m的训练数据集学习得到基本分类器(数据集XXX到{-1,1}的映射) Gm(x):X#x2212;gt;{#x2212;1,1}" role="presentation" style="text-align: center; position: relative;">Gm(x):X−{−1,1}Gm(x):X−{−1,1}G_m(x):X->\{-1,1\} b计算Gm(x)Gm(x)Gm(x)在训练数据集上的分类误差率公式不够简洁明了其实总结下来非常好理解误差率ememe_m误分类样本的权值之和 em∑Ni1P(Gm(xi)≠yi)∑Ni1wmiI(Gm(xi)≠yi)em∑i1NP(Gm(xi)≠yi)∑i1NwmiI(Gm(xi)≠yi)e_m=∑^N_{i=1}P(G_m(x_i)≠y_i)=∑^N_{i=1}w_{mi}I(G_m(x_i)≠y_i) 我们来考虑下误差ememe_m的取值空间由于训练集权制之和为1因此误差0≤em≤10≤em≤10≤e_m≤1。但是这样还不够。因为我们在选择分裂阈值的时候会选择一个最优或局部最优的取值来分裂且当em0.5em0.5e_m=0.5是表明该分裂阈值对预测无贡献。因此最终得到的ememe_m的实际取值应小于em≤0.5em≤0.5e_m≤0.5。 所以最终0≤em≤0.50≤em≤0.50≤e_m≤0.5且每次迭代误差ememe_m递减。这点对下面的参数理解很重要。 c计算Gm(x)Gm(x)G_m(x)的系数:(这里对数为自然对数) αm12log1−ememαm12log1−emem\alpha_m=\frac 12log\frac{1-e_m}{e_m} 那么问题来了为什么要用这个公式来计算更新每个基分类器的参数我们先画个图出来观察下这个函数。其中y轴为αmαm\alpha _mx轴为误差ememe_m 由2-b我们得到误差ememe_m的取值范围为0≤em0.50≤em0.50≤e_m结合该图可以可知0αm10αm10。 另外可以发现通过该函数的转换弱分类器Gm(x)Gm(x)G_m(x)的误差的越小参数αmαm\alpha_m越大。即实现了给分类误差率小的基本分类器以大的权值给分类误差率大的基本分类器以小的权值 d更新训练数据集的权值分布该权值决定数据集的重要性并让误差的计算变得简单 Dm1(wm1,1,...,wm1,i,...wm1,N)Dm1(wm1,1,...,wm1,i,...wm1,N)D_{m+1}=(w_{m+1,1},...,w_{m+1,i},...w_{m+1,N}) wm1,iwmiZmexp(−αmyiGm(x−i)),i1,2,...Nwm1,iwmiZmexp(−αmyiGm(x−i)),i1,2,...Nw_{m+1,i}=\frac {w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x-i)),i=1,2,...N 这里yi{−1,1}yi{−1,1}y_i=\{-1,1\} 为真实值Gm(xi){−1,1}Gm(xi){−1,1}G_m(x_i)=\{-1,1\}为预测值。当预测正确时yiGm(xi)yiGm(xi)y_iG_m(x_i)为1反之为-1。 令δmiαmyiGm(xi)δmiαmyiGm(xi)\delta_{m_i}=\alpha_my_iG_m(x_i)θmiwmiZmθmiwmiZm\theta_{mi}=\frac {w_{mi}}{Z_m}(把它看作一个用于归一化权值的加权平均常数)。权重wm1,iwm1,iw_{m+1,i}的更新函数可以简化为wm1,iθmiexp(δmi),i1,2,...Nwm1,iθmiexp(δmi),i1,2,...Nw_{m+1,i}=\theta_{mi}exp(\delta _{mi}),i=1,2,...N画出ywm1,iexp(δmi)ywm1,iexp(δmi)y=w_{m+1,i}=exp(\delta_{mi})的图形来看一下 由于0αm10αm10所以−1δm,i1−1δm,i1-1。且使得预测错误的数据集样本点更新后的权重变大预测正确的权值变小然后对所有权值进行归一化。这就是该函数实现的作用。(图中y1是当αα\alpha无限接近于0时的情况解释为当αmαm\alpha_m权值越大权重wm1,iwm1,iw_{m+1,i}更新改变的效果越明显。) 这里ZmZmZ_m是规范化因子目的是使各数据集的权重进行归一化。理解为ZmZmZ_m更新后的各数据集权重之和。 Zm∑Ni1wmiexp(−αmyiGm(xi))Zm∑i1Nwmiexp(−αmyiGm(xi))Z_m=∑^N_{i=1}w_{mi}exp(-\alpha_my_iG_m(x_i)) 3构建基本分类器的新型组合f(x)∑Mm1αmGm(x)f(x)∑m1MαmGm(x)f(x)=∑^M_{m=1}\alpha_mG_m(x)即 G(x)sign(f(x))sign(∑Mm1αmGm(x))G(x)sign(f(x))sign(∑m1MαmGm(x))G(x)=sign(f(x))=sign(∑^M_{m=1}\alpha_mG_m(x)) 函数sign()sign()sign()的意义是将正数判别为1负数判别为-1最终达到分类的目的。如图 2. AdaBoost构建步骤 上面解释了AdaBoost算法的具体内容。这里写出它的分布实现步骤再对上文算法加深下理解 1假设训练数据集具有均匀的权值分布即每个训练样本在基本分类器的学习中作用相同这一假设保证第1步能够在原始数据上学习基本分类器G1(x)G1(x)G_1(x)。 2AdaBoost反复学习基本分类器在每一轮m1,2,…,Mm1,2,…,Mm=1,2,…,M顺次地执行下列操作 a使用当前分布DmDmD_m加权的训练数据集学习基本分类器Gm(x)Gm(x)G_m(x) b计算基本分类器Gm(x)Gm(x)G_m(x)再加权训练数据集上的分类误差率即误分类样本的权值之和。这里要注意wmiwmiw_{mi}表示第mmm轮中第i" role="presentation" style="position: relative;">iii个实例的权值且权值之和为1即∑Ni1wmi1∑i1Nwmi1∑^N_{i=1}w_{mi}=1 emP(Gm(xi)≠yi)∑Gm(xi)≠yiwmiemP(Gm(xi)≠yi)∑Gm(xi)≠yiwmie_m=P(G_m(x_i)≠y_i)=∑_{G_m(x_i)≠y_i}w_{mi} c计算基本分类器Gm(x)Gm(x)G_m (x)的系数αmαm\alpha_m。alphamalphamalpha_m表示Gm(x)Gm(x)G_m(x)在最终分类器中的重要性。由上面2-c可知当em≤1/2em≤1/2e_m≤1/2时alpham≥0alpham≥0alpha_m≥0并且αmαm\alpha_m随着ememe_m的减小而增大所以分类误差率越小的分类器在最终分类器中的作用越大。 d更新训练数据的权值分布为下一轮作准备。式2-d的权重更新函数可以写成 由此可知被基本分类器Gm(x)Gm(x)G_m (x)误分类样本的权值得以扩大而被正确分类样本的权值却得以缩小。两相比较误分类样本的权值被放大e(2αm)em1−eme(2αm)em1−eme^{(2\alpha_m)}=\frac{e_m}{1-e_m} 倍。因此误分类样本在下一轮学习中起更大的作用。不改变所给的训练数据而不断改变训练数据权值的分布使得训练数据在基本分类器的学习中起不同的作用这是AdaBoost的一个特点。 3线性组合f(x)f(x)f(x)实现MMM个基本分类器的加权表决。系数#x03B1;m" role="presentation" style="position: relative;">αmαm\alpha_m 表示了基本分类器Gm(x)Gm(x)G_m (x)的重要性这里所有αmαm\alpha_m 之和并不为1。f(x)f(x)f(x)的符号决定实例x的类f(x)f(x)f(x)的绝对值表示分类的确信度。利用基本分类器的线性组合构建最终分类器是AdaBoost的另一特点。 3. AdaBoost算法缺点 1. 常规AdaBoost算法只能处理二分类问题 MultiBoost工具的侧重点不同于XGBoost是Adaboost算法的多分类版本实现更偏向于解决multi-class / multi-label / multi-task的分类问题。 2. 对异常值敏感 指数损失存在的一个问题是不断增加误分类样本的权重指数上升。如果数据样本是异常点outlier会极大的干扰后面基本分类器学习效果 3. 模型无法用于概率估计 对于取值为ŷ∈{−1,1}y^∈{−1,1}\hat y \in \{-1,1\}的随机变量说e−ŷfe−y^fe^{-\hat yf}不是任何概率密度函数的对数形式模型f(x)f(x)f(x)的结果无法用概率解释。 MLAPP中的原话e−ŷfe−y^fe^{-\hat y f}is not the logarithm of any pmf for binary variables ŷ∈{−1,1}y^∈{−1,1}\hat y \in \{-1,1\}; consequently we cannot recover probability estimate from f(x)f(x)f(x).” 6. 参考文献 [1] 《统计学习方法》 ——李航 2012 清华大学出版社 [2] 《机器学习》 ——周志华 2016 清华大学出版社 [3] http://ihoge.cn/2018/adaboost.html [4] https://www.jianshu.com/nb/7305482 [5] http://www.52caml.com/head_first_ml/ml-chapter6-boosting-family/#Gradient_Boosting [6] https://www.jianshu.com/p/d55f7aaac4a7 [7] http://gitbook.cn/gitchat/column/5ac2f0509e924a1dc029dd84/topic/5ac9e0e5dbd50e7493d35d3f
http://www.pierceye.com/news/941494/

相关文章:

  • 网站开发提供图片加载速度wordpress速度
  • 购物网站如何备案wordpress首页自定义
  • 企业手机网站建设提升用户体验的三个点无极领域付费网站
  • 网站设计常州网站开发年度总结
  • 免费注册网站网址做网站大概要
  • 注册网站会不会有问题做网站建设的注意事项
  • 小吃培训网站源码淮南市招标投标信息网
  • 做网站申请多少类商标网站开发的案例分析模板
  • 怎么进网站后台管理系统在线二维码制作生成器
  • seo网站关键词优化多少钱陕西省建设厅网站官网
  • 仿xss网站搭建建设网站费用吗
  • 钓鱼网页在线生成网站网站建设肆金手指排名7
  • idc网站备案家具网站建设方案
  • 互联网做网站怎么赚钱WordPress副标题不显示
  • 好的网站域名网站运营推广怎做
  • 巴适网站建设wordpress上传与安装包
  • 网站备案不关站wordpress网
  • 中国佛山手机网站建设十大互联网公司排名
  • 手把手指导做网站wordpress 熊掌号插件
  • 宁波网站建设方案报价湖州企业做网站
  • 优化 导航网站百度官网网站首页
  • 各大网站大全河北网站建设seo优化制作设计
  • 做照片的网站前端开发和后端开发
  • 谁能低价做网站支付接口泰州企业自助建站系统
  • 徐州 网站建设辽阳建设网站
  • PHP MySQL 网站开发实例单页应用网站
  • 制作网站的步骤关于企业网站建设的相关思考
  • 统计局网站建设情况ppt设计网站
  • 中石化第四建设公司 网站哪个软件可以看街道实景
  • 郑州做网站哪个平台好全国网站备案