Вопрос или проблема
У меня есть набор данных с 1000 строками и 4 колонками с 3 выбросами. Я хочу добавить еще 7 выбросов, связанных с ними, для обнаружения при помощи кластеризации.
Пример того, что я сделал
Col1 col2 Col3 col4
Out1 a1 b1 c1 d1
Out2 a2 b2 c2 d2
Out3 a3 b3 c3 d3
Я получаю среднее и стандартное отклонение для 7 колонок нормальных данных, затем вычисляю
Out4 normal1+mean+stdcol1 norm1mean+stdcol2
Out5 normal2+mean+stdcol1 norm2mean+stdcol2
Out6 ...........
Я не уверен, правильно ли я поступил или является ли это хорошим решением?
Я не хочу, чтобы выбросы были слишком легко выявляемыми.
Спасибо
Я полагаю, вы хотите создать точку, которая, каждая колонка по отдельности выглядит нормально, но при взгляде на все колонки кажется выбросом (поэтому вам понадобится какой-то метод обнаружения выбросов). Таким образом, метод генерации выброса будет требовать рассмотрения всех измерений в отношении друг к другу. И поскольку мы здесь не предполагали нормальность, генерация не является простой задачей.
Я бы рекомендовал сначала использовать какой-нибудь метод обнаружения выбросов отсюда на оригинальном наборе данных (что-то вроде Isolation Forest будет работать).
Затем вы можете генерировать случайные числа (или использовать числа, которые вы сгенерировали), чтобы проверить, являются ли они выбросами или нет. Это должно быть легко сделать вручную, поскольку вам нужно только 7 точек, и каждая точка имеет только 4 измерения. Также дополнительный совет – протестируйте числа, используя один из методов, который возвращает оценку вместо предсказания 0 или 1, чтобы убедиться, что это не очевидный выброс (поскольку вы этого не хотели).
Наконец, если вы сгенерировали точки, какой-то проверкой на адекватность будет добавление этих точек к набору данных, применение PCA для уменьшения размерности до 2, создание графика результатов PCA с отдельным цветом для добавленных выбросов. И вы сможете визуально проверить, находятся ли выбросы достаточно далеко друг от друга, но не слишком далеко от вашего набора данных.
Надеюсь, это поможет и даст вам идеи.
Ответ или решение
Чтобы увеличить число аномалий в вашем наборе данных с 3 до 10, потребуется тщательный подход к созданию новых данных. Эта задача требует осознания того, что аномалии должны выглядеть правдоподобно в каждом отдельном измерении, но при этом выделяться в совокупности. Давайте разберемся по шагам, как этого достичь.
1. Анализ существующих аномалий
Сначала внимательно изучите уже имеющиеся аномалии. Определите, чем они отличаются от обычных данных. Возможно, вас заинтересуют их значения по каждому из четырех столбцов. Это поможет понять, как создаются аномальные значения.
2. Использование методов обнаружения аномалий
Рекомендуется применить один из методов обнаружения аномалий, например Isolation Forest или Local Outlier Factor, к вашему существующему набору данных. Это поможет вам проанализировать структуру и распределение данных. Подобный анализ также пригодится для проверки, действительно ли новые точки данных, которые вы собираетесь добавить, будут соответствовать статусу аномалий.
3. Генерация новых аномалий
Когда вы проанализируете существующие аномалии, можно переходить к генерации новых. Вместо простого добавления средних значений и стандартных отклонений, подумайте о следующем:
-
Создание случайных аномалий: Для каждого из новых аномальных значений вы можете выбрать случайные точки из области, где значения отдельно по каждому столбцу еще находятся в допустимых пределах, но в совокупности они образуют ансамбль данных, который является аномальным. Например:
- Если ваши ‘нормальные’ данные случайным образом распределены по двум измерениям, вы можете добавить фиксированные смещения (например, 2 стандартных отклонения) по всем измерениям одновременно.
-
Оценка аномальности: Создайте точки, которые будут выглядеть нормальными по каждому из столбцов по отдельности. Для этого можно использовать:
[
Out_i = Normal_j + \text{mean} + k \cdot \text{std}
]где (k) — это значение, превышающее 2 (например, 3 или 4) для создания точки, которая считается аномальной в контексте общего распределения.
4. Проверка и валидация
После добавления новых значений обязательно проведите проверку, чтобы убедиться, что новые точки действительно действуют как аномалии. Ответьте на следующие вопросы:
- Находятся ли новые точки достаточно далеко от основной массы данных?
- Проводит ли модель обнаружения аномалий (например, по методу PCA) четкое разделение между нормальными и аномальными точками?
5. Визуализация
Не забудьте визуализировать данные после добавления новых аномалий с использованием таких инструментов, как PCA (метод главных компонент) или t-SNE. Это позволит Вам увидеть, как новый набор аномалий расположен относительно оригинального набора данных. Визуализация поможет убедиться, что новые аномалии Они не слишком очевидны на графиках.
Заключение
Таким образом, увеличение числа аномалий в наборе данных — это не просто простой процесс добавления случайных чисел. Это требует тщательного анализа, использования методов обнаружения аномалий и методов визуализации, чтобы обеспечить достоверность и функциональность вашего набора данных. Сгенерированные аномалии должны быть гармонично интегрированы в общую структуру, предоставляя возможность для эффективного обнаружения и анализа.