各种智能算法的总结汇总.docx

上传人:b****3 文档编号:26495588 上传时间:2023-06-20 格式:DOCX 页数:32 大小:278.49KB
下载 相关 举报
各种智能算法的总结汇总.docx_第1页
第1页 / 共32页
各种智能算法的总结汇总.docx_第2页
第2页 / 共32页
各种智能算法的总结汇总.docx_第3页
第3页 / 共32页
各种智能算法的总结汇总.docx_第4页
第4页 / 共32页
各种智能算法的总结汇总.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

各种智能算法的总结汇总.docx

《各种智能算法的总结汇总.docx》由会员分享,可在线阅读,更多相关《各种智能算法的总结汇总.docx(32页珍藏版)》请在冰豆网上搜索。

各种智能算法的总结汇总.docx

各种智能算法的总结汇总

7.聚类算法

7.1k-means(k均值)

7.1.1算法定义以及原理:

定义:

k均值聚类算法(k-meansclusteringalgorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。

聚类中心以及分配给它们的对象就代表一个聚类。

每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。

这个过程将不断重复直到满足某个终止条件。

终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

原理:

K-Means算法是一种无监督分类算法,假设有无标签数据集:

1

x

2

x

该算法的任务是将数据集聚类成K个簇CC1,C2,...,Ck,最小化损失函数为:

k2

Exi

i1xCi

其中i为簇Ci的中心点:

1)

1CixCi

要找到以上问题的最优解需要遍历所有可能的簇划分,

近似解,具体步骤如下:

(2)

K-Means算法使用贪心策略求得一个

1)在样本中随机选取k个样本点充当各个簇的中心点

2)计算所有样本点与各簇中心之间的距离distx

然后把样本点划入最近的簇中

nearest

3)根据簇中已有的样本点,重新计算簇中心

1

 

(4)重复2,3

7.1.2算法特点优点:

容易实现。

缺点:

可能收敛到局部最小值,在大规模数据上收敛较慢。

适合数据类型:

数值型数据。

7.1.3聚类过程

(1)创建k个点作为k个簇的起始质心(经常随机选择)。

(2)分别计算剩下的元素到k个簇中心的相异度(距离),将这些元素分别划归到相异度最低的簇。

(3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均值。

(4)将D中全部元素按照新的中心重新聚类。

(5)重复第4步,直到聚类结果不再变化。

(6)最后,输出聚类结果。

7.1.4算法实现创建k个点作为K个簇的起始质心(经常随机选择)当任意一个点的蔟分配结果发生变化时(初始化为True)

对数据集中的每个数据点,重新分配质心

对每个质心计算质心到数据点之间的距离

将数据点分配到距其最近的蔟对每个蔟,计算蔟中所有点的均值并将均值作为新的质心7.1.5算法总结与讨论

虽然K-Means算法原理简单,但是也有自身的缺陷:

(1)首先,聚类的簇数K值需要事先给定,但在实际中这个K值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。

(2)K-Means需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果,不能保证K-Means算法收敛于全局最优解。

针对此问题,在K-Means的基础上提

出了二分K-Means算法。

该算法首先将所有点看做是一个簇,然后一分为二,找到最小SSE的聚类质心。

接着选择其中一个簇继续一分为二,此处哪一个簇需要根据划分后的SSE值来判断。

(3)对离群点敏感。

(4)结果不稳定(受输入顺序影响)。

(5)时间复杂度高O(nkt),其中n是对象总数,k是簇数,t是迭代次数。

7.1.6确定K个簇的初始质心的方法

(1)选择批次距离尽可能远的K个点首先随机选择一个点作为第一个初始类簇中心点,然后选择距离该点最远的那个点作为第二个初始类簇中心点,然后再选择距离前两个点的最近距离最大的点作为第三个初始类簇的中心点,以此类推,直至选出K个初始类簇中心点。

(2)选用层次聚类或者Canopy算法进行初始聚类,然后利用这些类簇的中心点作为K-Means算法初始类簇中心点。

7.2模糊c-均值聚类算法

7.2.1FCM算法的概念

模糊c-均值聚类算法fuzzyc-meansalgorithm(FCMA)或称(FCM)。

在众多模糊聚类算法中,模糊C-均值(FCM)算法应用最广泛且较成功,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。

7.2.2FCM算法原理

假定我们有数据集X,我们要对X中的数据进行分类,如果把这些数据划分成C个类

的话,那么对应的就有C类中心为Ci,每个样本xj属于某一类Ci的隶属度定为uij,那么定义一个FCM目标函数及其约束条件如下:

cn

m

Juimj

i1j1

xjci

(3)

c

uij1,j

i1

1,2,...,n

(4)

目标函数(式3)由相应样本的隶属度与该样本到各类中心的距离相乘组成的,式4为约

束条件,也就是一个样本属于所有类的隶属度之和要为1。

式1中的m是一个隶属度的因子,

一般为2,xjci表示xj到中心点ci的欧式距离。

uij的迭代公式为:

uij

 

Ci的迭代公式:

Cj

Nm

i1uij*xi

Nm

6)

