3.1 广义线性模型

3.1.1 模型来源 在广义线性模型中,最常用的有六种,由于数据属性原因,在这里我们只讨 论 Logistic 模型、

Probit 模型与

泊松分布对数线性模型.

在多数研究中,研究者 经常会碰到定性变量,如是否购买,是否离职,性别,为哪个候选人投票,每个 人的职业等等,在这一类不可忽略的变量影响下,研究人员希望能把这一变量加 入到模型当中,并且让结果以一个概率的形式表现出来,从而表达一个事件的可 能性,从而进行预判.当我们所要研究预测的变量被多个变量所影响,并且所建 模型数据是离散型而非连续型时,通常使用广义线性回归,并引入虚拟变量将定 性变量量化.但是,这些方法在一定程度上都可能存在缺陷.例如在现实中,因 变量与自变量的关系有可能是一种非线性关系等. 该模型假设二分类被解释变量 Y 取 1,即事件“成功”的概率 P(Y =1) = p , 而 P(Y = 0) =1- p ,有的文献称 Y 服从标准的 Logistic 累计几率分布函数[36].其 因变量为定性变量.所以不同于一般线性回归模型, Logistic 回归模型在分析处 理二分类及多分类问题时有广泛的应用,特别是在交通,教育,金融等领域的实 际问题中较为常见. 而同样都是处理离散数据的常用模型, Probit 模型,相较于 Logistic 模型假 设连接函数为 Logit 函数,误差服从二项分布, Probit 模型也要求误差服从二项 分布但连接函数为 Probit 函数.当因变量为名义变量时,二者在一定程度上没有 本质区别,可以换用.下面先简单介绍 Logistic 模型的基本原理和相关 R 函数.

果因变量有两个以上的多个取值水平,则为多元 Logistic 回归模型.采用 Logistic 回归,可以预测因变量 Y 的每一个分类的概率,而因变量与自变量也可以根据实 际情况来进行选择[37].根据本文数据特征,本文先选择二元 Logistic 回归模型展 开分析讨论. 一般线性回归模型 中,通常假设误差服从零均 值的正态分布: ) ,导致因变量 Y 只能连续取值,使得一般线性回归模 型无法处理因变量 Y 取离散值的数据分析问题.

3.2 XGBoost 算法

3.2.1 为何选择 XGBoost 算法

在前面 Logistic 回归中,我们得知员工离职的影响因素,并且各离职因素所 占的比重,但是, Logistic 算法并不是非常强大的算法,准确的说, Logistic 回 归十分依赖正确的数据且易过拟合.所以试用 XGBoost 算法.简单说是不断添加 树以此学习新的函数来拟合前一次预测的残差.当我们用训练集训练完成 N 棵 树,我们需要预测一个样本分数,就是根据样本特征,而在每棵树的叶子节点有 一个分数,最后我们做的工作则是把所有的分数加起来,就是该样本的预测值, 最后也就得到了我们需要的结果.但是,为什么不能直接运用决策树来解决问 题?其实每个算法都不是单独独立的存在,XGBoost 算法是由决策树,随机森林, GBDT 一步步改良而来,决策树通过找到高于平均值的信息增益,再进行增益率 最高值挑选出的属性.

在CART 决策树中,分为

CART 分类树与

CART 回归树,

在划分属性时:

CART 分类树根据基尼指数,基尼指数越高,“纯度”相应也越 小;

CART 回归树根据切分点进行划分,特征值大于切分点的阈值分为左子树, 反之,则分为右子树,而切分点则选用最小平方误差.决策树简单却易过拟合, 所以必须进行预剪枝或后剪枝,并且模型应用也很十分有限.而随机森林相对于 决策树,便可以使用自助采样法(bootstrap sampling)+随机属性选择+模型集成 的方法来解决决策树过拟合风险高的问题,自助采样法是有放回的抽样方法,为 了能在接下来取样时依旧能取到该样本,由此我们可以取到不同的训练集.随机 森林在自助采样法的基础上,加入了一个随机属性选择:在决定细分属性时,先 随机自由选择一个包含 K 个属性的子集,再从中挑选最优的属性进行划分.两者 结合,确保了其随机性,但是随机森林里的树都是独立的,并未对周围的决策树 产生正面的影响,而且解释性也不高.GBDT 则是梯度提升决策树,而GBDT 中 的决策树均是CART 回归树,GBDT 用前一个树的残差作为学习目的来构造新的树,以此解决随机森林都是独立树的问题,而构建的模型输出则是要将所有决策 树的结果相加,而CART 分类树无法运用加法模型.当融合 Boosting 后,建立树 和树之间的联系,使得随机森林不再是单独互相独立的树,从而变成一个有序的 集体决策体系.XGBoost 算法相较GBDT 算法而言,是在每一轮的目标函数中加 入正则项,使得过拟合的风险变得更小.XGBoost 的改进准则是依据目标函数最 小化推导,进行二阶泰勒式展开,使得定义损失函数成为可能.当然 XGBoost 同 样也继承了上列算法的优点,例如随机采样,随机属性的选择等.可以说 XGBoost 是非常优秀的一种机器学习算法.

