小白学数据分析----->聚类分析理论之TwoSteps理论篇+实践篇

简介: 昨天分享了以前学习的聚类分析算法K-Means的部分知识,其实这个主要是了解一下这个算法的原理和适用条件就行了,作为应用而不是作为深入研究,能够很好的将业务和算法模型紧密结合的又有几人呢?所以一些基本知识还是很必要的,这里就是简单把看过的一些知识点列举一下,梳理一下,快速了解和使用。

昨天分享了以前学习的聚类分析算法K-Means的部分知识,其实这个主要是了解一下这个算法的原理和适用条件就行了,作为应用而不是作为深入研究,能够很好的将业务和算法模型紧密结合的又有几人呢?所以一些基本知识还是很必要的,这里就是简单把看过的一些知识点列举一下,梳理一下,快速了解和使用。

今天把TwoSteps的知识也梳理一下,顺便做个小的演示,使用SPSS 19,后续在使用SPSS Modeler或者叫做Clementine再演示一次使用方法。首先上图。

TwoSteps支持数值型和分类型数据,这对于我们而言在使用时就方便很多,此外游戏数据一般来说都很大,TwoStep在这方面来说还是很具有优势的,数据迭代过程中的内存消耗和聚类数目确定,TwoStep表现的都很好,两步聚类避免了距离矩阵过大,导致算法执行效率下降,而这也是优势所在。好了以上的信息看多也没什么意义,还是看看怎么实践吧。

最近换了工作,开始做手机网游的数据分析,也是想尝试一下,面临一个问题就是游戏的留存比较差劲,想来想去就拿这个做一个聚类分析的例子吧。

首先,这里选取的是次日留存用户数据进行分析,之所以选择次日,是由游戏的特点决定的,再者手机游戏的周期相对短一些,所以如果考虑周,双周就不是很好了(当然也不是绝对的),其实3日留存也可以选择,只是需要了解你自己的游戏具体情况再做判断。

其次,选择什么时间的次日留存数据分析呢?这个问题困扰了我很长时间,因为本身分析新登玩家次日登陆的那部分群体的特征(其实这样分类的方式已经有些破坏了聚类分析的本质和诉求),我选取的时间是周五(为什么是周五,这里不说了,大家自己想),且从时间上,全部渠道(手机游戏渠道很多)均以开放,且离最近的开放的渠道有一段周期(数据平稳后)。同时游戏没有重大的更新,BUG,调整时期。

第三,既然要做聚类分析,那我们选什么数据作分析,提取特征呢?我们要做的是提取次日留存用户的特征,因此,根据需要我们提取了一些用户的数据点,如下图所示:

其实,还有很多的数据,然而这里很多都是取不出来的(2进制,你懂得),由于分析的是次日留存,因此用户的游戏进程大多数不会很长,这里也只会取一些和新登用户关联比较大的,比如来源,职业,好友,是否付费,等级(最高和最低等级)。其实按照我们分析的围堵不同还可以取其他的数据,这里就是一个演示,请见谅。下面就用SPSS 19演示一下怎么进行该计算过程。

打开“菜单|分类|两步聚类”,如下图所示:

弹出的菜单如下:

此时,要进行变量选择,如果是分类变量,就选择进入分类变量,如果是连续变量,就选择进入连续变量,选择如下:

距离变量:确定计算两个变量之间的相似性,对数相似值系统使用对数似然距离计算,而欧式距离是以全体变量为连续性变量为前提的,由于我们的数据中存在分类型变量,因此这里选择对数相似值。

聚类数量:允许指定如何确定聚类数。如果自动确定将会使用聚类准则中指定的准则[BIC 或者 AIC],自动确定最佳的聚类数,或者设置最大值。也可以指定一个固定值,不过一般来说就自动确定OK了。

连续变量计数:对一个变量是否进行标准化的设置。

点击选项,弹出如下的面板

离群值处理:这里主要是针对CF填满后,如何对离群值的处理。IBM SPSS手册如下所诉:

“如果选择噪声处理且 CF 树填满,则在将稀疏叶子中的个案放到“噪声”叶子中后,树将重新生长。如果某个叶子包含的个案数占最大叶大小的百分比小于指定的百分比,则将该叶子视为稀疏的。树重新生长之后,如有可能,离群值将放置在 CF 树中。否则,将放弃离群值。
如果不选择噪声处理且 CF 树填满,则它将使用较大的距离更改阈值来重新生长。最终聚类之后,不能分配到聚类的变量标记为离群值。离群值聚类被赋予标识号–1,并且不包含在聚类数的计数中。”

关于噪声处理,此处默认即可。

内存分配:指定聚类算法应使用的最大的内存量。如果该过程超过了此最大值,则将使用磁盘存储内存中放不下的信息。此项默认就行了。

连续变量的标准化:聚类算法处理标准化连续变量。

点击输出:弹出界面如下

图和表:

“显示模型相关的输出,包括表和图表。模型视图中的表包括模型摘要和聚类-特征网格。模型视图中的图形输出包括聚类质量图表、聚类大小、变量重要性、聚类比较网格和单元格信息。”有点用。

评估字段:“这可为未在聚类创建中使用的变量计算聚类数据。通过在“显示”子对话框中选择评估字段,可以在模型查看器中将其与输入特征一起显示。带有缺失值的字段将被忽略”可以不用理。

OK,此时,点击继续,然后确定,等待计算结果出来,这时首先弹出的是查看器:

之后双击这个模型,就会弹出来聚类浏览器:

以下介绍该浏览器的信息来自于IBM SPSS的官方手册,详见:http://www.dmacn.com/viewthread.php?tid=78&extra=page%3D1

“聚类浏览器”包含两个面板,主视图位于左侧,链接或辅助视图位于右侧。有两个主视图:
模型摘要(默认视图)
分群。
有四个链接/辅助视图:
预测变量的重要性.
聚类大小(默认视图)
单元格分布。
聚类比较。

“模型摘要”视图显示聚类模型的快照或摘要,包括加阴影以表示结果较差、尚可或良好的聚类结合和分离的 Silhouette 测量。该快照可让您快速检查质量是否较差,如果较差,可返回建模节点修改聚类模型设置以生成较好的结果。
结果较差、尚可和良好是基于 Kaufman 和 Rousseeuw (1990) 关于聚类结构解释的研究成果来判定的。在“模型摘要”视图中,良好的结果表示数据将 Kaufman 和 Rousseeuw 的评级反映为聚类结构的合理迹象或强迹象,尚可的结果将其评级反映为弱迹象,而较差的结果将其评级反映为无明显迹象。Silhouette 测量所有记录的平均值,(B A) / max(A,B),其中 A 是记录与其聚类中心的距离,B 是记录与其非所属最近聚类中心的距离。Silhouette 系数为 1 表示所有个案直接位于其聚类中心上。 值为 1 表示所有个案位于某些其他聚类的聚类中心上。值为 0
表示在正常情况下个案到其自身聚类中心与到最近其他聚类中心是等距的。
摘要所包含的表格具有以下信息:
算法。所使用的聚类算法,例如“二阶”。
输入功能。字段数量,也称为输入或预测变量。
分群。解中聚类的数量。

关于模型的使用的详细信息这里不再累述,请参考 官方手册 IBM SPSS Statistic 19 Base.pdf [152-159] 