i1uij

我们发现uij和Ci是相互关联的,彼此包含对方,程序一开始会随机生成一个uij,只要数值满足条件即可,然后开始迭代,通过uij计算出Ci,有了Ci又可以计算出uij,反反复

复,这个过程中目标函数J一直在变化,逐渐绉向稳定。

那么当J不在变化时就认为算法收敛到一个较好的结果了。

7.2.3FCM算法步骤

(1)确定分类数,指数m的值,确定迭代次数。

(2)初始化一个隶属度U(注意条件和为1)。

(3)根据U计算聚类中心C。

(4)这个时候可以计算目标函数J了。

(5)根据C返回去计算U,回到步骤3,一直循环直到结束。

7.3SOM(自组织映射网络)

7.3.1SOM的定义

它模拟人脑中处于不同区域的神经细胞分工不同的特点,即不同区域具有不同的响应特

征,而且这一过程是自动完成的。

自组织映射网络通过寻找最优参考矢量集合来对输入模式集合进行分类。

每个参考矢量为一输出单元对应的连接权向量。

与传统的模式聚类方法相比,它所形成的聚类中心能映射到一个曲面或平面上,而保持拓扑结构不变。

对于未知聚类中心的判别问题可以用自组织映射来实现。

7.3.2SOM的特点

自组织神经网络是神经网络最富有魅力的研究领域之一,它能够通过其输入样本学会检测其规律性和输入样本相互之间的关系,并且根据这些输入样本的信息自适应调整网络,使网络以后的响应与输入样本相适应。

竞争型神经网络的神经元通过输入信息能够识别成组的相似输入向量;自组织映射神经网络通过学习同样能够识别成组的相似输入向量,使那些网络层中彼此靠得很近的神经元对相似的输入向量产生响应。

与竞争型神经网络不同的是,自组织映射神经网络不但能学习输入向量的分布情况,还可以学习输入向量的拓扑结构,其单个神经元对模式分类不起决定性作用,而要靠多个神经元的协同作用才能完成模式分类。

7.3.3SOM的工作原理

先来了解它是如何工作的,用随机值或从输入中随机采样对连接权重进行初始化,网格中的每个神经元都被赋予一个位置。

数据输入后,测量输入向量(X)和所有神经元权向量(W)之间的距离,与输入数据距离最小的神经元为胜者(WTU),距离度量如下:

7)

d其中,j是神经元j的权重与输入X之间的距离,最小距离的神经元是胜者。

第二步,调整获胜神经元及其邻域神经元的权重,以确保如果下一次是相同的输入,则胜者

 

高斯墨西哥帽函数作为邻域函数,数学表达式如下:

其中,σ是随时间变化的神经元影响半径,d是距离获胜神经元的距离。

邻域函数的一个重要特性是它的半径随时间而减小,这样刚开始时较多邻域神经元权重被修改,但是随着网络的学习,最终只有少量的神经元的权重被修改(有时只有一个或没有)。

权重的改变由下式计算:

9)

dWXW

按照这个方法继续处理输入,重复执行给定的迭代次数。

在迭代过程中利用一个与迭代次数相关的因子来减少学习率和影响半径。

8.分类算法

