Постановка задачи
У меня есть 2D-фреймы данных панд, которые содержат данные о характеристиках использования пользовательских инструментов (например, 88% использования системы A, 11% использования системы B, 1% системы C для соответствующего пользователя:
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 для кластеризации случайных 2D данных.
Однако я сталкиваюсь с проблемой размещения 2D-матриц в фиксированной последовательности в агрегированной 3D-матрице. Таким образом, невозможно идентифицировать сходство, глядя только на одну фиксированную номинальную последовательность, потому что в основном все пользовательские 2D-данные должны сравниваться со всеми другими 2D-данными, чтобы найти знакомое поведение при использовании.
Мысли
Я думал об интеграции метода несколько-кратного метода перекрестной проверки для небольших наборов данных в машинном обучении. Однако я не знаю, как интегрировать такое поведение в алгоритм кластеризации.
Другая мысль заключается в том, что, возможно, распознавание образов или иерархическая кластеризация (хотя общее количество кластеров неизвестно)
это лучший путь, поскольку третья ось агрегированной трехмерной матрицы находится в номинальном масштабе (идентификатор пользователя). Однако до сих пор я неопытный в области распознавания скороговорки.
Возможно, у кого-то есть хорошая методическая идея для решения этой проблемы кластеризации. :)