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

国外免费建站网站搭建云起时网站建设

国外免费建站网站搭建,云起时网站建设,wordpress搜索不到插件,建站快车的功能介绍摘要 聚类算法是探索数据内在结构的利器!本文手撕K-Means核心公式,结合Python代码实现与图像分割案例,详解: ✅ 欧氏距离计算 ✅ 簇中心迭代更新 ✅ 肘部法则优化 目录 摘要 目录 一、算法核心思想 二、数学原理详解 2.1 …

摘要

聚类算法是探索数据内在结构的利器!本文手撕K-Means核心公式,结合Python代码实现与图像分割案例,详解:


✅ 欧氏距离计算 ✅ 簇中心迭代更新 ✅ 肘部法则优化
 


目录

摘要

目录

一、算法核心思想

二、数学原理详解

2.1 初始化阶段

2.2 迭代更新公式

2.3 收敛条件

三、Python代码实战

3.1 手写K-Means核心逻辑

3.2 图像分割实战案例

四、算法优化技巧

4.1 K-Means++初始化

4.2 肘部法则确定K值

五、常见问题解答

Q1:如何处理不同量纲的特征?

Q2:算法陷入局部最优怎么办?

六、结语与资源

附录:其他聚类算法


一、算法核心思想

K-Means通过最小化簇内平方和实现聚类,目标函数为:
( J = \sum_{i=1}^k \sum_{x \in C_i} |x - \mu_i|^2 )
其中:

  • ( k ):预设簇数量

  • (mu_i ):第i个簇的中心点

  •  C_i:第i个簇的数据集合


二、数学原理详解

2.1 初始化阶段

随机选择k个初始质心:
( mu_1^{(0)}, \mu_2^{(0)}, ..., \mu_k^{(0)} )

2.2 迭代更新公式

  1. 分配样本到最近簇
    ( C_i^{(t)} = { x : |x - \mu_i^{(t)}|^2 \leq |x - \mu_j^{(t)}|^2 \ \forall j } )

  2. 更新簇中心
    (mu_i^{(t+1)} = \frac{1}{|C_i^{(t)}|} \sum_{x \in C_i^{(t)}} x )

2.3 收敛条件

当簇中心变化量小于阈值时停止:
( max_i | mu_i^{(t+1)} - \mu_i^{(t)}| < \epsilon )


三、Python代码实战

3.1 手写K-Means核心逻辑

import numpy as npclass KMeans:def __init__(self, n_clusters=3, max_iter=300):self.n_clusters = n_clusters  # 簇数量self.max_iter = max_iter      # 最大迭代次数def fit(self, X):# 1. 随机初始化质心n_samples, n_features = X.shapeself.centroids = X[np.random.choice(n_samples, self.n_clusters, replace=False)]for _ in range(self.max_iter):# 2. 计算样本到质心的距离distances = np.sqrt(((X - self.centroids[:, np.newaxis])**2).sum(axis=2))# 3. 分配样本到最近簇self.labels = np.argmin(distances, axis=0)# 4. 更新质心new_centroids = np.array([X[self.labels == i].mean(axis=0) for i in range(self.n_clusters)])# 5. 检查收敛if np.allclose(self.centroids, new_centroids):breakself.centroids = new_centroidsreturn self

3.2 图像分割实战案例

from sklearn.datasets import load_sample_image
import matplotlib.pyplot as plt# 加载示例图片
china = load_sample_image("china.jpg")
X = china.reshape(-1, 3) / 255.0  # 归一化像素值# 使用K-Means进行颜色量化
kmeans = KMeans(n_clusters=16).fit(X)
compressed_colors = kmeans.centroids[kmeans.labels].reshape(china.shape)# 可视化对比
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,6))
ax1.imshow(china)
ax2.imshow(compressed_colors)
ax1.set_title("原始图像(16.7万色)")
ax2.set_title("压缩后图像(16色)")

四、算法优化技巧

4.1 K-Means++初始化

初始化方法优点实现步骤
随机初始化简单快速直接随机选取样本
K-Means++减少局部最优按概率分布选择初始点

4.2 肘部法则确定K值

# 计算不同K值的SSE
sse = []
for k in range(1, 10):kmeans = KMeans(n_clusters=k).fit(X)sse.append(np.sum((X - kmeans.centroids[kmeans.labels])**2))# 绘制肘部曲线
plt.plot(range(1,10), sse, 'bx-')
plt.xlabel('K值')
plt.ylabel('SSE')

五、常见问题解答

Q1:如何处理不同量纲的特征?

解决方案:使用标准化预处理
( x' = \frac{x - \mu}{\sigma} )

Q2:算法陷入局部最优怎么办?

  • 多次随机初始化取最优结果

  • 增加max_iter参数值

  • 改用K-Means++初始化


六、结语与资源

通过本文您已掌握:
🔹 K-Means数学本质 🔹 手写实现关键代码 🔹 图像分割高级应用


附录:其他聚类算法

算法名称适用场景核心公式
DBSCAN任意形状簇密度可达性
层次聚类树状结构距离矩阵合并
GMM概率分布EM算法迭代
http://www.yayakq.cn/news/461248/

相关文章:

  • 网站服务器和空间有什么区别企业所得税优惠政策最新2023规定
  • 保险网站哪家好我的网站模板下载不了
  • 台州品牌网站建设一级a做爰片免费网站录像
  • 广州网站建设 名片制作 网站管理赣州培训网站开发
  • 网站建设歺首选金手指14滁州新手跨境电商建站哪家好
  • 自助网站推广系统做细分领域的同城网站
  • 建行网站手机做无水印短视频网站
  • 模仿别人网站算侵权吗哈尔滨房产信息网官方网站
  • 个人网站必须备案怎么 从头开始建设一个网站
  • 阿里云 oss做网站网站标题做参数
  • 产品企业网站html编辑器怎么设置为word
  • 滁州市建设银行网站2021年世界500强企业排名
  • 网站备案后 如何建设网站搭建接单
  • 河口企业网站开发公司西安网站制作哪家公司好
  • 成品网站软件网站建设一般收多少定金
  • 网站建设创始人泉州搜索推广
  • 一个新的网站开发语言免费企业宣传片制作软件
  • 网站定制化一个微信公众号可以做几个网站
  • 芜湖市网站开发镜像的网站怎么做排名
  • 开周边网站怎么做品牌黑龙江省和城乡建设厅网站
  • 网站设计学的科目黄石建设工程信息网
  • 连州住房建设局网站做网站像美团一样多少钱
  • 购物网站开发课程设计东道
  • 南宫企业做网站网站html5自适应屏幕
  • 高密做网站的代理建设银行 贷款 查询 网站
  • 中国住房建设网官方网站网页布局排版
  • html做的旅游网站WordPress高德
  • 服务器网站托管怎样做类似淘宝的网站
  • 教室在线设计网站作文网站网址大全
  • 台州电子商务网站开发网站开发流程php