小白学数据分析----->聚类分析理论之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] 

相关文章
|
20天前
|
运维 数据挖掘 网络安全
场景实践 | 基于Flink+Hologres搭建GitHub实时数据分析
基于Flink和Hologres构建的实时数仓方案在数据开发运维体验、成本与收益等方面均表现出色。同时,该产品还具有与其他产品联动组合的可能性,能够为企业提供更全面、更智能的数据处理和分析解决方案。
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
使用Jupyter Notebook进行数据分析:入门与实践
【6月更文挑战第5天】Jupyter Notebook是数据科学家青睐的交互式计算环境,用于创建包含代码、方程、可视化和文本的文档。本文介绍了其基本用法和安装配置,通过一个数据分析案例展示了如何使用Notebook进行数据加载、清洗、预处理、探索、可视化以及建模。Notebook支持多种语言,提供直观的交互体验,便于结果呈现和分享。它是高效数据分析的得力工具,初学者可通过本文案例开始探索。
|
2月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析:从入门到实践
使用Python进行数据分析:从入门到实践
57 2
|
2月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
221 0
|
3月前
|
数据采集 算法 搜索推荐
R语言营销数据分析:使用R进行客户分群的实践探索
【9月更文挑战第1天】R语言以其强大的数据处理和统计分析能力,在金融数据分析、营销数据分析等多个领域发挥着重要作用。通过R语言进行客户分群,企业可以更好地理解客户需求,制定精准的营销策略,提升市场竞争力和客户满意度。未来,随着大数据和人工智能技术的不断发展,R语言在营销数据分析中的应用将更加广泛和深入。
|
4月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析的新手指南深入浅出操作系统:从理论到代码实践
【8月更文挑战第30天】在数据驱动的世界中,掌握数据分析技能变得越来越重要。本文将引导你通过Python这门强大的编程语言来探索数据分析的世界。我们将从安装必要的软件包开始,逐步学习如何导入和清洗数据,以及如何使用Pandas库进行数据操作。文章最后会介绍如何使用Matplotlib和Seaborn库来绘制数据图表,帮助你以视觉方式理解数据。无论你是编程新手还是有经验的开发者,这篇文章都将为你打开数据分析的大门。
|
7月前
|
数据采集 数据挖掘 大数据
Python在数据分析中的应用及实践
【2月更文挑战第13天】 本文旨在探讨Python语言在数据分析领域的广泛应用及其实践方法。通过深入浅出的方式,介绍Python在处理、分析大数据时的核心库和工具,如Pandas、NumPy、Matplotlib等,并通过一个实际案例来展示这些工具如何协同工作,解决数据分析中遇到的常见问题。文章不仅为读者提供了一个学习和应用Python进行数据分析的起点,也通过案例分析,展示了Python在数据处理能力上的强大与灵活性,旨在激发读者对Python数据分析深入学习和研究的兴趣。
|
7月前
|
数据可视化 数据挖掘 数据处理
Python在数据分析中的应用实践
【2月更文挑战第13天】 本文旨在探讨Python语言在当前数据驱动时代的核心应用之一——数据分析领域的实践方法和技术。Python,作为一种高级编程语言,因其简洁的语法、强大的库支持以及广泛的社区资源,已成为数据科学家和分析师首选的工具之一。文章首先简要介绍Python及其在数据分析中的优势,随后深入讲解使用Python进行数据处理、分析、可视化的关键技术,包括但不限于Pandas库的数据处理、Matplotlib和Seaborn库的数据可视化技术,以及SciPy和Scikit-learn库在数据分析中的应用。通过具体案例,展示Python如何有效地解决实际数据分析问题,最终旨在为读者提供一
45 2
|
5月前
|
关系型数据库 分布式数据库 数据库
基于PolarDB的图分析:保险数据分析实践
本文以公开的保险数据集为例,示例了基于云原生数据库PolarDB上,在保险理赔场景下,执行图查询来发现异常理赔记录和欺诈团伙:例如,查询与欺诈保单有相同理赔病人的其他保单,或者找出欺诈保单的投保人社交关系,以便进行欺诈预警。PolarDB在关系型数据库的基础上,提供了图分析能力,为企业的统一数据管理和分析,提供了强有力的支撑。
|
7月前
|
数据采集 存储 数据可视化
Python数据分析从入门到实践
Python数据分析从入门到实践