个性化推荐系统是达观数据在金融、电商、媒体、直播等行业的主要产品之一。在达观数据的个性化推荐系统架构中,可 以简单地分为5层架构,每层处理相应的数据输出给下一层使用。

个性化引荐体系是豁达数据在金融、电商、媒体、直播等职业的首要产品之一。在豁达数据的个性化引荐体系架构中,可 以简略地分为5层架构,每层处理相应的数据输出给下一层运用,分别是:

  • 数据处理层

作为引荐体系***端的数据处理层,首要功能是首先将客户上传上来的一些无用的噪声数据进行整理过滤,将引荐系 统所需求用到的数据导入到数据存储层中;

  • 数据存储层

关于item的数据一般存入在Mysql中,跟着数据量越来越大的item的数据,比较Mysql的扩展性来说,HBase和Hive 是一个更好的挑选,Hive能够便利离线剖析时操作。而关于实时模块,以及一些用进程同步相关的模块,实时性要求 比较高的,redis就能够派上用场了,作为缓存,出产者出产数据写入redis供顾客读取;

  • 生成候选集

经过一系列的根底算法如协同过滤,content-base,点击反应,抢手等数据给每个用户生成个性化的候选集;

  • 交融候选集

将各个算法生成的候选集的item依照一系列规矩进行交融过滤。

  • 重排序

将交融过滤后的item调集用必定的算法从头排序,将排序后的成果输出到用户,这边首要常用到机器学习相关模型和 算法,如LR和GBDT。

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第1张

本文将侧重浅析一下重排序用到的集成学习算法(Ensemble Method)。

集成学习概述

集成学习算法自身不算一种独自的机器学习算法,而是经过构建并结合多个机器学习器来完结学习使命。能够说是集百家 之所长,能在机器学习算法中具有较高的准确率,缺乏之处便是模型的练习进程或许比较复杂,功率不是很高。现在常见 的集成学习算法首要有2种:依据Bagging的算法和依据Boosting的算法,依据Bagging的代表算法有随机森林,而依据Boosting的代表算法则有Adaboost、GBDT、XGBOOST等。

依据Bagging算法

Bagging算法(装袋法)是bootstrap aggregating的缩写,它首要对样本练习调集进行随机化抽样,经过重复的抽样练习新的模型,终究在这些模型的根底上取均匀。

  • 基本思想

1.给定一个弱学习算法,和一个练习集;

2.单个弱学习算法准确率不高;

3.将该学习算法运用屡次,得出猜测函数序列,进行投票;

4.***成果准确率将得到进步。

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第2张

以随机森林为例来详解

  • 随机森林基本原理

随机森林由LeoBreiman(2001)提出,从原始练习样本集N中有放回地重复随机抽取k个样本生成新的练习样本集 合,然后依据自助样本集生成k个分类树组成随机森林,新数据的分类成果按分类树投票多少构成的分数而定。其实质 是对决议计划树算法的一种改善,将多个决议计划树兼并在一起,每棵树的树立依赖于一个独立抽取的样品,森林中的每棵树 具有相同的散布,分类差错取决于每一棵树的分类才能和它们之间的相关性。特征挑选选用随机的办法去割裂每一个 节点,然后比较不同情况下发生的差错。能够检测到的内涵估量差错、分类才能和相关性决议挑选特征的数目。单棵 树的分类才能或许很小,但在随机发生很多的决议计划树后,一个测验样品能够经过每一棵树的分类成果经计算后挑选最 或许的分类。

  • 随机森林算法进程

1.从练习数据中选取n个数据作为练习数据输入,一般情况下n是远小于全体的练习数据N的,这样就会形成有一部 分数据是无法被取到的,这部分数据称为袋外数据,能够运用袋外数据做差错估量。

2.选取了输入的练习数据的之后,需求构建决议计划树,具体办法是每一个割裂结点从全体的特搜集M中选取m个特征构 建,一般情况下m远小于M。

3.在结构每棵决议计划树的进程中,依照选取最小的基尼指数进行割裂节点的选取进行决议计划树的构建。决议计划树的其他结点 都采纳相同的割裂规矩进行构建,直到该节点的避实就虚练习样例都归于同一类或许到达树的***深度。

4.重复第2步和第3步屡次,每一次输入数据对应一颗决议计划树,这样就得到了随机森林,能够用来对猜测数据进行决 策。

5.输入的练习数据挑选好了,多棵决议计划树也构建好了,对待猜测数据进行猜测,比如说输入一个待猜测数据,然后多 棵决议计划树一起进行决议计划,***选用大都投票的办法进行类别的决议计划。

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第3张

  • 随机森林留意点

