SAS用K-Means 聚类最优k值的选取和分析

简介: SAS用K-Means 聚类最优k值的选取和分析

什么是聚类?

聚类是将数据集分为几组的过程,其中包括相似的数据点”。聚类是一种无监督的机器学习,在您拥有未标记的数据时使用。

比如:

坐在餐馆的用餐者。假设餐厅中有两个桌子。桌子1中的人可能彼此相关,可能是一组家庭成员或同事。

类似的,桌子2中的人可能彼此相关。但是,当比较坐在两个桌子的人时,他们是完全不同的,可能根本没有关联。

聚类也以相同的方式工作。一个聚类中的数据点与另一聚类中的数据点完全不同。同一聚类中的所有点都相同或彼此相关。

聚类具有不同的算法。最受欢迎的是K-均值聚类。

 

什么是K均值聚类?

K-Means是一种聚类算法,其主要目标是将相似的元素或数据点分组为一个聚类。 K-均值中的“ K”代表簇数。

距离量度将确定两个元素之间的相似性,并将影响簇的形状。通常,欧几里得距离将用于K-Means聚类

欧几里得距离是“普通”直线。它是欧氏空间中两点之间的距离。

 

K-Means算法如何工作?

输入:样本集D,簇的数目k,最大迭代次数N;

输出:簇划分(k个簇,使平方误差最小);

算法步骤:

(1)为每个聚类选择一个初始聚类中心;

(2)将样本集按照最小距离原则分配到最邻近聚类;

(3)使用每个聚类的样本均值更新聚类中心;

(4)重复步骤(2)、(3),直到聚类中心不再发生变化;

(5)输出最终的聚类中心和k个簇划分;

 

SAS中的K-均值聚类

让我们来看一个著名的IRIS数据集。使用proc检查数据集



/* 检查数据内容 */
proc means data=work.iris N Nmiss mean median max min;
run;

它具有150个观测值和5个变量。未检测到缺失值或离群值。我们将仅使用四个变量,即sepal_length,sepal_width,petal_length和petal_width。数据集以“ cm”为单位。可以删除“目标”变量,因为它是类别变量。

关于鸢尾花数据集的简短介绍。这是一个多变量数据集,由英国统计学家 、 生物学家 罗纳德·费舍尔(Ronald Fisher) 在1936年为他的研究论文引入 。

 在分析数据集之前了解数据。



/* 删除目标列将新数据保存为IRIS1 */


drop target;
run;

在运行聚类分析之前,我们需要将所有分析变量(实数变量)标准化为均值零和标准偏差为1(转换为z分数)。在这里,我们的数据集已经标准化。




/* 聚类分析 */
method = centroid ccc print=15 outtree=Tree;

METHOD => 确定过程使用的聚类方法。在这里,我们使用CENTROID方法。

CCC 是聚类标准—它有助于找出最佳的聚类点。

 

需要找出最佳聚类簇。

前三个特征值约占总方差的99.48%,因此,建议使用三个聚类。但是,可以在ccc图中对其进行交叉验证。

 

 

从图中看到,聚类标准有15个值(如我们在代码输出中给出的= 15)

 

 

从上面的CCC图可以看出,肘部下降在3个聚类。因此,最佳群集将为3。  

为了将150个观测值中的每个观测值分类为三个聚类,我们可以使用proc树。ncl = 3(我们的最佳簇为3)。



/* 保留 3个聚类   */
proc tree noprint ncl=3 out=

 

150个观察结果分为三类。

使用proc candisc和proc sgplot创建散点图



/*生成散点图 */


proc sgplot data = can;
title "

 

我们可以看到,分析清楚地将三个聚类簇分开。聚类簇1为蓝色, 2为红色, 3为绿色。

K-均值聚类的优缺点

优点:

1)即使违背有些假设,也能很好地工作。

2)简单,易于实现。

3)易于解释聚类结果。

4)在计算成本方面快速高效。

缺点:

1)即使输入数据具有不同的簇大小,均匀效果使得结果经常会产生大小相对一致的簇。

2)不同密度的数据可能不适用于聚类。

3)对异常值敏感。

4)在K均值聚类之前需要知道K值。

 


相关文章
|
1月前
贝叶斯统计中常见先验分布选择方法总结
本文详细介绍了贝叶斯统计中三种常见的先验分布选择方法:经验贝叶斯方法、信息先验和无信息/弱信息先验。
76 3
贝叶斯统计中常见先验分布选择方法总结
|
4月前
|
数据采集 算法 数据可视化
基于K-Means聚类算法对球员数据的聚类分析,可以自主寻找最优聚类数进行聚类
本文介绍了一个基于K-Means聚类算法的NBA球员数据分析项目,该项目通过采集和分析球员的得分、篮板、助攻等统计数据,使用轮廓系数法和拐点法确定最优聚类数,将球员分为不同群组,并提供了一个可视化界面以便直观比较不同群组的球员表现。
基于K-Means聚类算法对球员数据的聚类分析,可以自主寻找最优聚类数进行聚类
|
6月前
|
机器学习/深度学习 算法 数据挖掘
算法金 | K-均值、层次、DBSCAN聚类方法解析
**摘要:** 这篇文章介绍了聚类分析的基本概念和几种主要的聚类算法。聚类是无监督学习中用于发现数据内在结构的技术,常用于市场分析、图像分割等场景。K-均值是一种基于划分的算法,简单高效但易受初始值影响;层次聚类包括凝聚和分裂方式,形成层次结构但计算复杂;DBSCAN基于密度,能处理任意形状的簇,但参数选择敏感。文章还讨论了这些算法的优缺点和适用场景,并提供了相关资源链接和Python实现。
116 9
算法金 | K-均值、层次、DBSCAN聚类方法解析
|
7月前
|
机器学习/深度学习 运维 算法
【机器学习】可以利用K-means算法找到数据中的离群值吗?
【5月更文挑战第14天】【机器学习】可以利用K-means算法找到数据中的离群值吗?
|
7月前
|
数据可视化 算法 数据挖掘
Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化
Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化
|
7月前
|
机器学习/深度学习 算法 数据可视化
Python用KNN(K-近邻)回归、分类、异常值检测预测房价、最优K值选取、误差评估可视化
Python用KNN(K-近邻)回归、分类、异常值检测预测房价、最优K值选取、误差评估可视化
|
7月前
|
机器学习/深度学习 前端开发 数据可视化
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
|
7月前
|
数据可视化 算法 数据挖掘
R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化
R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化
|
7月前
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
|
7月前
|
算法 数据挖掘 索引
R语言最优聚类数目k改进kmean聚类算法
R语言最优聚类数目k改进kmean聚类算法