深度学习500问——Chapter02:机器学习基础(5)

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

2.14 贝叶斯分类器

2.14.1 图解极大似然估计

极大似然估计的原理,用一张图片来说明,如下图所示:

例:有两个外形完全相同的箱子,1号箱有99只白球,1只黑球;2号箱子有1只白球,99只黑球。在一次实验中,取出的是黑球,请问从哪个箱子中取出的?

一般的根据经验想法,会猜测这只黑球最像是从2号箱取出,此时描述的“最像”就有“最大似然”的意思,这种想法常称为“最大似然原理”。

2.14.2 极大似然估计原理

总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

极大似然估计是建立在极大似然原理的基础上的一个统计方法。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

由于样本集中的样本都是独立同分布,可以只考虑一类样本集D,来估计参数向量\vec\theta。记已知样本集为:D=\vec x_{1},\vec x_{2},...,\vec x_{n},似然函数(likelihood function):联合概率密度函数p(D|\vec\theta )称为相对于\vec x_{1},\vec x_{2},...,\vec x_{n}\vec\theta的似然函数。l(\vec\theta )=p(D|\vec\theta ) =p(\vec x_{1},\vec x_{2},...,\vec x_{n}|\vec\theta )=\prod_{i=1}^{n}p(\vec x_{i}|\vec \theta )如果\hat{\vec\theta}是参数空间中能使似然函数l(\vec\theta)最大的\vec\theta值,则\hat{\vec\theta}应该是“最可能”的参数值,那么\hat{\vec\theta}就是\theta的极大似然估计量。它是样本集的函数,记作:\hat{\vec\theta}=d(D)= \mathop {\arg \max}{\vec\theta} l(\vec\theta )\hat{\vec\theta}(\vec x{1},\vec x_{2},...,\vec x_{n})称为极大似然函数的估计值。

2.14.3 贝叶斯分类器基本原理

贝叶斯决策论通过相关概率已知的情况下利用误判损失来选择最优的类别分类。

假设有N种可能的分类标记,记为:Y={c_1,c_2,...,c_N},那对于样本\boldsymbol{x},它属于哪一类呢?

计算步骤如下:

step1:算出样本\boldsymbol{x}属于第i个类的概率,即P(c_i|x)

step2:通过比较所有的P(c_i|\boldsymbol{x}),得到样本\boldsymbol{x}所属的最佳类别。

step3:将类别c_i和样本\boldsymbol{x}代入到贝叶斯公式,得到:P(c_i|\boldsymbol{x})=\frac{P(\boldsymbol{x}|c_i)P(c_i)}{P(\boldsymbol{x})}

一般来说,P(c_i)为先验概率,P(\boldsymbol{x}|c_i)为条件概率,P(\boldsymbol{x})是用于归一化的证据因子。对于P(c_i)可以通过训练样本中类别为c_i的样本所占的比例进行估计;此外,由于只需要找到最大的P(\boldsymbol{x}|c_i),因此我们并不需要计算P(\boldsymbol{x})

为了求解条件概率,基于不同假设提出了不同的方法,以下将介绍朴素贝叶斯分类器和半朴素贝叶斯分类器。

2.14.4  朴素贝叶斯分类器

假设样本\boldsymbol{x}包含d个属性,即\boldsymbol{x}={ x_1,x_2,...,x_d}。于是有:P(\boldsymbol{x}|c_i)=P(x_1,x_2,\cdots,x_d|c_i)。这个联合概率难以从有限的训练样本中直接估计得到。于是,朴素贝叶斯(Naive Bayesian,简称NB)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。于是有:P(x_1,x_2,\cdots,x_d|c_i)=\prod_{j=1}^d P(x_j|c_i)。这样的话,我们就可以很容易地推出相应的判定准则了:h_{nb}(\boldsymbol{x})=\mathop{\arg \max}{c_i\in Y} P(c_i)\prod{j=1}^dP(x_j|c_i)条件概率P(x_j|c_i)的求解。

