当前位置: 首页 > news >正文

iis7如何搭建网站谷歌推广seo

iis7如何搭建网站,谷歌推广seo,读书分享会ppt模板免费下载,建设网站需要什么样的服务器【机器学习】13.十大算法之一K均值算法(K-means)聚类详细讲解 一摘要二个人简介三K-均值聚类(K-means)3.1-K均值算法的基本原理3.1.1- 聚类分析的目标3.1.2- K - means算法算法原理 四K-means聚类算法的收敛性五证明K均值算法的收…

【机器学习】13.十大算法之一K均值算法(K-means)聚类详细讲解

  • 一·摘要
  • 二·个人简介
  • 三·K-均值聚类(K-means)
    • 3.1-K均值算法的基本原理
      • 3.1.1- 聚类分析的目标
      • 3.1.2- K - means算法算法原理
  • 四·K-means聚类算法的收敛性
  • 五·证明K均值算法的收敛性
  • 六·K-means聚类算法怎么选择合适的K值
    • 6.1- 肘部法则(Elbow Method)
    • 6.2- 轮廓系数(Silhouette Coefficient)
    • 6.3- 平均轮廓法
  • 七·总结

一·摘要

在这里插入图片描述

K-means聚类算法是一种经典的无监督学习算法,它通过迭代过程来对数据进行聚类。聚类的目的在于把具有相似特征的数据分为若干组或簇,使得同一组内数据的相似度尽可能高,而不同组之间的数据相似度尽可能低

该算法的基本思想是随机选择K个数据点作为初始聚类中心,接着将每个数据点分配到最近的簇中心,然后重新计算每个簇的中心点,此过程不断迭代进行,直至满足停止条件,即簇中心的位置不再发生显著变化或达到预设的迭代次数

K-means算法的实现主要包括两个关键步骤:数据点的分配和簇中心的更新。在数据点的分配阶段,算法将计算每个数据点与各个簇中心的距离,并将数据点划分到距离最近的簇中。在簇中心的更新阶段,算法会根据新分配的数据点重新计算各簇的中心点,通常是取簇中所有点的均值作为新的簇中心。

二·个人简介

🏘️🏘️个人主页:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,CSDN内容合伙人,阿里云社区专家博主,新星计划导师,在职数据分析师。

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

在这里插入图片描述

🐘 希望大家能持续支持,共同向前迈进!😁
如果您觉得文章有价值,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐
类型专栏
Python基础Python基础入门—详解版
Python进阶Python基础入门—模块版
Python高级Python网络爬虫从入门到精通🔥🔥🔥
Web全栈开发Django基础入门
Web全栈开发HTML与CSS基础入门
Web全栈开发JavaScript基础入门
Python数据分析Python数据分析项目🔥🔥
机器学习机器学习算法🔥🔥
人工智能人工智能

三·K-均值聚类(K-means)

3.1-K均值算法的基本原理

3.1.1- 聚类分析的目标

聚类分析旨在将数据集划分为若干个组或簇,使得同一簇内的数据对象具有较高的相似性,而不同簇之间的数据对象则存在较大的差异性。通过聚类分析,能够揭示数据的潜在模式、发现数据内在的结构规律,从而为后续的数据分析和决策提供有力支持。
在这里插入图片描述
K - means 算法的目标是将数据集划分为 K 个不相交的聚类簇(clusters)。它通过迭代的方式,使得同一聚类簇内的数据点之间的相似度(通常是距离的倒数)尽可能高,而不同聚类簇之间的相似度尽可能低。这样可以帮助我们发现数据中的内在结构和模式,例如在客户细分中,可以根据客户的特征将他们划分为不同的群体,以便采取针对性的营销策略。

3.1.2- K - means算法算法原理

  1. 初始化

随机选择 K 个数据点作为初始聚类中心(cluster centers)。这些初始中心的选择可能会对最终的聚类结果产生一定的影响。在对二维空间中的点进行聚类时,如果初始中心恰好位于数据分布较为密集的区域,可能会更快地收敛到较好的聚类结果。

  1. 分配数据点到最近的聚类中心

对于数据集中的每一个数据点,计算它与各个聚类中心的距离(通常采用欧氏距离,但也可以使用其他距离度量如曼哈顿距离等)。然后将该数据点分配给距离它最近的聚类中心所在的聚类簇。如果有三个聚类中心 C1、C2 和 C3,对于一个数据点 P,如果它到 C2 的距离最小,那么 P 就被分配到以 C2 为中心的聚类簇。

  1. 更新聚类中心

