小白学数据分析----->在clementine基于两步聚类算法的次日留存分析探索

简介: 上次简单的说了一下SPSS下使用两步聚类分析的大致过程,今天简单说说在Clementine下怎么进行聚类分析,方法同样是两步聚类。 之前说过聚类分析是无指导的,揭示的输入字段集的模式,不是一种预测。在我们输入的字段上进行聚类分析找出组合最佳,能够反映共同属性的模式。

上次简单的说了一下SPSS下使用两步聚类分析的大致过程,今天简单说说在Clementine下怎么进行聚类分析,方法同样是两步聚类。

之前说过聚类分析是无指导的,揭示的输入字段集的模式,不是一种预测。在我们输入的字段上进行聚类分析找出组合最佳,能够反映共同属性的模式。两步聚类有两步,第一步是扩展,处理成若干子聚类,第二步利用分层聚类方法进行合并,形成大的聚类,实际上是剪枝合并的过程,此步不再进行数据处理。分层聚类不需要确定聚类数,这点在两步聚类分析中得以避免,因为分层聚类经常因为处理大数据量而失败,但是第一步的数据预处理得以避免了这个问题的出现。

两步聚类分析的数据要求

1)  角色设置必须为输入,其他的目标、两者或者无都会在分析中被忽略;

2)  不处理缺失值;

3)  模型构建时,忽略输入字段包含空白的记录。

下面就说一下在Clementine中操作过程和注意事项。

首先我们打开Clementine[有关Clementine的基础操作以后会慢慢整理],第一件事就是要引入我们要分析的文件,目前clementine支持的数据文件格式非常丰富,如下图:

今天我们使用的文件是SPSS文件的格式,因此,在源选项卡,双击SPSS文件图标,就会出现以下的画面[或者左键点击直接拖入数据流编辑区域]:

之后右键编辑,弹出窗口,在弹出窗口找到要分析的SPSS文件,引入:

点击类型的标签,可以看到目前字段的类型、是否缺失、设置方向等等信息,如下图:

点击确定,完成了数据文件的引入操作,但是往往我们文件中的一些字段在进行分析时是不需要的,有一些字段的属性还需要调整,数据质量还要检验,因此简单说说这个过程。

数据质量检验

输出选项卡,双击数据审核图标,此时就会自动连接数据文件,数据审核帮助简单分析和整理原数据文件的情况。

右键单击数据审核图标,选择执行,弹出窗口,可以看到字段类型、是否有空值、完成度等信息,弹出如下的窗口:

分析字段选择

有一些字段在我们分析的时候是不需要的,比如我们这个文件中的playerid字段就没什么实际利用意义,为此这一类的字段我们可以实现进行排除,这样后续的操作和分析会比较便利,此处我们做的是次日留存玩家的特征提取和分析,由于此处我们使用的文件已经是经过处理的,即已经把非新登用户那一部分数据踢出了,否则此处我们就必须使用这个功能[次日留存玩家设置为NO,非新登玩家次日登陆的设置为YES],此处我们通过选择排除playerid这个字段。

单击字段选项,双击选择过滤图标,并使之与源文件连接:

右键编辑,在打开的窗口中,把playerid过滤掉,点击箭头即可,变成红叉表明被过滤,在后续的分析中不会出现该字段。

此时我们可以连接显示一下过滤以后的数据内容形式,在输出选项,双击表图标,连接一个个表,此时右键执行,看到如下的效果,发现playerid木有了。

下面到了比较重要的地方,我们选择建模,之后选择细分标签里的两步,双击,连接到文件上,效果如下:

右键两步图标,选择编辑,弹出了两步节点模型的选项

模型名称

可以选择自己设定,也可以系统生成。

使用分区数据

若定义了分区字段,那么这个选项保证了仅仅训练分区的数据用于构建模型。此处我们没有进行数据的分区操作,不必勾选这个选项。

标准化数值字段

默认情况下,两步聚类会对所有数值输入字段进行标准化,使它们具有相同的尺度,即均值为 0 且方差为 1。要保留数值字段的原始尺度,可取消选中此选项。符号字段不受影响。

排除离群值

如果选中此选项,则那些与主要聚类似乎格格不入的记录将自动排除在分析之外。这样可以防止此类情况歪曲结果。

IBM官方手册的解释如下:

“离群值检测在预聚类步骤进行。选中此选项时,会将相对于其他子聚类具有较少记录的

子聚类视为潜在离群值,且重新构建不包括这些记录的子聚类树。子聚类被视为包含潜在离群值的下限大小由百分比选项控制。如果其中某些潜在离群值记录与任何新子聚类配置足够相似,则可将其添加到重新构建的子聚类中。将其余无法合并的潜在离群值视为离群值添到“噪声”聚类中并排除在分层聚类步骤之外。