如果x_j是标签属性,那么我们可以通过计数的方法估计P(x_j|c_i), P(x_j|c_i)=\frac{P(x_j,c_i)}{P(c_i)}\approx\frac{(x_j,c_i)}{(c_i)}其中,(x_j,c_i)表示在训练样本中x_jc_{i}共同出现的次数。

如果x_j是数值属性,通常我们假设类别中c_{i}的所有样本第j个属性的值服从正态分布。我们首先估计这个分布的均值\mu和方差\sigma,然后计算x_j在这个分布中的概率密度P(x_j|c_i)

2.14.5 举例理解朴素贝叶斯分类器

使用经典的西瓜训练集如下:

编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜
1青绿蜷缩浊响清晰凹陷硬滑0.6970.460
2乌黑蜷缩沉闷清晰凹陷硬滑0.7740.376
3乌黑蜷缩浊响清晰凹陷硬滑0.6340.264
4青绿蜷缩沉闷清晰凹陷硬滑0.6080.318
5浅白蜷缩浊响清晰凹陷硬滑0.5560.215
6青绿稍蜷浊响清晰稍凹软粘0.4030.237
7乌黑稍蜷浊响稍糊稍凹软粘0.4810.149
8乌黑稍蜷浊响清晰稍凹硬滑0.4370.211
9乌黑稍蜷沉闷稍糊稍凹硬滑0.6660.091
10青绿硬挺清脆清晰平坦软粘0.2430.267
11浅白硬挺清脆模糊平坦硬滑0.2450.057
12浅白蜷缩浊响模糊平坦软粘0.3430.099
13青绿稍蜷浊响稍糊凹陷硬滑0.6390.161
14浅白稍蜷沉闷稍糊凹陷硬滑0.6570.198
15乌黑稍蜷浊响清晰稍凹软粘0.3600.370
16浅白蜷缩浊响模糊平坦硬滑0.5930.042
17青绿蜷缩沉闷稍糊稍凹硬滑0.7190.103

对下面的测试例“测1”进行 分类:

编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜
测1青绿蜷缩浊响清晰凹陷硬滑0.6970.460

首先,估计类先验概率P(c_j),有:

然后,为每个属性估计条件概率(这里,对于连续属性,假定它们服从正态分布):

于是有:

由于0.063>6.80\times 10^{-5},因此,朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。

2.14.6 半朴素贝叶斯分类器

​ 朴素贝叶斯采用了“属性条件独立性假设”,半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息。独依赖估计(One-Dependence Estimator,简称ODE)是半朴素贝叶斯分类器最常用的一种策略。

顾名思义,独依赖是假设每个属性在类别之外最多依赖一个其他属性,即:

P(\boldsymbol{x}|c_i)=\prod_{j=1}^d P(x_j|c_i,{\rm pa}_j)

其中pa_j为属性x_i所依赖的属性,成为x_i的父属性。假设父属性pa_j已知,那么可以使用下面的公式估计P(x_j|c_i,{\rm pa}_j)P(x_j|c_i,{\rm pa}_j)=\frac{P(x_j,c_i,{\rm pa}_j)}{P(c_i,{\rm pa}_j)}

2.15 EM 算法

2.15.1 EM算法基本思想

​ 最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计的优化算法,通常作为牛顿迭代法的替代,用于对包含隐变量或缺失数据的概率模型进行参数估计。

​ 最大期望算法基本思想是经过两个步骤交替进行计算:

​ 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;

​ 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。

​ M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

2.15.2 EM算法推导

