暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

拓端数据部落 2022-06-13
654

原文链接:http://tecdat.cn/?p=17808

什么是聚类?

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

比如:

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

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

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

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

什么是K均值聚类?

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

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

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


点击标题查阅往期内容


Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化


左右滑动查看更多


01

02

03

04



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值。



点击文末“阅读原文”

获取全文完整资料


本文选自《SAS用K-Means 聚类最优k值的选取和分析》。


点击标题查阅往期内容

【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福指数可视化|数据分享
Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化
R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析
K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较
KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最佳聚类数
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请数据
R语言多维数据层次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
Python Monte Carlo K-Means聚类实战研究
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言谱聚类、K-MEANS聚类分析非线性环状数据比较
R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人口
R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化
Python、R对小说进行文本挖掘和层次聚类可视化分析案例
R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集
R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
R语言k-Shape时间序列聚类方法对股票价格时间序列聚类
R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析
R语言复杂网络分析:聚类(社区检测)和可视化
R语言中的划分聚类模型
基于模型的聚类和R语言中的高斯混合模型
r语言聚类分析:k-means和层次聚类
SAS用K-Means 聚类最优k值的选取和分析
用R语言进行网站评论文本挖掘聚类
基于LDA主题模型聚类的商品评论文本挖掘
R语言鸢尾花iris数据集的层次聚类分析
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
R语言聚类算法的应用实例
对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
【视频】R语言广义相加模型(GAM)在电力负荷预测中的应用
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言中的多项式回归、B样条曲线(B-spline Curves)回归
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据
R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
Python用广义加性模型GAM进行时间序列分析
R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归


文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论