Як генерувати синтетичний набір даних за допомогою моделі машинного навчання, засвоєної з оригінальним набором даних?


19

Взагалі модель машинного навчання побудована на наборах даних. Мені хотілося б знати, чи є який-небудь спосіб генерувати синтетичний набір даних за допомогою такої підготовленої моделі машинного навчання із збереженням оригінальних характеристик набору даних?

[оригінальні дані -> побудувати модель машинного навчання -> використовувати модель ml для отримання синтетичних даних .... !!!]

Це можливо ? Будь ласка, вкажіть мене на відповідний ресурс, якщо це можливо.

Відповіді:


27

Загальний підхід полягає в тому, щоб зробити традиційний статистичний аналіз на вашому наборі даних, щоб визначити багатовимірний випадковий процес, який генеруватиме дані з однаковими статистичними характеристиками. Гідність цього підходу полягає в тому, що ваші синтетичні дані не залежать від вашої моделі ML, але статистично «близькі» до ваших даних. (див. нижче для обговорення вашої альтернативи)

По суті, ви оцінюєте багатоваріантний розподіл ймовірностей, пов'язаний з процесом. Після того, як ви оціните розподіл, ви можете генерувати синтетичні дані методом Монте-Карло або подібними повторними методами відбору проб. Якщо ваші дані нагадують деякий параметричний розподіл (наприклад, лонормальний), такий підхід є простим та надійним. Хитра частина полягає в оцінці залежності між змінними. Дивіться: https://www.encyclopediaofmath.org/index.php/Multi-dimensions_statistic_analysis .

Якщо ваші дані нерегулярні, то непараметричні методи простіші та, ймовірно, більш надійні. Багатовимірна оцінка щільності ядра - це метод, який є доступним і привабливим для людей, що мають ML. Загальне вступ та посилання на конкретні методи див. На веб-сторінці : https://en.wikipedia.org/wiki/Nonparametric_statistics .

Щоб підтвердити, що цей процес спрацював для вас, ви знову проходите процес машинного навчання із синтезованими даними, і вам слід додати модель, яка досить близька до оригіналу. Так само, якщо ви вводите синтезовані дані у вашу модель ML, ви повинні отримати виходи, які мають аналогічний розподіл, як і вихідні результати.

Навпаки, ви пропонуєте це:

[оригінальні дані -> побудувати модель машинного навчання -> використовувати модель ml для отримання синтетичних даних .... !!!]

Це робить щось інше, ніж метод, який я щойно описав. Це дозволило б вирішити зворотну задачу : "які входи можуть генерувати будь-який заданий набір вихідних моделей". Якщо ваша модель ML не надто пристосована до ваших оригінальних даних, ці синтезовані дані не будуть виглядати як ваші вихідні дані в будь-якому відношенні або навіть більшість.

Розглянемо модель лінійної регресії. Одна і та ж модель лінійної регресії може мати однакове пристосування до даних, що мають дуже різні характеристики. Знаменита демонстрація цього відбувається через квартет Anscombe .

Усі чотири набори ідентичні, коли їх вивчають, використовуючи просту підсумкову статистику, але значно відрізняються під час графіка

Думаючи, що я не маю посилань, я вважаю, що ця проблема може виникнути також при логістичній регресії, узагальнених лінійних моделях, кластеризації SVM та K-засобів.

Існують деякі типи моделей ML (наприклад, дерево рішень), де можна повернути їх для отримання синтетичних даних, хоча це потребує певної роботи. Див.: Створення синтетичних даних для відповідності шаблонів видобутку даних .


час прочитати більше про Монте-Карло та багатовимірному статистичному аналізі ... дякую за приємне пояснення .. !!!
hadooper

2

Існує дуже поширений підхід до боротьби з незбалансованими наборами даних, що називається SMOTE, який генерує синтетичні зразки з класу меншин. Він працює, обурюючи вибірки меншин, використовуючи відмінності з сусідами (помножені на деяке випадкове число між 0 і 1)

Ось цитата із цього оригінального паперу:

Синтетичні зразки генеруються наступним чином: Візьміть різницю між розглянутим векторним ознакою (зразком) та його найближчим сусідом. Помножте цю різницю на випадкове число між 0 і 1 і додайте її до розглянутих векторних ознак.

Ви можете знайти більше інформації тут .


1

Збільшення даних - це процес синтетичного створення зразків на основі наявних даних. Існуючі дані дещо збурені для створення нових даних, які зберігають багато властивостей оригінальних даних. Наприклад, якщо дані є зображеннями. Пікселі зображень можуть бути замінені. Багато прикладів методів доповнення даних можна знайти тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.