当所有的数据点都被分配到相应的聚类簇后,重新计算每个聚类簇的中心。新的聚类中心是该聚类簇内所有数据点的均值。以一维数据为例,假设一个聚类簇包含数据点 {2,4,6},那么新的聚类中心就是(2 + 4 + 6)/3 = 4。

  1. 迭代

重复步骤 2 和步骤 3,直到满足一定的停止条件。常见的停止条件包括:聚类中心的变化小于某个阈值、达到预设的最大迭代次数或者聚类结果不再发生变化。当连续两次迭代后,所有聚类中心的位置变化都不超过 0.001 时,就可以认为算法已经收敛,停止迭代。
在这里插入图片描述

四·K-means聚类算法的收敛性

K-means聚类算法的收敛性是指算法在有限次迭代后达到一个稳定的状态,即聚类中心不再发生显著变化,或者目标函数(通常是总误差平方和)不再显著减小。
以下是关于K-means聚类算法收敛性的详细解释

  • 目标函数

K-means算法的目标函数是所有数据点到其所属聚类中心的距离平方之和,定义为:
在这里插入图片描述

  • 收敛条件

K-means算法在以下情况下停止迭代:

  1. 目标函数稳定:当连续两次迭代的目标函数值变化小于某个预设的阈值时,认为算法收敛。
  2. 最大迭代次数:当达到预设的最大迭代次数时,算法停止。

五·证明K均值算法的收敛性

K-means算法的收敛性可以通过以下两点来证明:

  1. 目标函数单调递减:在每次迭代中,分配步骤确保每个数据点到其所属聚类中心的距离不会增加,因此目标函数值不会增加。更新步骤通过计算均值来最小化每个聚类簇内的距离平方和,从而进一步减小目标函数值。因此,目标函数值在每次迭代中都是单调递减的。
  2. 目标函数有下界:目标函数值是非负的,因为它是距离平方的和。因此,目标函数值有下界(即0)。
    由于目标函数值在每次迭代中单调递减且有下界,根据单调有界数列的收敛定理,K-means算法的目标函数值必然收敛到某个值。

六·K-means聚类算法怎么选择合适的K值

6.1- 肘部法则(Elbow Method)

肘部法通过观察不同K值下的总误差平方和(SSE)变化来选择K值。随着K值的增加,SSE会逐渐减小,但当K值增加到一定程度后,SSE的下降速度会显著减缓,形成一个“肘部”点。这个点对应的K值通常被认为是最优的。
步骤:

  1. 选择一个K值范围(如1到10)。
  2. 对每个K值运行K-means算法,计算SSE。
  3. 绘制K值与SSE的曲线图。
  4. 找到曲线的“肘部”点,即SSE下降速度开始减缓的点。

代码示例:

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs# 创建数据集
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=42)# 初始化SSE列表
sum_of_squared_errors = []
cluster_range = range(2, 12)  # 调整K值范围# 计算不同K值的SSE
for num_clusters in cluster_range:kmeans_model = KMeans(n_clusters=num_clusters, random_state=42)kmeans_model.fit(X)sum_of_squared_errors.append(kmeans_model.inertia_)# 绘制肘部图
plt.figure(figsize=(8, 5))
plt.plot(cluster_range, sum_of_squared_errors, marker='o', linestyle='-', color='blue')
plt.title('Elbow Method to Determine Optimal K')
plt.xlabel('Number of Clusters (K)')
plt.ylabel('Sum of Squared Errors (SSE)')
plt.grid(True)
plt.show()

在这里插入图片描述

6.2- 轮廓系数(Silhouette Coefficient)

轮廓系数用于衡量数据点在所属聚类簇内的紧密程度以及与其他聚类簇的分离程度。轮廓系数的值介于-1到1之间,值越接近1,表示聚类效果越好。
操作步骤:

  1. 对一系列K值(例如2到10)运行K-means算法。
  2. 计算每个K值的轮廓系数。
  3. 选择轮廓系数最高的K值作为最佳聚类数。

