<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>聚类 on 老张开工了</title>
    <link>/%E8%81%9A%E7%B1%BB/</link>
    <description>Recent content in 聚类 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Thu, 16 Jan 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="/%E8%81%9A%E7%B1%BB/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>聚类分析</title>
      <link>/posts/2025/01/clustering-analysis/</link>
      <pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate>
      <guid>/posts/2025/01/clustering-analysis/</guid>
      <description>前两篇文章我们学习了监督学习中的回归和分类算法。但真实世界中，大量数据是没有标签的。当数据没有标准答案时，我们如何从中发现规律？这就是无监督学习的用武之地，而聚类分析是无监督学习中最核心的任务之一。&#xA;什么是聚类分析？ 聚类分析的目标是将数据划分为若干个组（簇），使得同一簇内的样本尽可能相似，不同簇的样本尽可能不同。聚类与分类的根本区别在于：分类有标签可学，聚类完全靠数据自身的结构。&#xA;聚类的主要应用 客户分群：将用户按消费行为分组，制定差异化营销策略 图像压缩：将相似颜色聚为一类，减少颜色数量 异常检测：远离所有簇的样本可能是异常值 文档分类：自动将新闻文章按主题分组 生物信息学：基因表达数据分析，发现功能相似的基因 K-Means 聚类 K-Means 是最经典、最常用的聚类算法，简单高效。&#xA;算法原理 K-Means 的迭代过程如下：&#xA;随机选择 K 个点作为初始簇中心 计算每个样本到 K 个中心的距离，分配到最近的中心 对每个簇，重新计算中心（簇内所有点的均值） 重复 2-3 步直到中心不再变化或达到最大迭代次数 Python 实现 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from sklearn.cluster import KMeans # 生成模拟数据：3 个簇 X, y_true = make_blobs(n_samples=300, centers=3, cluster_std=1.0, random_state=42) # 可视化数据 plt.figure(figsize=(10, 6)) plt.scatter(X[:, 0], X[:, 1], s=50, alpha=0.7) plt.title(&amp;#39;原始数据（无标签）&amp;#39;) plt.xlabel(&amp;#39;特征 1&amp;#39;) plt.ylabel(&amp;#39;特征 2&amp;#39;) plt.show() # 应用 K-Means kmeans = KMeans(n_clusters=3, random_state=42, n_init=10) kmeans.</description>
    </item>
  </channel>
</rss>