​ 对于m个样本观察数据x=(x^{1},x^{2},...,x^{m}),现在想找出样本的模型参数\theta,其极大化模型分布的对数似然函数为:\theta = \mathop{\arg\max}\theta\sum\limits{i=1}^m logP(x^{(i)};\theta)。 如果得到的观察数据有未观察到的隐含数据z=(z^{(1)},z^{(2)},...z^{(m)}),极大化模型分布的对数似然函数则为:\theta =\mathop{\arg\max}\theta\sum\limits{i=1}^m logP(x^{(i)};\theta)\\ = \mathop{\arg\max}\theta\sum\limits{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta)

 由于上式不能直接求出\theta,采用缩放技巧:

上式用到了Jensen不等式: log\sum\limits_j\lambda_jy_j \geqslant \sum\limits_j\lambda_jlogy_j;;, \lambda_j \geqslant 0, \sum\limits_j\lambda_j =1,并且引入了一个未知的新分布Q_i(z^{(i)})

此时,如果需要满足Jensen不等式中的等号,所以有: \frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} =c,c为常数。

由于Q_i(z^{(i)})是一个分布,所以满足\sum\limits_{z}Q_i(z^{(i)}) =1 综上,可得:Q_i(z^{(i)}) = \frac{P(x^{(i)}, z^{(i)};\theta)}{\sum\limits_{z}P(x^{(i)}, z^{(i)};\theta)} = \frac{P(x^{(i)}, z^{(i)};\theta)}{P(x^{(i)};\theta)} = P( z^{(i)}|x^{(i)};\theta)

如果Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)};\theta) ,则第(1)式是我们的包含隐藏数据的对数似然的一个下界。如果我们能极大化这个下界,则也在尝试极大化我们的对数似然。即我们需要最大化下式: \mathop{\arg\max}\theta \sum\limits{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} 

简化得: \mathop{\arg\max}\theta \sum\limits{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)}

 以上即为EM算法的M步,\sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)},可理解为logP(x^{(i)}, z^{(i)};\theta),基于条件概率分布Q_i(z^{(i)})的期望。以上即为EM算法中E步和M步的具体数学含义。

2.15.3 图解EM算法

​ 考虑上一节中的(a)式,表达式中存在隐变量,直接找到参数估计比较困难,通过EM算法迭代求解下界的最大值到收敛为止。

​ 图片中的紫色部分是我们的目标模型p(x|\theta),该模型复杂,难以求解析解,为了消除隐变量z^{(i)}的影响,我们可以选择一个不包含z^{(i)}的模型r(x|\theta),使其满足条件r(x|\theta) \leqslant p(x|\theta)

求解步骤如下:

(1)选取\theta_1,使得r(x|\theta_1) = p(x|\theta_1),然后对此时的r求取最大值,得到极值点\theta_2,实现参数的更新。

(2)重复以上过程到收敛为止,在更新过程中始终满足r \leqslant p

2.15.4 EM算法流程

输入:观察数据x=(x^{(1)},x^{(2)},...x^{(m)}),联合分布p(x,z ;\theta),条件分布p(z|x; \theta),最大迭代次数J

1)随机初始化模型参数\theta的初值\theta^0

2)for \ j \ from \ 1 \ to \ j

​ a) E步。计算联合分布的条件概率期望:Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)}, \theta^{j})

L(\theta, \phi) = \sum_{i=1}^{m} \sum_{z^{(i)}} P_{\phi}(z^{(i)} | x^{(i)}) \log P_{\theta}(x^{(i)}, z^{(i)})

​ b) M步。极大化L(\theta, \theta^{j}),得到\theta^{j+1}: \theta^{j+1} = \mathop{\arg\max}_\theta L(\theta, \theta^{j})

 c) 如果\theta^{j+1}收敛,则算法结束。否则继续回到步骤a)进行E步迭代。

2.16 降维聚类

2.16.1 图解为什么会产生维数灾难

​ 假如数据集包含10张照片,照片中包含三角形和圆两种形状。现在来设计一个分类器进行训练,让这个分类器对其他的照片进行正确分类(假设三角形和圆的总数是无限大),简单的,我们用一个特征进行分类:

​ 图2.21.1.a