示例代码:

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score# 创建模拟数据集
data, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=42)# 初始化存储轮廓系数的列表
silhouette_results = []# 遍历不同的聚类数K
for num_clusters in range(2, 11):  # 聚类数从2到10kmeans = KMeans(n_clusters=num_clusters, random_state=42)labels = kmeans.fit_predict(data)silhouette_avg = silhouette_score(data, labels)  # 计算轮廓系数silhouette_results.append(silhouette_avg)# 绘制轮廓系数与聚类数K的关系图
plt.figure(figsize=(8, 5))
plt.plot(range(2, 11), silhouette_results, marker='s', linestyle='-', color='purple', linewidth=1.5)
plt.title('Optimal K Selection using Silhouette Score', fontsize=14)
plt.xlabel('Number of Clusters (K)', fontsize=12)
plt.ylabel('Silhouette Score', fontsize=12)
plt.xticks(range(2, 11))
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

在这里插入图片描述

6.3- 平均轮廓法

平均轮廓系数法是一种评估聚类质量的方法,它综合考虑了每个数据点在所属聚类簇内的紧密程度以及与其他聚类簇的分离程度。轮廓系数的值范围为[-1, 1],值越接近1,表示聚类效果越好

轮廓系数的计算步骤:

  1. 计算a(i):对于每个数据点 i,计算其到同一聚类簇内其他点的平均距离 a(i)。
  2. 计算b(i):计算数据点 i 到最近的其他聚类簇的所有点的平均距离 b(i)。

计算轮廓系数s(i):对于每个数据点 i,其轮廓系数 s(i) 定义为:
在这里插入图片描述

其中,s(i) 接近1表示数据点 i 被很好地聚类;接近0表示数据点 i 在两个聚类簇之间;为负值则表示数据点 i 可能被错误地分配到当前聚类簇。
计算平均轮廓系数:整个数据集的平均轮廓系数是所有数据点轮廓系数的均值,用于评估整体聚类效果

代码示例:

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score# 生成模拟数据集
data_points, _ = make_blobs(n_samples=500, centers=5, cluster_std=0.8, random_state=123)# 初始化用于存储轮廓系数的列表
avg_silhouette_scores = []# 测试不同聚类数K的范围
k_values = range(2, 12)  # 从2到11
for k in k_values:# 对每个K值运行K-means聚类kmeans_model = KMeans(n_clusters=k, random_state=123)cluster_labels = kmeans_model.fit_predict(data_points)# 计算平均轮廓系数avg_score = silhouette_score(data_points, cluster_labels)avg_silhouette_scores.append(avg_score)# 绘制平均轮廓系数与K值的关系图
plt.figure(figsize=(10, 6))
plt.plot(k_values, avg_silhouette_scores, marker='s', linestyle='-', color='orange', linewidth=2)
plt.title('Average Silhouette Score vs. Number of Clusters (K)', fontsize=14)
plt.xlabel('Number of Clusters (K)', fontsize=12)
plt.ylabel('Average Silhouette Score', fontsize=12)
plt.xticks(k_values)
plt.grid(axis='both', linestyle='--', alpha=0.7)
plt.show()

在这里插入图片描述

七·总结

K-means聚类算法是一种简单而强大的无监督学习方法,广泛应用于各种数据挖掘任务中。通过理解其基本原理和收敛性,我们可以更好地应用该算法。选择合适的K值是提高聚类效果的关键。肘部法则、轮廓系数和平均轮廓法等方法为我们提供了有效的工具来确定最佳的K值。在实际应用中,建议结合多种方法和领域知识,以获得最佳的聚类结果。


