Що є більш підходящим способом створення набору для витримки: видалити деякі предмети або видалити спостереження з кожного предмета?


11

У мене є набір даних з 26 функціями та 31000 рядків. Це набір даних 38 предметів. Це для біометричної системи. Тому я хочу вміти виявляти суб'єктів.

Щоб мати набір для тестування, я знаю, що я повинен видалити деякі значення.

Отже, що краще робити і чому?

  1. (a) тримати 30 предметів як навчальний набір та видаляти 8 предметів як тестовий набір

  2. (b) зберігайте 38 предметів, але видаліть кілька рядків з кожного. Тож наприкінці я закінчу навчальний набір: 24800 рядків з 38 предметів І тестовий набір: 6200 рядків з 38 предметів


1
Якщо ви хочете визначити суб'єктів, як ви можете видалити "цілі" предмети для тестового набору? Модель, що навчається на 30 предметах, зможе визначити лише ці 30 предметів, а не 8 предметів, яких вона ніколи не бачила. Ваше пояснення щодо "біометричної системи" може зробити більшість існуючих відповідей непридатними.
амеба

1
Було б корисно уточнити: (1) точну мету, яку змінну результатів ви намагаєтеся передбачити (2) які у вас є дані і, можливо, (3) який підхід ви використовуєте.
Меттью Ганн

Як тільки ви навчили систему, як вона буде розгорнута? Чи є мета використовувати його на людях, які не є у навчальному наборі? Чи будуть нові дані від тих самих 38 предметів? Я намагаюся зрозуміти, як слід використовувати систему та чи є ви у випадку (1) або випадку (2) відповіді @ AmiTavory.
Меттью Ганн

@amoeba Я не дуже досвідчений :( Я задав питання, тому що рекомендується розділити дані (навчання, перевірка і тестування). Тому потрібно видалити деякі предмети або деякі спостереження за кожним чи АБО використовувати набір даних, доступних в Інтернеті. Отже 1) Я хочу вміти виявляти суб'єктів. Кому належать риси. 2) Я використовую ЕЕГ (тому часові ряди). 3) Я використовую Стратифіковану складку. Але це тому, що я отримав більш високу точність з ним, ніж з kfold. Я знав лише k-складку, стратифіковану та відхідну. Як я завжди думав, це компенсувати дисбаланс у даних. Але я відкритий для пропозицій.
Aizzaac

@MatthewGunn Я думаю, що використовувати його не вдасться людям, які не мають даних. Це було б дуже складно, але дуже цікаво, якби досягти. Тому я б сказав, випадок 1.
Aizzaac

Відповіді:


9

Я вважаю, що відповідь Меттью Ганна є правильною, але мені здається, що "рекордне" резюме може охопити два різні поняття:

  1. Записи випадковим чином розподіляються на складки, незалежно від теми чи часу.

  2. Записи поділяються на часові складки, при цьому жодна складка не використовується для тренувань, яка містить дані після початку тестової складки.

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

Можливо, автокореляція часових рядів компрометує варіант №2. Можливо, елемент часу в моделі не є дуже важливим, і тому "минулі" та "майбутні" спостереження, ймовірно, будуть однаковими. У цих випадках ані №1, ані №2 це шлях.

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

У прикладі ОП це звучить як тематика - це добре. Але якщо б тенденції та проблеми часового ряду були частиною моделі, я б спробував використати розділ на основі предметів і часу, щоб ви тренувались на одному наборі предметів до певного моменту, а потім перевіряйте інші предмети після що конкретний момент часу.


1
+1 Це дуже важливий момент, що якщо є структура часових рядів, ви не повинні використовувати майбутнє для прогнозування минулого! Це поширена та небезпечна помилка у фінансах, яка використовує інформацію, недоступну в момент (оскільки вона не відома до майбутнього) для прогнозування прибутку, за замовчуванням тощо ... в момент . Зі складними проектами та тоннами даних можна зробити дуже просто помилки та дозволити вашому алгоритму тренувань ефективно досягти максимуму в майбутньому, досягти результатів неможливо в реальності. тtt
Меттью Ганн

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

3
@cbeleites: Погоджено. Це те, що я зробив у недавньому проекті: розділити дані на навчальні та тестові предмети, а для тестування використовувати лише попередні дані за навчанням та дані після дати, тому ми тестували теми, які ми ніколи не мали бачили, протягом певного періоду ми ще не бачилися. Ви хочете складати колоду проти себе - не переходячи за борт - якщо хочете справді знати, наскільки добре буде працювати ваша модель на практиці.
Уейн

16

Критичне відмінність , чи хочете ви:

  1. [Найпоширеніший випадок]: Побудуйте оцінку ефективності за новими темами (виходячи з тієї ж сукупності, що і ваші дані).
  2. Побудуйте оцінку ефективності за новими спостереженнями з тих же предметів, що і у вашій вибірці.

Набагато частішим випадком є ​​номер справи (1). Наприклад, як добре ви прогнозуєте інфаркти для того, хто потрапляє до відділення швидкої допомоги? І якщо ви маєте випадок (1), ви майже напевно повинні робити (a) предметну перехресну перевірку, а не (b) перехресну валідацію записів. Виконання рекордної перевірки у випадку (1), ймовірно, призведе до необґрунтовано високих, хибних оцінок ефективності нових предметів.

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

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

