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

Дърветата на решенията са наистина страхотни алгоритми, които подготвят сцената за по-напреднали алгоритми като Random Forests, LightGBM или XGBoost. По време на вашето пътуване в областта на науката за данните, дърветата на решенията вероятно са първият нелинеен алгоритъм, който ще научите, тъй като са доста обясними и ясни за разбиране. Ако все още се борите с дърво-базирани алгоритми, вижте моята статия за класификационните дървета. Надяваме се, че може да е интересно четиво, което да ви помогне

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

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

И как можете да контролирате тази склонност към прекомерно облекло? С хиперпараметри!

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

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

Максимална дълбочина

Първият хиперпараметър, в който ще се потопим, е „максималната дълбочина“. Този хиперпараметър задава максималното ниво, което едно дърво може да „спусне“ по време на процеса на обучение. Например, в изпълнението на sklearn на класификационното дърво, максималната дълбочина е зададена на нищо по подразбиране.

Какво е въздействието на липсата на максимална дълбочина по време на тренировъчния процес? Вашето дърво може „теоретично“ да падне, докато всички възли са чисти — ако приемем, че дървото ви не се контролира от друг хиперпаметър. Основен проблем с този подход е, че в крайна сметка може да вземете решения само върху един пример от вашата тренировъчна таблица. Помислете, че ако оставите дървото си да се спусне твърде много, вие разделяте пространството си рекурсивно, докато „потенциално“ изолирате всеки пример — това ще доведе до пренастройване, тъй като алгоритъмът ви ще бъде изключително добър в обучителната извадка, но няма да успее да обобщи към реален свят — крайната цел на алгоритъм за машинно обучение.

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

За да обобщим:

  • Номер на максимална дълбочина, който е твърде висок, може да доведе до прекомерно прилягане или висока дисперсия.
  • Номер на максимална дълбочина, който е твърде нисък, може да доведе до недостатъчно прилягане или голямо отклонение.

Разделяне на минимални проби

Както видяхме, ако не зададем максимална дълбочина в нашето дърво, ние в крайна сметка стимулираме нашето дърво да търси чисти възли - възли, които съдържат само един единствен клас (класификационни дървета) или една непрекъсната стойност (регресионни дървета ). Това естествено ще накара нашето дърво да основава своите решения на по-малко примери, тъй като чистите възли може да се основават на много разделяния и са склонни да страдат от „проклятието на размерността“.

Има ли други хиперпараметри, които ни помагат да избегнем използването на оскъдни данни за вземане на решения? Да, има! Един от тях е хиперпараметърът „минимално разделяне на проби“, който ви позволява да контролирате колко проби трябва да съдържа един възел, за да бъде наличен за разделяне.

Задаването на голямо число на този хиперпаметър ще накара вашето дърво да прави обобщения с по-голям брой примери, тъй като разделяте дървовиден възел само ако съдържа повече от числото, което сте задали. Това ще избегне създаването две потенциално деца с „ниска проба“, които ще се появят от възела.

Екстремен пример (с висока стойност в този хиперпаметър) би бил: ако използвате размера на обучението като „минимално разделяне на извадките“, вашият резултат е просто средната стойност на целевата променлива, защото правите извода за цялата съвкупност – разбира се , този подход би бил малко безсмислен.

Нисък брой разделяни минимални проби ще доведе до прекомерно приспособяване на вашето дърво на решенията, тъй като то ще взема решения върху по-малко примери — това има същия ефект като избирането на висока максимална дълбочина на дървото на решенията.

За да обобщим:

  • Твърде малък брой „минимално разделяне на проби“ може да доведе до прекомерно приспособяване или висока дисперсия.
  • Прекалено голям брой „минимални разделяния на проби“ може да доведе до недостатъчно приспособяване или голямо отклонение.

Лист за минимални проби

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

Това е доста подобно на хиперпаметъра, който представих преди, с единствената разлика в етапа на размера на извадката, който се опитвате да контролирате. В хиперпараметъра по-горе вие ​​контролирате броя на примерите във възел предиразделянето на възела. С листа с минимални проби вие контролирате броя на примерите във възел следкато „потенциално“ се е случило разделянето.

Чрез увеличаване на броя на минималните листа за проби вие също така предотвратявате прекомерното приспособяване, опитвайки се да избегнете проклятието на размерността.

За да обобщим:

  • Твърде малък брой „минимални листове за проби“ може да доведе до прекомерно приспособяване или висока дисперсия.
  • Твърде висок брой „минимални листа за проби“ може да доведе до недостатъчно съответствие или голямо отклонение.

Максимални характеристики

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

Това има главно два недостатъка:

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

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

В реализацията на sklearn ще намерите различни начини да изберете броя на максималните функции, които искате да бъдат взети под внимание за всяко разделяне — можете да определите това като цяло число или като част от общия брой функции (50% от всички функции, например).

За да обобщим:

  • Броят на „максималните характеристики“, който е висок, се доближава до широкото търсене на дърво на решенията без набор от параметри.
  • Броят на максималната дълбочина, който е нисък, избира по-малко произволни характеристики, които да се вземат предвид при избора на следващото разделяне на дървото.

Минимално намаляване на примесите

Друг начин да настроите дървото си и да бъдете по-стриктни с това кои разделяния са „приемливи“ за вашето дърво е да контролирате количеството примеси (стойността, която искате да минимизирате при всяко разделяне).

По подразбиране при всяко разделяне вие ​​приемате всяко намаление на примесите във вашето общо дърво. С този набор от хиперпараметри прилагате разделяне само ако това разделяне намалява примесите с x количество.

Този хиперпараметър действа директно върху функцията на разходите на дървото на решенията - дори ако разделянето намалява вашата нечистота и "теоретично" подобрява вашата класификация или регресия, той може да не се използва за напредване, тъй като не съответства на прага, който сте дефинирали. В „реализацията на sklearn“ тази стойност е зададена на 0 по подразбиране — което означава, че всяко разделяне е валидно, стига да намалява примесите, дори ако намалява тази стойност с 0,00001.

За да обобщим:

  • Малък брой „минимално намаление на примесите“ ще накара вашето дърво да раздели вашите данни на „теоретично“ валидни разделяния, но това може да е безсмислено;
  • Голямото число „минимално намаление на примесите“ ще направи тренировъчния ви процес твърде строг при избора на следващото разделение, което ще доведе до голямо отклонение.

Благодаря ви, че прочетохте! Това са 5 хиперпараметъра, които обикновено променям, когато разработвам дървета на решения. Изучаването на дървета за вземане на решения беше от съществено значение в проучванията ми върху DS и ML — това беше алгоритъмът, който ми помогна да разбера огромното влияние, което хиперпараметрите могат да имат върху производителността на вашия алго и как те могат да бъдат ключови за провала или успеха на проект.

Създадох курс за изучаване на Data Science от нулата на Udemy — курсът е структуриран за начинаещи, съдържа повече от 100 упражнения и ще се радвам да сте наоколо!