K均值算法

K均值(K-Means)算法是一种常用的聚类算法,其核心思想是通过迭代优化簇的中心点位置,使得每个样本点到其所属簇的质心的距离最小化。算法首先随机初始化K个质心,然后将每个样本点分配给距离最近的质心所属的簇,接着更新每个簇的质心,重复这个过程直到簇不再发生变化或达到最大迭代次数。

1.K均值算法的原理

1. 初始化:在数据集中随机选择K个点作为初始的簇中心。

2. 分配:计算每个样本到各个簇中心的距离,将样本分配到最近的簇。

3. 更新:重新计算每个簇的中心点(通常是取簇内所有点的平均值)。

4. 重复bd31518e6cea4c7d96ec34527df71eba.jpg:重复分配和更新步骤,直到满足停止条件(如簇中心变化小于某个阈值或达到最大迭代次数)。

2K均值算法的Python实现

K均值算法的Python代码实现:

import numpy as np

def k_means(X, n_clusters, max_iters=100):

    centroids = X[np.random.choice(len(X), n_clusters, replace=False)]

    for _ in range(max_iters):

        clusters = [[] for _ in range(n_clusters)]

        for x in X:

            distances = [np.linalg.norm(x - c) for c in centroids]

            cluster = np.argmin(distances)

            clusters[cluster].append(x)

        new_centroids = [np.mean(c, axis=0) for c in clusters]

        if np.allclose(new_centroids, centroids):

            break

        centroids = new_centroids

    return np.array(centroids), clusters

# 示例数据

X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.6, random_state=0)

n_clusters = 4

centroids, clusters = k_means(X, n_clusters)

相关推荐

  1. Sklearn K-均值算法

    2024-07-15 05:58:04       35 阅读
  2. K-均值聚类算法及其优缺点

    2024-07-15 05:58:04       33 阅读
  3. 首例CSDN_AI文章-- K-均值聚类算法

    2024-07-15 05:58:04       50 阅读
  4. 聚类算法K-均值聚类

    2024-07-15 05:58:04       57 阅读
  5. 讲解机器学习中的 K-均值聚类算法及其优缺点

    2024-07-15 05:58:04       52 阅读
  6. 讲解机器学习中的 K-均值聚类算法及其优缺点。

    2024-07-15 05:58:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 05:58:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 05:58:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 05:58:04       62 阅读
  4. Python语言-面向对象

    2024-07-15 05:58:04       72 阅读

热门阅读

  1. 香橙派安装测试摄像头

    2024-07-15 05:58:04       24 阅读
  2. 【SASS/SCSS(一)】选择器

    2024-07-15 05:58:04       26 阅读
  3. 力扣224.基本计算器

    2024-07-15 05:58:04       23 阅读
  4. Leetcode 3219. Minimum Cost for Cutting Cake II

    2024-07-15 05:58:04       25 阅读
  5. ReactRouter v6升级的步骤

    2024-07-15 05:58:04       24 阅读
  6. vue 中时间日期格式处理

    2024-07-15 05:58:04       19 阅读
  7. leetcode239.滑动窗口最大值

    2024-07-15 05:58:04       15 阅读