使用经过离群值处理的“两步”模型对数据进行评分时,会将与最近主要聚类的距离大于特定阈值距离(基于对数似然)的新观测值视为离群值分配到“噪声”聚类中,名称为 -1。”

聚类标签

为生成的聚类成员关系字段指定格式

自动计算聚类数

“两步聚类可以非常迅速地对大量聚类解决方案进行分析并为训练数据选择最佳聚类数。通过设置最大聚类数和最小聚类数指定要尝试的聚类解决方案的范围。“两步聚类”通过一个两阶段过程确定最佳聚类数。在第一个阶段,随着所添加聚类的增多,可基于贝叶斯信息准则 (BIC) 中的差异选择模型中聚类数的上限。在第二个阶段,为聚类数比最小 BIC 解决方案还少的所有模型找出聚类间最小距离的差异。距离的最大差异用于识别最终聚类模型。”

指定聚类数

如果确定聚类数,也可以自己自行指定。

距离测量

同样这里有两种,欧式和对数似然,但是由于有分类变量只能选择对数似然。

聚类准则

准则有BIC和AIC,确定自动聚类算法如何确定聚类数。

之后点击执行,但是此时我们发现了如下的错误:

原来我们对于过滤后的数据,没有进行数据类型的重新指定,为此此处我们要重新指定数据的类型,字段选项卡,双击类型,之后再次连接两步的图标,此时就OK了。如下所示:

此后,执行模型,返回聚类模型结果信息,如下所示:

双击打开该模型,显示信息如下:

模型显示主要有模型,查看器,汇总三个重要的标签,此处先看汇总:

“两步”聚类模型块的“汇总”选项卡显示找出的聚类数以及有关训练数据、估计过程和所使用的构建设置的信息。

查看器主要是通过图形化手段显示聚类的信息,便于用户更加直观的分析(但是我觉得很蛋疼,没发现直观那里去)。

相比较而言我觉得比较有用的模型界面,这里能够很直观看到我们使用该算法构建的模型的具体情况,这里我们分析的次日留存的玩家的特征。在确定的变量我们构建了两个类。

可以看到一类比较庞大,但是注意:得到的模型一定程度上取决于训练数据的顺序。重排数据顺序并重新构建模型有可能得到不同的聚类模型。并且通过聚类分析得到的以此结果并不能足够说明我们整个玩家的特征,其显著性是需要检验的,这受到诸如游戏活动,聚类分析样本提取时间,等很多的因素影响,换句话要想具有普适性,还是需要迭代,不断的综合和分析整理才能拿出来玩家的特点,切勿选取一批样本数据,得到的玩家特点就放之四海,利用起来,而这也是CRISP-DM所提出的早期的工作重中之重和加入评估阶段的要义。所以还是多多进行如此类的时间,有的放矢才能做好。

相关文章
|
13天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
30 4
|
11天前
|
算法 程序员 Python
程序员必看!Python复杂度分析全攻略,让你的算法设计既快又省内存!
在编程领域,Python以简洁的语法和强大的库支持成为众多程序员的首选语言。然而,性能优化仍是挑战。本文将带你深入了解Python算法的复杂度分析,从时间与空间复杂度入手,分享四大最佳实践:选择合适算法、优化实现、利用Python特性减少空间消耗及定期评估调整,助你写出高效且节省内存的代码,轻松应对各种编程挑战。
23 1
|
1月前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
17天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
21 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
2月前
|
算法
算法设计与分析作业
这篇文章是关于算法设计与分析的作业,其中包含了两个算法实现:一个是使用分治算法实现的十进制大整数相乘(包括加法、减法和乘法函数),并进行了正确性和健壮性测试;另一个是使用快速排序思想实现的分治查找第K小元素的程序,并分析了其平均和最坏时间复杂度。
算法设计与分析作业
|
27天前
|
机器学习/深度学习 人工智能 数据挖掘
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
26 3
|
1月前
|
编解码 算法 图形学
同一路RTSP|RTMP流如何同时回调YUV和RGB数据实现渲染和算法分析
我们播放RTSP|RTMP流,如果需要同时做渲染和算法分析的话,特别是渲染在上层实现(比如Unity),算法是python这种情况,拉两路流,更耗费带宽和性能,拉一路流,同时回调YUV和RGB数据也可以,但是更灵活的是本文提到的按需转算法期望的RGB数据,然后做算法处理
|
2月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
41 0
|
2月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
55 0
|
2月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
48 2
下一篇
无影云桌面