集成学习

【机器学习面试题】——集成学习

旧时模样 提交于 2020-01-12 02:13:02
文章目录 1. 什么是集成学习算法? 2. 集成学习主要有哪几种框架? 3. 简单介绍一下bagging,常用bagging算法有哪些? 4. 简单介绍一下boosting,常用boosting算法有哪些? 5. boosting思想的数学表达式是什么? 6. 简单介绍一下stacking,常用stacking算法有哪些? 7. 你意识到你的模型受到低偏差和高方差问题的困扰,应该使用哪种算法来解决问题呢?为什么? 8. 常用的基分类器是什么? 9. 可否将随机森林中的基分类器,由决策树替换为线性分类器或K-近邻?请解释为什么? 1. 什么是集成学习算法? 集成学习算法是一种优化手段或者策略 ,不算是一种机器学习算法。 集成方法是由多个较弱的模型集成模型组,一般的弱分类器可以是决策树,SVM,KNN等构成。其中的模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。 该算法主要的问题是要找出哪些较弱的模型可以结合起来,以及如何结合的方法。 2. 集成学习主要有哪几种框架? 集成学习从集成思想的架构分为Bagging,Boosting,Stacking三种。 3. 简单介绍一下bagging,常用bagging算法有哪些? Bagging 多次采样,训练多个分类器,集体投票,旨在减小方差 , 基于数据 随机重抽样 的分类器构建方法

机器学习(5)之集成学习(RF\\AdaBoost\\GBDT)

╄→гoц情女王★ 提交于 2020-01-03 12:35:23
目录 1 集成学习的思想 1.1 Bagging简介 1.2 Boosting简介 1.3 Stacking简介 2 随机森林(Random Forest) 2.1 算法流程 2.3 TRTE 2.4 Isolation Forest(IForest) 2.5 RF随机森林的优缺点 3 AdaBoost 3.1 算法原理 3.2 算法的构建过程 3.3 总结 4 GBDT 4.1 算法原理 4.2 GBDT回归算法和分类算法 4.3 总结 1 集成学习的思想 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器。弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < 0.5)。 集成算法的成功在于保证弱分类器的多样性(Diversity)。而且集成不稳定的算法也能够得到一个比较明显的性能提升。 常见的集成学习思想有:Bagging、Boosting、Stacking 1.1 Bagging简介 Bagging方法又叫做自举汇聚法(Bootstrap Aggregating), 思想 :在原始数据集上通过 有放回的抽样 的方式,重新选择出S个新数据集来分别训练S个分类器的集成技术。也就是说这些模型的训练数据中允许存在重复数据。 Bagging方法训练出来的模型在预测新样本分类的时候,会使用 多数投票或者求均值

spring-integration学习

被刻印的时光 ゝ 提交于 2019-12-30 04:53:30
最近有幸,公司让我研究了spring-integration,对于这个spring出品的功能强大的工具,功能繁多且复杂。写此博客分享一下心得,也为记录一下最近研究这么久的知识点。理解的不够深,如果有错误的地方,希望各位朋友能批评指出。 一、what 首先,什么是spring-integration?研究之初,对这根管道有些迷惑,这是队列?这个activeMQ有啥区别?待研究了一段时间之后,才发现,spring-integration越来越像曾经做过的esb组件。那么spring-integration到底是什么呢? 官网给出的解释是,spring-integration是一个功能强大的EIP(Enterprise Integration Patterns),即企业集成模式。对,spring-integration是一个集大成者。就我自己的理解,集成了众多功能的它,是一种便捷的事件驱动消息框架用来在系统之间做消息传递的。 二、why 那么,我们为什么用它呢?spring-integration的官网上,给出了以下说法 spring-integration的目标 提供一个简单的模型来实现复杂的企业集成解决方案 为基于spring的应用添加异步的、消息驱动的行为 让更多的Spring用户来使用他 看这种解释,我的直观感觉是:啥玩意?不懂啊!接着看到spring