8.1.k-NN(k近邻)

8.1.1K-NN算法的概念

K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。

这就类似于现实生活中少数服从多数的思想。

下面通过一个简单的例子说明一下:

如下图,

图8-1样本数据图

如上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。

这也就是我们的目的,来了一个新的数据点,我要得到它的类别是什么?

好的,下面我们根据k近邻的思想来给绿色圆点进行分类。

如果K=3,绿色圆点的最邻近的3个点是2个红色小三角形和1个蓝色小正方形,少数

从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。

如果K=5,

绿色圆点的最邻近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。

从上面例子我们可以看出,k近邻的算法思想非常的简单,也非常的容易理解,那么我们是不是就到此结束了,该算法的原理我们也已经懂了,也知道怎么给新来的点如何进行归类,只要找到离它最近的k个实例,哪个类别最多即可。

8.1.2距离的度量

K个实例,这K

这里就会引出我

在上文中说到,k近邻算法是在训练数据集中找到与该实例最邻近的个实例的多数属于某个类,我们就说预测点属于哪个类。

定义中所说的最邻近是如何度量呢?

我们怎么知道谁跟测试点最邻近。

们几种度量两个点之间距离的标准。

我们可以有以下几种度量方式:

1pp

10)

这里p1,当p=2时,称为欧氏距离,即

 

L2xi,xj

n

l

xi

 

l1

11)

当p=1时,称为曼哈顿距离,即

L1xi,xj

n

l

xi

lxj

l1

12)

当p时,它是各个坐标距离的最大值,即

Lxi,xjmaxxilxjl

其中当p=2的时候,就是我们最常见的欧式距离,我们也一般都用欧式距离来衡量我们高

维空间中俩点的距离。

在实际应用中,距离函数的选择应该根据数据的特性和分析的需要而

 

定,一般选取p=2欧式距离表示。

8.1.3K-NN算法

K-NN算法的思想总结如下:

就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:

(1)初始化距离为最大值。

(2)计算未知样本和每个训练样本的距离dist,然后对所有的距离进行排序,选择前k个距

离。

(3)得到目前K个最临近样本中的最大距离maxdist

(4)如果dist小于maxdist,则将该训练样本作为K-最近邻样本,然后在邻近样本空间中选择最多的类别。

(5)重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完

(6)统计K-最近邻样本中每个类标号出现的次数

(7)选择出现频率最大的类标号作为未知样本的类标号

8.2决策树之ID3算法

8.2.1决策树的基本认识决策树是一种依托决策而建立起来的一种树。

在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某个可能的属性值,而每一个叶子节点则对应从根节点到该叶子节点所经历的路径所表示的对象的值。

决策树仅有单一输出,如果有多个输出,可以分别建立独立的决策树以处理不同的输出。

8.2.2ID3算法介绍

ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。

ID3算法,即IterativeDichotomiser3,迭代二叉树3代,是RossQuinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树,尽管如此,也不总是生成最小的树型结构,而是一个启发式算法。

在信息论中,期望信息越小,那么信息增益就越大,从而纯度就越高。

ID3算法的核心思想就是以信息增益来度量属性的选择,选择分裂后信息增益最大的属性进行分裂。

该算法采用自顶向下的贪婪搜索遍历可能的决策空间。

8.2.3信息熵与信息增益在信息增益中,重要性的衡量标准就是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。

在认识信息增益之前,先来看看信息熵的定义。

熵这个概念最早起源于物理学,在物理学中是用来度量一个热力学系统的无序程度,而在信息学里面,熵是对不确定性的度量。

在1948年,香农引入了信息熵,将其定义为离散随机事件出现的概率,

一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。

所以信息熵可以被认为是系统有序化程度的一个度量。

假如一个随机变量X的取值为Xx1,x2,...,xn,每一种取到的概率分别是

n

p1,p1,...,pn,那么X的熵定义为HXpilog2pi,这个公式的含义是一个变量的

i1

变化情况可能越多,那么它携带的信息量就越大。

对于分类系统来说,类别C是变量,它

PC1,PC2,...,PCn。

而这

的取值是C1,C2,...,Cn,而每一个类别出现的概率分别是

