Один із способів забезпечити це - переконатися, що ви зашифрували всі речі, які ви робите, щоб відповідати моделі, навіть "майструючи". Таким чином, коли ви запускаєте процес неодноразово, скажімо, через перехресну перевірку, ви зберігаєте послідовність між прогонами. Це гарантує, що всі потенційні джерела варіантів будуть охоплені процесом перехресної перевірки.
Інша життєво важлива річ - забезпечити наявність репрезентативного зразка в обох наборах даних. Якщо ваш набір даних не відповідає типі даних, які ви очікуєте використовувати для прогнозування, ви можете зробити не так багато. Все моделювання спирається на припущення, що "індукція" працює - речі, яких ми не спостерігали, ведуть себе так, як ми спостерігали.
Як правило, тримайтеся подалі від складних процедур підгонки моделей, якщо (i) ви не знаєте, чим займаєтесь, і (ii) ви спробували більш прості методи, і не виявили, що вони не працюють, і як складний метод фіксує проблеми з простим методом. "Простий" і "складний" означають у значенні "простий" або "складний" для людини, яка робить примірку. Причина, яка є настільки важливою, полягає в тому, що вона дозволяє застосувати те, що мені подобається називати "нюховим тестом" до результатів. Чи правильно виглядає результат? Ви не можете «запахнути» результатами процедури, яку ви не розумієте.
ПРИМІТКА. Наступна, досить довга частина моєї відповіді ґрунтується на моєму досвіді, який знаходиться в області , можливо, можливо великий. Я майже впевнений, що наступне нижче не стосуватиметься випадків, що стосуються абоN>>p p N≈p N<p
Якщо у вас є великий вибірки, різниця між використанням та не використанням даного спостереження дуже мала, за умови, що ваше моделювання не надто "локальне". Це відбувається тому, що вплив даної точки даних, як правило, є порядком . Таким чином, у великих наборах даних залишки, які ви отримуєте від "тримання" тестового набору даних, в основному такі ж, як і залишки, отримані від його використання в наборі даних про навчання. Ви можете показати це за допомогою звичайних найменших квадратів. Залишковий результат, який ви виключаєте з виключення го спостереження (тобто, якою буде помилка тестового набору, якщо ми помістимо спостереження в тестовий набір), це , де є залишковим навчанням, а1Nietesti=(1−hii)−1etrainietrainihiiє важелем ї точки даних. Тепер ми маємо, що , де - кількість змінних в регресії. Тепер, якщо , будь-який буде надзвичайно важким , щоб зробити помітну різницю між тестовим набором та помилками навчального набору. Ми можемо взяти спрощений приклад, припустимо, (перехоплення та змінна), матриця дизайну дорівнює (як навчальні, так і тестові набори), а важіль -i∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
Де , , і . Нарешті, є стандартизованою змінною прогнозувальника і вимірює кількість стандартних відхилень від середнього значення. Отже, ми з самого початку знаємо, що похибка тестового набору буде значно більшою, ніж помилка навчального набору для спостережень "на межі" навчального набору. Але в основному це знову репрезентативне питання - спостереження "на краю" менш репрезентативні, ніж спостереження "посередині". Крім того, це замовлення . Тож якщо у вас спостережень, навіть якщоx¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5 (outlier у x-просторі за більшістю визначень), це означає , і помилка тесту занижується коефіцієнтом лише . Якщо у вас великий набір даних, скажімо, , він ще менший, , що менше . Фактично, для спостережень вам потрібно буде спостереження , щоб зробити недооцінки помилки тестового набору, використовуючи помилку навчального набору.hii=261001−26100=74100100001−26100001%10000x~=5025%
Тож для великих наборів даних використання тестового набору є не тільки неефективним, але й зайвим, доки . Це стосується OLS, а також приблизно стосується GLM (деталі різні для GLM, але загальний висновок той самий). У більш ніж вимірах "люди", що визначаються, визначаються спостереженнями з великими оцінками "основний компонент". Це можна показати, записавши Де - (ортогональна) матриця власного вектора для , з матрицею власного значення . Ми отримуємо , деN>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxiє основним балом компонентів для .xi
Якщо ваш тестовий набір має спостережень, ви отримуєте матричну версію , де і - рядки матриці проектування в тестовому наборі. Отже, для регресії OLS ви вже знаєте, які помилки "тестового набору" були б для всіх можливих розбиття даних на навчальні та тестові набори. У цьому випадку ( ) взагалі не потрібно розділяти дані. Ви можете повідомити про помилки тесту «найкращий випадок» та «найгірший випадок» практично будь-якого розміру, фактично не потрібно розділяти дані. Це може заощадити багато часу та ресурсів ПК.ketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
В основному, це все зводиться до використання штрафу, щоб врахувати різницю між помилками навчання та тестування, такими як BIC або AIC. Це ефективно досягає того ж результату, що і тестовий набір, проте ви не змушені викидати потенційно корисну інформацію. За допомогою BIC ви наближаєте докази для моделі, яка виглядає математично так:
p(D|MiI)=p(y1y2…yN|MiI)
Зауважте, що в цій процедурі ми не можемо оцінити жодних внутрішніх параметрів - кожна модель повинна бути повністю вказана або інтегровані внутрішні параметри. Однак ми можемо зробити це схожим на перехресну перевірку (використовуючи певну функцію втрати), повторно використовуючи правило продукту, а потім взявши журнал результату:Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
Це пропонує форму перехресної перевірки, але там, коли навчальний набір постійно оновлюється, одночасно спостерігається одне спостереження з тестового набору - подібне до фільтра Калмана. Ми прогнозуємо наступне спостереження з тестового набору за допомогою поточного навчального набору, вимірюємо відхилення від спостережуваного значення за допомогою умовної ймовірності журналу, а потім оновлюємо навчальний набір, щоб включати нове спостереження. Але зауважте, що ця процедура повністю перетравлює всі наявні дані, водночас переконуючись, що кожне спостереження тестується як випадок «поза вибіркою». Він також інваріантний, оскільки не має значення, що ви називаєте "спостереження 1" або "спостереження 10"; результат такий же (розрахунки можуть бути легшими для деяких перестановок, ніж інші). Функція втрат також "адаптивна" в тому, що якщо ми визначимосяLi=log[p(yi|y1…yi−1MiI)] , то різкість залежить від , оскільки функція втрат постійно оновлюється новими даними.Lii
Я б припустив, що оцінка прогнозних моделей таким чином спрацювала б досить добре.