xgboost

一线算法工程师经典面试题

半世苍凉 提交于 2020-08-10 09:39:52
一、 机器学习基础题 1、LSTM的公式 2、RNN为什么出现梯度消失及BPTT的推导 3、DQN的基本原理么 4、GBDT和随机森林有什么区别 5、GBDT的原理,如何做分类和回归 6、随机森林的随机体现在哪方面 7、Wide &Deep的原理 8、GBDT+LR是怎么做的? 9、DQN模型为什么要做经验回放 10、数据之间如果不是独立同分布的会怎样 11、AUC的原理介绍一下 12、XGBOOst和GBDT的区别。 13、强化学习和监督学习的区别 14、神经网络里面的损失函数有哪些 15、机器学习中常见的激活函数有哪些?为什么通常需要零均值? 16、DeepFM介绍 17、FM推导 18、boosting和bagging的区别? 19、bagging为什么能减小方差? 20、交叉熵损失函数,0-1分类的交叉熵损失函数的形式。什么是凸函数?0-1分类如果用平方损失为什么用交叉熵而不是平方损失? 21、L1和L2有什么区别,从数学角度解释L2为什么能提升模型的泛化能力。 22、深度学习中,L2和dropout有哪些区别? 23、L1正则化有哪些好处 24、如果有一万个地理坐标,转换成1-10000的数,可以用决策树么? 25、CART分类树和ID3以及C4.5有什么区别? 26、树集成模型有哪几种实现方式:Bagging和Boosting,回答过程中又问到了很多细节

CODING DevOps 系列第六课:IT 运维之智能化告警实践

与世无争的帅哥 提交于 2020-08-10 01:46:09
IT 运维告警现状 目前 IT 运维领域保证服务运行正常的主要方法是对相关运维指标进行实时监控,并根据经验设定一些规则,通过将实时监控的数据与规则进行对比,当某个指标监控值不符合设定的规则时,则判定为异常的状况,这样的话就会发送对应的告警到告警平台。告警平台收到通知后,会分配给对应的运维人员进行处理,运维人员去根据告警信息来排查,最终定位故障的根本原因,并对故障进行修复。从这个流程可以看出,整个过程是以告警为中心,所以告警的质量是至关重要的。 但在实际运维过程中,我们可以发现这个过程中其实存在很多问题。首先,监控系统的规则难以设定。因为规则是基于专家经验设定的,随着系统规模变大,复杂度提高,监控覆盖的完善,监控指标数量指数性增加,指标形态千变万化,基于专家经验的规则设定力不从心,误报率、漏报率居高不下。运维人员可能会遭遇告警风暴,每天被数千个告警轰炸,难以应付。故障发生后,对若干个告警逐一排查找故障根因,效率极低,大大增加故障的恢复时间。故障有可能无法预知,有些本来可以避免的故障还是发生了。 智能化告警的理念和相关技术 为了解决上述问题,在智能运维领域,智能化告警的概念出现了。智能化告警主要解决 4 个问题:一、精准告警,拒绝告警风暴;二、快速故障定位;三、进行故障预测,避免故障发生;四、规则设置自动化,不再通过人工经验来设置规则。 智能异常检测的核心理念是利用机器学习算法

浅谈最广泛应用的金融风控算法-评分卡

不想你离开。 提交于 2020-08-09 12:05:02
背景 信用是一切社会金融体系的根本,有了每个人的信用我们才可以进行放贷、共享充电宝、共享单车等业务。如果可以准确的给每个社会成员的信用做一个打分,将对金融业务的推进有很大作用,很多相关业务的企业也在探索如何实现信用分。 目前业内最通用的方案是评分卡算法,这个算法底层其实就是简单地二分类模型,将逻辑回归或者xgboost进行封装。但是为什么不能直接使用xgboost甚至深度学习算法做信用评估呢?因为金融业务有自己的特殊性,要求模型需要有强解释性,所以评分卡解决方案经常包含分箱和评分两个模块。就是为了做到每个分数的强解释性。 评分卡模型解释性 通过一个例子介绍什么叫强解释性。以下图为例: 这是一个评分卡算法的部分特征数据展示,有年龄、性别、婚姻状况、学历、月收入。评判每个人的分数也很容易: 客户分=基准分+年龄分+性别分+婚姻状况分+学历分+月收入分 所以在评分卡体系中,每个人的分数都会拆分成很多子模块,这些子模块的分数的和,跟基准分加到一起就是信用评分。接下来介绍下评分卡的执行流程。 评分卡流程 1.数据准备 通常评分卡模型的数据需要包含四个方面,分别是客户统计信息、账户属性、消费行为和还款行为。 根据数据目标的不同,可以分为ABC三种评分卡: 贷前:申请评分卡(Application score card),又称为A卡 贷中:行为评分卡(Behavior score card)

第四范式:分布式机器学习框架与高维实时推荐系统

荒凉一梦 提交于 2020-08-07 16:45:46
导读: 随着互联网的高速发展和信息技术的普及,企业经营过程中产生的数据量呈指数级增长,AI 模型愈发复杂,在摩尔定律已经失效的今天,AI 的落地面临着各种各样的困难。本次分享的主题是分布式机器学习框架如何助力高维实时推荐系统。 机器学习本质上是一个高维函数的拟合,可以通过概率转换做分类和回归。而推荐的本质是二分类问题,推荐或者不推荐,即筛选出有意愿的用户进行推荐。 本文将从工程的角度,讲述推荐系统在模型训练与预估上面临的挑战,并介绍第四范式分布式机器学习框架 GDBT 是如何应对这些工程问题的。 主要内容包括: 推荐系统对于机器学习基础架构的挑战 大规模分布式机器学习场景下,不同算法的性能瓶颈和解决思路 第四范式分布式机器学习框架 GDBT 面临的网络压力及优化方向 01 推荐系统对于机器学习基础架构的挑战 1. 海量数据+高维特征带来极致效果 传统的推荐系统中,我们只用简单的模型或者规则来拟合数据,就可以得到一个很好的效果 ( 因为使用复杂的模型,很容易过拟合,效果反而越来越差 )。但是当数据量增加到一定的数量级时,还用简单的模型或者规则来拟合数据,并不能充分的利用数据的价值,因为数据量增大,推荐的效果上限也随之提升。这时,为了追求精准的效果,我们会把模型构建的越来越复杂,对于推荐系统而言,由于存在大量的离散特征,如用户 ID、物品 ID 以及各种组合