Чому предметна перехресна перевірка, а не рекордна?

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

Наприклад, цей останній документ називає рекордно крос-валідацію, `` Вуду машинного навчання ".

Що робити з такою кількістю предметів, хоча ...

Можливо, деякі коментатори, більш досвідчені з перехресною валідацією, ніж я, могли би приєднатися, але для мене це схоже на можливого кандидата на (він же залишає одну перехресну перевірку)?k=n

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

Якщо випробування всі дуже різні, можливо, ви матимете значення і, можливо, захочете поставити якомога більше незалежних предметів у навчальний набір.n=38


Я знаю, що набір даних повинен бути розділений на 3: навчання, перевірка та тестування. У крос-валідації використовується "навчання та валідація". Набір витримки - це "тестування". То ви пропонуєте: для навчання та перевірки використовуйте 37 предметів та тестуйте з 1 предмету? І що я можу зробити будь-який тип перехресної перевірки: k-fold, стратифікований тощо?
Aizzaac

1
ОП внесла редакцію, сказавши, що "Це для біометричної системи. Тому я хочу бути в змозі визначити суб'єктів". Якщо я правильно розумію, що це означає, це означає, що лише резюме, що веде до записів, має сенс, оскільки мета - передбачити ідентифікатор теми на основі вибірки.
амеба

@amoeba Тільки якщо нові дані надійдуть від тих самих 38 предметів. Напр. якщо система повинна сказати, чи збігаються відбитки пальців, чи не збігаються, і вона буде розгорнута біля вхідних дверей мого будинку (тобто повинна ідентифікувати незнайомців як незнайомців), навчання та тестування з тих самих предметів було б проблематичним (ви б хотілося б знати, як часто він дає доступ до людей, яких він ніколи не бачив, ніколи не навчався). Я погоджуюся, що "Це для біометричної системи" викликає питання ...
Меттью Ганн

3

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

  1. Цілком можливо, що в майбутньому кожен суб'єкт спочатку прийде в лабораторію сну і забезпечить вам якість сну на кілька ночей. Слідом за цим вам потрібно буде передбачити якість сну в майбутньому для цих суб'єктів . У цьому випадку ви б використали свій варіант b). В sklearn, ви можете використовуватиsklearn.model_selection.StratifiedShuffleSplit

  2. Цілком можливо, що в майбутньому кілька суб'єктів спочатку прийдуть в лабораторію сну і забезпечать вам якість сну на кілька ночей. Виходячи з цього, ви не зможете передбачити якість сну в майбутньому ночі для інших предметів . У цьому випадку ви б використали свій варіант а). В sklearn, ви можете використовуватиsklearn.cross_validation.LeavePLabelOut


1
Реально, однак, це питання, безумовно, ваш випадок (2) та варіант (а), тобто предметне перехресне підтвердження - те, що підходить.
Меттью Ганн

1
@MatthewGunn Ти маєш рацію. Справа 2 набагато частіше зустрічається. Я повинен сказати , що я б запустити у випадках реальному житті , де 1 був правильний вибір.
Ami Tavory

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

Що ви думаєте з цього приводу: я використовую 38 предметів з будь-яким типом перехресної перевірки; і щоб перевірити, чи мою модель можна використовувати з різними предметами; Я використовую Інтернет-набір даних? Я думаю, що ідея розробленого набору полягає у створенні "нового" набору даних для тестування моделі.
Aizzaac

3

Щоб прозвучити, я припускаю, що програма передбачає передбачення невідомих предметів. Це означає (незалежно від того, чи є у вас часові ряди чи впорядковані неодноразові повторні вимірювання), що розщеплення потрібно зробити так, щоб невідомі суб'єкти були протестовані => розщеплення а)

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

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

  • Ви НЕ робити незмивний одну тему-аут. Це ні дозволяє виміряти стабільність моделі, ні зменшити її. Крім того, існують ситуації, коли він зазнає великої песимістичної упередженості через невеликий розмір вибірки (на відміну від мінімального песимістичного ухилу, який очікується).

  • Якщо ви використовуєте типові показники класифікації достоїнств, такі як точність, чутливість, специфічність тощо. Завдання полягає в правильній класифікації предметів: будьте уважні, що вирішальною проблемою є вимірювання результативності, оскільки невизначеність результатів тесту залежить від абсолютної кількості тестових випадків. Як приклад, спостереження за 17 правильними прогнозами з 17 справді позитивних суб'єктів відповідає інтервалу довіри 95% для чутливості в межах приблизно від 80% до 100%.
    Іншими словами, ви не зможете зробити оптимізацію моделей, керовану даними, на основі цього.

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

  • Один і той же розрахунок для біноміального довірчого інтервалу для запропонованих 5 (3) випробувань / оптимізації / валідації дає 95% ci для всіх правильних, починаючи від 50% (30%), тому на основі ідеальних результатів тесту Ваш інтервал довіри все одно буде включати 50 / 50 вгадувань!

Про ці теми ми писали кілька робіт:

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