​ 从上图可看到,如果仅仅只有一个特征进行分类,三角形和圆几乎是均匀分布在这条线段上,很难将10张照片线性分类。那么,增加一个特征后的情况会怎么样:

​ 图2.21.1.b

增加一个特征后,我们发现仍然无法找到一条直线将猫和狗分开。所以,考虑需要再增加一个特征:

​ 图2.21.1.c

​ 此时,可以找到一个平面将三角形和圆分开。

​ 现在计算一下不同特征数是样本的密度:

​ (1)一个特征时,假设特征空间时长度为5的线段,则样本密度为10 \div 5 = 2

​ (2)两个特征时,特征空间大小为5\times5 = 25,样本密度为10 \div 25 = 0.4

​ (3)三个特征时,特征空间大小是5\times5\times5 = 125,样本密度为10 \div 125 = 0.08

​ 以此类推,如果继续增加特征数量,样本密度会越来越稀疏,此时,更容易找到一个超平面将训练样本分开。当特征数量增长至无限大时,样本密度就变得非常稀疏。

​ 下面看一下将高维空间的分类结果映射到低维空间时,会出现什么情况?

​ 图2.21.1.e

​ 上图是将三维特征空间映射到二维特征空间后的结果。尽管在高维特征空间时训练样本线性可分,但是映射到低维空间后,结果正好相反。事实上,增加特征数量使得高维空间线性可分,相当于在低维空间内训练一个复杂的非线性分类器。不过,这个非线性分类器太过“聪明”,仅仅学到了一些特例。如果将其用来辨别那些未曾出现在训练样本中的测试样本时,通常结果不太理想,会造成过拟合问题。

​ 图2.21.1.f

​ 上图所示的只采用2个特征的线性分类器分错了一些训练样本,准确率似乎没有图2.21.1.e的高,但是,采用2个特征的线性分类器的泛化能力比采用3个特征的线性分类器要强。因为,采用2个特征的线性分类器学习到的不只是特例,而是一个整体趋势,对于那些未曾出现过的样本也可以比较好地辨别开来。换句话说,通过减少特征数量,可以避免出现过拟合问题,从而避免“维数灾难”。

​ 上图从另一个角度诠释了“维数灾难”。假设只有一个特征时,特征的值域是0到1,每一个三角形和圆的特征值都是唯一的。如果我们希望训练样本覆盖特征值值域的20%,那么就需要三角形和圆总数的20%。我们增加一个特征后,为了继续覆盖特征值值域的20%就需要三角形和圆总数的45%(0.4522≈0.2)。继续增加一个特征后,需要三角形和圆总数的58%(0.5833≈0.2)。随着特征数量的增加,为了覆盖特征值值域的20%,就需要更多的训练样本。如果没有足够的训练样本,就可能会出现过拟合问题。

​ 通过上述例子,我们可以看到特征数量越多,训练样本就会越稀疏,分类器的参数估计就会越不准确,更加容易出现过拟合问题。“维数灾难”的另一个影响是训练样本的稀疏性并不是均匀分布的。处于中心位置的训练样本比四周的训练样本更加稀疏。

​ 假设有一个二维特征空间,如上图所示的矩形,在矩形内部有一个内切的圆形。由于越接近圆心的样本越稀疏,因此,相比于圆形内的样本,那些位于矩形四角的样本更加难以分类。当维数变大时,特征超空间的容量不变,但单位圆的容量会趋于0,在高维空间中,大多数训练数据驻留在特征超空间的角落。散落在角落的数据要比处于中心的数据难于分类。

2.16.2 怎样避免维数灾难

有待完善!!!

解决维度灾难问题:

主成分分析法PCA,线性判别法LDA

奇异值分解简化数据、拉普拉斯特征映射

Lassio缩减系数法、小波分析法、

2.16.3 聚类和降维有什么区别和联系

