跳到内容
返回探索
数学建模 / 英语

快速R:3分钟内完成K均值聚类!| R语言速查参考

Data Within Reach · YouTube · 2:17

打开原视频
阅读与收藏

把讲解展开来看。

已审核学习内容 · 视频分析 · 中文
阅读完整概览

本入门教程演示了如何使用R内置的鸢尾花数据集执行并可视化K均值聚类。主讲人将K均值定义为一种将数据划分为互斥、不重叠组的算法。整个过程包括:加载数据、将其子集化为前四列、设置随机种子以确保结果可重现、调用kmeans函数生成三个簇。所得对象包含各数据点的簇分配以及各簇中心的坐标,并被打印至控制台。最后,教程展示了如何通过散点图可视化这些簇:按簇分配为数据点着色,并用较大的点标出计算所得的簇中心。 本视频片段演示了如何在 R 中对鸢尾花数据集执行 k 均值聚类。它展示了执行聚类算法所需的 R 代码,以及使用散点图可视化结果的方法:数据点按所属簇着色,簇中心以不同符号标出。

在学习检查器中查看要点和时刻,或切换阅读标签查看完整笔记。

章节

0:00K均值聚类简介0:36在R中准备鸢尾花数据集0:56执行K均值算法1:30使用散点图可视化聚类2:00引言与行动呼吁2:05用于 k 均值聚类及可视化的 R 代码2:10结束语

学习解说文稿

依据视频画面与讲解整理,并非逐字语音转写。

视频以无监督学习主题的介绍开篇,特别聚焦于 K 均值聚类。

K 均值被定义为一种常用算法,用于将数据划分为彼此分离、互不重叠的组别,从而有助于发现隐藏模式或重新思考现有分类。

实际演示在 RStudio 环境中开始,通过命令 data(iris) 加载内置的鸢尾花(iris)数据集。

创建一个新变量 iris_data,仅保留该数据集的前四列,以简化聚类练习所用的数据。

使用 set.seed(54321) 设置随机数生成器种子,以确保结果可重现;随后执行 kmeans 函数,将数据划分为三个簇。

讲解者指出,所得的 kmeans 对象包含重要信息,例如每个数据点所属的簇编号,以及每个簇中心的坐标位置。

将输出对象打印到控制台,以便检查各簇均值和聚类向量。

为可视化结果,使用萼片长度(Sepal.Length)和萼片宽度(Sepal.Width)生成散点图,并依据各数据点被分配到的簇为其着色。

最后,在图中添加计算所得的簇中心,以较大且醒目的点表示,从而清晰呈现划分后的各组结构。

主讲人结束本教程,并鼓励观众点赞、分享和订阅,同时欢迎在评论区留下对未来主题的建议。

屏幕上显示了一段 R 代码,演示如何使用 `kmeans` 函数将 `iris_data` 聚类为3个中心。结果保存在 `kmeans_iris_result` 中。接着,代码调用 `plot` 函数,以 `Sepal.Length` 为横轴、`Sepal.Width` 为纵轴绘制散点图,并根据各点所属的聚类(`kmeans_iris_result$cluster`)为其着色。最后,使用 `points` 函数在图中添加聚类中心,以较大的菱形符号表示。

视频以‘DATA within REACH’标志动画结束。

知识卡片

01

K 均值聚类的定义

K 均值是一种常用的聚类算法,用于将数据划分为彼此分离、互不重叠的组别;它有助于发现隐藏模式或重新思考分类。

02

在 R 中运行 K 均值聚类

R 中的 kmeans 函数用于执行聚类分析,它需要输入一个数据集以及聚类中心(即簇)的数量作为参数。预先设置随机种子可确保结果具有可重复性。

kmeans(data,centers=k)kmeans(data, centers = k)
03

K 均值输出对象的结构

kmeans 函数返回的对象包含关键信息,具体包括每个数据点所属的簇编号,以及每个簇中心的坐标位置。

04

用散点图可视化聚类结果

可通过至少两个变量的散点图来可视化聚类结果:数据点按其所属簇进行着色,而簇中心则以较大的点标出,以突出其位置。

05

R 中的 K 均值聚类

使用 `kmeans()` 函数执行聚类分析:指定数据集和聚类中心(即簇)的数量。

kmeans(data,centers)kmeans(data, centers)
06

R 中聚类结果的可视化

使用 `plot()` 绘制特征的散点图,并将 `col` 参数设为 `kmeans` 结果中的聚类归属信息;再用 `points()` 在图上叠加聚类中心。

plot(x,y,col=clusters)points(centers,col=1:k,pch=23,cex=3)plot(x, y, col=clusters) points(centers, col=1:k, pch=23, cex=3)

详细学习笔记

按知识点查看条件、步骤和证据。补充解释与视频直接内容分别标明。

符号定义 · 18

