Цел

След повече от две години трудов стаж се сблъсках с различни колеги на работното място, които направиха грешки при разделянето на данните си поради невнимание по време на експерименти, което доведе до проблеми с резултатите от анализа. Затова бих искал да напиша статия, за да напомня на себе си и на другите да избягват подобни грешки. Ако вече сте запознати с процеса на машинно обучение, можете да преминете към раздела за капаните.

Насока

Извършването на добро разделяне на данни е важна стъпка в машинното обучение, която може да окаже значително влияние върху производителността на вашия модел. Ето няколко съвета за добро разделяне на данни:

  1. Разделете вашите данни на случаен принцип: Доброто разделяне на данни трябва да бъде произволно, така че всяко подмножество да представлява цялата съвкупност от данни. Случайното разделяне гарантира, че комплектите за обучение, валидиране и тестване съдържат различни примери от популацията и че моделът се научава да обобщава, вместо да запомня набора за обучение.
  2. Стратифицирайте данните си: Ако имате небалансирани класове в данните си, важно е да стратифицирате данните си по време на разделянето. Стратификацията гарантира, че всяко подмножество съдържа представителна извадка от всеки клас в данните, намалявайки риска от прекомерно или недостатъчно приспособяване на модела.
  3. Използвайте подходящо съотношение на разделяне: Размерът на комплектите за обучение, валидиране и тестване ще зависи от размера на вашия набор от данни и сложността на проблема, който се опитвате да разрешите. Обичайното разделение е 80% за обучение, 10% за валидиране и 10% за тестване, но други съотношения може да са по-подходящи за вашия конкретен проблем.
  4. Помислете за кръстосано валидиране: Кръстосаното валидиране е техника, която включва разделяне на данните многократно и обучение на модела върху различни подгрупи от данните. Кръстосаното валидиране може да помогне за смекчаване на пренастройването и да гарантира, че моделът е устойчив на вариации в данните.
  5. Бъдете последователни: Важно е да използвате едно и също разделение на данните за всеки модел, който обучавате, така че да можете да сравните тяхната ефективност точно. Това означава, че не трябва да променяте съотношението на разделяне или методологията между моделите.

Клопки

  1. Идентифицируема информация: Когато вашите данни съдържат идентифицируема информация, данните, принадлежащи към същата самоличност, трябва да бъдат поставени в същия набор. Тази ситуация обикновено е често срещана при медицински изображения или данни за изображения, свързани с човешки лица. Да приемем, че модел се обучава на CT изображения на човек А и моделът е в състояние да открие лезия. Оказва се обаче, че на лице А всъщност са направени две компютърни томографии и ако второто сканиране бъде поставено в набора от данни за валидиране или тест, моделът може да се представи по-добре от очакваното поради виждането на подобни изображения. Това може да доведе до надценяване на производителността на модела.

2. Специфичност: Когато има няколко точки от данни, които се различават значително, може да е желателно да ги присвоите на тестовия набор. Ако имате 100 изображения и 5 от тях са с различен размер на пикселите в сравнение с останалите 90 и присвоите тези 5 изображения към набора за обучение, моделът може да не научи добре характеристиките на тези 5 изображения поради малкия им брой в сравнение с останалите 90 изображения в комплекта за обучение. Когато се оценява производителността на модела, може да е трудно да се открие, че моделът не се представя добре при определени размери на пикселите, ако няколкото изображения с различни размери на пикселите са включени в набора за обучение и не са разделени в конкретен набор за тестване.

И тогава се случва трагедията. Когато позволим на нашите клиенти или партньори да използват нашия модел с увереност, те може да открият, че производителността е много лоша за някои конкретни размери на пикселите на изображенията. Ако имаме късмет, спокойно ще ни дадат обратна връзка. Ако не, те ще ни попитат защо не сме проверили данните първо или не сме посочили проблема в доклада. Това може да накара клиентите или партньорите да почувстват, че крием нещо или да си помислят, че не сме внимателни.

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

Ето някои проверки, които трябва да се направят, преди да се извърши разделяне на данни, за да се гарантира успешен експеримент с машинно обучение:

  • Небалансирано разпределение на данни: Когато етикетите в набора от данни са небалансирани, ако данните не са равномерно разпределени във всички набори при разделянето на данните, това може да доведе до отклонение на модела и невъзможност за изучаване на всички характеристики на категорията.
  • Изтичане на данни: Когато използвате информация, свързана с обучение на модел или тестване в набора от данни, това може да причини влошаване на производителността в реалната производствена среда. Например нормализиране или стандартизиране на целия набор от данни, преди разделянето му на набори за обучение и тестване, или извършване на избор на функции върху набора за обучение и прилагане на същия избор на характеристики върху набора за тестване.
  • Размер на набора от данни: Размерът на набора от данни оказва значително влияние върху ефективността на обучението и тестването на модела. Ако наборът от данни е твърде малък, това може да доведе до пренастройване и да повлияе на способността за обобщаване на модела. Ако наборът от данни е твърде голям, времето за обучение и тестване може да се удължи. Размерът на набора от данни също влияе върху типа разделяне на данни, който можете да използвате, като например стратегия за изключване на един за малки набори от данни.
  • Качество на набора от данни: Ако има шум, извънредни стойности или липсващи стойности в набора от данни, това ще се отрази на производителността и способността за прогнозиране на модела. Преди да разделите набора от данни, данните трябва да бъдат предварително обработени, за да се гарантира качеството на набора от данни.
  • Неправилно етикетиране на набора от данни: Ако етикетирането в набора от данни е неправилно, това може да доведе до намалена прогнозна ефективност на модела. Преди да разделите набора от данни, е необходимо да проверите дали етикетирането в набора от данни е правилно.

Заключение

Въпреки че всичко, споменато по-горе, изглежда очевидно и разумно, въз основа на моя минал опит, дори старши инженери често изпитват неуспехи в разработката или експериментирането поради липса на внимание към детайлите в началото. Дори някои продукти на платформа за обучение на AI не обръщат внимание на някои детайли, които могат да доведат до погрешна оценка на производителността на модела.

Най-болезнено е, когато по време на среща всички обсъждат грешни заключения, базирани на грешни експерименти, а моят израз е следният:

И тогава мина още една седмица.