机器学习:集成学习:随机森林.GBDT

一曲冷凌霜 提交于 2019-12-25 00:45:05
集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(error rate < 0.5); 集成算法的成功在于保证弱分类器的多样性(Diversity).而且集成不稳定的算法也能够得到一个比较明显的性能提升 常见的集成学习思想有: Bagging Boosting Stacking Why need Ensemble Learning? 1. 弱分类器间存在一定的差异性,这会导致分类的边界不同,也就是说可能存在错误。那么将多个弱分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果; 2. 对于数据集过大或者过小,可以分别进行划分和有放回的操作产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再合并成为一个大的分类器; 3. 如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合; 4. 对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个分类模型,然后将多个模型融合。 Bagging方法 Bagging方法又叫做自举汇聚法(Bootstrap Aggregating),思想是:在原始数据集上通过有放回的抽样的方式

[学习随笔]SpringMVC框架集成Log4j日志框架

我的梦境 提交于 2019-12-22 23:16:33
[学习随笔]SpringMVC框架集成Log4j日志框架这里写自定义目录标题 Log4j简介 Log4j依赖添加 Log4j简介 log4j是Apache下的开源项目,主要功能为采集日志信息并输出打印。Log4j主要组件有如下三个。 (1)Logger:记录器,并提供细粒度划分,定义了不同的日志级别。这些日志级别的优先级如下: all<debug<info<warn<error<fatal<off. (2)Appender:Log4j允许把日志输出到不同的地方。Console,Files等。 (3)Layout:格式化日志输出方式 Log4j可以有两种配置方式,XML式或者.properties形式。xml式文件基本配置如下: // An highlighted block < ? xml version = "1.0" encoding = "UTF-8" ? > < Configuration status = "WARN" > < Appenders > < Concole name = "Console" target = "SYSTEM_OUT" > < PatternLayout pattern = "%d{HH:mm:ss:SSS}[%t]%-5level%logger{36}-%msg%n" > < / Console > < / Appenders > <

持续集成工具Jenkins学习总结

别来无恙 提交于 2019-12-20 23:37:34
概述       持续集成(Continuous Integration,简称CI) 是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译、发布、自动化测试)来验证,从而尽早的发现集成错误。持续集成最大的优点是避免了传统模式在集成阶段的除虫会议(bug meeting),其要素包括统一的代码库、自动构建、自动测试、自动部署、频繁提交修改过的代码等。   Jenkins的前身是 Hudson ,是基于Java开发的一种持续集成工具,是一个开源软件项目,主要用于: 持续、自动地构建/测试软件项目,如CruiseControl与DamageControl; 监控一些定时执行的任务;   Jenkins的官网: http://jenkins-ci.org/ ,下面我总结一下Windows下Jenkins的安装和使用。 Jenkins安装 (1)安装素材 JDK(Jenkins运行需要Java 1.6以上的版本) Jenkins安装包(官网下载) (2)安装JDK (3)安装Jenkins   运行Jenkins安装包,按提示安装即可,安装成功之后会自动打开网页 http://localhost:8080/ ,Jenkins主界面如下所示: Jenkins配置 (1)配置http端口号   Jenkins默认端口号是 8080 ,如果该端口号与其他任务的端口号冲突,就需要更改

Shiro学习(22)集成验证码