iris

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    主讲人提到使用鸢尾花数据集,并提及带 iris 参数的 data 命令。

  2. 公式
    观察依据

    载入数据(iris)

符号

iris

含义

内置 R 数据集,用于聚类示例。

适用范围

R 数据集

iris_data

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    主讲人提到创建一个变量,该变量仅包含数据的前四列。

  2. 公式
    观察依据

    iris_data <- iris[,1:4]

符号

iris_data

含义

鸢尾花数据集的一个子集,包含前四列。

适用范围

R 数据框

set.seed(54321)

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    设置随机种子(54321)

待核验内容
  1. 主讲人在音频中未明确解释 set.seed 的作用。

符号

set.seed(54321)

含义

在运行 kmeans 之前设置随机数生成器种子的 R 函数调用。

适用范围

R 函数调用

kmeans_iris_result

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    说话者指出,kmeans 函数返回一个包含大量有用数据的对象。

  2. 公式
    观察依据

    kmeans鸢尾花结果 ← kmeans(鸢尾花数据,中心数 = 3)

符号

kmeans_iris_result

含义

kmeans 函数返回的对象,其中包含各数据点的簇分配结果及簇中心坐标。

适用范围

R 对象

centers = 3

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    说话者指出,将数据划分为三个簇。

  2. 公式
    观察依据

    中心点 = 3

符号

centers = 3

含义

指定要形成的簇的数量的参数。

适用范围

整数型参数

Cluster assignment

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    说话者指出,对每个数据点,该结果都包含其所属簇的分配信息。

  2. 公式
    观察依据

    聚类向量:

符号

Cluster assignment

含义

kmeans 算法为每个数据点所分配的组别标签。

适用范围

整数向量

Cluster center

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    说话人指出,它还包含该簇中心的坐标位置。

  2. 公式
    观察依据

    簇指的是:

符号

Cluster center

含义

表示簇内各点均值的坐标位置。

适用范围

数值向量

Sepal.Length

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘制(iris_data[c("Sepal.Length", "Sepal.Width")], ...)

符号

Sepal.Length

含义

散点图中绘制在横轴上的变量。

适用范围

数值型变量

Sepal.Width

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘制(iris_data[c("Sepal.Length", "Sepal.Width")], ...)

符号

Sepal.Width

含义

散点图中绘制在纵轴上的变量。

适用范围

数值型变量

col

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    说话人指出,不同颜色代表不同的簇。

  2. 公式
    观察依据

    颜色 = kmeans_iris_result$cluster

符号

col

含义

绘制参数:将聚类分配结果映射为颜色。

适用范围

绘图参数

pch=23

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    点形 = 23

待核验内容
  1. 讲解者在音频中未明确解释 pch=23 的含义。

符号

pch=23

含义

指定点的形状的绘图字符参数。

适用范围

绘图参数

cex=3

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    讲解者指出,中心处的大点代表该聚类的中心。

  2. 公式
    观察依据

    点大小 = 3

符号

cex=3

含义

用于放大中心点尺寸的绘图参数。

适用范围

绘图参数

知识点 · 7

K 均值聚类的定义

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    K 均值是一种常用的聚类算法,用于将数据划分为互不重叠的若干个独立组。

定义
解释

K-均值(K-means)是一种聚类算法,用于将数据划分为互不重叠的独立组别,有助于发现潜在模式或重新思考分类方式。

适用条件
  1. 数据必须能够被划分为互不重叠的独立组别。

  2. 各组之间互不重叠。

在 R 中使用 kmeans 函数

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    运行 K-均值聚类非常简单:我们将把数据划分为三个簇……kmeans 函数会返回一个包含大量有用信息的对象。

  2. 公式
    观察依据

    kmeans鸢尾花结果 <- kmeans(鸢尾花数据, 聚类中心数 = 3)

方法
解释

R 中的 kmeans 函数用于执行聚类分析,它以数据集和指定的中心数量(即簇的数量)为参数,并返回一个包含簇分配结果与各簇中心坐标的对象。

公式
kmeans(data,centers=k)kmeans(data, centers = k)
适用条件
  1. 要求输入为数值型数据集。

  2. 要求指定簇的数量(即中心数量)。

先修条目
  1. K 均值聚类的定义

kmeans 输出对象的结构

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    对于每个数据点,该对象包含其所属簇的分配结果,同时也包含各簇中心的坐标位置。

  2. 公式
    观察依据

    簇的均值: 簇分配向量:

定义
解释

kmeans 函数返回的对象包含有用的数据,具体包括每个数据点所属的簇标签,以及每个簇中心的坐标位置。

先修条目
  1. 在 R 中使用 kmeans 函数

