Вопрос или проблема
У меня есть небольшой набор данных (около 100 образцов) с примерно 20 признаками, которые в основном бинарные, и несколько из них числовые (около 5). Я хотел использовать методы для увеличения обучающего набора и посмотреть, смогу ли я добиться лучшей точности тестирования. Какие методы/код я могу использовать для увеличения бинарных наборов данных?
Вы можете попробовать выборку Метрополиса-Хастингса, если это многомерные данные, или адаптивное отбрасывание, если вы еще не пробовали.
Ответ или решение
Методы увеличения бинарных наборов данных
При работе с небольшими наборами данных, особенно с такими, как ваш (~100 образцов) и с множеством бинарных характеристик, важно использовать эффективные методы увеличения данных. Увеличение данных может повысить точность модели тестирования, улучшить обобщающую способность и помочь избежать переобучения. Ниже приведены несколько методов, которые вы можете использовать для увеличения вашего бинарного набора данных.
1. Методы синтетического увеличения данных
a. SMOTE (Synthetic Minority Over-sampling Technique):
SMOTE — это метод, который генерирует новые синтетические экземпляры на основе ближайших соседей существующих данных. Хотя SMOTE традиционно используется для категориальных признаков, его можно адаптировать для бинарных функций, создавая новые наблюдения, используя линейную интерполяцию между соседними образцами.
b. ADASYN (Adaptive Synthetic Sampling):
Похожий на SMOTE, ADASYN генерирует синтетические данные, но с акцентом на те области пространства, где классы недостаточно представлены. Это может помочь улучшить баланс классов в бинарном наборе данных.
2. Шумовое изменение
Поскольку у вас есть бинарные данные, вы можете добавить случайный шум. Например, можно случайно изменить некоторые элементы данных (например, перевести 0 в 1 и наоборот) с заданной вероятностью. Это может помочь модели стать более устойчивой к небольшим изменениям в данных.
3. Перемутационные методы
Для бинарных признаков можно случайным образом перемешивать значения признаков в пределах набора данных, создавая новые комбинации. Хотя этот метод не всегда обоснован с точки зрения статистики, он может быть полезен в случаях, когда структура или взаимосвязи между признаками не критичны.
4. Генеративные модели
Использование генеративных моделей, таких как:
-
Глубокие генеративные сети (GANs): Позволяют создать новые образцы на основе существующего набора данных. GAN может быть сложным в настройке, но они мощные при создании совершенно новых данных.
-
Вариационные автоэнкодеры (VAEs): Могут сгенерировать новые примеры путем обработки латентного пространства.
5. Методы интерполяции
Используйте интерполяцию между существующими бинарными и числовыми данными. Это может включать создание новых образцов путём комбинирования значений признаков, что подходит для числовых признаков и может быть адаптировано для бинарных значений.
6. Методы выборки
a. Метрополитен — Хастинг (метод отборки):
Этот метод позволяет генерировать новые образцы на основе вероятностного перехода от существующих значений и может быть адаптирован для многомерных данных.
b. Адаптивная отборка:
При использовании адаптивной отборки вы можете создать новые примеры, контролируя процесс генерации и отборки образцов.
7. Переход к более сложным моделям
Если у вас есть доступ к более сложным моделям машинного обучения, такие как случайные леса или градиентный бустинг, вы можете использовать их для генерации предсказаний, которые будут служить синтетическими данными для обучения.
Заключение
Ваша задача по увеличению бинарного набора данных может быть решена с использованием нескольких методов, описанных выше. Выбор подходящего метода будет зависеть от конкретного характера ваших данных и требований к вашей модели. Экспериментируйте с разными подходами, чтобы выяснить, какой из них принесет наилучшие результаты в вашей задаче. Увеличение данных может значительно улучшить точность тестирования и сделать вашу модель более устойчивой к различным условиям.