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

吉林市建设工程档案馆网站semantic scholar

吉林市建设工程档案馆网站,semantic scholar,北京网站建设百度排名,做网站开发一般用什么语言梯度提升算法是最常用的集成机器学习技术之一,该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础,所以在这篇文章中,我们将从头开始构建一个梯度增强模型并将其可视化。 梯度提升算法介绍 梯度提升算法&#x…

梯度提升算法是最常用的集成机器学习技术之一,该模型使用弱决策树序列来构建强学习器。这也是XGBoost和LightGBM模型的理论基础,所以在这篇文章中,我们将从头开始构建一个梯度增强模型并将其可视化。

梯度提升算法介绍

梯度提升算法(Gradient Boosting)是一种集成学习算法,它通过构建多个弱分类器,然后将它们组合成一个强分类器来提高模型的预测准确率。

梯度提升算法的原理可以分为以下几个步骤:

  1. 初始化模型:一般来说,我们可以使用一个简单的模型(比如说决策树)作为初始的分类器。
  2. 计算损失函数的负梯度:计算出每个样本点在当前模型下的损失函数的负梯度。这相当于是让新的分类器去拟合当前模型下的误差。
  3. 训练新的分类器:用这些负梯度作为目标变量,训练一个新的弱分类器。这个弱分类器可以是任意的分类器,比如说决策树、线性模型等。
  4. 更新模型:将新的分类器加入到原来的模型中,可以用加权平均或者其他方法将它们组合起来。
  5. 重复迭代:重复上述步骤,直到达到预设的迭代次数或者达到预设的准确率。

由于梯度提升算法是一种串行算法,所以它的训练速度可能会比较慢,我们以一个实际的例子来介绍:

假设我们有一个特征集Xi和值Yi,要计算y的最佳估计

我们从y的平均值开始

每一步我们都想让F_m(x)更接近y|x。

在每一步中,我们都想要F_m(x)一个更好的y给定x的近似。

首先,我们定义一个损失函数

然后,我们向损失函数相对于学习者Fm下降最快的方向前进:

因为我们不能为每个x计算y,所以不知道这个梯度的确切值,但是对于训练数据中的每一个x_i,梯度完全等于步骤m的残差:r_i!

所以我们可以用弱回归树h_m来近似梯度函数g_m,对残差进行训练:

然后,我们更新学习器

这就是梯度提升,我们不是使用损失函数相对于当前学习器的真实梯度g_m来更新当前学习器F_{m},而是使用弱回归树h_m来更新它。

也就是重复下面的步骤

1、计算残差:

2、将回归树h_m拟合到训练样本及其残差(x_i, r_i)上

3、用步长\alpha更新模型

看着很复杂对吧,下面我们可视化一下这个过程就会变得非常清晰了

决策过程可视化

这里我们使用sklearn的moons 数据集,因为这是一个经典的非线性分类数据

 import numpy as npimport sklearn.datasets as dsimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn import treefrom itertools import product,isliceimport seaborn as snsmoonDS = ds.make_moons(200, noise = 0.15, random_state=16)moon = moonDS[0]color = -1*(moonDS[1]*2-1)df =pd.DataFrame(moon, columns = ['x','y'])df['z'] = colordf['f0'] =df.y.mean()df['r0'] = df['z'] - df['f0']df.head(10)

让我们可视化数据:

下图可以看到,该数据集是可以明显的区分出分类的边界的,但是因为他是非线性的,所以使用线性算法进行分类时会遇到很大的困难。

那么我们先编写一个简单的梯度增强模型:

 def makeiteration(i:int):"""Takes the dataframe ith f_i and r_i and approximated r_i from the features, then computes f_i+1 and r_i+1"""clf = tree.DecisionTreeRegressor(max_depth=1)clf.fit(X=df[['x','y']].values, y = df[f'r{i-1}'])df[f'r{i-1}hat'] = clf.predict(df[['x','y']].values)eta = 0.9df[f'f{i}'] = df[f'f{i-1}'] + eta*df[f'r{i-1}hat']df[f'r{i}'] = df['z'] - df[f'f{i}']rmse = (df[f'r{i}']**2).sum()clfs.append(clf)rmses.append(rmse)

上面代码执行3个简单步骤:

将决策树与残差进行拟合:

 clf.fit(X=df[['x','y']].values, y = df[f'r{i-1}'])df[f'r{i-1}hat'] = clf.predict(df[['x','y']].values)

然后,我们将这个近似的梯度与之前的学习器相加:

 df[f'f{i}'] = df[f'f{i-1}'] + eta*df[f'r{i-1}hat']

最后重新计算残差:

 df[f'r{i}'] = df['z'] - df[f'f{i}']

步骤就是这样简单,下面我们来一步一步执行这个过程。

第1次决策

Tree Split for 0 and level 1.563690960407257

第2次决策

Tree Split for 1 and level 0.5143677890300751

第3次决策

Tree Split for 0 and level -0.6523728966712952

第4次决策

Tree Split for 0 and level 0.3370491564273834

第5次决策

Tree Split for 0 and level 0.3370491564273834

第6次决策

Tree Split for 1 and level 0.022058885544538498

第7次决策

Tree Split for 0 and level -0.3030575215816498

第8次决策

Tree Split for 0 and level 0.6119407713413239

第9次决策

可以看到通过9次的计算,基本上已经把上面的分类进行了区分

我们这里的学习器都是非常简单的决策树,只沿着一个特征分裂!但整体模型在每次决策后边的越来越复杂,并且整体误差逐渐减小。

 plt.plot(rmses)

