0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SparkMLlib中的GBDT算法对工业数据的代码实战

e星球 来源:工程师曾玲 2019-04-06 13:51 次阅读

在格物汇之前发表的《工业大数据挖掘的利器——Spark MLlib》中提到,Spark 的MLlib组件能够对工业现场海量数据进行高效挖掘,快速呈现结果给业务分析人员。接下来将向大家介绍SparkMLlib 中的GBDT算法,并将应用该算法对工业数据进行代码实战。

1算法概念

GB(Gradient Boosting)梯度提升算法,GB 共需要进行M次迭代,通过采用梯度下降的方法,每次迭代向损失函数的负梯度方向进行移动,从而使损失函数越来越小,进而使模型越来越精确。算法伪代码如下:

SparkMLlib中的GBDT算法对工业数据的代码实战

GB算法跟原始的Boosting算法相比较,还是有比较明显的区别。

Boosting算法开始的时候,是会给每个样本附上权重的,在每次迭代的时候就会增加错的样本的权重,减少对的样本的权重,经过N次迭代之后,会得到N个分类器,然后我们再将他们组合起来,得到最终模型。

GB算法与Boosting区别是,他的每一次迭代的目标都是减少上一次的残差,所以在残差减少的方向上建立一个新的模型。在GB算法框架上加入决策树,就是GBDT(GradientBoost Decision Tree)算法。

GBDT主要的优点有:

1) 可以灵活处理各种类型的数据,包括连续值和离散值。

2) 在相对少的调参时间情况下,预测的准备率也可以比较高。这个是相对SVM来说的。

3)使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

4) 很好的利用了弱分类器进行级联。

5) 充分考虑的每个分类器的权重。

6) 可以得到变量间的重要性排序。

GBDT的主要缺点有:

1)由于弱学习器之间存在依赖关系,难以并行训练数据,不过可以通过自采样的SGBT来达到部分并行。

2完整代码实例

工业生产中,产品在制程过程中会有很多特性值,如果能对产品的特性值及时进行预测,得到特性值的具体数值,那么就会帮组业务人员知晓产品的质量,实现产品的全检,并能防止异常产品后流,造成不必要的浪费。

本次实战代码的采用的数据是半导体制程中某一道工序的机台的制程参数值,通过采用SparkMLlib中的GBDT算法对工业现场机台的制程参数进行建模,预测出经过该机台生产之后产品的膜层厚度。

SparkMLlib中的GBDT算法对工业数据的代码实战

SparkMLlib中的GBDT算法对工业数据的代码实战

SparkMLlib中的GBDT算法对工业数据的代码实战

SparkMLlib中的GBDT算法对工业数据的代码实战

模型最后输出模型性能指标如下:

Mape(Mean Absolute Percentage Error):0.23%

SparkMLlib中的GBDT算法对工业数据的代码实战

通过上图模型输出的预测值与实际值对比,发现预测出来的产品膜厚的数值走势跟实际数值走势基本符合,mape达到0.5%以内,拟合度相当可观,后续还可以通过样本筛选以及特征工程等手段对该模型进行进一步调优。

在模型达到业务需求的拟合度等指标后,通过该模型进行部署,实现产品的“实时全检”,从而实现产品质量的全面监控,杜绝异常产品后流;与工厂内的抽检系统结合后,降低产品的抽检率,提高工厂的效率。

GBDT算法的用途还是比较广泛的,它不仅可以处理分类问题,能对线性与非线性回归问题进行处理,还能通过输出变量间重要因子排序,方便业务人员快速定位异常变量。在工业现场的顽固异常分析还是产品特性预测等领域,GBDT算法确实是很值得数据分析人员考虑的一种算法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4612

    浏览量

    92875
  • 大数据
    +关注

    关注

    64

    文章

    8886

    浏览量

    137435

原文标题:一文快速读懂自动驾驶传感器与其市场趋势

