spssk均值聚类报告_K均值聚类

spssk均值聚类报告_K均值聚类机器学习中的k均值聚类属于无监督学习,所谓k指的是簇类的个数,也即均值向量的个数。算法初始状态下,要根据我们设定的k随机生成k个中心向量,随机生成中心向量的方法既可以随机从样本中抽取k个样本作为中心向量,也可以将中心向量固定在样本的维度范围之内,避免中心向量过偏远离大多数样本点。然后每个样本点需要与k个中心向量分别计算欧氏距离,取欧氏距离最小的中心向量作为该样本点的簇类中心,当第一轮迭代完成之后,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

机器学习中的k均值聚类属于无监督学习,所谓k指的是簇类的个数,也即均值向量的个数。算法初始状态下,要根据我们设定的k随机生成k个中心向量,随机生成中心向量的方法既可以随机从样本中抽取k个样本作为中心向量,也可以将中心向量固定在样本的维度范围之内,避免中心向量过偏远离大多数样本点。然后每个样本点需要与k个中心向量分别计算欧氏距离,取欧氏距离最小的中心向量作为该样本点的簇类中心,当第一轮迭代完成之后,中心向量需要更新,更新的方法是每个中心向量取前一次迭代所得到各自簇类样本点的均值,故称之为均值向量。迭代终止的条件是,所有样本点的簇类中心都不在发生变化。
在spss中导入的二维数据如下所示:
在这里插入图片描述
点击菜单栏的“分析”,找到“分类”选中“k-均值聚类”
在这里插入图片描述
将需要进行聚类的变量选入右侧框中
在这里插入图片描述
聚类数由用户设定,方法一般选择“迭代与分类”,“读取初始聚类中心”和“写入最终聚类中心”一般不勾选,除非自定义的聚类中心(自定义聚类中心一般意义不大),如果最后想将最终迭代得到的聚类中心写入指定文件,那么可以勾选第二个复选框。
在这里插入图片描述
设定迭代次数,收敛条件默认为0,即当前均值向量与前一次迭代得到的均值向量之差。
在这里插入图片描述
保存按钮,勾选以上复选框,最终得到的结果会包含以上两个信息。
在这里插入图片描述
选项按钮中,一般勾选以上复选框,spss会统计出初始聚类的中心向量以及每个样本的聚类信息(包括每个样本所属类别,与各自簇类中心向量的欧氏距离)。之后,点击“确定”按钮,完成均值聚类。
得到初始聚类中心和迭代历史记录,我们发现第二次迭代的时候,聚类中心就已经不变了。
在这里插入图片描述
以下是每个样本所属类别以及每个样本与各自簇类中心的欧氏距离。
在这里插入图片描述
在这里插入图片描述
以上是最终得到的聚类中心的横纵坐标,以及聚类中心与中心之间的欧氏距离、每个类别中的样本数量。
以下是通过python编程实现k-均值聚类算法所得结果:

最终得到的聚类中心:
[[ 2.6265299   3.10868015]
 [-2.46154315  2.78737555]
 [-3.53973889 -2.89384326]
 [ 2.65077367 -2.79019029]]

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述
显然,与spss得到的聚类结果是一样的。
关于均值聚类的簇类数(即k值),目前并没有方法能确切地确定k的值是多少,但是通常可以通过枚举法和肘方法来大致确定k。
所谓枚举法,即通过取不同的k值来观察最终的聚类结果,选取最优结果所对应的k作为该均值聚类的最终k值。
肘方法是通过绘制不同的k所对应的样本数据点与各自聚类中心的距离平均值来确定k。

import numpy as np
from sklearn.cluster import KMeans
from scipy.spatial.distance import cdist
import matplotlib.pyplot as plt

cluster1 = np.random.uniform(0.5, 2.0, (2, 15))
cluster2 = np.random.uniform(2.5, 4.0, (2, 15))
X = np.hstack((cluster1, cluster2)).T

fig = plt.figure()
ax1 = fig.add_subplot(121)
plt.scatter(X[:, 0], X[:, 1], marker="^", color='m', edgecolors='k', alpha=0.8, s=50)
plt.title("Raw data")

K = range(1, 10)
meandistortions = []
for k in K:
    kmeans = KMeans(n_clusters=k)
    kmeans.fit(X)
    meandistortions.append(sum(np.min(cdist(X, kmeans.cluster_centers_, 'euclidean'), axis=1)) / X.shape[0])

