分类变量

从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同

ⅰ亾dé卋堺 提交于 2020-02-25 15:48:18
尽管近年来神经网络复兴并大为流行,但是 boosting 算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。本文从算法结构差异、每个算法的分类变量时的处理、算法在数据集上的实现等多个方面对 3 种代表性的 boosting 算法 CatBoost、Light GBM 和 XGBoost 进行了对比;虽然本文结论依据于特定的数据集,但通常情况下,XGBoost 都比另外两个算法慢。 最近,我参加了 kaggle 竞赛 WIDS Datathon,并通过使用多种 boosting 算法,最终排名前十。从那时开始,我就对这些算法的内在工作原理非常好奇,包括调参及其优劣势,所以有了这篇文章。尽管最近几年神经网络复兴,并变得流行起来,但我还是更加关注 boosting 算法,因为在训练样本量有限、所需训练时间较短、缺乏调参知识的场景中,它们依然拥有绝对优势。 2014 年 3 月,XGBOOST 最早作为研究项目,由陈天奇提出2017 年 1 月,微软发布首个稳定版 LightGBM2017 年 4 月,俄罗斯顶尖技术公司 Yandex 开源 CatBoost 由于 XGBoost(通常被称为 GBM 杀手)已经在机器学习领域出现了很久,如今有非常多详细论述它的文章,所以本文将重点讨论 CatBoost 和 LGBM,在下文我们将谈到:

主成分分析入门

喜你入骨 提交于 2020-02-13 06:55:09
主成份分析: 主成份分析是最经典的基于线性分类的分类系统。这个分类系统的最大特点就是利用线性拟合的思路把分布在多个维度的高维数据投射到几个轴上。如果每个样本只有两个数据变量,这种拟合就是 其中 和 分别是样本的两个变量,而 和 则被称为loading,计算出的P值就被称为主成份。实际上,当一个样本只有两个变量的时候,主成份分析本质上就是做一个线性回归。公式 本质上就是一条直线。 插入一幅图(主成份坐标旋转图,来自:PLS工具箱参考手册) 如果一个样本有n个变量,那主成份就变为: 其中PC 1 称为第一主成份,而且,我们还可以获得一系列与PC这个直线正交的其它轴,如: 被称为第二主成份 以此类推,若令 , 此时向量A称为主成份的载荷(loading),计算出的主成份的值PC称为得分(score)。 主成份分析举例 作为一个典型的降维方法,主成份分析在数据降维方面非常有用,而且也是所有线性降维方法的基础。很多时候,如果我们拿着一个非常复杂的数据不知所措的话,可以先考虑用主成份分析的方法对其进行分解,找出数据当中的种种趋势。在这里,我们利用数据挖掘研究当中非常常见的一个数据集对主成份分析的使用举例如下: 1996年,美国时代周刊(Times)发表了一篇关于酒类消费,心脏病发病率和平均预期寿命之间关系的科普文章,当中提到了10个国家的烈酒,葡萄酒和啤酒的人均消费量(升/年)与人均预期寿命

K最邻近分类

徘徊边缘 提交于 2020-02-07 06:19:47
最邻近分类是分类方法中比较简单的一种,下面对其进行介绍 1.模型结构说明 最邻近分类模型属于“基于记忆”的非参数局部模型,这种模型并不是立即利用训练数据建立模型,数据也不再被函数和参数所替代。在对测试样例进行类别预测的时候,找出和其距离最接近的 个样例,以其中数量最多的类别作为该样例的类预测结果。 最邻近分类模型的结构可以用下图来说明,图中叉号表示输入的待分类样例,对其分类时选定一个距离范围(虚线圆圈表示的范围),在该范围内包含有 个样例(除去待分类样例外,这里 =5),这里所说的距离并不专指距离度量(如曼哈顿距离、欧氏距离等),它可以是任意一种邻近度度量(在我的博文《数据测量与相似性分析》中有介绍),此时最邻近的5个样例中,有3个“+”例,2个“-”例,故待分类样例的类别定位“+”。为了便于确定类别, 一般取奇数。 ​ 2.模型构建 2.1 K值选取 从 最邻近分类方法的分类过程可知, 值对模型的误分类率影响较大。 较小时,相当于用较小邻域中的样例进行预测,“学习”的近似误差会减小,但是“学习“的估计误差会增大,且对邻域内的样例非常敏感,若邻近的样例中包含部分噪声,预测结果就会出错, 较大时的情况则相反。 总的来说, 值减小意味着整体模型变复杂,容易发生过拟合, 值增大意味着模型变简单,导致忽略“训练”样例中一些有用信息,预测误分类率会增高。在应用中,一般 取较小的值