1.在构建决议计划树的进程中是不需求剪枝的。

2.整个森林的树的数量和每棵树的特征需求人为进行设定。

3.构建决议计划树的时分割裂节点的挑选是依据最小基尼系数的。

依据Boosting算法

广大算法(Boosting)是常用的有用的计算学习算法,归于迭代算法,它经过不断地运用一个弱学习器补偿前一个弱学习器 的“缺乏”的进程,来串行地结构一个较强的学习器,这个强学习器能够使方针函数值满足小。

  • 基本思想

1.先赋予每个练习样本相同的概率;

2.然后进行T次迭代,每次迭代后,对分类过错的样本加大权重(重采样),使得鄙人一次的迭代中愈加重视这些样本。

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第4张

Boosting系列算法里***算法首要有AdaBoost算法和广大树(boosting tree)系列算法。广大树系列算法里边运用最广泛的是梯度广大树(Gradient Boosting Tree)。

以AdaBoost算法作为代表算法来详解

  • 基本原理

Adaboost(adaptive boosting: boosting + 单层决议计划树)是boosting中较为代表的算法,基本思想是经过练习数据的散布结构一个分类器,然后经过差错率求出这个若弱分类器的权重,经过更新练习数据的散布,迭代进行,直到到达 迭代次数或许丢失函数小于某一阈值。

假定练习数据集为

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第5张

  • 算法进程

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第6张

Bagging和Boosting算法异同

Bagging算法与Boosting算法的中心都是将一系列弱学习器的算法依照特定的结合战略组合成强学习器的进程。两者之 间的差异在于以下几点上:

1.样本挑选:

  • Bagging:练习集是在原始会集有放回选取的,从原始会集选出的各轮练习集之间是独立的.
  • Boosting:每一轮的练习集不变,仅仅练习会集每个样例在分类器中的权重发生变化.而权值是依据上一轮的分类成果 进行调整。

2.样例权重:

  • Bagging:运用均匀取样,每个样例的权重持平。
  • Boosting:依据过错率不断调整样例的权值,过错率越大则权重越大.

3.猜测函数:

  • Bagging:避实就虚猜测函数的权重持平。
  • Boosting:每个弱分类器都有相应的权重,关于分类差错小的分类器会有更大的权重。

4.并行计算:

  • Bagging:各个猜测函数能够并行生成。
  • Boosting:各个猜测函数只能次序生成,由于后一个模型参数需求前一轮模型的成果。

集成学习之结合战略

以上部分咱们首要重视与学习器自身,关于学习器之间的结合战略并未涉及到,这一末节首要介绍常见的结合战略,首要 有均匀法,投票法,学习法。

  • 均匀法

关于数值类的回归猜测问题,一般运用的结合战略是均匀法,也便是说,关于若干和弱学习器的输出进行均匀得到最 终的猜测输出。最简略的均匀是算术均匀,也便是说终究猜测为

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第7张

  • 投票法

 集成学习算法(Ensemble Method)浅析 集成 学习 算法 第8张

  • 学习法

上两节的办法都是对弱学习器的成果做均匀或许投票,相对比较简略,可是或许学习差错较大,所以就有了学习法这种方 法,关于学习法,代表办法是stacking,当运用stacking的结合战略时,咱们不是对弱学习器的成果做简略的逻辑处理, 而是再加上一层学习器,也便是说,咱们将练习集弱学习器的学习成果作为输入,将练习集的输出作为输出,从头练习一 个学习器来得到终究成果。

在这种情况下,咱们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。关于测验集,咱们首先用初级学 习器猜测一次,得到次级学习器的输入样本,再用次级学习器猜测一次,得到终究的猜测成果。

总结

Bagging和Boosting都是把若干个分类器整合为一个分类器的集成学习办法,仅仅整合的办法不一样,终究得到不一样 的作用。下面是将决议计划树与这些算法结构进行结合所得到的新的算法:

1.Bagging + 决议计划树 = 随机森林

2.AdaBoost + 决议计划树 = 广大树

3.Gradient Boosting + 决议计划树 = GBDT

其间GBDT在豁达数据个性化引荐重排序层得到很好地运用。

作者:陈祥龙

豁达数据数据发掘工程师,结业于复旦大学计算机科学与技能专业,现首要担任大型私有化引荐项目不方便作业。

【本文为51CTO专栏作者“豁达数据”的原创稿件,转载可经过51CTO专栏获取联络】

戳管中窥豹,看该作者更多好文

转载请说明出处
知优网 » 集成学习算法(Ensemble Method)浅析

发表评论

您需要后才能发表评论