Вопрос или проблема
Удаление выбросов из одноберных данных можно легко выполнить, убирая точки, которые находятся за пределами диапазона IQR. Но как должен проходить процесс обнаружения и удаления выбросов, если набор данных состоит из нескольких измерений?
Вот мой подход: набор данных состоял из семи различных измерений. Когда он иллюстрируется в фрейме данных, имеется семь различных колонок; каждая строка представляет собой метаданные, объясняющие свойства отдельного элемента данных.
Я прошел по каждой отдельной колонке и удалил строку, содержащую данные, которые находятся за пределами диапазона IQR. Поскольку семь разных колонок сгруппированы в строке, я подумал, что перебор каждой колонки и удаление выбросов приведет к созданию фрейма данных, содержащего данные в пределах диапазона IQR, хотя его общее количество может быть уменьшено.
Теперь я хотел бы задать вопрос о увеличении данных. В то время как существует специализированная библиотека для увеличения наборов данных изображений путем случайного изменения их структуры, сложно найти подход для увеличения числовых данных. Поэтому я создал свой собственный подход.
После удаления выбросов из набора данных я построил функцию полиномиальной регрессии, чтобы найти взаимосвязь между целевыми данными (данными для предсказания) и каждой отдельной характеристикой данных (данными, используемыми для обучения модели) – как определенное значение целевых данных соотносится с определенной характеристикой данных.
Затем я случайным образом сгенерировал значения целевых данных, которые лежат в пределах диапазона IQR; использовал ранее обнаруженную регрессионную зависимость для получения других значений характеристик данных. И, используя увеличенный набор данных, я обучил модель и сделал предсказания.
В подходе увеличения данных, который я использовал, есть две главные ошибки.
- Несмотря на то что случайно сгенерированные значения целевых данных находятся в пределах диапазона IQR, другие значения характеристик данных, полученные из регрессии, могут находиться за пределами диапазона IQR; таким образом, процесс устранения выбросов становится бессмысленным. Я это осознал, но решил продолжить, так как удаление выбросов поможет в получении более точной регрессионной функции, иллюстрирующей взаимосвязь между целевыми данными и каждой характеристикой данных.
- Первоначальный набор данных не содержит большого количества данных для обучения. Набор данных в основном состоит из увеличенных данных; обучение модели, сосредоточенной на искусственных данных, может привести к нежелательным результатам. По сравнению с производительностью модели, обученной на исходном наборе данных, модель, обученная на увеличенном наборе данных, не показала значительного улучшения в производительности.
Остается вопрос, сделал ли я правильный подход или нет.
Кратко: У меня есть два вопроса относительно предобработки данных.
- Как следует обнаруживать и удалять выбросы в наборе данных, содержащем данные нескольких измерений?
- Существует ли проверенный подход к увеличению числовых данных, аналогичный ImageDataGenerator, используемому для увеличения изображений?
Почему вы хотите удалить выбросы? Вы думаете, что это неправильные данные? Вы считаете, что они оказывают чрезмерное влияние на модель? Должны ли эти строки быть правильными или неправильными для модели, и вы перемещаете их в набор для проверки? Другие причины? Понимание причин, по которым вы хотите определить выбросы, затем выбор подходящего метода. Я считаю, что лучше сначала выявить возможные выбросы, а затем изучить их, чтобы понять подходящее решение. Я также строю графики, чтобы получить визуальное представление этих выбросов. Просто потому, что строка имеет большие значения, не означает, что она “неправильная”.
Вот тема, которая обсуждает это. То, что вы можете удалить выбросы, не значит, что вы должны это делать. Знайте свою причину для удаления. Если я удаляю строки, я перемещаю их в собственный набор для проверки, чтобы тестировать на своей обученной модели.
Но чтобы ответить на вопрос – одним из способов выявления многомерных выбросов является использование случайных лесов и матриц близости. Случайные леса могут быть использованы в качестве метода исследовательского анализа данных. В этом случае подгоняется случайный лес, строится матрица близости, а затем анализируются записи, которые часто оказываются в одиночестве на листовых узлах или с разными партнерами все время. Это показывает, какие записи достаточно отличаются, чтобы модель считала их разными.
Поиск по кросс-валидации показывает множество других методов обнаружения выбросов.
Удаление выбросов в сценарии с высокой размерностью, например, может осуществляться после уменьшения размерности с помощью анализа главных компонент. В пространстве с уменьшенной размерностью можно применять боксплоты (1 размерность), багплоты (2 размерности) или гемплоты (3 размерности) для обнаружения выбросов. Для получения подробной информации смотрите:
Kruppa, J., & Jung, K. (2017). Автоматизированное выявление выбросов в многогрупповых молекулярных данных с помощью багплотов и гемплотов. BMC bioinformatics, 18(1), 1-10. полный текст
Ответ или решение
Удаление выбросов из многомерного набора данных и аугментация данных
Введение
Работа с многомерными наборами данных требует более сложных методов для удаления выбросов по сравнению с одномерными. В данной статье мы рассмотрим, как эффективно обнаруживать и удалять выбросы в многомерных данных, а также обсудим методы аугментации числовых данных.
Удаление выбросов в многомерных данных
Удаление выбросов в многомерном наборе данных требует более комплексного подхода, чем простой подсчет IQR для каждой отдельной переменной. Рассмотрим несколько методов:
-
Многофакторный анализ: Вместо работы с каждой переменной по отдельности, следует использовать методы, которые принимают во внимание взаимодействие между переменными. Например, методы кластеризации (K-средние, DBSCAN) могут помочь в выявлении выбросов, которые не вписываются в общую структуру.
-
Применение аналитических методов: Использование методов, таких как ближайшие соседи и случайные леса для анализа близости объектов, помогает определить выбросы на основе их положения относительно других точек данных. С помощью построения матрицы близости можно выявить те записи, которые часто оказываются в одиночестве.
-
Снижение размерности: Перед анализом выбросов можно применить методы снижения размерности (например, PCA), чтобы выявить закономерности в данных. После этого выбросы можно обнаружить с помощью визуализации (например, с использованием графиков-ящиков для двухмерных данных или гемплотов для трехмерных).
-
Сложные статистические методы: Использование статистических QQ-графиков или многомерных Z-оценок может помочь определить, какие данные отклоняются на значительное количество стандартных отклонений от средней величины.
Аугментация числовых данных
Аугментация числовых данных представляет собой более сложную задачу, нежели аугментация изображений. Ваш подход, основанный на регрессионном анализе, имеет смысл, но есть несколько аспектов, которые стоит учитывать:
-
Генерация значений: Вы можете дополнительно исследовать использование методов генеративного моделирования, таких как Генеративные состязательные сети (GAN) или VAE (вариационные автокодировщики), которые могут генерировать новые данные, основанные на существующем распределении.
-
Сохранение структуры данных: Ваша методика, основанная на полиномиальной регрессии, может сохранить структуру данных, но следует проверить, насколько генерируемые данные соблюдают распределение оригинального набора данных, чтобы избежать их выхода за пределы допустимых значений.
-
Интерактивная аугментация: Вы также можете рассмотреть возможность интерактивной аугментации, которая добавляет шум или модифицирует существующие данные, сохраняя при этом важные статистические характеристики.
Заключение
Проблемы, описанные вами, подчеркивают важность вдумчивого подхода к удалению выбросов и аугментации данных. Важно внимательно анализировать данные и принимать во внимание, как выбор определенных методов влияет на качество модели. Применение более сложных методов анализа и аугментации может привести к лучшим результатам моделей и улучшению интерпретации ваших данных.
Если у вас есть еще вопросы по этой теме или вам нужна помощь с конкретными методами, пожалуйста, дайте знать!