K 均值聚类的定义
K 均值是一种常用的聚类算法,用于将数据划分为彼此分离、互不重叠的组别;它有助于发现隐藏模式或重新思考分类。
Data Within Reach · YouTube · 2:17
本入门教程演示了如何使用R内置的鸢尾花数据集执行并可视化K均值聚类。主讲人将K均值定义为一种将数据划分为互斥、不重叠组的算法。整个过程包括:加载数据、将其子集化为前四列、设置随机种子以确保结果可重现、调用kmeans函数生成三个簇。所得对象包含各数据点的簇分配以及各簇中心的坐标,并被打印至控制台。最后,教程展示了如何通过散点图可视化这些簇:按簇分配为数据点着色,并用较大的点标出计算所得的簇中心。 本视频片段演示了如何在 R 中对鸢尾花数据集执行 k 均值聚类。它展示了执行聚类算法所需的 R 代码,以及使用散点图可视化结果的方法:数据点按所属簇着色,簇中心以不同符号标出。
在学习检查器中查看要点和时刻,或切换阅读标签查看完整笔记。
依据视频画面与讲解整理,并非逐字语音转写。
视频以无监督学习主题的介绍开篇,特别聚焦于 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’标志动画结束。
K 均值是一种常用的聚类算法,用于将数据划分为彼此分离、互不重叠的组别;它有助于发现隐藏模式或重新思考分类。
R 中的 kmeans 函数用于执行聚类分析,它需要输入一个数据集以及聚类中心(即簇)的数量作为参数。预先设置随机种子可确保结果具有可重复性。
kmeans 函数返回的对象包含关键信息,具体包括每个数据点所属的簇编号,以及每个簇中心的坐标位置。
可通过至少两个变量的散点图来可视化聚类结果:数据点按其所属簇进行着色,而簇中心则以较大的点标出,以突出其位置。
使用 `kmeans()` 函数执行聚类分析:指定数据集和聚类中心(即簇)的数量。
使用 `plot()` 绘制特征的散点图,并将 `col` 参数设为 `kmeans` 结果中的聚类归属信息;再用 `points()` 在图上叠加聚类中心。
按知识点查看条件、步骤和证据。补充解释与视频直接内容分别标明。
主讲人提到使用鸢尾花数据集,并提及带 iris 参数的 data 命令。
载入数据(iris)
iris
内置 R 数据集,用于聚类示例。
R 数据集
主讲人提到创建一个变量,该变量仅包含数据的前四列。
iris_data <- iris[,1:4]
iris_data
鸢尾花数据集的一个子集,包含前四列。
R 数据框
设置随机种子(54321)
主讲人在音频中未明确解释 set.seed 的作用。
set.seed(54321)
在运行 kmeans 之前设置随机数生成器种子的 R 函数调用。
R 函数调用
说话者指出,kmeans 函数返回一个包含大量有用数据的对象。
kmeans鸢尾花结果 ← kmeans(鸢尾花数据,中心数 = 3)
kmeans_iris_result
kmeans 函数返回的对象,其中包含各数据点的簇分配结果及簇中心坐标。
R 对象
说话者指出,将数据划分为三个簇。
中心点 = 3
centers = 3
指定要形成的簇的数量的参数。
整数型参数
说话者指出,对每个数据点,该结果都包含其所属簇的分配信息。
聚类向量:
Cluster assignment
kmeans 算法为每个数据点所分配的组别标签。
整数向量
说话人指出,它还包含该簇中心的坐标位置。
簇指的是:
Cluster center
表示簇内各点均值的坐标位置。
数值向量
绘制(iris_data[c("Sepal.Length", "Sepal.Width")], ...)
Sepal.Length
散点图中绘制在横轴上的变量。
数值型变量
绘制(iris_data[c("Sepal.Length", "Sepal.Width")], ...)
Sepal.Width
散点图中绘制在纵轴上的变量。
数值型变量
说话人指出,不同颜色代表不同的簇。
颜色 = kmeans_iris_result$cluster
col
绘制参数:将聚类分配结果映射为颜色。
绘图参数
点形 = 23
讲解者在音频中未明确解释 pch=23 的含义。
pch=23
指定点的形状的绘图字符参数。
绘图参数
讲解者指出,中心处的大点代表该聚类的中心。
点大小 = 3
cex=3
用于放大中心点尺寸的绘图参数。
绘图参数
K 均值是一种常用的聚类算法,用于将数据划分为互不重叠的若干个独立组。
K-均值(K-means)是一种聚类算法,用于将数据划分为互不重叠的独立组别,有助于发现潜在模式或重新思考分类方式。
数据必须能够被划分为互不重叠的独立组别。
各组之间互不重叠。
运行 K-均值聚类非常简单:我们将把数据划分为三个簇……kmeans 函数会返回一个包含大量有用信息的对象。
kmeans鸢尾花结果 <- kmeans(鸢尾花数据, 聚类中心数 = 3)
R 中的 kmeans 函数用于执行聚类分析,它以数据集和指定的中心数量(即簇的数量)为参数,并返回一个包含簇分配结果与各簇中心坐标的对象。
要求输入为数值型数据集。
要求指定簇的数量(即中心数量)。
对于每个数据点,该对象包含其所属簇的分配结果,同时也包含各簇中心的坐标位置。
簇的均值: 簇分配向量:
kmeans 函数返回的对象包含有用的数据,具体包括每个数据点所属的簇标签,以及每个簇中心的坐标位置。
我们将使用散点图来展示至少两个变量的聚类结果:不同颜色代表不同的簇,而中心处的大点则代表对应簇的中心。
绘制 iris_data 数据中“Sepal.Length”与“Sepal.Width”两列的散点图,颜色按 kmeans_iris_result$cluster 的聚类结果着色; 再在图上添加 kmeans_iris_result$centers 中“Sepal.Length”与“Sepal.Width”两列所表示的聚类中心点,颜色为1:3,符号形状为23,符号大小为3
可使用至少两个变量的散点图来可视化聚类:数据点按其所属簇进行着色,簇中心则以较大的点标出。
绘图至少需要两个数值型变量。
需要 kmeans 输出结果中的簇分配信息和簇中心坐标。
kmeans(鸢尾花数据, 中心点 = 3)
kmeans函数用于对数据集执行k均值聚类,其参数包括数据集和聚类中心(即簇)的数量。
data必须是数值型矩阵或数据框
centers必须是正整数
plot(iris_data[c("萼片长度", "萼片宽度")], col=kmeans_iris_result$cluster)
plot函数用于创建散点图。在此上下文中,它将Sepal.Length作为横坐标、Sepal.Width作为纵坐标进行绘图,并根据k均值聚类结果对各点按所属簇着色。
x和y必须是等长的数值型向量
col可以是颜色向量,也可以是对应颜色的整数向量
绘制点(K均值聚类鸢尾花结果$中心点[,c("萼片长度", "萼片宽度")], 颜色 = 1:3, 点型 = 23, 缩放比例 = 3)
points函数用于向已有图形中添加点。此处,它将聚类中心添加到散点图中,并使用特定颜色、点形与大小。
x和y必须是数值型向量
col指定点的颜色
pch指定点所用的符号
cex指定点相对于默认大小的缩放比例
我们来使用鸢尾花数据集……创建一个变量……仅保留前四列……将数据划分为三个簇……并可视化这些簇。
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 均值聚类,将其划分为三个簇。
R 内置数据集:iris
聚类数量:3
用于绘图的变量:萼片长度、萼片宽度
将数据划分为三个聚类,并可视化所得聚类及其聚类中心。
将内置的鸢尾花数据集加载到 R 环境中。
分析该数据集所必需的操作。
创建一个新变量,仅包含鸢尾花数据集的前四列。
简化数据,以便用于聚类示例。
设置随机数生成器种子。
确保 kmeans 算法结果具有可重现性。
在子集化后的数据上运行 kmeans 算法,并指定 3 个聚类。
根据算法将数据划分为互不重叠的组。
将得到的 kmeans 对象打印到控制台。
显示各簇的均值及数据点所属簇的分配结果,便于检查。
创建萼片长度(Sepal.Length)与萼片宽度(Sepal.Width)的散点图,并按数据点所属簇进行着色。
可视化数据点的分布及其被分配到的簇。
在现有散点图上添加簇中心,以较大且形状鲜明的点表示。
突出显示每个簇所计算出的中心坐标。
一幅散点图,展示三组互不重叠的数据点簇,每簇中心由一个较大的点标出。
该可视化结果证实数据已被划分为三个互不重叠的组,且每个组内均存在对应的簇中心。
一幅散点图呈现出来:数据点分别以红色、绿色和蓝色着色,另有三个大型菱形点代表各簇中心。
数据点
簇中心
横轴(萼片长度)
Y轴(萼片宽度)
数据点根据其所属簇的分配结果进行着色。
添加大型菱形点以表示各簇的中心。
数据点的位置在绘制后保持不变。
坐标轴的刻度范围保持不变。
该图直观地展示了数据被划分为三个互不重叠、彼此分离的簇,其中各簇中心代表对应簇数据点的均值位置。
散点图:不同簇用不同颜色的点表示,聚类中心则用较大的菱形点表示。
数据点
聚类中心
坐标轴标签(萼片长度、萼片宽度)
各点根据其所属聚类被着以不同颜色。
聚类中心以较大的菱形点绘制。
坐标轴分别表示萼片长度与萼片宽度。
该散点图可视化了 K 均值聚类算法的结果,展示了数据点如何依据其萼片尺寸被划分为三个互不重叠的聚类。
讲解者先解释kmeans函数的输出结果,再利用该输出结果绘制散点图。
从kmeans输出对象中提取的簇分配结果与簇中心坐标,被直接作为参数传入plot函数和points函数以实现可视化。
绘图(..., 颜色 = K均值聚类鸢尾花结果$簇)
kmeans 函数的输出结果(特指聚类归属信息)被用作 plot 函数的输入,以实现聚类结果的可视化。
绘制点(...)
points 函数被应用于 plot 函数已创建的现有图形上,用于添加聚类中心。
K均值是一种常用的聚类算法,用于将数据划分为彼此分离、互不重叠的簇。
kmeans鸢尾花结果 <- kmeans(鸢尾花数据, 聚类中心数 = 3)
对于每个数据点,它包含一个簇分配,同时也包含该簇中心的坐标位置。
绘制 iris_data 数据集中 "Sepal.Length" 与 "Sepal.Width" 的散点图,颜色按 kmeans_iris_result$cluster 的聚类结果着色
kmeans(鸢尾花数据, 中心点 = 3)
绘图(鸢尾花数据[c("萼片长度", "萼片宽度")], 颜色 = K均值聚类鸢尾花结果$簇)
已覆盖 · 本视频导览与K均值聚类的定义。
已覆盖 · 在R中加载鸢尾花数据集并创建一个简化子集。
已覆盖 · 运行kmeans函数并检查其输出对象。
已覆盖 · 使用散点图可视化各簇及其簇中心,随后作总结性说明。
已覆盖 · 引言与行动呼吁。
已覆盖 · 展示用于 k 均值聚类及绘图的 R 代码。
已覆盖 · 结束语与标志展示。
已审核的主题路径
K-means 是一种流行的聚类算法,用于将数据划分为不同的、互不重叠的组。它有助于发现隐藏的模式或重新思考现有的类别。
适用条件:数据必须可以被划分为不同的组。;组是互不重叠的。
在 R 中,您可以使用 kmeans() 函数运行 K-means 聚类。您将数据集作为第一个参数传递,并使用 centers 参数指定簇的数量,例如 centers = 3。
适用条件:需要一个数值数据集。;需要指定簇的数量(centers)。
您可以通过创建至少两个变量的散点图来可视化 K-means 簇,根据它们的簇分配对数据点进行着色,并将簇中心作为大的、独特的点添加。
适用条件:需要至少两个数值变量进行绘图。;需要来自 kmeans 输出的簇分配和中心坐标。
kmeans 函数返回的对象包含每个数据点的簇分配以及每个簇中心的坐标位置。