文章出处:【微信号:electronicaChina,微信公众号:e星球】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    GBDT算法原理和模型训练

    算法原理再讲GBDT之前先给大家讲个故事,有一个年轻的阿姨今年50岁,现在我们不知道她的真实年龄,我们想通过他的皮肤、穿着打扮、头发颜色、言行举止、面部特征来推测她的真实年龄,假如我们根据这些输入
    发表于 01-23 14:38

    数据分析与挖掘实战》总结及代码---chap3数据探索

    数据分析与挖掘实战》总结及代码练习---chap3 数据探索
    发表于 05-25 13:25

    LabVIEW与数据实战教学

    LabVIEW与数据实战教学可有效解决问题如下:1、解决工业现场MES系统数据的上传问题。2、可快速开发上位机
    发表于 03-24 09:07

    《Arduino与LabVIEW开发实战》配套代码

    《Arduino与LabVIEW开发实战》配套代码
    发表于 03-23 16:00 29次下载

    基于GBDT个人信用评估方法

    近年来,个人信用评估问题成为信贷行业的研究热点,针对当前应用于信用评估的分类算法大多存在只对某种类型的信用数据集具有较好的分类效果的问题,提出了基于Cradient BoostedDecision
    发表于 11-03 17:27 2次下载
    基于<b class='flag-5'>GBDT</b>个人信用评估方法

    代码实例及详细资料带你入门Python数据挖掘与机器学习

    本文结合代码实例待你上手python数据挖掘和机器学习技术。 本文包含了五个知识点: 1. 数据挖掘与机器学习技术简介 2. Python数据预处理
    的头像 发表于 03-03 10:10 3362次阅读

    SparkMLlib GBDT算法工业大数据实战

    SparkMLlib GBDT算法,并将应用该算法工业
    的头像 发表于 04-28 14:11 3828次阅读
    <b class='flag-5'>SparkMLlib</b> <b class='flag-5'>GBDT</b><b class='flag-5'>算法</b><b class='flag-5'>工业大数据实战</b>

    GBDT算法原理以及实例理解

    GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法GBDT算的上TOP3的算法
    的头像 发表于 04-28 16:47 2.8w次阅读
    <b class='flag-5'>GBDT</b><b class='flag-5'>算法</b>原理以及实例理解

    XGBoost原理概述 XGBoost和GBDT的区别

    相比于经典的GBDT,xgboost做了一些改进,从而在效果和性能上有明显的提升。
    的头像 发表于 07-16 18:54 7.9w次阅读
    XGBoost原理概述 XGBoost和<b class='flag-5'>GBDT</b>的区别

    SparkMLlib GBDT算法工业大数据实战案例

    在格物汇之前发表的《工业大数据挖掘的利器——Spark MLlib》中提到,Spark 的MLlib组件能够对工业现场海量数据进行高效挖掘,快速呈现结果给业务分析人员。接下来将向大家介绍Spa
    的头像 发表于 12-25 17:42 941次阅读

    逻辑回归与GBDT模型各自的原理及优缺点

    一、GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导致生成的结果往往会比较片面。而这次介绍的这个
    的头像 发表于 12-26 10:01 1.2w次阅读
    逻辑回归与<b class='flag-5'>GBDT</b>模型各自的原理及优缺点

    GBDT是如何用于分类的

    - https://www.cnblogs.com/always-fight/p/9400346.html 编辑:阿泽的学习笔记 ❞ 一 简介 GBDT 在传统机器学习算法里面是对真实分布拟合的最好
    的头像 发表于 12-26 10:30 3170次阅读
    <b class='flag-5'>GBDT</b>是如何用于分类的

    机器学习实战的源代码资料合集

    本文档机器学习实战的源代码资料合集
    发表于 03-01 09:28 52次下载
    机器学习<b class='flag-5'>实战</b>的源<b class='flag-5'>代码</b>资料合集

    大学课程 数据分析 实战之K-means算法(2)算法代码

    分组成! %% 寻找聚类中心 while 1     count = zeros(2,1); 原文标题:大学课程 数据分析 实战之K-means算法(2)算法
    的头像 发表于 02-11 07:20 454次阅读

    Python编程实战(源代码)

    [源代码]Python编程实战 妙趣横生的项目之旅
    发表于 06-06 17:49 3次下载