用散点图可视化聚类结果

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    我们将使用散点图来展示至少两个变量的聚类结果:不同颜色代表不同的簇,而中心处的大点则代表对应簇的中心。

  2. 公式
    观察依据

    绘制 iris_data 数据中“Sepal.Length”与“Sepal.Width”两列的散点图,颜色按 kmeans_iris_result$cluster 的聚类结果着色; 再在图上添加 kmeans_iris_result$centers 中“Sepal.Length”与“Sepal.Width”两列所表示的聚类中心点,颜色为1:3,符号形状为23,符号大小为3

方法
解释

可使用至少两个变量的散点图来可视化聚类:数据点按其所属簇进行着色,簇中心则以较大的点标出。

适用条件
  1. 绘图至少需要两个数值型变量。

  2. 需要 kmeans 输出结果中的簇分配信息和簇中心坐标。

先修条目
  1. kmeans 输出对象的结构

R语言中的kmeans函数

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    kmeans(鸢尾花数据, 中心点 = 3)

方法
解释

kmeans函数用于对数据集执行k均值聚类,其参数包括数据集和聚类中心(即簇)的数量。

公式
kmeans(data,centers)kmeans(data, centers)
适用条件
  1. data必须是数值型矩阵或数据框

  2. centers必须是正整数

在R中绘制函数图像

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    plot(iris_data[c("萼片长度", "萼片宽度")], col=kmeans_iris_result$cluster)

方法
解释

plot函数用于创建散点图。在此上下文中,它将Sepal.Length作为横坐标、Sepal.Width作为纵坐标进行绘图,并根据k均值聚类结果对各点按所属簇着色。

公式
plot(x,y,col)plot(x, y, col)
适用条件
  1. x和y必须是等长的数值型向量

  2. col可以是颜色向量,也可以是对应颜色的整数向量

R中的points函数

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘制点(K均值聚类鸢尾花结果$中心点[,c("萼片长度", "萼片宽度")], 颜色 = 1:3, 点型 = 23, 缩放比例 = 3)

方法
解释

points函数用于向已有图形中添加点。此处,它将聚类中心添加到散点图中,并使用特定颜色、点形与大小。

公式
points(x,y,col,pch,cex)points(x, y, col, pch, cex)
适用条件
  1. x和y必须是数值型向量

  2. col指定点的颜色

  3. pch指定点所用的符号

  4. cex指定点相对于默认大小的缩放比例

例题详解 · 1

对鸢尾花数据集进行 K 均值聚类

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    我们来使用鸢尾花数据集……创建一个变量……仅保留前四列……将数据划分为三个簇……并可视化这些簇。

  2. 公式
    观察依据

    data(鸢尾花数据集) 鸢尾花数据 <- 鸢尾花数据集[,1:4] set.seed(54321) 鸢尾花k均值结果 <- kmeans(鸢尾花数据, centers = 3) print(鸢尾花k均值结果) plot(鸢尾花数据[c("萼片长度", "萼片宽度")], col=鸢尾花k均值结果$cluster) points(鸢尾花k均值结果$centers[,c("萼片长度", "萼片宽度")], col=1:3, pch=23, cex=3)

题目

对内置鸢尾花数据集的前四列执行并可视化 K 均值聚类,将其划分为三个簇。

已知条件
  1. R 内置数据集:iris

  2. 聚类数量:3

  3. 用于绘图的变量:萼片长度、萼片宽度

目标

将数据划分为三个聚类,并可视化所得聚类及其聚类中心。

步骤
  1. 公式
    data(iris)data(iris)
    解释

    将内置的鸢尾花数据集加载到 R 环境中。

    步骤依据

    分析该数据集所必需的操作。

    视频直接表达
  2. 公式
    irisdata<−iris[,1:4]iris_data <- iris[,1:4]
    解释

    创建一个新变量,仅包含鸢尾花数据集的前四列。

    步骤依据

    简化数据,以便用于聚类示例。

    视频直接表达
  3. 公式
    set.seed(54321)set.seed(54321)
    解释

    设置随机数生成器种子。

    步骤依据

    确保 kmeans 算法结果具有可重现性。

    视频直接表达
  4. 公式
    kmeansirisresult<−kmeans(irisdata,centers=3)kmeans_iris_result <- kmeans(iris_data, centers = 3)
    解释

    在子集化后的数据上运行 kmeans 算法,并指定 3 个聚类。

    步骤依据

    根据算法将数据划分为互不重叠的组。

    视频直接表达
  5. 公式
    print(kmeansirisresult)print(kmeans_iris_result)
    解释

    将得到的 kmeans 对象打印到控制台。

    步骤依据

    显示各簇的均值及数据点所属簇的分配结果,便于检查。

    视频直接表达
  6. 解释

    创建萼片长度(Sepal.Length)与萼片宽度(Sepal.Width)的散点图,并按数据点所属簇进行着色。

    步骤依据

    可视化数据点的分布及其被分配到的簇。

    视频直接表达
  7. 解释

    在现有散点图上添加簇中心,以较大且形状鲜明的点表示。

    步骤依据

    突出显示每个簇所计算出的中心坐标。

    视频直接表达
