一文读懂非监督式学习算法聚类
摘要
随着原始数据的丰富和分析的需要,非监督式学习的概念随着时间的推移变得流行起来。非监督式学习的主要目标是发现未标记数据中隐藏的、令人兴奋的模式。最常见的非监督式学习算法是聚类。数据聚类的应用范围从医学到面部识别到股票市场分析。在这篇文章中,我们讨论了层次聚类。 本文的结构如下在什么是层次聚类? 聚类与分类的区别 K-均值与层次聚类的区别 分层聚类的类型 聚集层次聚类 如何识别两个集群是否相似? 树状图是什么? 可分割的层次聚类 Python 中的分层聚类 分层聚类的利与弊 什么是层次聚类?
分层聚类是一种非监督式学习,它将相似的数据点或对象分组,称为聚类。那么什么是集群和非监督式学习? 聚类与分类的区别
分类和聚类都试图根据不同特征的相似性将数据点分为一个或多个类。区别在于两者的工作方式。分类是一种有监督的算法,每个输入数据点(Xi)都有预定义的标签(yi)。
然而,聚类是一种无监督的算法,其中标签丢失意味着数据集只包含输入数据点(Xi)。
另一个主要区别是由于分类技术有标签,因此需要训练和测试数据集来验证模型。在集群中,没有标签,因此不需要训练和测试数据集。 分类算法的常见例子有:逻辑回归模型 支持向量分类器(SVM) 朴素的贝叶斯 决策树 随机森林 神经网络 聚类算法的例子有:分层聚类 K平均算法 均值漂移聚类 谱聚类
在本文中,我们将深入研究分层集群的细节。 K- 均值聚类与层次聚类的区别
我们为什么需要层次聚类?答案在于K-均值聚类。
我们可以用外行人的语言理解 K-均值聚类。
我们的任务是使用 K平均算法将未标记的数据分组到集群中。
第一步
第一步是确定集群的数量(k)。假设我们已经决定将数据分成两组。 第二步
一旦确定了群集,我们随机初始化两个点,称为群集质心。
第三步
在第三步中,算法对每一个数据点进行处理,根据它是接近红色聚类中心还是接近绿色聚类中心,将这些数据点划分为不同的类。
第四步
在第四步中,我们移动质心步骤。我们计算所有红点的平均值,移动红色的聚类中心到那里,对绿色的聚类做同样的事情。
我们将执行第3步和第4步,直到集群质心不再进一步移动。在这个例子中,点的颜色不会再改变。
K-means 过程看起来不错,对吧?
但是有一个问题,或者我们可以说这个过程的局限性。在算法开始时,我们需要确定聚类的数量。但我们不知道一开始需要多少个星团。
分层集群填补了这一空白。在分层集群中,我们不需要在一开始就定义集群的数量。看看效果如何。 分层聚类的类型
有两种类型的分层聚类: 聚合层次聚类 分层聚类 聚集层次聚类
聚合层次聚类是最常见的一种层次聚类方法,用于根据对象的相似性对其进行聚类。这是一种自下而上的方法,每个观察从它自己的集群开始,当一个集群向上移动时,一对对集群被合并。 聚合层次聚类是如何工作的?
假设您有一些数据点,希望将它们分组到类似的集群中。
步骤1: 第一步是将每个数据点视为一个集群。
步骤2: 确定两个相似的集群,并使它们成为一个集群。
步骤3: 重复该过程,直到只剩下单个集群
如何识别两个集群是否相似?
这样做的方法之一是找出星系团之间的距离。 距离(相似度)的度量
两个星系团之间的距离可以根据从一个星系团到另一个星系团所画的直线的长度来计算。这通常被称为欧几里得度量。
欧几里得度量: 平面或三维空间中两点之间的欧几里得度量测量连接两点的一段的长度。这是表示两点之间距离最明显的方法。
如果(x1,y1)和(x2,y2)是二维空间中的点,那么它们之间的欧几里得度量就是
(x2-x1)2-(y2-y1)2
除了欧几里得度量,还开发了其他一些测量距离的指标,例如: Hamming Distance 汉明距离Manhattan Distance (Taxicab or City Block) 曼哈顿距离(计程车几何) Minkowski Distance 闵氏距离
距离度量标准的选择应该基于学习领域或者你试图解决的问题。
例如,如果您试图在一个统一的网格上测量对象之间的距离,如棋盘或城市街区。那么曼哈顿的距离将是一个明智的选择。 连接标准
在选择距离度量之后,有必要确定从何处计算距离。一些常见的联系方法是: Single-Linkage: 单连接 或最近的连接是两个集群中一对观测值之间的最短距离。 Complete-linkage: 完全连接 或最远的连接是两个集群中一对观测值之间的最远距离。 Average-linkage: 平均连接 是指一组中的每个观测到另一组中的每个观测之间的距离。 Centroid-linkage: 质心连接 是两个集群的质心之间的距离。在这里,您需要找到两个集群的质心,然后在合并之前计算它们之间的距离。 ward linkage: 它是用来最小化数据的差异与层次的方法(离差平方和法) 。该方法寻求选择连续的聚类步骤,以尽量减少每一步的平方误差之和的增加。
连接判据的选择是基于领域应用的。平均连接和完全连接是层次聚类中最常用的两种距离度量方法。然而,当联系标准的选择没有明确的理论依据时, ward linkage 是默认选择。 如何选择集群的数量?
在层次聚类中,我们利用树状图的概念来选择聚类的数量。 树状图是什么?
树状图是一种树状图,显示了观测值之间的层次关系。它包含层次聚类算法的内存。
通过观察树状图,你可以知道星团是如何形成的。让我们看看如何为下面的数据点形成树状图。
观测值E和F在任何其他点上彼此最接近。因此,它们被组合成一个集群连接它们的链接的高度也是最小的。接下来最接近的是A和B,它们结合在一起。
这也可以在树状图中观察到,因为A和B之间的块的高度略大于E和F。同样,D可以合并成E和F簇,然后C可以合并成那个簇。最后A和B组合成C、D、E和F形成一个单独的集群。
在阅读树状图时需要注意的重点是:
块的高度表示群集之间的距离,而观测值之间的距离代表不同之处。
但是问题仍然没有改变,我们如何使用树状图来找到星系团的数量,或者我们应该在哪里停止合并星系团。通过在树状图上画一条水平线,观测结果被分配到集群中。
一般来说,我们把树状图切成最高的垂直线。在上面的示例中,我们有两个集群。一个星团有观测A 和B,第二个星团有C,D,E和F。 可分割的层次聚类
分层聚类在解决实际问题中应用不多。它的工作方式与聚集性集群相反。在这里,我们首先将所有数据点作为一个集群。
在每次迭代中,我们分离最远的点或集群,这些点或集群并不相似,直到每个数据点被视为一个单独的集群。在这里,我们将单个集群划分为 n 个集群,因此名称划分集群。 Python中的分层聚类
为了演示 Python中分层集群的应用,我们将使用鸢尾花(Iris)数据集。鸢尾花(Iris)数据集是机器学习中最常举例使用的数据集之一。
鸢尾花(Iris)数据有三种类型的鸢尾花,它们是因变量中的三类。它包含四个自变量,即萼片长度、萼片宽度、花瓣长度和花瓣宽度,均以厘米为单位。我们将比较原始的类和使用层次聚类方法形成的类。 导入数据
我们将从 sklearn 库导入数据集。 # Import libraries import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn import datasets # Import iris data iris = datasets.load_iris() iris_data = pd.DataFrame(iris.data) iris_data.columns = iris.feature_names iris_data["flower_type"] = iris.target iris_data.head()
想象课程iris_X = iris_data.iloc[:, [0, 1, 2,3]].values iris_Y = iris_data.iloc[:,4].values import matplotlib.pyplot as plt plt.figure(figsize=(10, 7)) plt.scatter(iris_X[iris_Y == 0, 0], iris_X[iris_Y == 0, 1], s=100, c="blue", label="Type 1") plt.scatter(iris_X[iris_Y == 1, 0], iris_X[iris_Y == 1, 1], s=100, c="yellow", label="Type 2") plt.scatter(iris_X[iris_Y == 2, 0], iris_X[iris_Y == 2, 1], s=100, c="green", label="Type 3") plt.legend() plt.show()
上述散点图显示,所有三类鸢尾花是重叠的彼此。我们的任务是使用分层聚类形成聚类,并将它们与原始类进行比较。 创建一个树状图
我们从导入有助于创建树状图的库开始。树状图有助于粗略地了解集群的数量。 import scipy.cluster.hierarchy as sc # Plot dendrogram plt.figure(figsize=(20, 7)) plt.title("Dendrograms") # Create dendrogram sc.dendrogram(sc.linkage(iris_x, method="ward")) plt.title("Dendrogram") plt.xlabel("Sample index") plt.ylabel("Euclidean distance")
通过查看上面的树状图,我们将数据分为三组。 合适的模型
我们实例化了聚集聚类。传递欧几里得度量作为测量点和病房联系之间的距离来计算群集的接近度。然后我们在数据点上拟合模型。最后,我们返回一个整数数组,其中的值使用lables _ property 对应于不同的类别。 from sklearn.cluster import AgglomerativeClustering cluster = AgglomerativeClustering( n_clusters=3, affinity="euclidean", linkage="ward") cluster.fit(iris_x) labels = cluster.labels_ labels
上面的输出显示了0、1、2的值,因为我们定义了4个集群。0表示属于第一个集群的点,1表示第二个集群中的点。类似地,Third 表示第三个集群中的点。 想象集群plt.figure(figsize=(10, 7)) plt.scatter(iris_x[labels == 0, 0], iris_x[labels == 0, 1], s = 100, c = "blue", label = "Type 1") plt.scatter(iris_x[labels == 1, 0], iris_x[labels == 1, 1], s = 100, c = "yellow", label = "Type 2") plt.scatter(iris_x[labels == 2, 0], iris_x[labels == 2, 1], s = 100, c = "green", label = "Type 3") plt.legend() plt.show()
类型1和类型3集群之间仍然存在重叠。但是如果与原来的集群相比,分类已经有了相当大的改进。 分层聚类的利与弊
1. 像K平均算法一样,我们不需要指定算法所需的集群数量。
2.它在大型数据集上不能很好地工作。它通常适用于较小的数据。如果您有一个大型的数据集,就很难通过树状图来确定正确的集群数量。
3. 与K-均值聚类相比,层次聚类计算量大,运行时间长。 结论
尽管层次聚类在处理大型数据集时存在一定的局限性,但它仍然是处理中小型数据集并发现其中模式的有效工具。在本文中,我们讨论了分层聚类的基本概念,这是一种非监督式学习算法,并在 Python 中实现。
英女王珠宝归宿订婚戒指给安妮,凯特收获多,卡米拉或两手空空英国女王伊丽莎白一直想要将自己的王位直接传给威廉,她不喜欢卡米拉,不过英国王室有自己的一套规则,所以伊丽莎白最终也没有办法改变,不过她可以决定将自己的珠宝留给谁,英国王室虽然是荣誉
舒淇曾经的问题少女,40岁低调嫁给多年的好友1976年,舒淇(原名林立慧)出生于中国台湾,刚出生的时候黝黑的皮肤,厚厚的嘴唇,父母表现得既嫌弃又担忧,怕她长大以后太丑了嫁不出去。父亲给她取名林立慧,想着她既然没有了美貌,就一
人这一生忙忙碌碌是为了啥?人这一生忙忙碌碌是为了啥?人自出生开始,各自有各自的职责使命,过程不一样,结局就不一样。有人轰轰烈烈,有人平平淡淡,有人坎坷不平有的人说我忙忙碌碌一生,为了挣钱养家。每天辛苦操劳,
霸的冷案我的故事有很多,只是不想与你说,我的烈酒也很灼,只是不想与你喝。野不,只想做我喜欢的的天下,从此净净,不染世俗。三得到了就好好珍惜,得不到就不要怎么开怎么过,怎么潇洒怎么活。四你可
失去了这些欲望,只能说明一点失去了和你交流的欲望。失去了陪你的令人欲望。失去了安慰你的耐心。不再顾及你的感受,失去了对你的关心。对你的事情,开始报以敷衍的态度。不再对你亲热,连牵手都感到尴尬。陷入了你不找他,
最简单的教养,是回避别人的难堪教养是一种不用说出来的美好。作者洞见CC一个下雨天,有位老教授,正带着他的学生往学院赶去。他们前面不远处,有一位身着旗袍的女教师。雨还在淅淅沥沥地下着,女教师走得匆忙,一不留神摔了
何超琼梁安琪首次联手,一起对付大马赌王,霍家将暗中助一臂之力澳门赌牌竞投开始了,不同于20年之前的那次,这一次已经明确了六张赌牌,同时把赌牌的专营期限从20年改为了10年。现在澳门有六家博彩公司,如果哪一家公司无法成功竞投到赌牌,意味着他们
3。8万变8500亿的复星,6000亿债务压顶来源投资家(IDtouzijias)作者刘晓月一复星大幅减持套现,释放了怎样的信号9月第一周,复星集团接连宣布4笔减持,从二级市场套现总额预计将超60亿元,加上之前8月前多家旗下公
1955年邓小平若接受元帅军衔,在诸元帅中列第几位?军衔和勋章,代表着新成立的国家对那些艰苦卓绝革命生涯的高度肯定。作为优秀的指挥官,邓小平并没有在1955年被授衔,按照元帅已有排序,若是邓小平接受了军衔,那么他可以排在第七。优秀的
5队4签约2裁员达成,鹈鹕调整教练组,湖人拒绝三笔有关威少交易北京时间9月18日,随着休赛期的即将结束,离训练营开始的日子也越来越近了,联盟各支对自己阵容不是太满意的球队继续进行调整,就在今天的5个小时内,联盟又有4笔签约和2笔裁员完成,而据
不是所有私家车都能享受放宽检验周期新政策,快来看详细解析9月15日中午,突然看到公安部市场监管总局生态环境部交通运输部联合推出深化车检改革优化车检服务新举措的消息,前几天还在辟的谣突然变成了现实。这些新举措里面,最引人注目的,莫过于放宽
设计师开的炸串店,环境处处有细节,太适合朋友小聚了谁不想拥有一家自己设计的小店呢?刚开始小兔就是被名字吸引的,社叽狮,好奇怪,叫着也不顺嘴啊,后来到店看墙上的介绍才反应过来,设计师,社叽狮,哈哈哈哈哈。他们家在一众街边店里超级显眼
芥末的来源植物是什么一,芥末的来源植物是什么芥末是人们熟悉的美味调料,它原产于我国,历史悠久,据资料从周代起,宫廷就已开始食用,后来逐渐扩大到民间食用。芥末就是十字花科芸苔属植物芥菜的种子磨成的粉,有
云南有哪些地方特色美食小吃,跟随我一起去了解第一期一昆明酸腌菜昆明酸腌菜是普通百姓的家常腌菜制作方法简便易行。历年夏秋季时节,家家户户将别名苦麻菜的青菜清洗,挂起来晾晒。待青菜变蔫后,切条,上洒生盐,拌以朝天椒麻椒姜片八角茴香和一
故宫上班族也要打牙祭的地骑河楼胡同里有个小吃店,门钉儿做的最好。老板姓王,他们一家在故宫后门住了一百来年,手艺传承有序。故宫博物院里上班儿的人也常去打牙祭,有几位院里金石子画修复的专家,对他做的门钉评价颇
随笔归化城稍美年后第一顿青城烧麦香煞人今天是大年(农历)正月十二。因疫情所致,大年前后味觉不佳,故一月之余未吃一顿咱们本地归化城(呼和浩特市)的著名小吃羊肉稍买(烧麦稍美)。昨晚躺在被窝里浏览手机视频,无
徽州民宿,向往的生活寻一方庭院,沏一壶清茶,捧一席书卷,做一场无关风月的徽州梦。吾心安处是黄山,如今,住徽州民宿已成为越来越多人旅游出行的新标配。近年来,黄山市将民宿产业发展作为乡村振兴突破口之一,深
冬游火爆出圈,黄山旅游打响新春开门红2023年1月的最后一天,冬日的暖阳照耀着黄山山巅,没有融化的皑皑白雪映衬着黄山常青的松树。这一天,1万7千余人登山赏景,感受祖国大好河山的壮阔。据统计,今年1月份,黄山景区共接待
出发苏州第一认识苏州是茅盾先生写的苏州园林,先生用微妙的笔触,详细介绍了苏州园林的完美,那时苏州园林像一幅山水画一样呈现在我的眼前,重峦臺嶂的假山九曲回转的回廊和厚重的历史气息始终占据着我
新春走基层徽州民俗进城受热捧,休宁万人空巷大皖新闻讯2月1日晚,农历正月十一,休宁县的多个乡镇及古村舞龙民俗及得胜鼓等从城区四个入口敲锣打鼓的进入县城,在城市街区道路踩街巡演后,集中到该县状元文化广场表演。休宁县城区居民倾
骑行山东日照岚山区有一个地方,我一直想带儿子去看看。日照港。我觉得,儿子一定会喜欢。因为,里面有很多机械黑科技,例如煤运专列来了,一眨眼,卸完了。怎么卸的?用的翻转机,把整个车厢朝下旋转,直接倒入了
肉嫩流膏蟹逅美味金黄的蟹膏让人垂涎欲滴。姑娘蟹的蟹壳比其他品种的更薄,蟹壳颜色青绿光亮。姑娘蟹既有母螃蟹的膏黄香,又有公螃蟹的肉嫩滑。姑娘蟹体型较小,但蟹膏肥满。清蒸,便是姑娘蟹最好的烹饪手法。姑