模型与算法基础知识(模型与算法基础知识点总结)
数学建模需要掌握哪些编程语言和技术
数学建模应当掌握的十类算法及所需编程语言:
1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)。
2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)。
3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现)。
4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)。
5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)。
6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)。
7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)。
8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)。
9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)。
10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理)。
AI基础知识 | AI常用算法有哪些?分别有哪些适用场景?
在深入理解算法之前,我们先来区分在各个场合经常被提起但却容易混淆的两个概念——模型和算法。
算法是指一系列解决问题的清晰指令,它代表着用系统的方法解决问题的策略机制。模型是一种相对抽象的概念,在机器学习领域特指通过各种算法对数据训练后得到的中间件,当有新的数据后会有相应的结果输出,这个中间件就是模型。 模型会因算法和训练数据的不同而产生变化。
1、算法的分类
按照不同角度有多种分类方式,如下图所示:
下面就列举一些常见的算法类型及其包含的算法
数学建模需要哪些基础知识 有哪些辅导资料?
需要数学知识、计算机知识、最好找个字迹漂亮的队友。
过程
模型准备
了解问题的实际背景,明确其实际意义,掌握对象的各种信息。用数学语言来描述问题。
模型假设
根据实际对象的特征和建模的目的,对问题进行必要的简化,并用精确的语言提出一些恰当的假设。
模型建立
在假设的基础上,利用适当的数学工具来刻划各变量之间的数学关系,建立相应的数学结构(尽量用简单的数学工具)。
模型求解
利用获取的数据资料,对模型的所有参数做出计算(或近似计算)。
模型分析
对所得的结果进行数学上的分析。
模型检验
将模型分析结果与实际情形进行比较,以此来验证模型的准确性、合理性和适用性。如果模型与实际较吻合,则要对计算结果给出其实际含义,并进行解释。如果模型与实际吻合较差,则应该修改假设,再次重复建模过程。
模型应用
应用方式因问题的性质和建模的目的而异。
数学建模应当掌握的十类算法
1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算 法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法) 2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要 处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具) 3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题 属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现) 4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉 及到图论的问题可以用这些方法解决,需要认真准备) 5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计 中比较常用的方法,很多场合可以用到竞赛中) 6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是 用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实 现比较困难,需慎重使用) 7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛 题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好 使用一些高级语言作为编程工具) 8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只 认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非 常重要的) 9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常 用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调 用) 10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该 要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab 进行处理)
数学建模资料
竞赛参考书
l、中国大学生数学建模竞赛,李大潜主编,高等教育出版社(1998). 2、大学生数学建模竞赛辅导教材,(一)(二)(三),叶其孝主编,湖南教育 出版社(1993,1997,1998). 3、数学建模教育与国际数学建模竞赛 《工科数学》专辑,叶其孝主编, 《工科数学》杂志社,1994).
国内教材、丛书
1、数学模型,姜启源编,高等教育出版社(1987年第一版,1993年第二版,2003年第三版;第一版在 1992年国家教委举办的第二届全国优秀教材评选中获"全国优秀教材奖"). 2、数学模型与计算机模拟,江裕钊、辛培情编,电子科技大学出版社,(1989). 3、数学模型选谈(走向数学从书),华罗庚,王元著,王克译,湖南教育出版社;(1991). 4、数学建模--方法与范例,寿纪麟等编,西安交通大学出版社(1993). 5、数学模型,濮定国、 田蔚文主编,东南大学出版社(1994). 6..数学模型,朱思铭、李尚廉编,中山大学出版社,(1995) 7、数学模型,陈义华编著,重庆大学出版社,(1995) 8、数学模型建模分析,蔡常丰编著,科学出版社,(1995). 9、数学建模竞赛教程,李尚志主编,江苏教育出版社,(1996). 10、数学建模入门,徐全智、杨晋浩编,成都电子科大出版社,(1996). 11、数学建模,沈继红、施久玉、高振滨、张晓威编,哈尔滨工程大学出版社,(1996). 12、数学模型基础,王树禾编著,中国科学技术大学出版社,(1996). 13、数学模型方法,齐欢编著,华中理工大学出版社,(1996). 14、数学建模与实验,南京地区工科院校数学建模与工业数学讨论班编,河海大学 出版社,(1996). 15、数学模型与数学建模,刘来福、曾文艺编,北京师范大学出版杜(1997). 16. 数学建模,袁震东、洪渊、林武忠、蒋鲁敏编,华东师范大学出版社. 17、数学模型,谭永基,俞文吡编,复旦大学出版社,(1997). 18、数学模型实用教程,费培之、程中瑗层主编,四川大学出版社,(1998). 19、数学建模优秀案例选编(工科数学基地建设丛书),汪国强主编,华南理工大学出版社,(1998). 20、经济数学模型(第二版)(工科数学基地建设丛书),洪毅、贺德化、昌志华 编著,华南理工大学出版社,(1999). 21、数学模型讲义,雷功炎编,北京大学出版社(1999). 22、数学建模精品案例,朱道元编著,东南大学出版社,(1999), 23、问题解决的数学模型方法,刘来福,曾文艺编著、北京师范大学出版社,(1999). 24、数学建模的理论与实践,吴翔,吴孟达,成礼智编著,国防科技大学出版社, (1999). 25、数学建模案例分析,白其岭主编,海洋出版社,(2000年,北京). 26、数学实验(高等院校选用教材系列),谢云荪、张志让主编,科学出版社,(2000). 27、数学实验,傅鹏、龚肋、刘琼荪,何中市编,科学出版社,(2000). 28、数学建模与数学实验,赵静、但琦编,高等教育出版社,(2000).
国外参考书(中译本)
1、数学模型引论, E.A。Bender著,朱尧辰、徐伟宣译,科学普及出版社(1982). 2、数学模型,[门]近藤次郎著,官荣章等译,机械工业出版社,(1985). 3、微分方程模型,(应用数学模型丛书第1卷),[美]W.F.Lucas主编,朱煜民等 译,国防科技大学出版社,(1988). 4、政治及有关模型,(应用数学模型丛书第2卷),[美W.F.Lucas主编,王国秋 等译,国防科技大学出版社,(1996). 5、离散与系统模型,(应用数学模型丛书第3卷),[美w.F.Lucas主编,成礼智 等译,国防科技大学出版社,(1996). 6、生命科学模型,(应用数学模型丛书第4卷),[美1W.F.Lucas主编,翟晓燕等 译,国防科技大学出版社,(1996). 7、模型数学--连续动力系统和离散动力系统,[英1H.B.Grif6ths和A.01dknow 著,萧礼、张志军编译,科学出版社,(1996). 8、数学建模--来自英国四个行业中的案例研究,(应用数学译丛第4号), 英]D.Burglles等著,叶其孝、吴庆宝译,世界图书出版公司,(1997)
专业性参考书
(这方面书籍很多,仅列几本供参考) : 1、水环境数学模型,[德]W.KinZE1bach著,杨汝均、刘兆昌等编纂,中国建筑工 业出版社,(1987). 2、科技工程中的数学模型,堪安琦编著,铁道出版社(1988) 3、生物医学数学模型,青义学编著,湖南科学技术出版杜(1990). 4、农作物害虫管理数学模型与应用,蒲蛰龙主编,广东科技出版社(1990). 5、系统科学中数学模型,欧阳亮编著, E山东大学出版社,(1995). 6、种群生态学的数学建模与研究,马知恩著,安徽教育出版社,(1996) 7、建模、变换、优化--结构综合方法新进展,隋允康著,大连理工大学出版社, (1986) 8、遗传模型分析方法,朱军著,中国农业出版社(1997). (中山大学数学系王寿松编辑,2001年4月)
1.什么是数学模型?数学建模的一般步骤是什么? 2.数学建模需要具备哪些能力和知识? 答的好悬赏加
数学建模是利用数学方法解决实际问题的一种实践.即通过抽象、简化、假设、引进变量等处理过程后,将实际问题用数学方式表达,建立起数学模型,然后运用先进的数学方法及计算机技术进行求解.
数学建模将各种知识综合应用于解决实际问题中,是培养和提高学生应用所学知识分析问题、解决问题的能力的必备手段之一.
数学建模的一般方法和步骤
建立数学模型的方法和步骤并没有一定的模式,但一个理想的模型应能反映系统的全部重要特征:模型的可靠性和模型的使用性.建模的一般方法:
机理分析:根据对现实对象特性的认识,分析其因果关系,找出反映内部机理的规律,所建立的模型常有明确的物理或现实意义.
测试分析方法:将研究对象视为一个“黑箱”系统,内部机理无法直接寻求,通过测量系统的输入输出数据,并以此为基础运用统计分析方法,按照事先确定的准则在某一类模型中选出一个数据拟合得最好的模型.测试分析方法也叫做系统辩识.
将这两种方法结合起来使用,即用机理分析方法建立模型的结构,用系统测试方法来确定模型的参数,也是常用的建模方法.
在实际过程中用那一种方法建模主要是根据我们对研究对象的了解程度和建模目的来决定.机理分析法建模的具体步骤大致如下:
1、 实际问题通过抽象、简化、假设,确定变量、参数;
2、 建立数学模型并数学、数值地求解、确定参数;
3、 用实际问题的实测数据等来检验该数学模型;
4、 符合实际,交付使用,从而可产生经济、社会效益;不符合实际,重新建模.
数学模型的分类:
1、 按研究方法和对象的数学特征分:初等模型、几何模型、优化模型、微分方程模型、图论模型、逻辑模型、稳定性模型、统计模型等.
2、 按研究对象的实际领域(或所属学科)分:人口模型、交通模型、环境模型、生态模型、生理模型、城镇规划模型、水资源模型、污染模型、经济模型、社会模型等.
数学建模需要丰富的数学知识,涉及到高等数学,离散数学,线性代数,概率统计,复变函数等等基本的数学知识.同时,还要有广泛的兴趣,较强的逻辑思维能力,以及语言表达能力等等.
参加数学建模竞赛需知道的内容
一、全国大学生数学建模竞赛
二、数学建模的方法及一般步骤
三、重要的数学模型及相应案例分析
1、线性规划模型及经济模型案例分析
2、层次分析模型及管理模型案例分析
3、统计回归模型及案例分析
4、图论模型及案例分析
5、微分方程模型及案例分析
四、相关软件
1、Matlab软件及编程;2、Lingo软件;3、Lindo软件。
五、数模十大常用算法
1. 蒙特卡罗算法。2. 数据拟合、参数估计、插值等数据处理算法。3. 线性规划、整数规划、多元规划、二次规划等规划类算法。4. 图论算法。5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。6. 最优化理论的三大非经典算法。7. 网格算法和穷举法。8. 一些连续数据离散化方法。9. 数值分析算法。10. 图象处理算法。
六、如何查阅资料
七、如何写作论文
八、如何组织队伍:团队精神,配合良好,不断的提出问题和解决问题。
九、如何才能获奖:比较完整,有几处创新点。
十、如何信息处理:WORD、LaTeX,飞秋、QQ。
其实主要看下例子就可以了,知道一些基本的模型,我这里也有很多例子,各个学校的讲座都有要的话直接向我要
数据挖掘干货总结(四)--聚类算法
本文共计2680字,预计阅读时长七分钟
聚类算法
?
一 、 本质
将数据划分到不同的类里,使相似的数据在同一类里,不相似的数据在不同类里
?
二 、 分类算法用来解决什么问题
文本聚类、图像聚类和商品聚类,便于发现规律,以解决数据稀疏问题
三 、 聚类算法基础知识
1. 层次聚类?vs?非层次聚类
– 不同类之间有无包含关系
2. 硬聚类?vs?软聚类
– 硬聚类:每个对象只属于一个类
– 软聚类:每个对象以某个概率属于每个类
3. 用向量表示对象
– 每个对象用一个向量表示,可以视为高维空间的一个点
– 所有对象形成数据空间(矩阵)
– 相似度计算:Cosine、点积、质心距离
4. 用矩阵列出对象之间的距离、相似度
5. 用字典保存上述矩阵(节省空间)
????D={(1,1):0,(1,2):2,(1,3):6...(5,5):0}
6. 评价方法
– 内部评价法(Internal Evalution):
? 没有外部标准,非监督式
? 同类是否相似,跨类是否相异
DB值越小聚类效果越好,反之,越不好
– 外部评价法(External Evalution):
??准确度(accuracy): (C11+C22) / (C11 + C12 + C21 + C22)
??精度(Precision): C11 / (C11 + C21 )
??召回(Recall): C11 / (C11 + C12 )
??F值(F-measure):
β表示对精度P的重视程度,越大越重视,默认设置为1,即变成了F值,F较高时则能说明聚类效果较好。
四 、 有哪些聚类算法
主要分为 层次化聚类算法 , 划分式聚类算法 , 基于密度的聚类算法 , 基于网格的聚类算法 , 基于模型的聚类算法等 。
4.1 层次化聚类算法
又称树聚类算法,透过一种层次架构方式,反复将数据进行分裂或聚合。典型的有BIRCH算法,CURE算法,CHAMELEON算法,Sequence data rough clustering算法,Between groups average算法,Furthest neighbor算法,Neares neighbor算法等。
凝聚型层次聚类 :
先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。
算法流程:
1. 将每个对象看作一类,计算两两之间的最小距离;
2. 将距离最小的两个类合并成一个新类;
3. 重新计算新类与所有类之间的距离;
4. 重复2、3,直到所有类最后合并成一类。
特点:
1. 算法简单
2. 层次用于概念聚类(生成概念、文档层次树)
3. 聚类对象的两种表示法都适用
4. 处理大小不同的簇
5. 簇选取步骤在树状图生成之后
4.2 划分式聚类算法
预先指定聚类数目或聚类中心,反复迭代逐步降低目标函数误差值直至收敛,得到最终结果。K-means,K-modes-Huang,K-means-CP,MDS_CLUSTER, Feature weighted fuzzy clustering,CLARANS等
经典K-means:
算法流程:
1. 随机地选择k个对象,每个对象初始地代表了一个簇的中心;
2. 对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;
3. 重新计算每个簇的平均值,更新为新的簇中心;
4. 不断重复2、3,直到准则函数收敛。
特点:
1.K的选择
2.中心点的选择
– 随机
– 多轮随机:选择最小的WCSS
3.优点
– 算法简单、有效
– 时间复杂度:O(nkt)
4.缺点
– 不适于处理球面数据
– 密度、大小不同的聚类,受K的限制,难于发现自然的聚类
4.3 基于模型的聚类算法
为每簇假定了一个模型,寻找数据对给定模型的最佳拟合,同一”类“的数据属于同一种概率分布,即假设数据是根据潜在的概率分布生成的。主要有基于统计学模型的方法和基于神经网络模型的方法,尤其以基于概率模型的方法居多。一个基于模型的算法可能通过构建反应数据点空间分布的密度函数来定位聚类。基于模型的聚类试图优化给定的数据和某些数据模型之间的适应性。
SOM 神经网络算法 :
该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。
SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。
算法流程:
1. 网络初始化,对输出层每个节点权重赋初值;
2. 将输入样本中随机选取输入向量,找到与输入向量距离最小的权重向量;
3. 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;
4. 提供新样本、进行训练;
5. 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。
4.4 基于密度聚类算法
只要邻近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类,擅于解决不规则形状的聚类问题,广泛应用于空间信息处理,SGC,GCHL,DBSCAN算法、OPTICS算法、DENCLUE算法。
DBSCAN:
对于集中区域效果较好,为了发现任意形状的簇,这类方法将簇看做是数据空间中被低密度区域分割开的稠密对象区域;一种基于高密度连通区域的基于密度的聚类方法,该算法将具有足够高密度的区域划分为簇,并在具有噪声的空间数据中发现任意形状的簇。
4.5 基于网格的聚类算法
????基于网格的方法把对象空间量化为有限数目的单元,形成一个网格结构。所有的聚类操作都在这个网格结构(即量化空间)上进行。这种方法的主要优点是它的处理?速度很快,其处理速度独立于数据对象的数目,只与量化空间中每一维的单元数目有关。但这种算法效率的提高是以聚类结果的精确性为代价的。经常与基于密度的算法结合使用。代表算法有STING算法、CLIQUE算法、WAVE-CLUSTER算法等。?
机器学习新手必看十大算法
机器学习新手必看十大算法
本文介绍了机器学习新手需要了解的 10 大算法,包括线性回归、Logistic 回归、朴素贝叶斯、K 近邻算法等。
在机器学习中,有一种叫做「没有免费的午餐」的定理。简而言之,它指出没有任何一种算法对所有问题都有效,在监督学习(即预测建模)中尤其如此。
例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,例如数据集的大小和结构。
因此,你应该针对具体问题尝试多种不同算法,并留出一个数据「测试集」来评估性能、选出优胜者。
当然,你尝试的算法必须适合你的问题,也就是选择正确的机器学习任务。打个比方,如果你需要打扫房子,你可能会用吸尘器、扫帚或拖把,但是你不会拿出铲子开始挖土。
大原则
不过也有一个普遍原则,即所有监督机器学习算法预测建模的基础。
机器学习算法被描述为学习一个目标函数 f,该函数将输入变量 X 最好地映射到输出变量 Y:Y = f(X)
这是一个普遍的学习任务,我们可以根据输入变量 X 的新样本对 Y 进行预测。我们不知道函数 f 的样子或形式。如果我们知道的话,我们将会直接使用它,不需要用机器学习算法从数据中学习。
最常见的机器学习算法是学习映射 Y = f(X) 来预测新 X 的 Y。这叫做预测建模或预测分析,我们的目标是尽可能作出最准确的预测。
对于想了解机器学习基础知识的新手,本文将概述数据科学家使用的 top 10 机器学习算法。
1. 线性回归
线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。
预测建模主要关注最小化模型误差或者尽可能作出最准确的预测,以可解释性为代价。我们将借用、重用包括统计学在内的很多不同领域的算法,并将其用于这些目的。
线性回归的表示是一个方程,它通过找到输入变量的特定权重(称为系数 B),来描述一条最适合表示输入变量 x 与输出变量 y 关系的直线。
线性回归
例如:y = B0 + B1 * x
我们将根据输入 x 预测 y,线性回归学习算法的目标是找到系数 B0 和 B1 的值。
可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘法和梯度下降优化的线性代数解。
线性回归已经存在了 200 多年,并得到了广泛研究。使用这种技术的一些经验是尽可能去除非常相似(相关)的变量,并去除噪音。这是一种快速、简单的技术,可以首先尝试一下。
2. Logistic 回归
Logistic 回归是机器学习从统计学中借鉴的另一种技术。它是解决二分类问题的首选方法。
Logistic 回归与线性回归相似,目标都是找到每个输入变量的权重,即系数值。与线性回归不同的是,Logistic 回归对输出的预测使用被称为 logistic 函数的非线性函数进行变换。
logistic 函数看起来像一个大的 S,并且可以将任何值转换到 0 到 1 的区间内。这非常实用,因为我们可以规定 logistic 函数的输出值是 0 和 1(例如,输入小于 0.5 则输出为 1)并预测类别值。
Logistic 回归
由于模型的学习方式,Logistic 回归的预测也可以作为给定数据实例(属于类别 0 或 1)的概率。这对于需要为预测提供更多依据的问题很有用。
像线性回归一样,Logistic 回归在删除与输出变量无关的属性以及非常相似(相关)的属性时效果更好。它是一个快速的学习模型,并且对于二分类问题非常有效。
3. 线性判别分析(LDA)
Logistic 回归是一种分类算法,传统上,它仅限于只有两类的分类问题。如果你有两个以上的类别,那么线性判别分析是首选的线性分类技术。
LDA 的表示非常简单直接。它由数据的统计属性构成,对每个类别进行计算。单个输入变量的 LDA 包括:
每个类别的平均值;
所有类别的方差。
线性判别分析
进行预测的方法是计算每个类别的判别值并对具备最大值的类别进行预测。该技术假设数据呈高斯分布(钟形曲线),因此最好预先从数据中删除异常值。这是处理分类预测建模问题的一种简单而强大的方法。
4. 分类与回归树
决策树是预测建模机器学习的一种重要算法。
决策树模型的表示是一个二叉树。这是算法和数据结构中的二叉树,没什么特别的。每个节点代表一个单独的输入变量 x 和该变量上的一个分割点(假设变量是数字)。
决策树
决策树的叶节点包含一个用于预测的输出变量 y。通过遍历该树的分割点,直到到达一个叶节点并输出该节点的类别值就可以作出预测。
决策树学习速度和预测速度都很快。它们还可以解决大量问题,并且不需要对数据做特别准备。
5. 朴素贝叶斯
朴素贝叶斯是一个简单但是很强大的预测建模算法。
该模型由两种概率组成,这两种概率都可以直接从训练数据中计算出来:1)每个类别的概率;2)给定每个 x 的值,每个类别的条件概率。一旦计算出来,概率模型可用于使用贝叶斯定理对新数据进行预测。当你的数据是实值时,通常假设一个高斯分布(钟形曲线),这样你可以简单的估计这些概率。
贝叶斯定理
朴素贝叶斯之所以是朴素的,是因为它假设每个输入变量是独立的。这是一个强大的假设,真实的数据并非如此,但是,该技术在大量复杂问题上非常有用。
6. K 近邻算法
KNN 算法非常简单且有效。KNN 的模型表示是整个训练数据集。是不是很简单?
KNN 算法在整个训练集中搜索 K 个最相似实例(近邻)并汇总这 K 个实例的输出变量,以预测新数据点。对于回归问题,这可能是平均输出变量,对于分类问题,这可能是众数(或最常见的)类别值。
诀窍在于如何确定数据实例间的相似性。如果属性的度量单位相同(例如都是用英寸表示),那么最简单的技术是使用欧几里得距离,你可以根据每个输入变量之间的差值直接计算出来其数值。
K 近邻算法
KNN 需要大量内存或空间来存储所有数据,但是只有在需要预测时才执行计算(或学习)。你还可以随时更新和管理训练实例,以保持预测的准确性。
距离或紧密性的概念可能在非常高的维度(很多输入变量)中会瓦解,这对算法在你的问题上的性能产生负面影响。这被称为维数灾难。因此你最好只使用那些与预测输出变量最相关的输入变量。
7. 学习向量量化
K 近邻算法的一个缺点是你需要遍历整个训练数据集。学习向量量化算法(简称 LVQ)是一种人工神经网络算法,它允许你选择训练实例的数量,并精确地学习这些实例应该是什么样的。
学习向量量化
LVQ 的表示是码本向量的集合。这些是在开始时随机选择的,并逐渐调整以在学习算法的多次迭代中最好地总结训练数据集。在学习之后,码本向量可用于预测(类似 K 近邻算法)。最相似的近邻(最佳匹配的码本向量)通过计算每个码本向量和新数据实例之间的距离找到。然后返回最佳匹配单元的类别值或(回归中的实际值)作为预测。如果你重新调整数据,使其具有相同的范围(比如 0 到 1 之间),就可以获得最佳结果。
如果你发现 KNN 在你的数据集上达到很好的结果,请尝试用 LVQ 减少存储整个训练数据集的内存要求。
8. 支持向量机(SVM)
支持向量机可能是最受欢迎和最广泛讨论的机器学习算法之一。
超平面是分割输入变量空间的一条线。在 SVM 中,选择一条可以最好地根据输入变量类别(类别 0 或类别 1)对输入变量空间进行分割的超平面。在二维中,你可以将其视为一条线,我们假设所有的输入点都可以被这条线完全的分开。SVM 学习算法找到了可以让超平面对类别进行最佳分割的系数。
支持向量机
超平面和最近的数据点之间的距离被称为间隔。分开两个类别的最好的或最理想的超平面具备最大间隔。只有这些点与定义超平面和构建分类器有关。这些点被称为支持向量,它们支持或定义了超平面。实际上,优化算法用于寻找最大化间隔的系数的值。
SVM 可能是最强大的立即可用的分类器之一,值得一试。
9. Bagging 和随机森林
随机森林是最流行和最强大的机器学习算法之一。它是 Bootstrap Aggregation(又称 bagging)集成机器学习算法的一种。
bootstrap 是从数据样本中估算数量的一种强大的统计方法。例如平均数。你从数据中抽取大量样本,计算平均值,然后平均所有的平均值以便更好的估计真实的平均值。
bagging 使用相同的方法,但是它估计整个统计模型,最常见的是决策树。在训练数据中抽取多个样本,然后对每个数据样本建模。当你需要对新数据进行预测时,每个模型都进行预测,并将所有的预测值平均以便更好的估计真实的输出值。
随机森林
随机森林是对这种方法的一种调整,在随机森林的方法中决策树被创建以便于通过引入随机性来进行次优分割,而不是选择最佳分割点。
因此,针对每个数据样本创建的模型将会与其他方式得到的有所不同,不过虽然方法独特且不同,它们仍然是准确的。结合它们的预测可以更好的估计真实的输出值。
如果你用方差较高的算法(如决策树)得到了很好的结果,那么通常可以通过 bagging 该算法来获得更好的结果。
10. Boosting 和 AdaBoost
Boosting 是一种集成技术,它试图集成一些弱分类器来创建一个强分类器。这通过从训练数据中构建一个模型,然后创建第二个模型来尝试纠正第一个模型的错误来完成。一直添加模型直到能够完美预测训练集,或添加的模型数量已经达到最大数量。
AdaBoost 是第一个为二分类开发的真正成功的 boosting 算法。这是理解 boosting 的最佳起点。现代 boosting 方法建立在 AdaBoost 之上,最显著的是随机梯度提升。
AdaBoost
AdaBoost与短决策树一起使用。在第一个决策树创建之后,利用每个训练实例上树的性能来衡量下一个决策树应该对每个训练实例付出多少注意力。难以预测的训练数据被分配更多权重,而容易预测的数据分配的权重较少。依次创建模型,每个模型在训练实例上更新权重,影响序列中下一个决策树的学习。在所有决策树建立之后,对新数据进行预测,并且通过每个决策树在训练数据上的精确度评估其性能。
因为在纠正算法错误上投入了太多注意力,所以具备已删除异常值的干净数据非常重要。
总结
初学者在面对各种机器学习算法时经常问:「我应该用哪个算法?」这个问题的答案取决于很多因素,包括:(1)数据的大小、质量和特性;(2)可用的计算时间;(3)任务的紧迫性;(4)你想用这些数据做什么。
即使是经验丰富的数据科学家在尝试不同的算法之前,也无法分辨哪种算法会表现最好。虽然还有很多其他的机器学习算法,但本篇文章中讨论的是最受欢迎的算法。如果你是机器学习的新手,这将是一个很好的学习起点。