问题陈述
我的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应该是集群的。我构建了一个用于聚类随机2D数据的工作DBSCAN法。
然而,我面临的问题是,2D矩阵在聚合的3D矩阵中按固定的顺序堆叠。因此,不可能在只看一个固定的标称序列的情况下识别相似性,因为基本上每个用户的2D数据都必须与所有其他2D数据进行比较,才能找到笑脸的使用行为。
Thoughts
我想在机器学习中集成一种小数据集的k倍交叉验证方法。但是,我不知道如何将这样的行为集成到聚类算法中。
另一种思路是,也许模式识别或层次聚类(尽管总聚类数未知)是更好的方法,因为聚集的3D矩阵的第三轴是标称规模(用户ID)。然而,到目前为止,我在模式识别领域还没有经验。
也许有人有一个很好的方法来解决这个聚类问题。:)
发布于 2019-04-11 12:35:19
该示例仅将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_中。
https://stackoverflow.com/questions/55629460
复制相似问题