聚类分析算法kmeans和KNN

1.简介

数据挖掘主要研究内容有:分类模式、聚类模式、回归模式、关联模式、序列模式、偏差模式等等。

 1)分类模式:分类就是构造一个分类函数(分类模型),把具有某些特征的数据项映射到某个给定的类别上。

该过程由2步构成:模型创建和模型使用。Step1:通过对训练数据集的学习来建立分类模型; step2:用分类模型对测试数据和新的数据进行分类。

 其中的训练数据集是带有类标号的,也就是说在分类之前,要划分的类别是已经确定的。通常分类模型是以分类规则、决策树或数学表达式的形式给出的。

2)聚类模式:聚类就是将数据项分组成多个类或簇,类之间的数据差别应尽可能大,类内的数据差别应尽可能小,即为“最小化类间的相似性,最大化类内的相似性”原则。

与分类模式不同的是,聚类中要划分的类别是未知的,它是一种不依赖于预先定义的类和带类标号的训练数据集的非监督学习,无需背景知识,其中类的数量由系统按照某种性能指标自动确定。

聚类是一种无监督的学习方式(事先没有任何训练样本,而需要直接对数据进行建模);分类是典型的有监督学习(通过已有的训练样本去训练得到一个最优模型)

聚类涉及的数据集合其特征是未知的,并且在开始聚类之前,用户并不知道要把数据划分成几类,也不清楚分组的标准;分类实际上就是从数据库对象中发现共性,并将数据对象分成不同类别的一个过程。

2.聚类算法

(1)基于分层的聚类(hierarchical methods)

  将给定的数据集进行逐层分解,直到满足某种条件为止。具体可分为“自底向上”和“自顶向下”两种方案。在“自底向上”方案中,初始时每个数据点组成一个单独的组,在接下来的迭代中,按一定的距离度量将相互邻近的组合并成一个组,直至所有的记录组成一个分组或者满足某个条件为止。代表算法有:BIRCH,CURE,CHAMELEON等。

(2)基于划分的聚类(partitioning methods)

给定包含n个点的数据集,划分法将构造k个分组,每个分组代表一个聚类,这里每个分组至少包含一个数据点,每个数据点属于且仅属于一个分组。对于给定的值,算法先给出一个初始的分组方法,然后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案较前一次好,这里好的标准在于同一组中的点越近越好,不同组中的点越远越好。代表算法有:K-means,K-medoids,CLARANS。

(3)基于密度的聚类(density-based methods)

基于密度的方法的特点是不依赖于距离,而是依赖于密度,从而克服基于距离的算法只能发现“球形”聚簇的缺点。其核心思想在于只要一个区域中点的密度大于某个阈值,就把它加到与之相近的聚类中去。代表算法有:DBSCAN,OPTICS,DENCLUE,WaveCluster。

(4)基于网格的聚类(gird-based methods)

这种方法通常将数据空间划分成有限个单元的网格结构,所有的处理都是以单个的单元为对象。这样做起来处理速度很快,因为这与数据点的个数无关,而只与单元格个数有关。代表算法有:STING,CLIQUE。

(5)基于模型的聚类(model-based methods)

基于模型的方法给每一个聚类假定一个模型,然后去寻找能很好的拟合模型的数据集。模型可能是数据点在空间中的密度分布函数或者其它。这样的方法通常包含的潜在假设是:数据集是由一系列的潜在概率分布生成的。通常有两种尝试思路:统计学方法和神经网络方法。其中,统计学方法有COBWEB算法、GMM(Gaussian Mixture Model),神经网络算法有SOM(Self Organized Maps)算法。

3.kmeans算法

1)算法只能找到局部最优的聚类,而不是全局最优的聚类。而且算法的结果非常依赖于初始随机选择的聚类中心的位置。我们需要通过多次运行算法,使用不同的随机生成的聚类中心点运行算法,然后对各自结果C通过evaluate(C)函数进行评估,选择多次结果中evaluate(C)值最小的那一个。

2)关于性能问题。原始的算法,每一次迭代都要计算每一个观测点与所有聚类中心的距离,导致效率不高。有没有方法能够提高效率呢?是有的,可以使用k-d tree或者ball tree这种数据结构来提高算法的效率。特定条件下,对于一定区域内的观测点,无需遍历每一个观测点,就可以把这个区域内所有的点放到距离最近的一个聚类中去。

kmeans算法在图像分割上也有应用。

4.kNN算法

1)相似度计算方法:欧式距离、皮尔逊相关系数、余弦相似度、马氏距离、切比雪夫距离、曼哈顿距离

2)KNN算法:文本分类、产品推荐、人脸识别、异常行为检测

异常行为检测:建立系统或用户的正常行为特征轮廓(Profile),通过比较当前的系统或用户的行为是否偏离正常的行为特征轮廓来判断是否发生了入侵行为。异常行为检测也是对被检测的未知行为分类的过程,未知行为与已知的正常行为相似,则该行为是正常行为,否则是入侵行为。

5.聚类算法的应用

1)协同过滤算法(推荐系统)

2)向量空间模型

使用向量空间模型对文本进行结构化的基本想法是,根据“贝叶斯假定”,不考虑文本中各个特征项的位置信息,假定特征项之间相互独立,由若干个字、词语特征项组合成一个文本。文本集中出现的所有特征项共同构造出一个高维的向量空间。向量空间的每个维度即为一个特征项,而每个文本被看作向量空间中的一个特性向量。

选取特征项-特征权值计算(布尔全中、词语频率、TF-IDF权重)

    原文作者:tdjgcy
    原文地址: https://www.jianshu.com/p/105535717e11
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