3.1 广义线性模型 And XGBoost相关推荐

  1. R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化

    R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化 目录

  2. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析

    R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录

  3. 广义线性模型GLM、GLMM、LMM、MLM、GMM、GEE、广义线性模型GLM和广义线性混合模型的GLMM区别

    R语言广义线性模型GLM.GLMM.LMM.MLM.GMM.GEE.广义线性模型GLM和广义线性混合模型的GLMM区别 目录

  4. Python使用sklearn构建广义线性模型:泊松回归(Poisson regression)实战

    Python使用sklearn构建广义线性模型:泊松回归(Poisson regression)实战 目录 Python使用sklearn构建广义线性模型:泊松回归(Poisson regressio ...

  5. Python使用sklearn构建广义线性模型:gamma回归(Gamma regression)实战

    Python使用sklearn构建广义线性模型:gamma回归(Gamma regression)实战 目录 Python使用sklearn构建广义线性模型:gamma回归(Gamma regress ...

  6. Python使用sklearn构建广义线性模型:Tweedie回归(Tweedie regression)实战

    Python使用sklearn构建广义线性模型:Tweedie回归(Tweedie regression)实战 目录 Python使用sklearn构建广义线性模型:Tweedie回归(Tweedie ...

  7. R语言广义线性模型Logistic回归案例代码

    R语言广义线性模型Logistic回归案例代码 在实际应用中,Logistic模型主要有三大用途: 1)寻找危险因素,找到某些影响因变量的"坏因素",一般可以通过优势比发现危险因素 ...

  8. R语言广义线性模型Logistic回归模型列线图分析(nomogram)

    R语言广义线性模型Logistic回归模型列线图分析(nomogram) 我们来看图说话: gist是一种胃肠道间质瘤,作者构建了无复发生存率的logistic回归模型. 并构建了如下的列线图或者no ...

  9. R语言广义线性模型Logistic回归模型C Statistics计算

    R语言广义线性模型Logistic回归模型C Statistics计算 区分能力指的是回归模型区分有病/无病.有效/无效.死亡/存活等结局的预测能力.比如,现有100个人,50个确定患病,50个确定不 ...

  10. R语言广义线性模型泊松回归(Poisson Regression)模型

    R语言广义线性模型泊松回归(Poisson Regression)模型 试想一下,你现在就站在一个人流密集的马路旁,打算收集闯红灯的人群情况(?).首先,利用秒表和计数器,一分钟过去了,有5个人闯红灯 ...

最新文章

  1. ddos流量攻击有多少G_锐速云高防IP 专业防御大流量DDoS攻击
  2. python自动备份手机_python实现自动备份windows应用数据
  3. 解决opencv输出视频无法正常播放问题
  4. linux shell ls -1 列显示文件
  5. Python 定时任务(apscheduler模块)
  6. 疫情下跨越一万公里的友情:熊超与飒特电子哨兵的故事
  7. LVGL V8之Animation timeline
  8. Springboot @Aspect
  9. python新版个人所得税代码_python-计算个人所得税(示例代码)
  10. 【stm32f4 C++与C混合开发】建立keil5的ARM Compiler 6(AC6)标准库开发工程
  11. 程序设计大作业---词汇表生成
  12. c语言扫雷游戏构成原理,扫雷游戏的C语言实现
  13. JXLS生成excel填充图片设置大小
  14. linux 强制关闭进程
  15. 基于plc的隧道式,门框式全自动洗车机控制,组态王动画仿真
  16. 【MySQL进阶】存储过程及存储函数
  17. 我的世界服务器清道夫不显示,我的世界清道夫指令 | 手游网游页游攻略大全
  18. 移动端实时音视频直播技术详解(一):开篇
  19. android webview全屏显示html内容
  20. java背包算法回溯法_【算法分析】实验 4. 回溯法求解0-1背包等问题

热门文章

  1. java 取消引用_java – 如何取消方法引用谓词
  2. Python与模块--01sys
  3. Linux 小知识翻译 - 「GCC」
  4. ios开发证书reset原理分析以及解决方案
  5. Windows 7 SP1开发完毕 已进入测试阶段
  6. 阿里云服务器安装宝塔面板和配置安全组
  7. ThinkPHP统计某个分类的文章数目
  8. 小石坝第一次月赛:A
  9. syslog日志转换器_图解将windows日志转成syslog格式并发送
  10. python开发的代码如何加密_python 代码加密