里的n就是类别的总数,此时分类系统的熵就可以表示为:

例子来说明。

下面是描述天气数据表,学习目标是play或者notplay。

 

图8-2天气预报数据例子

可以看出,一共14个样例,包括9个正例和5个负例。

那么当前信息的熵计算如下:

EntropyS

9log295log250.940286

15)

1421414214

在决策树分类问题中,信息增益就是决策树在进行属性选择划分前和划分后信息的差值。

设利用属性Outlook来分类,那么如下图:

Outlook

sunnyovercastrainy

 

图8-3天气预报属性划分图

sunny

log2

log2

0.970951

525

5

5

(16)

overcast

4log2

40

log

200

42

4

(17)

rainy

33log2

2log2

2

0.970951

这些属性划分后,数据被分为三部分了,那么各个分支的信息熵计算如下:

Entropy

Entropy

Entropy

(18)

那么划分后的信息熵为:

 

的信息增益为:

IGTEntropySEntropyST0.24675

信息增益的计算公式如下:

其中S为全部样本集合,value(T)是属性T所有取值的集合,v是T的其中一个属性值,Sv是S中属性T的值为v的样例集合,Sv为Sv中所含样例数。

在决策树的每一个非叶子结点划分之前,先计算每一个属性所带来的信息增益,选择最大信息增益的属性来划分,因为信息增益越大,区分样本的能力就越强,越具有代表性,很显然这是一种自顶向下的贪心策略。

因为信息增益越大,说明有该属性与无该属性时的信息熵相差很多。

信息增益是有该属性与无该属性之间的差值,信息增益越大说明该属性的信息熵越大或者说占比很大,含有信息量越大,信息还有的可能性更多,则区分样本的能力越强,易于区分样本。

8.2.4ID3算法缺陷

(1)抗噪声性差,如果数据样本数量太少或噪声太大,就会产生过拟合的问题。

(2)样本少,其树的构成基本上就是为少数样本量身定做的树,如果噪声太大,或样本少且有噪声的话,很多树枝都是噪声拟合出来的。

(3)在选择最优特征时,很容易倾向于选择“特征值种类较多”的特征,作为分类特征。

举个极端点的例子,假设有100个样本集,现在有一个特征其数值种类也是100,如果按该

特征分类,就能把这个样本集分成100份,每份一个样本。

在用ID3算法做决策树时,肯

定会选择这个特征作为第一个最优特征,因为这个特征分出来的样本集每一个纯度都是最高。

(4)无法处理特征值为连续型数据的特征。

(不过可以考虑把连续型数据转化成离散型数据),即,可以处理像性别特征、boolen特征等离散型特征,但没法处理特征值在某个区间内可以任意取值的特征,如身高特征、年龄特征。

8.3C4.5

8.3.1C4.5的概念

C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化。

C4.5算

法对ID3算法主要做了一下几点改进:

(1)通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个

属性值的属性作为分裂属性的不足;

(2)能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;

(3)构造决策树之后进行剪枝操作;

(4)能够处理具有缺失属性值的训练数据。

C4.5算法训练的结果是一个分类模型,这个分类模型可以理解为一个决策树,分裂属性就是一个树节点,分类结果是树的结点。

每个节点都有左子树和右子树,结点无左右子树。

8.3.2C4.5与信息增益率

ID3算法通过信息增益

分裂属性选择的评判标准是决策树算法之间的根本区别。

区别于

假设以属性A作为分裂属性(分

选择分裂属性,C4.5算法通过信息增益率选择分裂属性。

裂结点),属性A的“分裂信息”(splitinformation)如下:

A是Outlook,则A有三个子数集分别有5、4、5个样本。

通过属性A分裂之后样本集的信息增益为:

InfoGainS,AESEAS

A(23)

通过属性A分裂之后样本集的信息增益率:

InfoGainS,A

InfoGainRationS,A

SplitInfoAS(24)

通过C4.5算法构造决策树时,信息增益率最大的属性即为当前节点的分裂属性,随着递归计算,被计算的属性的信息增益率会变得越来越小,到后期则选择相对比较大的信息增益率的属性作为分裂属性。

