以一种名义规模对3D数据进行聚类

时间:2019-04-11 09:44:18

标签: python algorithm 3d cluster-analysis pattern-recognition

问题陈述

我有2D熊猫数据框,其中包含有关用户工具使用特征的数据(例如,对于相应用户,系统A的使用率为88%,系统B的使用率为11%,系统C的使用率为1%:

        A      B       C
Usage  0,88   0,11   0,01

假设存在三个用户(ID:1、2、3),则存在以下矩阵:

ID:1    A      B       C     ID:2    A      B      C     ID:3    A      B    C
Usage  0,88   0,11   0,01    Usage  0,86   0,13   0,01   Usage  0,00  0,00  1,00

我想到了将单个2D矩阵聚合到3D矩阵以识别相似使用行为的簇。

目标

确定系统使用情况下的群集。在此示例中,应该对ID1和ID2进行集群。我建立了一个有效的DBSCAN method来对随机2D数据进行聚类。

但是,我面临的问题是将2D矩阵以固定的顺序堆叠在聚合的3D矩阵中。因此,仅观察一个固定的标称序列就不可能识别出相似性,因为基本上每个用户2D数据都必须与所有其他2D数据进行比较才能找到更简单的用法。

想法

我想为机器学习中的小数据集集成某种程度上k倍交叉验证的方法。但是我不知道如何将这种行为集成到聚类算法中。

另一个想法是,可能是模式识别或分层聚类(尽管聚类总数未知)  是更好的方法,因为汇总的3D矩阵的第三轴位于标称比例(用户ID)上。但是,到目前为止,我在模式识别领域还没有经验。

也许有人有一个很好的方法性想法来解决此聚类问题。 :)

1 个答案:

答案 0 :(得分:0)

该示例仅将labels_true用于评估,而不用作DBSCAN本身的输入。 labels_true源自创建模拟数据集的函数。正确的调用dbscan的方法是db = DBSCAN(eps=0.3, min_samples=10).fit(X),其中x的情况是[[valueA, valueB, valueC], [valueA, valueB, valueC], ...],则结果在db.labels_中。