相关文章
|
1月前
|
数据可视化 数据挖掘 数据处理
Python在数据分析中的应用实践
【2月更文挑战第13天】 本文旨在探讨Python语言在当前数据驱动时代的核心应用之一——数据分析领域的实践方法和技术。Python,作为一种高级编程语言,因其简洁的语法、强大的库支持以及广泛的社区资源,已成为数据科学家和分析师首选的工具之一。文章首先简要介绍Python及其在数据分析中的优势,随后深入讲解使用Python进行数据处理、分析、可视化的关键技术,包括但不限于Pandas库的数据处理、Matplotlib和Seaborn库的数据可视化技术,以及SciPy和Scikit-learn库在数据分析中的应用。通过具体案例,展示Python如何有效地解决实际数据分析问题,最终旨在为读者提供一
20 2
|
1月前
|
数据采集 数据挖掘 大数据
Python在数据分析中的应用及实践
【2月更文挑战第13天】 本文旨在探讨Python语言在数据分析领域的广泛应用及其实践方法。通过深入浅出的方式,介绍Python在处理、分析大数据时的核心库和工具,如Pandas、NumPy、Matplotlib等,并通过一个实际案例来展示这些工具如何协同工作,解决数据分析中遇到的常见问题。文章不仅为读者提供了一个学习和应用Python进行数据分析的起点,也通过案例分析,展示了Python在数据处理能力上的强大与灵活性,旨在激发读者对Python数据分析深入学习和研究的兴趣。
|
2月前
|
数据采集 存储 数据可视化
Python数据分析从入门到实践
Python数据分析从入门到实践
|
6天前
|
数据采集 数据可视化 数据挖掘
Seaborn在数据分析中的应用:案例分析与实践
【4月更文挑战第17天】本文介绍了Seaborn在数据分析中的应用,它是一个基于Python的可视化库,简化了复杂数据的图表创建。通过一个销售数据分析的案例,展示了数据加载、描述性统计、相关性分析、多变量分析及高级可视化步骤。实践技巧包括数据清洗、图表选择、颜色使用、注释标签和交互性。Seaborn助力高效数据探索和理解,提升分析效率。注意,实际使用需根据数据集和目标调整,并参考最新文档。
|
1月前
|
数据采集 数据挖掘 数据处理
Python在数据分析中的应用实践
【2月更文挑战第12天】 本文深入探讨了Python语言在数据分析领域的应用,通过介绍Python的几个关键数据分析库(Pandas、NumPy、Matplotlib)的基本使用方法和案例实践,展示了Python处理数据的强大能力。不同于传统的摘要,本文旨在通过实际操作案例,让读者能够直观感受到Python在数据分析中的实际应用价值,从而激发读者进一步探索Python数据分析能力的兴趣。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
Python数据分析:从入门到实践
Python数据分析:从入门到实践
|
2月前
|
数据采集 数据挖掘 大数据
Python 数据分析中的数据清洗技巧与实践
【2月更文挑战第1天】数据分析是当下热门的技术领域之一,而数据清洗作为数据分析过程中至关重要的一环,往往被人们忽视。本文将深入探讨在 Python 环境下进行数据清洗的关键技巧与实际操作,帮助读者提升数据分析的效率与准确性。
|
2月前
|
数据可视化 数据挖掘 数据处理
Python在数据分析中的应用实践
在当今数据驱动的时代,Python已成为数据分析不可或缺的工具之一。本文旨在探索Python在数据分析领域的实际应用,通过介绍Python的核心库(如Pandas、NumPy和Matplotlib)的使用,以及展示一个简单的数据分析项目实例,来阐述Python如何帮助分析师高效地处理和分析数据,从而提取有价值的信息。与传统摘要不同,我们不仅概述内容,还强调实践的重要性,旨在激发读者通过实际操作深入理解Python在数据分析中的强大功能。
26 1
|
2月前
|
数据采集 数据可视化 数据挖掘
深入浅出:Python在数据分析中的应用实践
本文旨在探讨Python语言在数据分析领域的高效应用,通过简洁的语法和强大的库支持,Python已成为数据科学家和分析师的首选工具。文章首先介绍了Python在数据处理、清洗、分析及可视化方面的基础知识,随后通过一个实际案例,展示了如何利用Pandas、NumPy、Matplotlib等库进行数据分析的完整流程。通过本文,读者将能够理解Python在数据分析中的核心价值,掌握其基本操作方法,并能够在实际项目中灵活运用。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
Python在数据分析中的应用实践
本文深入探讨了Python语言在数据分析领域的关键应用,通过实际案例展示了如何利用Python进行数据处理、分析及可视化。不同于传统的摘要,我们将重点放在Python的实用库(如Pandas、NumPy和Matplotlib)上,以及它们如何协同工作以解决数据分析中遇到的复杂问题。本文旨在为读者提供一个清晰的视角,理解Python在数据分析中的强大功能,并通过实践案例加深理解。
36 2

热门文章

最新文章