登录
首页 » Others » 华为C++语言编程规范

华为C++语言编程规范

于 2020-12-12 发布
0 151
下载积分: 1 下载次数: 4

代码说明:

华为C++语言编程规范,内部资料se语言编程规范内部公开目录0说明前言代码总体原则与语言编程规范的关系规范实施、解释术语定义1常量62初始化和类型转换声明、定义与初始化类型转换3函数12内联函数函数参数函数指针4类...14类的设计构造、赋值和析构继承重载5作用域、模板和C+其他特性..25作用域模板其他6资源分配和释放287异常与错误处理33异常错误处理策略8标准库369程序效率语言特性的性能分级语言的性能优化指导华为机密,未经许可不得扩散第页共页se语言编程规范内部公开0并发4511风格48标小符命名与定义排版注释文件组织12可移植性(兼容性).4913全球化52多语言输入输出单一版本时区夏令时14业界编程规范和书籍55业界编程规编程指南《编程规范条规则、准则与最佳实践》《微软一站式示例代码库》扩展学习材料华为机密,未经许可不得扩散第页共页se语言编程规范内部公开语言编程规范0说明前言随着业务的发展和产品架构的演进,越来越多的传统电信产品使用C++语言,很多新型产品更是把C+作为首选。C艹继承于C,包含C的所有特性,同时又增加了新语言特性,如面向对象、泛型设计等。目前C-+使用现状是:基础技能薄弱,陷入很多误区,不能很好地发挥C++的作用。为了帮助团队合理使用C-+,规避语言陷阱,特制定本规范代码总体原则毘C语言编稈一样,C++编稈遵循通用原则:1、清晰第一。清晰性是易于维护、易于重构的程序必需只备的特征。2、简洁为美。简洁就是易于理解并且易于实现。3、选择合适的风格,与代码原有风格俣持一致。除此之外,C+编程还应该注意以下方面1、正确使用C+面向对象技术使得程序结枃清晰、简单,提高了代码的重用性,但又隐藏了很多內部实现细节,内存模型复杂,不小心会误入陷阱,比如:拷贝构造函数,赋值操作符,析构函数,重载等为了简化代码,改善代码结构,提髙编程效率,一些团队引入新特性和第三方库,如:模板技术、STL、Bost等,由于缺乏足够的理解,使用中屡次发生问题,比如对达代器( Iterator)使用不当导致功能失常,甚至稈序崩溃。所以,必须深入理解C艹+对象布局、內存模型等,了解编译器背后所做的处理,才能在编程中知道如何止确使用2、安全高效跟其他流行的高级语言、脚本语言相比,C艹+运行速度快,天然适合开发核心通信部件,但是这些部件对稳定性的要求非常高,不容许发生异常、失效以及崩溃。C艹-具有直接操作硬件、访问內存的能力提供了指针、地址运算等灵活特性,稈序员可以仟意发挥,增加了出锖的几率。所以在追求速度与灵峾性的冋同时,一定要注意保持程序的健壮性。在増强代码稳定性过桯中,程序员通常采用i-else等防御式编程,使得代码非常臃肿,可适当采用RAIⅠ、智能指针等技术华为机密,未经许可不得扩散第页共页se语言编程规范内部公开与语言编程规范的关系本文在《华为技术有限公司C语言编程规范》(简称C规范)基础上,通过详细阐述如何规避C++语言复杂性,避免C+-的低级错误,确保有效使用C-+语言特性,代码易于维扩。C规范里面相同的内容,夲规范不再重复。例如头文伻、变量、表达式、代码编辑与编译、可测试性安全性、单元测试等章节经过审妉,完全适合C+,本规范不再重复。标识符命名与定义、注祥、排版与柊式等内容也适合C++,仅仅添加了少量的C+特有的规则和建议,合并成风格一章;涵数章节增加了內联函数、函数参数等内容;可移植性増加了64位以及C艹+专冇的薮据转换等內容;质量保证也符合C艹+的需要,将资源分配和释放部分C艹特有的内容编写成单独章节;宏、常量也符合C++,考虑到C++普遍使用 cons t,增加了常属性( const)章节。新増初始化和类型转换,类,作用域、模板与C艹-其他特性,异常与错误处理,并发,全球化等C艹特有的内容本规范和C规范有沖突的地方,以本规范为准。规范实施、解释本规范制定了编写C+语言程序的基本原则、规则和建议。木规范适用于公司内使用C++语言编码的所有软件。本规范自发布之日起生效,对以后新编写的和修改的代码应遵守本规范本规范由软件工稈体系发布和维护。实施屮遇到问题,可以到论坛http://hi3ms.huaweicom/group/1735/threads.htmi上讨论。在某些情况下需要违反本规范给出的规则时,相关团队必须通过一个正式的沇程来评审、决貪规则违反的部分,个体程序员不得违反本规范中的相关规则。术语定义原则:编程时必须坚持的指导思想规则:编程时强制必须遵守的约定。建议:编程时必效加以考虑的约定说明:对此原则/规则/建议进行必要的解释。示例:对此原则/规则/建议从好、不好两个方面给出例子。延伸阅读材料:建议进一步阅读的参考材料。常量不变的值更易于理餡、跟踪和分析,所以应该尽可能地使用常量代替变量,定义值的时侯,应该把 const作为默认的选项规则1.1使用 const常量取代宏华为机密,未经许可不得扩散第页共页se语言编程规范内部公开说明:宏是简单的文本替换,在预处理阶段时完成,运行报错时直接报相应的值;跟踪调试时也是显示值,而不是宏名;宏没有类型检查,不安全;宏没有作用域。示例defi: e MAX MSISDN LEN(20)//不好的例子const int MAX MSISDN LEN=20;/好的例子规则1.2一组相关的整型常量应定义为枚举说明:之所以使用枚举,基于:●枚举比# define或 const int更安全,因为编译器会检查参数值是否是否位于枚举取值范围内,从而避免错误发生。示例//好的例子enum DayofWeek( sunday, monday, tuesday, wednesday, thursday, friday, saturday)ienum Ccloriblack, blue, whiter red, purp_e]BOOL CclorizeCalendar (DayofWeek today, Color todays Color)Coorizeca1 endor(b1ue, sunday);//编译报错,1ue和 Sunday位置错误//不好的例子:const int sunday=0iconst int monday= 1const int b⊥acKconst int blueBOOL CclorizeCalendar (int today, int todays ColorCoorizecalendar(blue, sunday);//不会报错当枚举值需要对应到具体数值时,须在声明时昰示赋值。否则不需要昰式赋值,以避免重复赋值,降低维护(增加、朋除成员)工作量示例好的例子:s协议里定义的设备I值,用于标识设备类型cnum TDcv-cclypcDEV UNKNOWN --l,DEV DSMP 0DEV工SMGDEV WAPPORTAL=2程序内部使用,仅用于分类的情況,不应该进行显式的赋值。示例/好的例子:程序中用来标识会话状态的枚举定义enum TSessionstateSESSION STATE INITISESSTON STATE CTOSEDSESSION STATE WA工TING●应当尽量避免枚举值亘复,如必须重复也要用己定义的枚举来修饰,例如:typed f enumRTCP SR 200,RTCP MIN TYPE RTCP SR//must be lowest known typeRTCP RR华为机密,未经许可不得扩散第页共页se语言编程规范内部公开RTCP SDES= 202RTCP BYE203,RTCP APP204,RTCP RTPFB=205RTCP PSEB =206/RTCP XR207RTCP RSI =208RTCP PUBPCRTS =209RTCP MAX TYPF= RTCP PUB PORTS //must be highest known typertcp type ti规则1.3不相关的常量,即使取值一样,也必须分别定义说明:一个常量只用来表示一个特定功能,即一个常量不能有多种用途。示例:/好的例子:协议和协议B,于机号( (MSISDN)的长度都是20。unsigned const int. A MAX MST SDN LEN0;unsigned const int B MAX MSI SDN LEN 20//或者使用不同的名字空间namespace alibunsigned const int MAX MSISDN LEN=20;namespace blibunsigned const int MAX MSISDN LEN =20建议1.1尽可能使用 const说明:在声明的变量或参数前加上关键字 const用于指明变量值不可被篡改。类成员函数加上 const限定符表明该函数不会修改类成员变量的状态使用 const常见的场景:函数参数:传递引用时,如果函数不会修改传入参数,该形参应声明为 const。成员函数:访问函数(如get函数):不修改任何数据成员的函数:未调用非 cons t函数、未返回数据成员的非 const指针或引用的函数。数据成员:如果数据成员在对象构造之后个再发生变化,可将其定义为 cons t。2初始化和类型转换声明、定义与初始化规则2.1禁止用 memcpy、 memset初始化非POD对象说明:PO全称是“ Plain0 ld Data”,是C++98标准(ISO/IEC14882, first edition,19980901)中引入的一个概念,POD类型主要包括int,char, float, double, enumeration,woid,指针等原始类型及其集合类型,不能使用封装和面对对象特性(如用户定义的构造/赋值/析构函数、基类、虚函数等)。华为机密,未经许可不得扩散第页共页se语言编程规范内部公开由于非P0D类型比如非集合类型的 class对象,可能存在虚函数,内存布局不确定,跟编译器有关,滥用内存拷贝可能会导致严重的问题即使对集合类型的 class,使用直接的内存拷贝和比较,破坏了信息隐蔽和数据保护的作用,也不提倡memcpy、 memset操作示例:×××产品程序异常退出( corc dump)。经过现场环境的模似,程序产生 COREDUMP,其原因是:在初始化函数内使用 memset(this,0,sizeof(*this))进行了类的初始化,将类的虚函数表指针被清空,从而导致使用空指针。解决方案:使用C艹构造函数初始化,不要便用 memset函数初始化类对象建议2.1变量使用时才声明并初始化说明:变量在使用前未赋初值,是常见的低级编程错误。使用前才声明变量并同时初始化,非常方便地避免了此类低级错误。在函数开始位置声明所有变量,后面才使用变量,作用域覆盖整个函数实现,容易导致如下问题:程序难以理解和维护:变量的定义与使用分离变量难以合理初始化:在函数丌始时,经常没有足够的笮息进行变量初始化,往往用某个默认的空值(比如零)来初始化,这遥常是一种浪费,如果变量在被赋于有效值以前使用,还会导致错误。遵循变量作用域最小化原则与魷近声明原则,使得代码更容易阅读,方便了解变量的类型和初始值特别是,应使用初始化的方式替代声明再赋值示例:不好的例子:声明与初始化分离string name;//声明时未初始化:调用缺省构造函数nane=" zhangsan";//再次调用赋值操作符函数;声明与定义在不同的地方,理解相对困难好的例子:声明与初始化一体,理解相对容易string name(" zhangsan");//调用一次构造函数建议2.2避免构造函数做复杂的初始化,可以使用“init”函数说明:正如函数的变量都在函数内部初始化一样,类数据成员最好的初始化场所就是构造函数,数据成员都应该尽量在构造函数中初始化以下情况可以使用init(函数来初始化:需要提供初始化返回信息。数据成员初始化可能抛异常。●数据成员初始化大败会造成该类对象初始化失败,引起不确定状态数据成员初始化依赖this揞针:构造凶数没结束,对象就没有构造出来,构造凶数內不能使用this成员数据成员初始化需要调用虚函数。在构造函数和析构函数中调用虚函数,会导致未定乂的行为示例:数据成员初始化可能拋异常:cl ass CPPRule华为机密,未经许可不得扩散第页共页se语言编程规范内部公开publicCEPRule(): size (0), res (null)i//仅进行值初始化long init (int size)//根据传入的参数初始化size,分配资源resr vateint siResourceptrx res//使用方法CPPRule ait(100)建议2.3初始化列表要严格按照成员声明顺序来初始化它们说明:编译器会按照数据成员在类定义中声明的顺序进行初始化,而不是按照初始化列表中的顺序,如果打乱初始化列表的顺序实际上不起作用,但会造成阅读和理解上的混淆;特别是成员变量之间存在依赖关系时可能导致BUG示例://不好的例子:初始化顺序与声明顺序不一致class Emp-oyeepublic:Employee(const charx firstName, const charx lastNamefirstName (firstName), lastName (lastName)r email (firstName.+-astName t huawei. com)ipr-vate:string email, firstName lastName类定义emai1是在 firstName, lastName之前声明,它将首先初始化,但使用了未初始化的ratNam和 lastName,导致错误。在成员声明时,应按照成员相互依赖关系按顺序声明。建议2.4明确有外部依赖关系的全局与静态对象的初始化顺序说明:如果全尻对象A的成员变量有外部依赖,比如依赖另外一个全局变量B,在A的构造函数中访问B,隐含的规则就是B先于A初始化,然而全局与静态对象的初始化与析构顺序未有严格定义,无法确保B已经完成初始化,而每次生成可执行程序都可能发生变化,这类BUG难以定位。通常采用单件( Singleton)模式或者把有依赖关系的全局对象放在一个文件中定义来明确初始化顺序冋一个文件屮,若全局对象a在全局对象b之前定义,则a一定会在b之前初始化;但是不同文件中的全局对象就没有固定的初始化顺序。可以在main0或 pthread once(内初始化一个运行期间不回收的指针类型转换避免使用类型分支来定制行为:类型分支来定制行为容易出错,是企图用C+编写C代码的明显标志。这是一种很不灵活的技术,要添加新类型时,如果忘记修改所有分支,编译器也不会告知。使用模板和虚函数,让类型自己而不是调用它们的代码来决定行为。华为机密,未经许可不得扩散第页共页

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 微信小序购物商城实例
    最新购物商城微信小程序案例,带你入门微信小程序开发
    2020-12-12下载
    积分:1
  • 台达PLC modbus通信上位机64位C#实例
    台达PLC modbus通信上位机64位C#实例程序,vs2010亲测可用。台达PLC modbus通信上位机64位C#实例程序,vs2010亲测可用。
    2020-11-29下载
    积分:1
  • 基于深度学习的刀具磨损状态监测技术的研究
    基于深度学习的刀具磨损状态监测技术的研究,基于深度学习的刀具磨损状态监测技术的研究
    2020-12-09下载
    积分:1
  • 区块链、+物联网与智慧农业
    介绍了区块链技术及其特征, 分析了物联网发展面临的问题, 提出了引入区块链技术来解决物联网问题。 通过阐述引入区块链技术在农业物联网以及农业大数据方面的应用, 对区块链作为第三次信息技术革命对农业方面带来的影响进行了展望。农业科技展望和通信量将会几何级增长,基于区块链的农业物联网用,农业生产将真正实现精细化、精确化以及工厂将是发展的标配。化,同时应用区块链2.0中的智能合约特性,加上人目前,很多农业信息化企业都逐步建立了自己的智能和智慧农业的发展,可以实现完仝智能化的农云平台,将用户的运行数据统一·存储在自己的中央服产品电子商务,实现农业生产和消费的完全对接,实务器上米提供服务,这种做法目前是可行的,但随着现现代化智能化的计划农业未来农业物联网的普及,这种方式将出现问题。未来35农业资源和生态环境应用的农业物联网需要分布式,需要实现厶中心化的控制。当前,我国农业资源面临短缺,农业生态环境遭32食品安全溯源应用受破坏,将农业水资源、土地资源、生产资料、生物食品安全溯源体系引人区块链技术,能够让互不资源、外来物种、自然灾害、地下水、降雨量、风相识、没冇信任基础的人建立信任,低成夲、髙效率速、土壤温湿度等放置于区块链上可以公丌接受公众地解决食品安全领域冇在的信任难题。其中:(1)监督,加强资源监管,提高资源利用率。区块链的去中心化和不可篡改的特征,可以有力地保36农业大数据应用证现有食品追溯系统的数据可靠性,避免数据在存大数据时代,通过数据的共享、处理来加强数据储、传输和展示环节被内部管理人员和外部黑客篡的有效利用是主题,区坎链是一种不可篡改、全历改;(2)结合物联网和传感设备的进一步应用,食史、强背书的数据库存储技术,通过区块链可以有效产供销各个环节的数据完全依赖于机器采集和机器保障数据提供者的合法权益和私密性,促进数据所有信任,而不被人为地选择性提供;(3)因为开放透者的共享动力,提升数据的流通性,可以在各相关方岄和机器自治,消費者、生产者和政府监管部门对食在确保遵循合约项糸款的情况下,自动和动态地分追溯系统中的数据完全信任,参与普及率越来越亨数据的信息和状态ε高,整个社会的系统应用水平大幅提高;(4)因为区块链是一场信用革命,是第二个链接世界的仝匿名不冉影响信任水平,生产者和消费者个人隐私信球化技术,是真正的互联网20,是信息技术的第三息可被匿名,当食品安全事件发生时,生产者和消费次革命,未来将实现BAAS—区块链即服务,同时者个人信息被保护,可有效避免群体性事件发生和网随着物联网技术的进一步普及,所有物品将被信息络暴力的过度蔓延。化,农业生产和销售环节配合区块链和物联网技术将3.3粮食安全生产应用更加智能,并将逐步实现智慧农业。当前,我国粮食供求长期仍将保持紧平衡态势保障国家粮食安全供给将是一项长期工作。通过在木参考文献领域应用区块链技术,可以有效提高粮食安全生产的1维基科 Blockchain EB/OIl2017-12-08htps:/en保障水平。比如将土地登记放到区块链上,实现不可wikipedia. org/wiki/Blockchain篡改,可以保障18亿亩耕地红线的有效控制。将各2阿尔文德纳拉亚南区块链技术驱动金融M北京:中信出地粮食生产数据实时放到区块链上,可以掌握更加真版社,2016实的统计数据13孙志国区坎链技术在食品安全领域的应用展望农业网34农业生产和电子商务应用络信息,2016(12):30-31未来随着农业物联网的普及、大量传感器的应(责任编辑潘月红)AO农业展望[74|2017年第12期
    2020-12-04下载
    积分:1
  • MATLAB GUI设计学习手记(第二版)源
    MATLAB GUI设计学习手记(第二版)源程序
    2020-12-11下载
    积分:1
  • 基于Log Gabor滤波的指纹纹理匹配
    分析了Log Gabor滤波器的性能,详述了用于指纹识别的Log Gabor滤波器的构造方法,在此基础上提出了基于Log Gabor滤波器的指纹纹理匹配算法。首先采用了一种快速有效的参考点定位方法,在确定有效区域并归一化后,通过傅里叶变换把指纹图像转换到频域,在频域进行log Gabor滤波,最后在滤波图像中提取特征,并与传统方法作了比较。实验结果表明,所提出算法的性能优于基于Gabor滤波的纹理匹配方法和基于细节点的方法,提高了指纹识别的准确率。
    2020-12-01下载
    积分:1
  • OFDM的频偏估计算法及其仿真结果
    一种新颖的OFDM频偏估计算法,包括了算法实现原理推导,以及仿真结果
    2020-12-05下载
    积分:1
  • srad(斑点去噪各向异性扩散)滤波器
    这是Xu在美国读博期间发表的论文中使用的斑点去噪滤波器的MATLAB文件
    2020-12-03下载
    积分:1
  • sklearn0.19中文文档
    sklearn0.19中文文档 PDF格式高清。.1. 广义线性模型1.1.1. 普通最小二乘法1.1.1.1. 普通最小二乘法复杂度1.1.2. 岭回归1.1.2.1. 岭回归的复杂度1.1.2.2. 设置正则化参数:广义交叉验证1.1.3. Lasso1.1.3.1. 设置正则化参数1.1.3.1.1. 使用交叉验证1.1.3.1.2. 基于信息标准的模型选择1.1.3.1.3. 与 SVM 的正则化参数的比较1.1.4. 多任务 Lasso1.1.5. 弹性网络1.1.6. 多任务弹性网络1.1.7. 最小角回归1.1.8. LARS Lasso1.1.1.监督学习1.1.广义线性模型o1.1.1.普通最小二乘法1.1.1.1.普通最小二乘法复杂度o1.1.2.岭回归1.1.2.1.岭回归的复杂度1.1.22.设置正则化参数:广义交叉验证o 113. Lasso■1.1.3.1.设置正则化参数1.1.3.1.1.使用交叉验证■1.1.3.1.2.基于信息标准的模型选择1.1.3.1.3.与SVM的正则化参数的比较o1.1.4.多任务 Lassoo1.1.5.弹性网络o1.1.6.多任务弹性网络o1.1.7.最小角回归o.8. LARS Lasso■1.1.8.1.数学表达式o1.1.9.正交匹配追踪法(OMP)o1.1.10.贝叶斯回归1.1.10.1.贝叶斯岭回归1.1.10.2.主动相关决策理论-ARD1.1.11. logistic回归o1.1.12.随机梯度下降,SGDo1.1.13. Perceptron(感知器)o1.1.14. Passive Aggressive Algorithms(被动攻击算法)o1.1.15.稳健回归( Robustness regression):处理离群点( outliers)和模型错误1.1.15.1.各种使用场景与相关概念■1.1.15.2. RANSAC:随机抽样一致性算法( RANdomSAmple Consensus1.1.15.2.1.算法细节1.1.15.3.Thel-sen预估器:广义中值估计1.1.153.1.算法理论细节1.1.154. Huber回归1.1.155.注意1.1.16.多项式回归:用基函数展开线性模型1.2.线性和二次判别分析o1.2.1.使用线性判别分析来降维o12.2.LDA和QDA分类器的数学公式o123.LDA的降维数学公式o1.2.4. Shrinkage(收缩)o12.5.预估算法1.3.内核岭回归1.4.支持向量机o1.4.1.分类■1.4.1.1.多元分类■1.4.1.2.得分和概率1.4.1.3.非均衡问题1.4.2.回归o143.密度估计,异常( novelty)检测o1.4.4.复杂度o1.4.5.使用诀窍o1.4.6.核函数1.4.6.1.自定义核14.6.1.1.使用 python函数作为内核1.4.6.1.2.使用Gram矩阵14.6.1.3.RBF内核参数o1.4.7.数学公式1.4.7.1.sVC■1.4.7.2. NuSVo1.4.7.3.sVRo14.8.实现细节1.5.随机梯度下降o1.5.1.分类o1.5.2.回归1.5.3.稀疏数据的随机悌度下降o1.5.4.复杂度o1.5.5.实用小贴士o1.5.6.数学描述■1.5.6.1.SGDo1.5.7.实现细节1.6.最近邻o1.6.1.无监督最近邻■1.6.1.1.找到最近邻1.6.1.2. KDTree和 BallTree类1.62.最近邻分类o16.3.最近邻回归o1.6.4.最近邻算法1.64.1.暴力计算■1.6.4.2.K-D树1.64.3.Ba|树■1.6.4.4.最近邻算法的选择1.6.4.5.1 eaf size的影响o165.最近质心分类1.6.5.1.最近缩小质心1.7.高斯过程o1.7.1.高斯过程回归(GPR)o1.7.2.GPR示例1.7.2.1.具有噪声级的GPR估计1.722.GPR和内核岭回归( Kernel Ridge Regression)的比较1.7.2.3. Mauna loa co2数据中的GRRo1.7.3.高斯过程分类(GPC)o1.7.4.GPC示例1.7.4.1.GPC概率预测■1.74.2.GPC在XOR数据集上的举例说明■1.7.4.3.iris数据集上的高斯过程分类(GPC)o1.7.5.高斯过程内核1.7.5.1.高斯过程内核AP■1.7.5.2.基础内核■1.7.5.3.内核操作1.7.5.4.径向基函数内核1.7.5.5. Matern内核1.7.5.6.有理二次内核1.7.5.7.正弦平方内核1.7.58.点乘内核■1.7.5.9.参考文献o1.7.6.传统高斯过程1.7.6.1.回归实例介绍1.7.62.噪声数据拟合17.6.3.数学形式1.7.6.3.1.初始假设■1.7.6.32.最佳线性无偏预测(BLUP)1.7.6.3.3.经验最佳线性无偏估计( EBLUP)1.7.6.4.关联模型1.7.6.5.回归模型1.7.6.6.实现细节1.8.交叉分解1.9.朴素贝叶斯o1.9.1.高斯朴素贝叶斯o1.92.多项分布朴素贝叶斯1.9.3.伯努利朴素贝叶斯1.9.4.堆外朴素贝叶斯模型拟合1.10.决策树o1.10.1.分类o1.10.2.回归o1.10.3.多值输出问题o1.10.4.复杂度分析o1.10.5.实际使用技巧1.10.6.决策树算法:ID3,C4.5,c5.0和CARTo1.10.7.数学表达1.10.7.1.分类标准■1.10.7.2.回归标准1.11.集成方法o1.111. Bagging meta-estimator( Bagging元估计器)o1.11.2.由随机树组成的森林1.11.2.1.随机森林1.11.2.2.极限随机树1.11.2.3.参数1.11.24.并行化1.11.2.5.特征重要性评估1.11.2.6.完全随机树嵌入o 1.113. AdaBoost1.11.3.1.使用方法o1.114. Gradient Tree Boosting(梯度树提升)1.11.4.1.分类1.11.42.回归1.114.3.训练额外的弱学习器1.11.4.4.控制树的大小■1.11.4.5. Mathematical formulation(数学公式)■1.11.4.5.1. LoSS Functions(损失函数)1.114.6. Regularization(正则化)■1.14.6.1.收缩率( Shrinkage)■1.1.4.6.2.子采样( Subsampling)■1.11.4.7. Interpretation(解释性)1.114.7.1. Feature importance(特征重要性)1.114.7.2. Partial dependence(部分依赖)o1.11.5. Voting Classifier(投票分类器)1.115.1.多数类标等(又称为多数/硬投票)1.11.5.1.1.用法■1.11.52.加权平均概率(软投票)1.11.5.3.投票分类器( Voting Classifier)在网格搜索( Grid search)应用1.11.5.3.1.用法1.12.多类和多标签算法o1.12.1.多标签分类格式o1.12.2.1对其余1.122.1.多类学习1.122.2.多标签学习o1.12.3.1对11.12.3.1.多类别学习o1.12.4.误差校正输出代码1.12.4.1.多类别学习o1.12.5.多输出回归o1.12.6.多输出分类o1.12.7.链式分类器·1.13.特征选择1.13.1.移除低方差特征o1.13.2.单变量特征选择o1.13.3.递归式特征消除o1.13.4.使用 Select From Mode选取特征■1.13.4.1.基于L1的特征选取1.13.4.2.基于Tree(树)的特征选取1.13.5.特征选取作为 pipeline(管道)的一部分1.14.半监督学习o1.14.1.标签传播1.15.等式回归1.16.概率校准1.17.神经网络模型(有监督)o1.17.1.多层感知器o1.17.2.分类o1.17.3.回归o1.17.4.正则化o1.17.5.算法o1.17.6.复杂性o1.17.7.数学公式o1.178.实用技巧o1.17.9.使用 warm start的更多控制
    2021-05-06下载
    积分:1
  • 扩频通信系统的FPGA设计.pdf
    扩频通信系统的FPGA设计.pdf
    2021-05-06下载
    积分:1
  • 696518资源总数
  • 104349会员总数
  • 32今日下载