小白学数据分析----->在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所提出的早期的工作重中之重和加入评估阶段的要义。所以还是多多进行如此类的时间,有的放矢才能做好。

相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
57 4
|
7天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
19天前
|
并行计算 算法 IDE
【灵码助力Cuda算法分析】分析共享内存的矩阵乘法优化
本文介绍了如何利用通义灵码在Visual Studio 2022中对基于CUDA的共享内存矩阵乘法优化代码进行深入分析。文章从整体程序结构入手,逐步深入到线程调度、矩阵分块、循环展开等关键细节,最后通过带入具体值的方式进一步解析复杂循环逻辑,展示了通义灵码在辅助理解和优化CUDA编程中的强大功能。
|
1月前
|
数据挖掘 UED
ChatGPT数据分析——探索性分析
ChatGPT数据分析——探索性分析
|
1月前
|
数据可视化 数据挖掘 数据处理
ChatGPT数据分析应用——热力图分析
ChatGPT数据分析应用——热力图分析
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
|
1月前
|
算法 数据挖掘
基于粒子群优化算法的图象聚类识别matlab仿真
该程序基于粒子群优化(PSO)算法实现图像聚类识别,能识别0~9的数字图片。在MATLAB2017B环境下运行,通过特征提取、PSO优化找到最佳聚类中心,提高识别准确性。PSO模拟鸟群捕食行为,通过粒子间的协作优化搜索过程。程序包括图片读取、特征提取、聚类分析及结果展示等步骤,实现了高效的图像识别。
|
26天前
|
算法
PID算法原理分析
【10月更文挑战第12天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
1月前
|
算法
PID算法原理分析及优化
【10月更文挑战第6天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
2月前
|
算法 程序员 Python
程序员必看!Python复杂度分析全攻略,让你的算法设计既快又省内存!
在编程领域,Python以简洁的语法和强大的库支持成为众多程序员的首选语言。然而,性能优化仍是挑战。本文将带你深入了解Python算法的复杂度分析,从时间与空间复杂度入手,分享四大最佳实践:选择合适算法、优化实现、利用Python特性减少空间消耗及定期评估调整,助你写出高效且节省内存的代码,轻松应对各种编程挑战。
40 1