Методи поводження з неповними / відсутніми даними


12

Моє питання спрямоване на методи боротьби з неповними даними під час навчання класифікатора / моделі / підгонки.

Наприклад, у наборі даних із кількома сотнями рядків, у кожному рядку якого, скажімо, п'ять вимірів та мітка класу як останній елемент, більшість точок даних виглядатиме так:

[0,74, 0,39, 0,14, 0,33, 0,34, 0]

Деякі можуть виглядати приблизно так:

[0,21, 0,68,?, 0,82, 0,58, 1]

Отже, саме ці типи точок даних є основою цього питання.

Моєю початковою причиною задавати це питання була проблема прямо переді мною; однак, перш ніж надсилати моє запитання, я вважав, що це може бути кориснішим, якщо я переформулюю його, щоб відповіді були корисні для більшої частини Спільноти.

Як простий евристик, давайте розділимо ці методи обробки даних на основі того, коли під час потоку обробки вони використовуються - перед введенням в класифікатор або під час (тобто, техніка знаходиться всередині класифікатора).

Найкращий приклад, який я можу придумати для останнього, - це розумна техніка «тристороннього розгалуження», яка використовується у Деревах рішень.

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

Нещодавно переглядаючи мої особисті замітки про "відсутність обробки даних", я помітив, що у мене досить вражаючий перелік методик. Я просто підтримую ці замітки для загального спокою, і якщо молодший колега запитає мене, як поводитися з відсутніми даними. Насправді я фактично не використовую жодного з них, крім останнього.

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

  2. Реконструкція : оцініть пропущені точки даних за допомогою автоасоціативної мережі (просто нейромережа, в якій розміри вхідного та вихідного шарів рівні - іншими словами, вихід має той же розмір, що і вхідний); Ідея тут полягає в тому, щоб навчити цю мережу повноцінними даними, а потім подати в неї неповні шаблони та прочитати пропущені значення з вихідних вузлів.

  3. Запуск завантаження : (резюме не потрібно, я не повинен думати, враховуючи, що це використовується в іншому місці в статистичному аналізі).

  4. Заперечення : тихо видаліть точки з відсутніми / пошкодженими елементами зі свого навчального набору і зробіть вигляд, що їх ніколи не було.


2
Існує також підхід "зменшеної моделі", коли ви тренуєте класифікатор для кожного шаблону пропущених значень, що виникають під час тестування. IE, щоб зробити передбачення для x, де i-го атрибута відсутній, видаліть i-й атрибут з усіх примірників навчальних даних і тренуйтеся на цьому. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Ярослав Булатов

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

@Wayne, ти будеш так люб'язний вказати мені на якийсь документ, що описує ці modernметоди? Спасибі
Енцо

У пакеті R miceє приємний вступний документ про JSS: jstatsoft.org/article/view/v045i03 . (Ви повинні вважати вступ корисним, навіть якщо ви не використовуєте R.) У пакеті R Ameliaє приємна віньєтка, яка входить до цього пакету. Ці два пакети відрізняються деталями, але обидва використовують багаторазову імпутацію.
Уейн

Відповіді:


3

Я дав цю відповідь на інше питання , але це може бути застосоване і тут.

"Існує досить нова область досліджень під назвою" Завершення матриці " , яка, ймовірно, робить те, що ви хочете. Дійсно приємне вступ дано в цій лекції Еммануеля Кандеса"

По суті, якщо ваш набір даних має низький ранг (або приблизно низький ранг), тобто у вас є 100 рядків, але фактична матриця має невеликий ранг, наприклад 10 (або лише 10 великих сингулярних значень), ви можете використовувати завершення матриці для заповнення відсутнього дані.


2

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

Різні класифікаційні підходи відрізняються своєю здатністю обробляти відсутні дані і, залежно від деяких інших факторів ^, я можу просто спробувати №5: використовувати класифікатор, який не задушиться в цих НС. Частина рішення про проходження цього маршруту може також включати роздуми про те, наскільки ймовірно, що в майбутньому з'явиться подібна частка НС, до яких ви будете застосовувати модель. Якщо NA для певних змінних будуть збігатися з курсом, то, можливо, є сенс просто прокрутити їх (тобто не будувати прогнозну модель, яка передбачає більш інформативні дані, ніж те, що ви насправді маєте, або ви ' буду жартувати про те, наскільки насправді це буде). Насправді, якщо я не переконаний, що NA відсутня випадково, я б схильний перекодувати нову змінну (або новий рівень, якщо вона "

Якби у мене були вагомі підстави використовувати класифікатор, який не сприймав відсутні дані дуже добре, тоді мій підхід був би №1 (багаторазова імпутація), прагнучи знайти класифікаційну модель, яка поводилася б аналогічно добре для всіх імпутованих наборів даних.

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


1

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

Використання байесівських моделей може бути кваліфіковано як імпутація під широким сенсом цього терміна, але я подумав згадати його, оскільки він не з’явився у вашому списку.

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