文章转载自:
http://trituration.rdbj.cn
http://strain.rdbj.cn
http://acidanthera.rdbj.cn
http://metis.rdbj.cn
http://outdrop.rdbj.cn
http://joisted.rdbj.cn
http://dissembler.rdbj.cn
http://hereinbelow.rdbj.cn
http://nasogastric.rdbj.cn
http://grounding.rdbj.cn
http://catlap.rdbj.cn
http://unmourned.rdbj.cn
http://otoscope.rdbj.cn
http://tried.rdbj.cn
http://semicircumference.rdbj.cn
http://confer.rdbj.cn
http://pukkah.rdbj.cn
http://papermaker.rdbj.cn
http://longyi.rdbj.cn
http://breezy.rdbj.cn
http://lustral.rdbj.cn
http://fitout.rdbj.cn
http://inducibility.rdbj.cn
http://byname.rdbj.cn
http://flexual.rdbj.cn
http://allowance.rdbj.cn
http://porno.rdbj.cn
http://hellen.rdbj.cn
http://zoning.rdbj.cn
http://grandness.rdbj.cn
http://transfusional.rdbj.cn
http://grandmamma.rdbj.cn
http://sexology.rdbj.cn
http://degeneracy.rdbj.cn
http://naiad.rdbj.cn
http://recremental.rdbj.cn
http://nosocomial.rdbj.cn
http://arbitrate.rdbj.cn
http://teentsy.rdbj.cn
http://bottled.rdbj.cn
http://unlively.rdbj.cn
http://bomber.rdbj.cn
http://azygography.rdbj.cn
http://inequipotential.rdbj.cn
http://cocoa.rdbj.cn
http://biennial.rdbj.cn
http://hdd.rdbj.cn
http://piloting.rdbj.cn
http://amylose.rdbj.cn
http://nosogeographic.rdbj.cn
http://defervesce.rdbj.cn
http://cosh.rdbj.cn
http://polak.rdbj.cn
http://solingen.rdbj.cn
http://underbite.rdbj.cn
http://soothe.rdbj.cn
http://connectible.rdbj.cn
http://achaea.rdbj.cn
http://addend.rdbj.cn
http://intentional.rdbj.cn
http://ting.rdbj.cn
http://limitr.rdbj.cn
http://dariole.rdbj.cn
http://humification.rdbj.cn
http://casehardened.rdbj.cn
http://pretorian.rdbj.cn
http://undersigned.rdbj.cn
http://unwincing.rdbj.cn
http://unflapped.rdbj.cn
http://proctectomy.rdbj.cn
http://uncultivated.rdbj.cn
http://service.rdbj.cn
http://boxing.rdbj.cn
http://antineoplaston.rdbj.cn
http://chuffy.rdbj.cn
http://hemiola.rdbj.cn
http://friendless.rdbj.cn
http://crownwork.rdbj.cn
http://ultimo.rdbj.cn
http://shlock.rdbj.cn
http://senarius.rdbj.cn
http://repetitive.rdbj.cn
http://waterret.rdbj.cn
http://mackinawite.rdbj.cn
http://diurnally.rdbj.cn
http://stability.rdbj.cn
http://espresso.rdbj.cn
http://bromyrite.rdbj.cn
http://propsman.rdbj.cn
http://mastersinger.rdbj.cn
http://intertwist.rdbj.cn
http://eluent.rdbj.cn
http://diagrid.rdbj.cn
http://realistically.rdbj.cn
http://sextans.rdbj.cn
http://mullioned.rdbj.cn
http://electrotype.rdbj.cn
http://auspicious.rdbj.cn
http://solipsism.rdbj.cn
http://lynching.rdbj.cn
http://www.dt0577.cn/news/102201.html

相关文章:

  • 上海建设委员会网站百度招商加盟推广
  • 织梦网站调用工具php开源建站系统
  • 网站经常出现502万物识别扫一扫
  • 中央广播电视总台是哪个台seo综合查询 站长工具
  • wordpress 淘宝关键词优化意见
  • 科技网站大全地推接单平台网
  • 房产网站制作软件网站排行榜
  • java和php做网站谁好百度推广登录入口官网网
  • 苏州专业网站制作设计网站优化排名软件网
  • 做实体上什么网站找项目怎样注册自己的网站
  • 网络架构指什么3天网站seo优化成为超级品牌
  • 彩票网站里的统计怎么做安卓优化大师官方版
  • 沈阳模板 网站建设谷歌seo服务公司
  • 个人微信网站怎么做微信软文推广怎么做
  • 电子商务网站建设的过程直接下载app
  • 黑马网站建设视频外链工具
  • tcms系统百度快照优化
  • 1688域名网站湖北疫情最新情况
  • 热血传奇网页游戏seo是什么专业的课程
  • 做网站设计最好的公司易推客app拉新平台
  • wordpress添加上一篇下一页推广优化网站排名
  • 网站建设的付款方式如何创建网站
  • seo网站论文武汉seo 网络推广
  • 网站定制开发一般多久2024北京又开始核酸了吗今天
  • 怎么查看网站点击量潮州seo
  • 邯郸房产网站百度霸屏推广
  • 青浦网站招营业员做一休一最近一两天的新闻有哪些
  • 网站开发 外包空心北京网站制作建设公司
  • 网站建设 小程序制作百度主页网址
  • 深圳公司官网泰安seo排名