摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布,学习思想包括ID3,C4.5,CART(摘自<统计学习方法>). 1.2 Bagging :基于数据随机重抽样的集成方法(Ensemble methods),也称为自举汇聚法(boostrap aggregating),整个数据集是…
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布,学习思想包括ID3,C4.5,CART(摘自<统计学习方法>). 1.2 Bagging :基于数据随机重抽样的集成方法(Ensemble methods),也称为自举汇聚法(boostrap aggregating),整个数据集是…
集成模型 集成分类模型是综合考量多个分类器的预测结果,从而做出决策. 综合考量的方式大体分为两种: 1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策.(随机森林分类器) 2.按照一定次序搭建多个分类模型.这些模型之间彼此存在依赖关系.一般而言,每一个后续模型的加入都要对现有集成模型的综合性能有所贡献,进而不断提升更新过后的集成模型的性能.(梯度提升决策树) 代码1:  #集成模型对泰坦尼克号乘客是否生还的预测 #导入pandas,并且重…
一.决策树 决策树一般以选择属性的方式不同分为id3(信息增益),c4.5(信息增益率),CART(基尼系数),只能进行线性的分割,是一种贪婪的算法,其中sklearn中的决策树分为回归树和分类树两种,默认的是CART的决策树,下面介绍CART决策树 分支条件:二分类问题(只用来构建二叉树) 分支方法:对于连续特征的情况:比较阈值,高于某个阈值就属于某一类,低于某个阈值属于另一类.对于离散特征:抽取子特征,比如颜值这个特征,有帅.丑.中等三个水平,可以先分为帅和不帅的,不帅的里面再分成丑和中等的…
决策树这节中涉及到了很多pandas中的新的函数用法等,所以我单拿出来详细的理解一下这些pandas处理过程,进一步理解pandas背后的数据处理的手段原理. 决策树程序 数据载入 pd.read_csv()竟然可以直接请求URL... ... DataFrame.head()可以查看前面几行的数据,默认是5行 DataFrame.info()可以查看数据的统计情报 '''数据载入''' import pandas as pd titanic = pd.read_csv('http://bios…
小伙伴们大家好~o( ̄▽ ̄)ブ,首先声明一下,我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上 Scikit-learn 0.20.0 (你的版本至少要0.20 Graphviz 0.8.4 (没有画不出决策树哦,安装代码conda install python-graphviz Numpy 1.15.3, Pandas 0.23.4, Matplotlib 3.0.1, SciPy 1.1.0 用SKlearn 建立一棵决策树…
谈完数据结构中的树(详情见参照之前博文<数据结构中各种树>),我们来谈一谈机器学习算法中的各种树形算法,包括ID3.C4.5.CART以及基于集成思想的树模型Random Forest和GBDT.本文对各类树形算法的基本思想进行了简单的介绍,重点谈一谈被称为是算法中的“战斗机”,机器学习中的“屠龙刀”的GBDT算法. 1. 决策树的模型 决策树是一种基本的分类与回归方法,它可以被认为是一种if-then规则的集合.决策树由节点和有向边组成,内部节点代表了特征属性,外部节点(叶子节点)代表了类别…
0 - 思想 如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练一个基础分类器,最后将它们的结果综合起来获得最终输出. 1 - 特点 Bagging需要不同的/独立的(diverse/independent)基础模型,因此太过稳定的模型不适合这种集成方法,例如: KNN是稳定的 决策树是不稳定的,特别是未剪枝的决策树(因为对于每一份数据的拟合可能很不一样) 此外…
前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力.近日.DeepMind 基于 GQN 提出一种新模型.可以捕捉空间关系的语义(如 behind.left of 等),当中包括一个基于从场景文本描写叙述来生成场景图像的新型多模态目标函数.结果表明,内部表征对意义不变的描写叙述变换(释义不变)具备稳健性,而视角不变性是该系统的新兴属性. 论文:Encoding Spatial Relations from Natural Language 论文链接:h…
注:这是大概四年前写的文章了.而且我离开.net领域也有四年多了.本来不想再发表,但是这实际上是Active Object模式在.net中的一种重要实现方法,因此我把它掏出来发布一下.如果该模型有新的发展,望在评论中帮给出一个引用,以便其它读者知晓.感激不尽 基于事件的异步模型实际上是MSDN中讲解异步编程时所提供的一个章节.但在阅读这些章节时,我觉得MSDN在一开始就将所有组成全部列出,然后再联系到一起的讲解次序并不适合我们的思维方式.因此在本文中,我将按照从易到难的方式逐步对该异步模型进行讲…
基于K2的集成供应链流程解决方案http://www.k2software.cn/zh-hans/scm-solution 一.详细功能模块 需求管理模块多渠道管理.需求计划.需求感知与传递市场营销及促销规划.新产品导入.订单满足.店面补货 物流模块交通运输规划,负载汇总和优化运输能力规划和管理:运输执行和管理零担,多点收集,多点送货跟踪和追踪,逆向物流,进出口物流 集成的业务计划财务规划,S&OP(销售和运营计划)基线和根本原因分析供应链风险管理与业务连续性 采购生产管理模块主生产计划,材料清…
基于Pre-Train的CNN模型的图像分类实验  MatConvNet工具包提供了好几个在imageNet数据库上训练好的CNN模型,可以利用这个训练好的模型提取图像的特征.本文就利用其中的 “imagenet-caffe-ref”的模型,提取图像特征(softmax前一层的输出,4096维),在几个常用的图像分类的数据库中进行了相应的分类实验.这实验的过程中,有对图片进行左右翻转用于增加训练数据.下面结果的表格中:Original原始结果,Flip增加翻转后的结果. 需要用到的toolbox…
  word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注. 因为 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上添加了这个工具包的神奇感.一些按捺不住的人于是选择了通过解剖源码的方式来一窥到底,出于好奇,我也成为了他们中的一员. 读完代码后,认为收获颇多,整理成文,给有须要的朋友參考. 相关链接 (一)文件夹和前言 (二)…
  word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注.因为 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上添加了这个工具包的神奇感.一些按捺不住的人于是选择了通过解剖源码的方式来一窥到底,出于好奇,我也成为了他们中的一员.读完代码后.认为收获颇多.整理成文,给有须要的朋友參考. 相关链接 (一)文件夹和前言 (二)预备…
FaceRank-人脸打分基于 TensorFlow 的 CNN 模型 隐私 因为隐私问题,训练图片集并不提供,稍微可能会放一些卡通图片. 数据集 130张 128*128 张网络图片,图片名: 1-3.jpg 表示 分值为3 的第3 张图. 你可以把符合这个格式的图片放在 resize_images 来训练模型. 模型 人脸打分基于 TensorFlow 的 CNN 模型 代码参考 : https://github.com/aymericdamien/TensorFlow-Examples/b…
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sampling的模型 在word2vec原理(一) CBOW与Skip-Gram模型基础中,我们讲到了使用神经网络的方法来得到词向量语言模型的原理和一些问题,现在我们开始关注word2vec的语言模型如何改进传统的神经网络的方法.由于word2vec有两种改进方法,一种是基于Hierarchical…
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sampling的模型 在上一篇中我们讲到了基于Hierarchical Softmax的word2vec模型,本文我们我们再来看看另一种求解word2vec模型的方法:Negative Sampling. 1. Hierarchical Softmax的缺点与改进 在讲基于Negative Sampl…
如何利用tensorflow的object_detection api开源框架训练基于自己数据集的模型(Windows10系统) 一.环境配置 1. Python3.7.x(注:我用的是3.7.3.安装好后把python.exe的路径加入到全局环境变量path中,方便后续命令) 2. Tensorflow1.13.1(注:目前暂时还不能用tensorflow2.x,因为开源社区还没有针对Windows10+tensorflow2.x的object_detection api参考资料.) 3. P…
源码传送门: https://github.com/ningzuoxin/zxning-springsecurity-demos/tree/master/02-springsecurity-stateless-webflux 一.前言 Spring WebFlux 是一个异步非阻塞式的 Web 框架,它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求.SpringSecurity 专门为 Webflux 定制了一套用于权限控制的 API,因此在 Webflux 应用中集成 SpringS…
1.bootstrap   在原始数据的范围内作有放回的再抽样M个, 样本容量仍为n,原始数据中每个观察单位每次被抽到的概率相等, 为1/n , 所得样本称为Bootstrap样本.于是可得到参数θ的一个估计值θ^(b),这样重复若干次,记为B .为了可以避免一些误差点对少量树的决策影响. 2.决策树 : 信息熵: Ent(D) = - ΣPk*logPk, Ent(D)的值越小,则D的纯度越高           信息增益: ID3中使用, 存在过拟合的情况, 避免过拟合的方法,1. 通过si…
如图,为使用到的公式,信息熵表明样本的混乱程度,增益表示熵减少了,即样本开始分类,增益率是为了平衡增益准则对可取值较多的属性的偏好,同时增益率带来了对可取值偏小的属性的偏好,实际中,先用增益进行筛选,选取大于增益平均值的,然后再选取其中增益率最高的. 以下代码纯粹手写,未参考其他人代码,如果问题,请不吝赐教. 1,计算信息熵的函数 import numpy as np# 计算信息熵 # data:like np.array # data.shape=(num_data,data_features…
经过前面对AdaBoost的总结,下面要基于Matlab实现AdaBoost-Stump进行二维平面数据点的分类的实验. 一. 实验原理 参看 http://blog.csdn.net/lg1259156776/article/details/46831191 <boosting:三个臭皮匠赛过诸葛亮,adaptive:逐步(级联)> 二. 实验方法 生成一个可以利用sine线进行分割的数据点样本,然后通过AdaBoost - decision stump对数据点进行学习,最后得出能够将数据点…
一.集成学习与Boosting 集成学习是指将多个弱学习器组合成一个强学习器,这个强学习器能取所有弱学习器之所长,达到相对的最佳性能的一种学习范式. 集成学习主要包括Boosting和Bagging两种学习框架.Boosting是一种将弱学习器提升为强学习器的算法,所以也叫提升算法. 以分类问题为例,给定一个训练数据集,训练弱分类器要比训练强分类器相对容易很多,从第一个弱分类器开始,Boosting通过训练多个弱分类器,并在训练过程中不断改变训练样本的概率分布,使得每次训练时算法都会更加关注上一…
一.总述 当代WebGL编程所使用的3D模型大多是从3DsMax模型或Blender模型转化而来,这种工作模式比较适合3D设计师和3D程序员分工配合的场景.但对于单兵作战的WebGL爱好者来讲这种模式过于沉重:且不说转化插件本身存在的各种bug严重降低了转化的成功率,光是为了生成一个简单的模型就需要系统的学习3DsMax或Blender的使用方法就让人感觉得不偿失. 基于以上考虑,我计划编写一个基于Babylonjs的简单WebGL模型编辑器,供自己和其他有同样需求的WebGL爱好者使用.编辑器…
细粒度识别一般需要模型识别非常精细的子类别,它基本上就是同时使用图像全局信息和局部信息的分类任务.在本论文中,研究者们提出了一种新型层次语义框架,其自顶向下地由全局图像关注局部特征或更具判别性的区域. 人类在识别物体类别时,往往不仅仅根据其外观信息,还依赖于在日常生活以及专业学习过程中获取的先验知识.如何有效利用这些先验知识引导和约束网络学习是目前一个重要的研究难点.针对于精细化物体识别,其类别可以按照不同程度进行概念抽象,并形成了层次化的分类结构.这种结构是层级间丰富语义知识的集中体现,如层级…
在发现云服务器读取OCS缓存的“黑色0.1秒”是发生在socket读取数据时,而且是发生在读取开始的字节,甚至在socket写数据时(比如写入缓存key)也会出现超过50ms的情况,我们的好奇心被激发到一个新的高度. 根据我们的实测,在云服务器上创建一个新的TCP连接通常也不过3ms左右.在黑色0.1秒期间,TCP包已经到达网卡,从网卡读到内存中竟然超过100ms,这太不可思议了!后来想想,如果.Net或Windows存在这样的问题,那微软就不是全球第一大软件公司,而是全球第一大忽悠公司,这个可…
一.引言 在上两个专题中我为大家介绍.NET 1.0中的APM和.NET 2.0中的EAP,在使用前面两种模式进行异步编程的时候,大家多多少少肯定会感觉到实现起来比较麻烦, 首先我个人觉得,当使用APM的时候,首先我们要先定义用来包装回调方法的委托,这样难免有点繁琐, 然而使用EAP的时候,我们又需要实现Completed事件和Progress事件,上面两种实现方式感觉都有点繁琐,同时微软也意思到了这点,所以在.NET 4.0中提出了一个新的异步模式——基于任务的异步模式,该模式主要使用Syst…
概述 基于模型的开发将省去繁琐的代码编写步骤,只需要拖动几个模块,就像搭积木一般,轻松搭建您自己的飞控算法.飞控开发人员可以将更多的精力放在算法本身,而不需要过多关注代码实现的细节,这样将大大加快开发的效率,减少在代码编写过程中产生的错误.同时,基于模型的开发具有优秀的代码复用性.也就是说,已经设计好的功能模块,只需要简单的复制粘贴,就能轻松地应用到其它任何地方,免去了代码移植过程的繁琐. 基于模型的开发另外一个强大的优势即在于"一次试验,多次仿真"的目的.结合Simulink强大的开…
"一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学量化,那么将不会被很好的控制. 因为工作需要,笔者曾拜访过很多无人机研发公司,高校和研究所.发现大多数无人机研发公司的研发手段,相较于国外,还很初级.基本都是嵌入式开发居多,侧重于驱动的修改,飞行逻辑的修改.我认为这算不上是严格的无人机开发.因为大多数公司,都没有给被控对象(无人机),建立完整的数学模型.只是…
# 读取数数据, 查看数据结构 df_raw <- read.csv("sms_spam.csv", stringsAsFactors=F) str(df_raw) length(df_raw$type) # 将数据分为特征值矩阵 X 和 类标向量y 两部分,将 y 换为因子 X <- df_raw$text y <- factor(df_raw$type) length(y) # 查看类标向量 y 的结构和组成 str(y) table(y) # 安装和加载文本挖掘…