8.3.3C4.5算法流程

如下图所示:

开始

创建节点N

训练集为空

样本都属于类C

属性列表为空

属性为连续型

根据公式2.8计算属性列表中的属性的信息增益率

选择信息增益率最高的属性标记节点N

用后剪枝方法进行剪枝

结束

返回节点N

返回节点N为叶节点并标记为类C

标记N为数据集的多

数类

离散化属性

离散化属性

图8-4C4.5算法流程

 

8.4随机森林

8.4.1随机森林的基本概念

随机森林分解开来就是“随机”和“森林”。

“随机”的含义我们之后讲,我们先说“森林”,森林是由很多棵树组成的,因此随机森林的结果是依赖于多棵决策树的结果,这是一种集成学习的思想。

森林里新来了一只动物,森林举办森林大会,判断这到底是什么动物,每棵树都必须发表意见,票数最多的结果将是最终的结果。

随机森林最终的模型见下图示:

图8-5随机森林模型图

8.4.2随机森林之如何构建每棵树

假设共有N个样本,M个特征。

这里我们讲“随机”的含义。

对于每棵树都有放回的随

机抽取训练样本,这里抽取随机抽取2N/3的样本作为训练集,再有放回的随机选取m个

特征作为这棵树的分枝的依据,这里要注意m=M。

这就是“随机”两层含义,一个是随机选取样本,一个是随机选取特征。

这样就构建出了一棵树,需要注意的是这里生成的树都是完全生长的树(关于为什么是要完全生长的树,我认为的原因是便于计算每个特征的重要程度,剪枝的话将无法进行计算)。

一棵树的构建方式如下图所示:

 

图8-6每棵树的构建方式图

按照这种方法,可以构建出很多棵树,那么这么多棵树综合评判的结果可以作为最后的结果吗?

当然不是的,随机森林真正厉害的地方不在于它通过多棵树进行综合得出最终结果,而是在于通过迭代使得森林中的树不断变得优秀(森林中的树选用更好的特征进行分枝)。

上面

的一个森林相当于第一次迭代得到的森林。

8.4.3选出优秀特征的方法

随机森林的思想是构建出优秀的树,优秀的树需要优秀的特征。

那我们需要知道各个特征的重要程度。

对于每一棵树都有个特征,要知道某个特征在这个树中是否起到了作用,可以随机改变这个特征的值,使得“这棵树中有没有这个特征都无所谓”,之后比较改变前后的测试集误差率,误差率的差距作为该特征在该树中的重要程度,测试集即为该树抽取

2N/3样本之后剩余的样本(袋外样本)(由袋外样本做测试集造成的误差称为袋外误差)。

一棵树中对于m个特征都计算一次,就可以算出m个特征在该树中的重要程度。

我们可以计算出所有树中的特征在各自树中的重要程度。

但这只能代表这些特征在树中的重要程度不能代表特征在整个森林中的重要程度。

那我们怎么计算各特征在森林中的重要程度呢?

每个

特征在多棵数中出现,取这个特征值在多棵树中的重要程度的均值即为该特征在森林中的重要程度。

如下式:

ntree

其中ntree表示特征Ai在森林中出现的次数。

errooBt1表示第t棵树中Ai属性值改变之

后的袋外误差,errooBt2表示第t棵树中正常Ai值的袋外误差。

可以用下图来表示

图8-7选出优秀特征的方法的图

这样就得到了所有特征在森林中的重要程度。

将所有的特征按照重要程度排序,去除森林中重要程度低的部分特征,得到新的特征集。

这时相当于我们回到了原点,这算是真正意义上完成了一次迭代。

8.4.4选出最优秀的森林的方法

按照上面的步骤迭代多次,逐步去除相对较差的特征,每次都会生成新的森林,直到剩余的特征数为为止。

最后再从所有迭代的森林中选出最好的森林。

迭代的过程如下图所示:

图8-8选出最优秀的森林的方法图

得到了每次迭代出的森林之后,我们需要选择出最优秀的森林(随机森林毕竟是集成学

习,所以最后的森林不一定是最优的,一个诸葛亮不一定顶的上三个臭皮匠)。

那么我们怎

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1