PHP数据类型(一)基本类型(二)复合类型和特殊类型

不羁的心 提交于 2020-02-04 12:13:14
复合类型 1.含义:储存多个相关信息 2.分类 数组(Array):一组数据的相关容器 对象(Object) 可调用(Callable) 特殊类型 1.含义:无法归为其他类型的数据类型 2.分类: 空值 (Null): a.声明但没有赋值的变量 b.声明但赋值为null c.通过 unset()函数销毁的变量 资源 (Resource):无法通过直接声明获取,只能通过特定的函数来实现 来源: CSDN 作者: IT_lxb 链接: https://blog.csdn.net/IT_lxb/article/details/104165814

统计学习方法笔记

烂漫一生 提交于 2020-02-03 03:33:55
统计学习方法概论 1.1 统计学习 统计学习 (statistics learning): 计算机 基于 数据 构建 概率统计模型 并运用 模型 对 数据 进行 预测与分析 。也称为 统计机器学习 (statistics machine learning)。 统计学习的特点: 以 计算机及网络 为平台,是建立在计算机及网络之上的; 以 数据 为研究对象,是数据驱动的学科; 目的是对 数据 进行 预测与分析 ; 统计学习以 方法 为中心,统计学习方法构建 模型 并应用模型进行预测与分析; 是 概率论、统计学、信息论、计算理论、最优化理论及计算机科学等 多个领域的交叉学科; // 现在我们所说的机器学习,往往是指 统计机器学习 。 统计学习的对象 数据(data) 。 首先呢,统计学习从数据出发,提取数据的特征,抽象出数据中的模型,发现数据中的知识,最终又回到对数据的分析预测中去。 其次,作为统计学习的对象,数据是多样的,它包括存在于计算机及网络上的各种 数字 、 文字 、 图像 、 视频 、 音频 数据以及它们的组合。 关于数据的基本假设: 同类数据具有一定的统计规律性。 (什么叫“同类数据”:具有某种共同性质的数据,比如英文文章,互联网网页,数据库中的数据等,它们具有统 计规律性 ,所以可以用 概率统计方法 来进行处理。比如,可以用随机变量描述数据中的特征

task5 贝叶斯

爱⌒轻易说出口 提交于 2020-01-26 08:33:15
知识点梳理¶ 相关概念(生成模型、判别模型) 先验概率、条件概率 贝叶斯决策理论 贝叶斯定理公式 极值问题情况下的每个类的分类概率 下溢问题如何解决 零概率问题如何解决? 优缺点 sklearn 自带代码块 from sklearn . naive_bayes import GaussianNB from sklearn . datasets import load_iris import pandas as pd from sklearn . model_selection import train_test_split iris = load_iris ( ) X_train , X_test , y_train , y_test = train_test_split ( iris . data , iris . target , test_size = 0.2 ) clf = GaussianNB ( ) . fit ( X_train , y_train ) print ( "Classifier Score:" , clf . score ( X_test , y_test ) ) 相关概念 生成模型:在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中

C语言中变量分类和内存分区

烂漫一生 提交于 2020-01-13 06:07:11
文章目录 变量的分类和内存分区 内存分区 变量的分类 变量的分类和内存分区 内存分区 到目前为止,我们知道学习了全局变量和局部变量 并且已经知道全局变量是在内存中的全局区,局部变量在内存中的栈区 内存是分区的,简单而言,内存分为三个区域: 全局区:全局变量、代码机器码等放在此区域。全局区的大小由程序本身代码以及全局变量的大小决定。 栈区: 存放参数、局部变量、返回地址等和函数有关的内容。 堆区:除了全局区、栈区之外的空间,都算作对堆区。堆区域的内存,需要程序员手工管理(malloc和free)。 类比酒店 动态的实现租房和退房。 变量的分类 变量的分类设计变量的几个重要的属性: 变量所在的内存分区 不同的变量的内存分区是不一样的 变量的作用域 变量在什么范围内可以使用,一般分为:函数作用域、文件作用域、工程作用域 变量的生命周期: 一个变量在内存中被分配空间到空间被释放销毁的过程,被称为一个生命周期。 了解了之后来介绍变量的分类 ###全局变量、局部变量、静态局部变量、静态全局变量 使用关键字static修饰局部变量,就得到了静态局部变量。 void FunTest() { static int s_nValue = 10; s_nValue++; } int main(int argc, char* argv[]) { FunTest(); FunTest(); FunTest(

