基于单层决策树的AdaBoost算法源码 Mian.py # -*- coding: utf-8 -*- # coding: UTF-8 import numpy as np from AdaBoost import AdaBoost from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score def main(): # load data dataset = np…
集成学习不是一种具体的算法,而是在机器学习中为了提升预测精度而采取的一种或多种策略.其原理是通过构建多个弱监督模型并使用一定策略得到一个更好更全面的强监督模型.集成学习简单的示例图如下: 通过训练得到若干个个体学习器,并通过一定策略得到一个集成学习器. 集成方式因为学习算法的不同又分为"同质"和"异质",如果个体学习器中只包含一种学习算法,例如都是决策树,或都是神经网络,这样的集成就是同质集成,如果个体学习器中包含了多种学习算法,则称为异质集成. 集成学习的目的是得…
一,引言 前面几章的介绍了几种分类算法,当然各有优缺.如果将这些不同的分类器组合起来,就构成了我们今天要介绍的集成方法或者说元算法.集成方法有多种形式:可以使多种算法的集成,也可以是一种算法在不同设置下的集成,还可以将数据集的不同部分分配不同的分类器,再将这些分类器进行集成. adaBoost分类器就是一种元算法分类器,adaBoost分类器利用同一种基分类器(弱分类器),基于分类器的错误率分配不同的权重参数,最后累加加权的预测结果作为输出. 1 bagging方法 在介绍adaBoost之前,…
这里整理一下实验课实现的基于单层决策树的弱分类器的AdaBoost算法. 由于是初学,实验课在找资料的时候看到别人的代码中有太多英文的缩写,不容易看懂,而且还要同时看代码实现的细节.算法的原理什么的,就体验很不好. 于是我这里代码中英文没有用缩写,也尽量把思路写清楚. 基本概念 集成学习:通过组合多个基分类器(base classifier)来完成学习任务,基分类器一般采用弱学习器. 弱学习器:只学习正确率仅仅略优于随机猜测的学习器.通过集成方法,就能组合成一个强学习器. Bagging和Boo…
0提升的基本方法 对于分类的问题,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要比求精确的分类的分类规则(强分类器)容易的多.提升的方法就是从弱分类器算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器.大多数的提升方法都是改变训练数据集的概率分布(训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器. 这样,对于提升方法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值或概率分布,二是如何将弱分类器组合成一…
1 AdaBoost的推导 首先,直接给出AdaBoost算法的核心思想是:在原数据集上经过取样,来生成不同的弱分类器,最终再把这些弱分类器聚合起来. 关键问题有如下几个: (1)取样怎样用数学方式表达出来: (2)每次取样依据什么准则: (3)最后怎么聚合这些弱分类器. 首先我们看第一个问题,如何表示取样?答案使用原数据集上的加权error. 假设我们对数据集D做的取样如下: 那么我们在新数据集上的01error可以等效为在原数据集上的加权error: 即我们取样相当于确定一组权重μ,对这个加…
概述 决策树(Decision Tree)是一种非参数的有监督学习方法,它是一种树形结构,所以叫决策树.它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题.决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以树模型为核心的各种集成算法,在各个行业和领域都有广泛的应用. 决策树的核心有三种算法: ID3:ID3 是最早提出的决策树算法,他就是利用信息增益来选择特征的. C4.5:他是 ID3 的改进版,他不是直接使用信息增益,…
Adaboost:多个弱分类器组成一个强分类器,按照每个弱分类器的作用大小给予不同的权重 一.Adaboost理论部分 1.1 adaboost运行过程 注释:算法是利用指数函数降低误差,运行过程通过迭代进行.其中函数的算法怎么来的,你不用知道!当然你也可以尝试使用其它的函数代替指数函数,看看效果如何. 1.2 举例说明算法流程 略,花几分钟就可以看懂的例子.见:<统计学习方法>李航大大 博客都是借鉴(copy)李航博士的:http://blog.csdn.net/v_july_v/artic…
DBSCAN算法 基本概念:(Density-Based Spatial Clustering of Applications with Noise) 核心对象:若某个点的密度达到算法设定的阈值则其为核心点.(即 r 邻域内点的数量不小于 minPts) ε-邻域的距离阈值:设定的半径r 直接密度可达:若某点p在点q的 r 邻域内,且q是核心点则p-q直接密度可达. 密度可达:若有一个点的序列q0.q1....qk,对任意qi-qi-1是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密…
一.聚类 聚类分析是非监督学习的很重要的领域.所谓非监督学习,就是数据是没有类别标记的,算法要从对原始数据的探索中提取出一定的规律.而聚类分析就是试图将数据集中的样本划分为若干个不相交的子集,每个子集称为一个“簇”.它的难点是不好调参和评估.下面是sklearn中对各种聚类算法的比较. 二.K-Means算法 KMeans算法在给定一个数k之后,能够将数据集分成k个“簇”={C1,C2,⋯,Ck}C={C1,C2,⋯,Ck},不论这种分类是否合理,或者是否有意义.算法需要最小化平方误差: 其中…