MaxCompute Mars 完全指南

穿精又带淫゛_ 提交于 2020-08-04 16:29:16
Mars 简介 Mars 能利用并行和分布式技术,加速 Python 数据科学栈,包括 numpy 、 pandas 和 scikit-learn 。同时,也能轻松与 TensorFlow、PyTorch 和 XGBoost 集成。 Mars tensor 的接口和 numpy 保持一致,但支持大规模高维数组。样例代码如下。 import mars.tensor as mt a = mt.random.rand(10000, 50) b = mt.random.rand(50, 5000) a.dot(b).execute() Mars DataFrame 接口和 pandas 保持一致,但可以支撑大规模数据处理和分析。样例代码如下。 import mars.dataframe as md ratings = md.read_csv('Downloads/ml-20m/ratings.csv') movies = md.read_csv('Downloads/ml-20m/movies.csv') movie_rating = ratings.groupby('movieId', as_index=False).agg({'rating': 'mean'}) result = movie_rating.merge(movies[['movieId', 'title']], on=

LightGBM

笑着哭i 提交于 2020-07-29 11:24:55
LightGBM LightGBM原理及实现 LigthGBM是boosting集合模型中的新进成员,它和xgboost一样是对GBDT的高效实现,很多方面会比xgboost表现的更为优秀。原理上它和GBDT及xgboot类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树。 LightGBM vs xGBoost xgBoost算法的优点: XGB利用了二阶梯度来对节点进行划分,相对其他GBM来说,精度更高。 利用局部近似算法对分裂节点的贪心算法优化,取适当的eps时,可以保持算法的性能且提高算法的运算速度。 在损失函数中加入了L1/L2项,控制模型的复杂度,提高模型的鲁棒性。 提供并行计算能力,主要是在树节点求不同的候选的分裂点的Gain Infomation(分裂后,损失函数的差值) Tree Shrinkage,column subsampling等不同的处理细节。 xgBoost算法的缺点: 需要pre-sorted,这个会耗掉很多的内存空间(2 * #data * # features) 数据分割点上,由于XGB对不同的数据特征使用pre-sorted算法而不同特征其排序顺序是不同的,所以分裂时需要对每个特征单独做依次分割,遍历次数为#data * #features来将数据分裂到左右子节点上。 尽管使用了局部近似计算,但是处理粒度还是太细了

ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化

懵懂的女人 提交于 2020-07-29 10:25:35
ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果 来源: oschina 链接: https://my.oschina.net/u/4314546/blog/4375196

使用PyCaret构建机器学习模型

本小妞迷上赌 提交于 2020-07-28 18:26:46
作者|LAKSHAY ARORA 编译|VK 来源|Analytics Vidhya 概述 PyCaret是一个超级有用的Python库,用于在短时间内执行多个机器学习任务 学习如何依赖PyCaret在几行代码中构建复杂的机器学习模型 介绍 我建立的第一个机器学习模型是一个相当麻烦的代码块。我仍然记得构建一个集成模型,它需要许多行代码,它十分需要一个向导来解开这些混乱的代码! 当涉及到构建可解释的机器学习模型时,尤其是在行业中,编写高效的代码是成功的关键。所以我强烈建议使用PyCaret库。 我希望PyCaret在我的刚学习机器学习的日子里出现!这是一个非常灵活和有用的库,我在最近几个月已经相当依赖。我坚信任何有志成为数据科学或分析专业人士的人都会从使用PyCaret中受益匪浅。 我们将看到PyCaret到底是什么,包括如何在你的机器上安装它,然后我们将深入研究如何使用PyCaret来构建可解释的机器学习模型,包括集成模型。 目录 什么是PyCaret?为什么要使用它? 安装PyCaret 熟悉PyCaret 使用PyCaret训练我们的机器学习模型 使用PyCaret构建集成模型 分析模型 做出预测 保存并加载模型 什么是PyCaret?为什么要使用它? PyCaret是Python中一个开源的机器学习库,它可以帮助你从数据准备到模型部署。它很容易使用

Python - LightGBM with GridSearchCV, is running forever

人走茶凉 提交于 2020-07-17 11:15:42
问题 Recently, I am doing multiple experiments to compare Python XgBoost and LightGBM. It seems that this LightGBM is a new algorithm that people say it works better than XGBoost in both speed and accuracy. This is LightGBM GitHub. This is LightGBM python API documents, here you will find python functions you can call. It can be directly called from LightGBM model and also can be called by LightGBM scikit-learn. This is the XGBoost Python API I use. As you can see, it has very similar data

XGBOOST: sample_Weights vs scale_pos_weight

徘徊边缘 提交于 2020-07-15 05:39:51
问题 I have a highly unbalanced dataset and am wondering where to account for the weights, and thus am trying to comprehend the difference between scale_pos_weight argument in XGBClassifier and the sample_weight parameter of the fit method. Would appreciate an intuitive explanation of the difference between the two, if they can be used simultaneously or how either approach is selected. The documentation indicates that scale_pos_weight : control the balance of positive and negative weights..&