具有分类变量的一维聚类

1D Clustering with categorical variables

我尝试分析日志操作。为了分析,我想了解用户是处于 page/navigation 模式还是处于问答模式(确定哪种操作更普遍)。模式由操作频率给出,如下图所示。

我想找到 - 如果在数据中可用 - 阶段发生变化的边界。当然,总会有一些异常值(例如,考虑图中 1452 处的测验点)。

我试过 Jenks breaks 这件事:红色是基于导航点的休息时间,蓝色是基于测验点的休息时间。我必须设置一个固定数量的垃圾箱,我设置为 3。因此,这对我的问题来说似乎不是很令人满意。

我也考虑过KDE,但是也不知道怎么拆分。

有什么方法可以拆分以上数据,告诉我在2011到2049之间的某个地方(即导航的最后一个点和测验的第一个点)相位发生了变化,在4189和4189之间的某个地方4199(测验的最后一个点和导航的第一个点)?

我正在使用 Python 进行数据分析(以及 pandasnumpy 等)。

使用 KDE。但是少考虑 KMeans ("splits"),多考虑 density.

如果状态A的密度较大,则表示用户处于模式A?

所以只比较那里的密度。尝试绘制相同多数密度的区间。