第一章:机器学习基础

∥☆過路亽.° 提交于 2020-01-08 04:23:38
第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming)。在监督学习的过程中,我们只需要给定 输入样本集 ,机器就可以从中推演出指定 目标变量 的可能结果。监督学习相对比较简单,机器只需从输入数据中 预测合适的模型 ,并从中 计算出目标变量的结果 。 监督学习一般使用两种类型的目标变量:标称型和数值型。标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合{爬行类、鱼类、哺乳类、两栖类、植物、真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100、42.001、000.743等。 数值型目标变量主要用于回归分析 ,将在本书的第二部分研究, 第一部分主要介绍分类 。 本书的前七章主要研究分类算法,第2 章讲述最简单的分类算法:k-近邻算法,它使用距离矩阵进行分类;第3 章引入了决策树,它比较直观,容易理解,但是相对难于实现;第4 章将讨论如何使用概率论建立分类器;第5 章将讨论Logistic 回归,如何使用最优参数正确地分类原始数据,在搜索最优参数的过程中,将使用几个经常用到的优化算法;第6 章介绍了非常流行的支持向量机;第一部分最后的第7 章将介绍元算法— AdaBoost, 它由若干个分类器构成,此外还总结了第一部分探讨的分类算法在实际使用中可能面对的非均衡分类问题,一旦训练样本某个分类的数据多于其他分类的数据

SVM理解

蓝咒 提交于 2019-12-25 12:56:03
一、概念 支持向量机是学习策略的间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。 二、问题类型 1)训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,叫线性可分支持向量机,又称硬间隔支持向量机。 2)当训练数据近似线性可分时,加入松弛变量,通过软间隔最大化,叫线性支持向量机,又称软间隔支持向量机。 3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 三、线性可分支持向量机 点(a 0 ,a 1 )到直线或者平面w 0 x 0 +w 1 x 1 +b的距离如下:              换成向量形式为:              定义超平面(w,b)关于训练集T的几何间隔为超平面(w,b)关于T中所有样本点(x i ,y i )的几何间隔之最小值,几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。 在线性可分时,r=|w·x+b|等价为y i (w·x i +b),yi=±1,因为当样本被正确分类时,y i (w·x i +b)的乘积亦为正值,r又称为函数间隔 从上述点到平面的距离可以看出,当w和b成倍进行缩放的时候,距离是不变的,因为分子分母正好抵消。所以为了方便计算与优化,我们对w和b进行缩放

R语言之Random Forest随机森林

十年热恋 提交于 2019-12-17 20:14:44
什么是随机森林? 随机森林就是 通过集成学习的思想将多棵树集成的一种算法 ,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想--集成思想的体现。 随机森林算法的实质 是基于决策树的分类器集成算法,其中每一棵树都依赖于一个随机向量,随机森林的所有向量都是独立同分布的。随机森林就是对数据集的列变量和行观测进行随机化,生成多个分类数,最终将分类树结果进行汇总。 随机森林相比于神经网络, 降低了运算量的同时也提高了预测精度 ,而且该算法对多元共线性不敏感以及对缺失数据和非平衡数据比较稳健,可以很好地适应多达几千个解释变量数据集。 随机森林的组成 随机森林是由多个CART分类决策树构成,在构建决策树过程中, 不进行任何剪枝动作 ,通过随机挑选观测(行)和变量(列)形成每一棵树。对于分类模型,随机森林将根据投票法为待分类样本进行分类;对于预测模型,随机森林将使用单棵树的简单平均值来预测样本的Y值。 随机森林的估计过程 1)指定m值,即随机产生m个变量用于节点上的二叉树,二叉树变量的选择仍然满足节点不纯度最小原则; 2