被刻印的时光 ゝ 提交于 2019-12-20 06:49:55
在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止 机器人 模拟真实用户登录而恶意访问,如暴力破解用户密码/恶意评论等。目前也有一些验证码比较简单,通过一些OCR工具就可以解析出来;另外还有一些验证码比较复杂(一般通过如扭曲、加线条/噪点等干扰)防止OCR工具识别;但是在中国就是人多,机器干不了的可以交给人来完成,所以在中国就有很多打码平台,人工识别验证码;因此即使比较复杂的如填字、算数等类型的验证码还是能识别的。所以验证码也不是绝对可靠的,目前比较可靠还是手机验证码,但是对于用户来说相对于验证码还是比较麻烦的。 对于验证码图片的生成,可以自己通过如 Java 提供的图像API自己去生成,也可以借助如JCaptcha这种开源Java类库生成验证码图片;JCaptcha提供了常见的如扭曲、加噪点等干扰支持。本章代码基于《第十六章 综合实例》。 一、添加JCaptcha依赖 Java代码 <dependency> <groupId>com.octo.captcha</groupId> <artifactId>jcaptcha</artifactId> <version>2.0-alpha-1</version> </dependency> <dependency> <groupId>com.octo.captcha</groupId> <artifactId

Web Service学习

╄→гoц情女王★ 提交于 2019-12-19 04:07:27
/*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */                    一、 Web Service 简介 1.1 、 Web Service 基本概念   Web Service也叫XML Web Service。Web Service 是一种可以接收从Internet或Intranet上的其它系统传递过来的请求,轻量级的独立通讯技术。是:通过SOAP在Web上提供软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。   XML:(Extenstible Markup Language)扩展性可标记语言。面向短期的数据处理,面向万维网,是SOAP的基础。   SOAP:(Simple Object Accesss Protlcol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL文档以后,他可以通过SOAP调用你Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或STMP。   WSDL:(Web Service Description Language),WSDL文件是一个XML文档

[原]Web Service学习

家住魔仙堡 提交于 2019-12-19 02:29:03
一、 Web Service 简介 1.1 、 Web Service 基本概念 Web Service 也叫 XML Web Service WebService 是一种可以接收从 Internet 或者 Intranet 上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是 : 通过 SOAP 在 Web 上提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。 XML : ( Extensible Markup Language ) 扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是 Soap 的基础。 Soap : (Simple Object Access Protocol) 简单对象存取协议。是 XML Web Service 的通信协议。当用户通过 UDDI 找到你的 WSDL 描述文档后,他通过可以 SOAP 调用你建立的 Web 服务中的一个或多个操作。 SOAP 是 XML 文档形式的调用方法的规范,它可以支持不同的底层接口,像 HTTP(S) 或者 SMTP 。 WSDL : (Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。 UDDI (Universal Description,

集成学习 - 决策树-随机森林

情到浓时终转凉″ 提交于 2019-12-18 20:12:22
认识 我觉得决策树+ 随机森林 应该是 ML 中最为重要的算法之一了吧, 反正我是很喜欢用的. 算法难度低, 可解释性很强, 能可视化 能处理非线性, 可扩展为随机森林(集成学习) 建立决策树的判别依据有很多, 比较主流的有经典的 ID3 算法(熵), C4.5 , 基尼系数等. 我是这种基于熵的理解了, 上学时学过熵的概念, 在<> 和 <> 有讲到. 其余的也没仔细看, 暂时能深入理解一个就可以了. 信息熵 衡量信息的不确定性 或 混乱程度的指标 不确定性越大, 则熵值越大 直观认知 举几个栗子: a. 大海捞针: 几乎不可能, 熵值很大 b. 扔一次硬币: 不确定性也很大, 熵值很大 c. 詹姆斯强攻篮下: 进球概率大, 不确定性很小, 因此熵值小 d. 斗地主时我已经推出对方剩下的牌: 这个信息量就很大了, 对于局势不确定性减少, 则熵变小. 通过直观, 我们用 信息熵 这个概念来 衡量信息的不确定性大小 , 如何对这个概念直观定性呢? 信息量,感觉上跟 概率 有关系, 概率很多, 信息量就很多 信息量, 应该是可以 相加 的 信息量, 应该是一个 单调的 信息量, 应该 不能为负数 , 最多只能有, 最差情况是 没有信息含量 , 不能说负吧 理性认知 也可以从系统论的观点来认识 (系统 = 多个元素的 相互联系). 可以肯定一点, 既然跟概率有关, 那 概率取值是 [0