聚类用于寻找数据内在的分布结构,既可以作为一个单独的过程,比如异常检测等等。也可作为分类等其他学习任务的前驱过程。聚类是标准的无监督学习。

1)在一些推荐系统中需要确定新用户的类型,但定义“用户类型”却可能不太容易,此时往往可先对原有的用户数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于判断新用户的类型。

2)而降维是为了缓解维数灾难的一个重要方法,就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”。其基于的假设就是,虽然人们平时观测到的数据样本虽然是高维的,但是实际上真正与学习任务相关的是个低纬度的分布。从而通过最主要的几个特征维度就可以实现对数据的描述,对于后续的分类很有帮助。比如对于Kaggle(数据分析竞赛平台之一)上的泰坦尼克号生还问题。通过给定一个乘客的许多特征如年龄、姓名、性别、票价等,来判断其是否能在海滩中生还。这就需要首先进行特征筛选,从而能够找出主要的特征,让学习到的模型有更好的泛化性。

​ 聚类和降维都可以作为分类等问题的预处理步骤。

​ 但是他们虽然都能实现对数据的约减。但是二者适用的对象不同,聚类针对的是数据点,而降维则是对于数据的特征。另外它们有着很多种实现方法。聚类中常用的有K-means、层次聚类、基于密度的聚类等;降维中常用的则PCA、Isomap、LLE等。

2.16.4 有哪些聚类算法优劣衡量标准

不同聚类算法有不同的优劣和不同的适用条件。可从以下方面进行衡量判断:

1、算法的处理能力:处理大的数据集的能力,即算法复杂度;处理数据噪声的能力;处理任意形状,包括有间隙的嵌套的数据的能力;

2、算法是否需要预设条件:是否需要预先知道聚类个数,是否需要用户给出领域知识;

​ 3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。

2.16.5 聚类和分类有什么区别

聚类(Clustering)

聚类,简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此聚类通常并不需要使用训练数据进行学习,在机器学习中属于无监督学习。

分类(Classification)

​ 分类,对于一个分类器,通常需要你告诉它“这个东西被分为某某类”。一般情况下,一个分类器会从它得到的训练集中进行学习,从而具备对未知数据进行分类的能力,在机器学习中属于监督学习。

2.16.6 不同聚类算法特点性能比较

算法名称可伸缩性适合的数据类型高维性异常数据抗干扰性聚类形状算法效率
WAVECLUSTER很高数值型很高较高任意形状很高
ROCK很高混合型很高很高任意形状一般
BIRCH较高数值型较低较低球形很高
CURE较高数值型一般很高任意形状较高
K-PROTOTYPES一般混合型较低较低任意形状一般
DENCLUE较低数值型较高一般任意形状较高
OPTIGRID一般数值型较高一般任意形状一般
CLIQUE较高数值型较高较高任意形状较低
DBSCAN一般数值型较低较高任意形状一般
CLARANS较低数值型较低较高球形较低

2.16.7 四种常见的聚类方法之比较

​ 聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。​

主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。

下面主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。

2.16.8 k-means聚类算法

k-means是划分方法中较经典的聚类算法之一。由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。目前,许多算法均围绕着该算法进行扩展和改进。 k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。

k-means算法的处理过程如下:首先,随机地 选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;然后重新计算每个簇的平均值。 这个过程不断重复,直到准则函数收敛。通常,采用平方误差准则,其定义如下:

E=\sum_{i=1}^{k}\sum_{p\in C_i}\left|p-m_i\right|^2

 这里E是数据中所有对象的平方误差的总和,p是空间中的点,m_i是簇C_i的平均值[9]。该目标函数使生成的簇尽可能紧凑独立,使用的距离度量是欧几里得距离,当然也可以用其他距离度量。

算法流程:​

输入:包含n个对象的数据和簇的数目k;​

输出:n个对象到k个簇,使平方误差准则最小。

​步骤:

(1) 任意选择k个对象作为初始的簇中心;