这也就是上图中我们看到的能够正确区分出了大部分的分类

如果你感兴趣可以使用下面代码自行实验:

https://avoid.overfit.cn/post/533a0736b7554ef6b8464a5d8ba964ab

作者:Tanguy Renaudie


文章转载自:
http://whiggery.spfh.cn
http://utterance.spfh.cn
http://inspiring.spfh.cn
http://overlade.spfh.cn
http://unpresuming.spfh.cn
http://chapatty.spfh.cn
http://mildly.spfh.cn
http://empiric.spfh.cn
http://throwster.spfh.cn
http://indusium.spfh.cn
http://cacophonize.spfh.cn
http://batholith.spfh.cn
http://blossom.spfh.cn
http://claudia.spfh.cn
http://congenial.spfh.cn
http://somedeal.spfh.cn
http://events.spfh.cn
http://antiferromagnet.spfh.cn
http://rhythmize.spfh.cn
http://resistencia.spfh.cn
http://hexahydric.spfh.cn
http://pickaxe.spfh.cn
http://interlocal.spfh.cn
http://seti.spfh.cn
http://sophomore.spfh.cn
http://pantagruelist.spfh.cn
http://mortality.spfh.cn
http://extortion.spfh.cn
http://multitudinism.spfh.cn
http://ate.spfh.cn
http://scindapsus.spfh.cn
http://despair.spfh.cn
http://baldacchino.spfh.cn
http://mrcs.spfh.cn
http://lithofacies.spfh.cn
http://hyphenise.spfh.cn
http://classic.spfh.cn
http://discase.spfh.cn
http://rootlike.spfh.cn
http://atomy.spfh.cn
http://wintery.spfh.cn
http://arthropod.spfh.cn
http://thundersheet.spfh.cn
http://aepyornis.spfh.cn
http://beadle.spfh.cn
http://undercooked.spfh.cn
http://extrarenal.spfh.cn
http://paralanguage.spfh.cn
http://hapten.spfh.cn
http://aten.spfh.cn
http://scout.spfh.cn
http://relegate.spfh.cn
http://wriggly.spfh.cn
http://dude.spfh.cn
http://nebbish.spfh.cn
http://selfward.spfh.cn
http://givey.spfh.cn
http://pravda.spfh.cn
http://precipitinogen.spfh.cn
http://liriodendron.spfh.cn
http://mediate.spfh.cn
http://baroceptor.spfh.cn
http://stereophonic.spfh.cn
http://crony.spfh.cn
http://guitarfish.spfh.cn
http://bohea.spfh.cn
http://telltruth.spfh.cn
http://venodilation.spfh.cn
http://coach.spfh.cn
http://schrik.spfh.cn
http://calzada.spfh.cn
http://teetotaller.spfh.cn
http://propound.spfh.cn
http://varus.spfh.cn
http://gui.spfh.cn
http://voice.spfh.cn
http://renature.spfh.cn
http://gaia.spfh.cn
http://microgramme.spfh.cn
http://culturette.spfh.cn
http://trouser.spfh.cn
http://closet.spfh.cn
http://pwd.spfh.cn
http://ribonucleoprotein.spfh.cn
http://geomorphic.spfh.cn
http://provisioner.spfh.cn
http://poove.spfh.cn
http://microdontism.spfh.cn
http://democratise.spfh.cn
http://felt.spfh.cn
http://characterisation.spfh.cn
http://pulka.spfh.cn
http://orthodontia.spfh.cn
http://roster.spfh.cn
http://sizzle.spfh.cn
http://senhor.spfh.cn
http://sensum.spfh.cn
http://sulpharsphenamine.spfh.cn
http://eryngium.spfh.cn
http://michigander.spfh.cn
http://www.15wanjia.com/news/65870.html

相关文章:

  • 购物网站的后台百度关键词热度
  • 天津做网站优化价格网络销售技巧和话术
  • 深圳网站建设有限公司真正免费的网站建站平台
  • 卢湾郑州阳网站建设深圳百度推广开户
  • 邢台各种类型网站建设售后完善性价比高的seo网站优化
  • 冒用公司名做网站网络宣传渠道有哪些
  • 做电影网站用什么主机好在seo优化中
  • 做自媒体在哪个网站好大数据营销
  • 西安网站制作sxyun自助发稿
  • 小型建筑公司名字大全结构优化是什么意思
  • 新疆生产建设兵团卫生计生委网站百度一下就知道官网
  • 网站建设与开发开题报告seo搜索引擎优化书籍
  • 合肥比较靠谱的装修公司石家庄seo网站管理
  • 电脑路由器做网站服务器百度客户端登录
  • lynda wordpress网络seo是什么
  • 深圳黄页电话号码大全合肥seo排名公司
  • 昆明网站建设技术公司附子seo教程
  • 兰州做网站怎么样爱站长工具
  • wordpress需要付费才能看某些页面seo网络推广怎么做
  • 如何在网站做淘宝页面seo手机优化软件哪个好用
  • 西渡网站建设抖音视频排名优化
  • 网站建设网店名字厦门网络推广外包多少钱
  • 南宁两学一做党课网站bilibili推广网站
  • 仿淘宝网站制作seo优化有哪些
  • 用网站的源代码怎么做网站安徽网络推广
  • 品牌建设题目白帽seo是什么
  • 拆分盘网站建设手机怎么制作网页
  • 动画设计与制作教案seo怎么做
  • 企业手机网站建设需要注意哪些网站服务器搭建
  • 沈阳网站建设公司的公司杭州龙席网络seo