结果

一幅散点图,展示三组互不重叠的数据点簇,每簇中心由一个较大的点标出。

检验

该可视化结果证实数据已被划分为三个互不重叠的组,且每个组内均存在对应的簇中心。

图示与动画 · 2

K 均值聚类的散点图

依据清楚
视频直接表达
来源依据
  1. 动画
    观察依据

    一幅散点图呈现出来:数据点分别以红色、绿色和蓝色着色,另有三个大型菱形点代表各簇中心。

图中对象
  1. 数据点

  2. 簇中心

  3. 横轴(萼片长度)

  4. Y轴(萼片宽度)

变化过程
  1. 数据点根据其所属簇的分配结果进行着色。

  2. 添加大型菱形点以表示各簇的中心。

不变量
  1. 数据点的位置在绘制后保持不变。

  2. 坐标轴的刻度范围保持不变。

数学含义

该图直观地展示了数据被划分为三个互不重叠、彼此分离的簇,其中各簇中心代表对应簇数据点的均值位置。

K 均值聚类散点图

依据清楚
视频直接表达
来源依据
  1. 图示
    观察依据

    散点图:不同簇用不同颜色的点表示,聚类中心则用较大的菱形点表示。

图中对象
  1. 数据点

  2. 聚类中心

  3. 坐标轴标签(萼片长度、萼片宽度)

变化过程
  1. 各点根据其所属聚类被着以不同颜色。

  2. 聚类中心以较大的菱形点绘制。

不变量
  1. 坐标轴分别表示萼片长度与萼片宽度。

数学含义

该散点图可视化了 K 均值聚类算法的结果,展示了数据点如何依据其萼片尺寸被划分为三个互不重叠的聚类。

概念关系 · 3

kmeans 输出对象的结构 → 用散点图可视化聚类结果

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    讲解者先解释kmeans函数的输出结果,再利用该输出结果绘制散点图。

应用
解释

从kmeans输出对象中提取的簇分配结果与簇中心坐标,被直接作为参数传入plot函数和points函数以实现可视化。

R语言中的kmeans函数 → 在R中绘制函数图像

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘图(..., 颜色 = K均值聚类鸢尾花结果$簇)

应用
解释

kmeans 函数的输出结果(特指聚类归属信息)被用作 plot 函数的输入,以实现聚类结果的可视化。

在R中绘制函数图像 → R中的points函数

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘制点(...)

应用
解释

points 函数被应用于 plot 函数已创建的现有图形上,用于添加聚类中心。

问题定位 · 6

K均值聚类的定义是什么?

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    K均值是一种常用的聚类算法,用于将数据划分为彼此分离、互不重叠的簇。

涉及知识点
  1. K 均值聚类的定义

如何在R中运行K均值聚类并指定簇的数量?

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    kmeans鸢尾花结果 <- kmeans(鸢尾花数据, 聚类中心数 = 3)

涉及知识点
  1. 在 R 中使用 kmeans 函数

R语言kmeans函数返回的对象中包含哪些信息?

依据清楚
视频直接表达
来源依据
  1. 声音
    观察依据

    对于每个数据点,它包含一个簇分配,同时也包含该簇中心的坐标位置。

涉及知识点
  1. kmeans 输出对象的结构

如何在R中使用散点图可视化K均值聚类结果及其簇中心?

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘制 iris_data 数据集中 "Sepal.Length" 与 "Sepal.Width" 的散点图,颜色按 kmeans_iris_result$cluster 的聚类结果着色

涉及知识点
  1. 用散点图可视化聚类结果

如何在 R 中执行 k 均值聚类?

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    kmeans(鸢尾花数据, 中心点 = 3)

涉及知识点
  1. R语言中的kmeans函数

如何在 R 中可视化 k 均值聚类结果?

依据清楚
视频直接表达
来源依据
  1. 公式
    观察依据

    绘图(鸢尾花数据[c("萼片长度", "萼片宽度")], 颜色 = K均值聚类鸢尾花结果$簇)

涉及知识点
  1. 在R中绘制函数图像
  2. R中的points函数
覆盖情况与待核验内容

已覆盖 · 本视频导览与K均值聚类的定义。

已覆盖 · 在R中加载鸢尾花数据集并创建一个简化子集。

已覆盖 · 运行kmeans函数并检查其输出对象。

已覆盖 · 使用散点图可视化各簇及其簇中心,随后作总结性说明。

已覆盖 · 引言与行动呼吁。

已覆盖 · 展示用于 k 均值聚类及绘图的 R 代码。

已覆盖 · 结束语与标志展示。

探索视频中的知识

已审核的主题路径

这个视频解答的问题

掌握方法

↗