(2) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;  

(3) 更新簇的平均值,即计算每个簇中对象的平均值;   

(4) 重复步骤(2)、(3)直到簇中心不再变化;

2.16.9 层次聚类算法

根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。

凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。

算法流程:

注:以采用最小距离的凝聚层次聚类算法为例:

(1)将每个对象看作一类,计算两两之间的最小距离;

(2)将距离最小的两个类合并成一个新类;

(3)重新计算新类与所有类之间的距离;

(4)重复(2)、(3),直到所有类最后合并成一类。

2.16.10 SOM聚类算法

​ SOM神经网络[11]是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。

​ SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。 学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。

算法流程:

​ (1) 网络初始化,对输出层每个节点权重赋初值;

​ (2) 从输入样本中随机选取输入向量并且归一化,找到与输入向量距离最小的权重向量;

​ (3) 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;

​ (4) 提供新样本、进行训练;​

 (5) 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

2.16.11 FCM聚类算法

​ 1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析[12]。
​ FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。
​ 设数据集X={x_1,x_2,...,x_n},它的模糊c划分可用模糊矩阵U=[u_{ij}]表示,矩阵U的元素u_{ij}表示第j(j=1,2,...,n)个数据点属于第i(i=1,2,...,c)类的隶属度,u_{ij}满足如下条件:

目前被广泛使用的聚类准则是取类内加权误差平方和的极小值。即: 

(min)J_m(U,V)=\sum^n_{j=1}\sum^c_{i=1}u^m_{ij}d^2_{ij}(x_j,v_i)

 其中V为聚类中心,m为加权指数,d_{ij}(x_j,v_i)=||v_i-x_j||

算法流程

(1) 标准化数据矩阵;  

(2) 建立模糊相似矩阵,初始化隶属矩阵;  

(3) 算法开始迭代,直到目标函数收敛到极小值;  