ax2 = fig.add_subplot(122)
plt.plot(K, meandistortions, 'bx-')
plt.xlabel('number of clusters K', fontsize=15)
plt.ylabel('Average distance to centroid', fontsize=15)
plt.title('Elbow for KMeans clustering');
plt.show()

在这里插入图片描述
通过左图我们发现该样本数据集明显应该分为两个簇类,即k=2,当然如果在复杂数据集的情况下我们可能无法用右眼直接看出簇类数,此时就要借助右图的肘方法,即选取某一点该点的前一点至该点下降最快,而该点至该点的后一个点缓慢下降的点所对应的横轴作为均值聚类的k值。 右图由于曲线长得像人的手臂,而且寻找的点又恰好在“肘部”,故称为肘方法。但是有些情况下的曲线不一定是上述所说的手臂形状,此时无法寻找到“肘部”,所以肘方法不一定对所有数据集都适用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219249.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中缀表达式转后缀表达式的方法,步骤和原理及后缀表达式运算方式

    中缀表达式转后缀表达式的方法,步骤和原理及后缀表达式运算方式中缀转后缀本文大部分资料参考慕课何钦铭老师的数据结构相关的慕课链接:表达式求值中缀表达式是最常用的算术表达式,运算符在运算数中间,运算需要考虑运算符优先级.后缀表达式是计算机容易运算的表达式,运算符在运算数后面,从左到右进行运算,无需考虑优先级,运算呈线性结构.先举个简单的转换例子2+9/3-5(前缀)->293/+5-(后缀)先进行乘除再进行加减运算规律,…

    2022年6月16日
    28
  • 0xc0000225无法进系统_U盘装win10后无法进系统错误代码0xc0000225怎么修复「建议收藏」

    0xc0000225无法进系统_U盘装win10后无法进系统错误代码0xc0000225怎么修复「建议收藏」win10系统的安装方式有多种,当我们使用的win10系统出现故障时,最常见的解决方法就是使用U盘装win10来修复,可是最近有用户在用U盘装win10后无法进系统出现错误代码0xc0000225现象,那么又该如何解决这一问题呢?下面就来教大家解决U盘装win10后无法进系统错误代码0xc0000225的修复方法。故障提示:File:\Windwows\system32\winload.efiEr…

    2022年6月26日
    32
  • 手机app抓包

    手机app抓包总是收到公司部分客户特定机型,情况下才出现的bug此类问题较为难以复现需要客户协助进行抓包处理,写一个简单教程方便与客户沟通!app下载地址链接:https://pan.baidu.com/s/1M8x8DsTy0pcgnGyKEsJ_Ow提取码:cd4i1.安装抓包软件2.进入错误页面的上一个页面如果B页面是出错的页面,点击A(页面或者按钮)进入到B页面那么我们就打开A页面就可以了3.选择需要抓包的应用4.抓取操作信息5.如果错误信息比较多点击.

    2022年5月29日
    35
  • activate-power-mode安装与设置(去掉activate-power-mode右上角图标)[通俗易懂]

    activate-power-mode安装与设置(去掉activate-power-mode右上角图标)[通俗易懂]一.安装点击进入点击安装重启后插件即可生效二.设置刚开始相信我们用的很不爽,每次到达到多少个单词后才会有效果触发,还有如下图这个烦人的图标,现在我们怎么把它去掉呢只需要照我的设置,Window–>activate-power-mode–>去掉combo/shake,其他三个全勾上,现在用起来就很爽了,赶紧体验吧

    2022年7月14日
    23
  • 全球Telematics产业成长渐趋理性

    全球Telematics产业成长渐趋理性

    2022年3月4日
    31
  • Git教程 Git Bash详细教程「建议收藏」

    Git教程 Git Bash详细教程「建议收藏」  作为一个萌新,我翻遍了网上的GitBash教程,可能因为我理解力比较差,经常看不懂教程上在说什么。(。-`ω´-)所以我决定自己一边摸索一边记录,写教程造福那些理解力跟我一样差的人……第一篇教程会涉及如下内容(按照一般人的使用流程):下载、登录GitBash如何在GitBash中进入或者退出文件夹如何建立本地仓库配置SSHkey如何建立本地仓库和远程仓库的连接…

    2022年4月29日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号