1. 聚类简介
聚类主要用于数据分析,也可以用于监督学习的预处理。聚类有助于发现数据的统计规律。聚类是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇”的数据分析问题。
聚类的目的是通过得到的类或簇来发现数据的特点或对数据进行处理,在数据挖掘、模式识别等领域有着广泛的应用。
聚类属于无监督学习,因为只是根据样本的相似度或距离将其进行归类,而类或簇事先并不知道。****相关算法:****K-means clustering, Hierarchical clustering, density-based clustering
2. 样本之间的距离或相似度
假设有n个样本,每个样本由m个属性的特征向量组成,样本合集可以用矩阵X表示
聚类的核心概念是相似度(similarity) 或距离(distance),有多种相似度或距离定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。
(1)闵可夫斯基距离
闵可夫斯基距离越大,相似度越小,距离越小,相似度越大。(反比关系)
(2)马哈拉诺比斯距离
马哈拉诺比斯距离(Mahalanobis distance),简称马氏距离,也是另一种常用的相似度,考虑各个分量(特征)之间的相关性并与各个分量的尺度无关。
马哈拉诺比斯距离越大****,相似度越小,距离越小,相似度越大。(反比关系)****
(3)相关系数
样本之间的相似度也可以用相关系数(correlation coefficient)来表示。
相关系数的绝对值越接近于1,表示样本越相似,越接近于0,表示样本越不相似。
(4)夹角余弦
样本之间的相似度也可以用夹角余弦(cosine)来表示。
夹角余弦越接近于1,表示样本越相似****,****越接近于0,表示样本越不相似。
(5)相似度
用距离度量相似度时,距离越小样本越相似
用相关系数时,相关系数越大样本越相似
注意不同相似度度量得到的结果并不一定一致。
从图可以看出,如果从距离的角度看,A和B比A和C更相似但从相关系数的角度看,A和C比A和B更相似。
3. 类或族
通过聚类得到的类或簇,本质是样本的子集。
如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为硬聚类(hard clustering)方法。
如果一个样本可以属于多个类,或类的交集不为空集,那么该方法称为软聚类(soft clustering)方法。
(1)定义
类或簇有多种定义,下面给出几个常见的定义。
(2)常用特征
类的特征可以通过不同角度来刻画,常用的特征有下面三种:均值,类的直径,散布矩阵
4. 类与类之间的距离
(1)最短距离或单连接(single linkage)
(2)最长距离或完全连接(complete linkage)
(3)中心距离
(4)平均距离
三、K均值聚类
1. 概述
K-means 聚类采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
k均值聚类是基于样本集合划分的聚类算法。
k均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心的距离最小。
三个角度描述:模型,策略,算法
2. 模型
C表示一个划分,i表示样本索引,l表示类别,每i个样本对应的类为L
3. 策略
k均值聚类归结为样本集合X的划分,或者从样本到类的函数的选择问题。
k均值聚类的策略是通过损失函数的最小化选取最优的划分或函数C*
首先,采用欧氏距离平方(squared Euclidean distance)作为样本之间的距离
定义样本与其所属类的中心之间的距离的总和为损失函数
相似的样本被聚到同类时,损失函数值最小,这个目标函数的最优化能达到聚类的目的。
但是最优化问题是组合优化问题,计算量大指数级,是个NP难问题。因此采用迭代方法求解,得到的是局部最优解。
4. 算法
k均值聚类的算法是一个迭代的过程,每次迭代包括两个步骤。
(1)首先选择k个类的中心,将样本逐个指派到与其最近的中心的类中,得到一个聚类结果
(2)然后更新每个类的样本的均值,作为类的新的中心
重复以上步骤,直到收敛为止。
例题:
四、层次聚类
1. 概述
层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。
层次聚类又有聚合(agglomerative)或自下而上(bottom-up)聚类、分裂(divisive)或自上而下(top-down)聚类两种方法。
(1)聚合聚类开始将每个样本各自分到一个类。之后将相距最近的两类合并,建立一个新的类。重复此操作直到满足停止条件得到层次化的类别。
(2)分裂聚类开始将所有样本分到一个类。之后将已有类中相距最远的样本分到两个新的类。重复此操作直到满足停止条件得到层次化的类别。
2. 算法操作步骤
对于给定的样本集合,开始将每个样本分到一个类。然后按照一定规则,例如类间距离最小,将最满足规则条件的两个类进行合并。如此反复进行,每次减少一个类,直到满足停止条件,如所有样本聚为一类。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取!
系化!**
[外链图片转存中…(img-fIf5Yuel-1712767715984)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里获取!
[外链图片转存中…(img-FsRh0ZvS-1712767715984)]
[外链图片转存中…(img-C5gRvWIS-1712767715985)]