(4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

2.16.12  四种聚类算法试验

 选取专门用于测试分类、聚类算法的国际通用的UCI数据库中的IRIS数据集,IRIS数据集包含150个样本数据,分别取自三种不同 的莺尾属植物setosa、versicolor和virginica的花朵样本,每个数据含有4个属性,即萼片长度、萼片宽度、花瓣长度、花瓣宽度,单位为cm。 在数据集上执行不同的聚类算法,可以得到不同精度的聚类结果。基于前面描述的各算法原理及流程,可初步得如下聚类结果。

聚类方法聚错样本数运行时间/s平均准确率/(%)
K-means170.14600189
层次聚类510.12874466
SOM225.26728386
FCM120.47041792

(1) 聚错样本数:总的聚错的样本数,即各类中聚错的样本数的和;
(2) 运行时间:即聚类整个过程所耗费的时间,单位为s;
(3) 平均准确度:设原有数据集有k个类,用c_i表示第i类,n_i为c_i中样本的个数,m_i为聚类正确的个数,则m_i/n_i为第i类中的精度,则平均精度为:avg=\frac{1}{k}\sum_{i=1}^{k}\frac{m_{i}}{n_{i}}。

参考文献

[1] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.
[2] 周志华. 机器学习[M].清华大学出版社, 2016.
[3] Michael A. Nielsen. "Neural Networks and Deep Learning", Determination Press, 2015.
[4] Suryansh S. Gradient Descent: All You Need to Know, 2018.
[5] 刘建平. 梯度下降小结,EM算法的推导, 2018
[6] 杨小兵.聚类分析中若干关键技术的研究[D]. 杭州:浙江大学, 2005.
[7] XU Rui, Donald Wunsch 1 1. survey of clustering algorithm[J].IEEE.Transactions on Neural Networks, 2005, 16(3):645-67 8.
[8] YI Hong, SAM K. Learning assignment order of instances for the constrained k-means clustering algorithm[J].IEEE Transactions on Systems, Man, and Cybernetics, Part B:Cybernetics,2009,39 (2):568-574.
[9] 贺玲, 吴玲达, 蔡益朝.数据挖掘中的聚类算法综述[J].计算机应用研究, 2007, 24(1):10-13.
[10] 孙吉贵, 刘杰, 赵连宇.聚类算法研究[J].软件学报, 2008, 19(1):48-61.
[11] 孔英会, 苑津莎, 张铁峰等.基于数据流管理技术的配变负荷分类方法研究.中国国际供电会议, CICED2006.
[12] 马晓艳, 唐雁.层次聚类算法研究[J].计算机科学, 2008, 34(7):34-36.
[13] FISHER R A. Iris Plants Database https://www.ics.uci.edu/vmlearn/MLRepository.html, Authorized license.
[14] Quinlan J R. Induction of decision trees[J]. Machine learning, 1986, 1(1): 81-106.
[15] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重学SpringBoot3-内容协商机制

重学SpringBoot3-内容协商机制 ContentNegotiationConfigurer接口配置内容协商URL参数Accept头使用Url扩展名 自定义内容协商格式步骤1: 注册自定义媒体类型步骤2: 实现HttpMessageConverter接口步骤3: 使用自定义HttpMessageConverter 注意点 在 Spring Boot 3 中,…

vue学习笔记21-组件传递数据_Props

组件与组件之间不是完全独立的&#xff0c;而是有交集的&#xff0c;那就是组件与组件之间是可以传递数据的 传递数据的解决方案就是props 父级&#xff1a; 在父级中引入子集 <template><h3>Parent</h3><Child/> </template><script> i…

GFP-GAN环境搭建推理测试

引子 近期&#xff0c;文生图&#xff0c;wav2lip很火&#xff0c;文生图&#xff0c;见识的太多&#xff0c;不多说了。wav2lip其通过语音驱动唇部动作并对视频质量进行修复&#xff0c;里面一般涉及到三个步骤&#xff0c;文本到语音转化&#xff0c;语音驱动唇部动作&#…

【C++初阶】第五站:C/C++内存管理 (匹配使用,干货到位)

前言&#xff1a; 本文知识点&#xff1a; 1. C/C内存分布2. C语言中动态内存管理方式3. C中动态内存管理4. operator new与operator delete函数 5. new和delete的实现原理 &#xff08;干货在此&#xff09; 6. 定位new表达式(placement-new)7. 常见面试题 目录 C/C内…

Java反射、枚举类和lambda表达式

前言&#xff1a; 本章我们就来了解Java中的反射和枚举类。枚举类和反射其实有些关系&#xff0c;接下来我们就来学习他们的使用。 反射&#xff1a; 反射的作用&#xff1a; 反射&#xff1a;反射允许对成员变量&#xff0c;成员方法和构造方法的信息进行编程访问。 Java中有…

CVE-2021-31440:eBPF verifier __reg_combine_64_into_32 边界更新错误

文章目录 前言漏洞分析构造 vuln reg 漏洞利用漏洞修复参考 前言 影响版本&#xff1a;Linux 5.7 ~ 5.11.20 8.8 编译选项&#xff1a;CONFIG_BPF_SYSCALL&#xff0c;config 所有带 BPF 字样的编译选项。General setup —> Choose SLAB allocator (SLUB (Unqueued Allocat…

从0到1手把手实现RPC|01 RpcProvider本地实现

RPC的简化版原理如下图&#xff08;核心是代理机制&#xff09;。 1.本地代理存根: Stub2.本地序列化反序列化3.网络通信4.远程序列化反序列化5.远程服务存根: Skeleton6.调用实际业务服务7.原路返回服务结果8.返回给本地调用方 注意处理异常。 RpcProvider的本地实现 1、工…

xss.haozi.me靶机 通关

0x00 没有任何过滤可以直接注入<img srcx οnerrοralert(1)> 0x01 使用了testarea标签将我们的输入内容以普通的字符串进行展示 但是我们可以将标签进行闭合 </textarea><img srcx οnerrοralert(1)> 0x02 我们依然可以先闭合之后添加属性a" οncl…

Java17 --- SpringCloud之Consul

目录 一、consul的使用 1.1、主要功能 1.2、安装及运行 1.3、添加微服务到consul 1.3.1、8001微服务添加相关pom、配置文件、注解 1.3.2、80微服务添加相关pom、配置文件、注解 1.4、三个注册中心异同 1.5、consul进行分布式配置 1.5.1、修改8001的yml配置文件 1.5.2…

数字化运营在教育行业的技术架构实践总结

随着科技的不断进步和数字化时代的到来&#xff0c;教育行业也正面临着数字化转型的挑战和机遇。教育行业的数字化运营需要依靠合理的技术架构来支撑&#xff0c;本文将探讨教育行业数字化运营的技术架构设计。 ## 第一步&#xff1a;需求分析和架构设计 在构建教育行业数字化…

SpringMVC08、Json

8、Json 8.1、什么是JSON&#xff1f; JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式&#xff0c;目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和…

LeetCode 173.二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator &#xff0c;表示一个按中序遍历二叉搜索树&#xff08;BST&#xff09;的迭代器&#xff1a; BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

探索机器学习的无限可能性:从初学者到专家的旅程

探索机器学习的无限可能性&#xff1a;从初学者到专家的旅程 在当今数字时代&#xff0c;机器学习无疑是最引人注目的技术之一。它已经深入到我们生活的方方面面&#xff0c;从个性化推荐到自动驾驶汽车&#xff0c;再到医疗诊断和金融预测。但是&#xff0c;即使我们已经见证…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RotationGesture)

用于触发旋转手势事件&#xff0c;触发旋转手势的最少手指为2指&#xff0c;最大为5指&#xff0c;最小改变度数为1度。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 接口 RotationGesture(value?: …

三、N元语法(N-gram)

为了弥补 One-Hot 独热编码的维度灾难和语义鸿沟以及 BOW 词袋模型丢失词序信息和稀疏性这些缺陷&#xff0c;将词表示成一个低维的实数向量&#xff0c;且相似的词的向量表示是相近的&#xff0c;可以用向量之间的距离来衡量相似度。 N-gram 统计语言模型是用来计算句子概率的…

docker 子网

当需要给容器分配指定 ip &#xff0c;为避免ip 冲突&#xff0c;指定容器子网处理 创建 subnet 子网 docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 subnet-testdocker network ls NETWORK ID NAME DRIVER SCOPE ... f582ecf297bc sub…

vs2022的下载及安装教程(Visual Studio 2022)

vs简介 Visual Studio在团队项目开发中使用非常多且功能强大&#xff0c;支持开发人员编写跨平台的应用程序;Microsoft Visual C 2022正式版(VC2022运行库)&#xff0c;具有程序框架自动生成&#xff0c;灵活方便的类管理&#xff0c;强大的代码编写等功能&#xff0c;可提供编…

HIVE伪分布安装

引言 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,类似于RDBMS(关系型数据库,如MySQL、Oracle、PgSQL),并提供类SQL的查询功能。 实验准备 1.搭建好伪分布安装模式的Hadoop的虚拟机,并配置了Linux网络。(可看我前面发布的文章) 2.apache…

Windows系统安装Tomcat并结合内网穿透实现公网访问本地网页

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个拥有强大功能的轻量级服务器&#xff0c;由于其可以实…

k8s应用综合实例

k8s应用综合实例 目录 k8s应用综合实例 目录 原文链接 推荐文章 实验环境 实验软件 本节实战 预期 原理 高可用 稳定性 避免单点故障 使用 PDB 健康检查 服务质量 QoS QoS类型 资源回收策略 滚动更新 失败原因 零宕机 HPA 安全性 持久化 Ingress FAQ …