Машиналарды оқыту алгоритмдері: әр түрлі алгоритмдерді салыстыру және оларды қашан қолдану керек

Машиналық оқытуда алгоритмдердің әр түрлі түрлері бар. Біз осы алгоритмдердің барлығын көбіне нені қолдану керектігін ойламай-ақ қолдануға тырысамыз. Осы алгоритмдердің арасындағы айырмашылықтарды біле отырып, біз оларды қолдануды оңтайландырамыз және қай сценарийде біз қолданатынымызды білеміз.

Бұл алгоритмдер ерекшеленетін белгілі бір параметрлер бар. Осы параметрлерді және олардың қолданылуын түсіну бізге дәлдікке жетуге көмектеседі және біздің болжамымыздағы қателіктерді азайтады.

Реттеу немесе артық мөлшерлеу

RF және GBM екеуі де ансамбльдік әдіс, сондықтан сіз көптеген кішігірім классификаторлардан жіктеуіш шығарасыз. RF асып кетуге бейім шешім қабылдау ағаштарын қолданады. Жоғары дәлдікке қол жеткізу үшін РФ сөмкелер негізінде олардың көп санын құруды шешеді. Негізгі идея - мәліметтерді қайта-қайта өзгерту және әрбір үлгі бойынша жаңа классификаторды дайындау. Әр түрлі жіктеуіштер мәліметтерді басқаша толтырады және дауыс беру арқылы бұл айырмашылықтар жойылады. Әр түрлі шешім ағаштарының нәтижелерін ортаға салу немесе үйлестіру процесі артық кию мәселесін шешуге көмектеседі. Кездейсоқ орман, сонымен қатар, шешім қабылдау ағашына қарағанда аз айырмашылыққа ие. Бұл жалғыз шешім ағаштарына қарағанда деректер элементтерінің үлкен ауқымы үшін дұрыс жұмыс істейтінін білдіреді.

GBM - әлсіз жіктеуіштерге негізделген күшейту әдісі. Идея - классификаторды бір уақытта қосу, келесі классификатор қазірдің өзінде дайындалған ансамбльді жақсарту үшін оқытылады. Әрбір итерация үшін РФ үшін жіктеуіш басқаларына тәуелсіз оқытылатынына назар аударыңыз.

Демек, GBM-де жүйелендіру қарастырылмаған, бірақ деректерді бірнеше рет қайта қарастырудың арқасында РЖ алгоритмі біршама реттелген.

Стандартты GBM енгізу XGBoost сияқты жүйелілікке ие емес, сондықтан ол артық маталарды азайтуға көмектеседі. Шын мәнінде, XGBoost сонымен бірге «жүйелі түрде күшейту» әдісі ретінде де белгілі. Алгоритмдерді күшейту, егер ағаштардың саны өте көп болса, артық етуі мүмкін.

SVM сызықтық бөліну кезінде логистикалық регрессияға ұқсас және пайдаланылған ядроға байланысты сызықтық емес шекараны жақсы орындайды. SVM ядроға байланысты артық / жаттығу мәселелеріне бейім. Неғұрлым күрделі ядро ​​модельге сәйкес келмейді.

Жоқ құндылықтар

XGBoost жетіспейтін мәндерді іштей өңдеуге арналған. Жетіспейтін мәндер, егер жоқ мәндердің кез-келген тенденциясы болса, оны модель ұстайтындай өңделеді. Пайдаланушыдан басқа бақылауларға қарағанда басқа мән беру керек және оны параметр ретінде беру қажет. XGBoost әр түйіннің жетіспейтін мәнін кездестіретіндіктен және болашақта жетіспейтін мәндерді анықтау үшін қандай жолға түсу керектігін білетіндіктен әр түрлі нәрселерді сынап көреді.

Кездейсоқ орман құндылық атрибуттары жоқ мәліметтер жиынтығы үшін жақсы.

SVM жетіспейтін мәліметтермен жақсы нәтиже бермейді. SVM іске қоспас бұрын жетіспейтін мәндерді есептеу әрқашан жақсы.

Naive Bayes деректер тапшылығымен жақсы нәтиже көрсетпейді. Мүмкіндіктің кез-келген мүмкін мәні үшін ықтималдылық мәнін жиіліктегі тәсілмен бағалау керек. Бұл ықтималдықтың 0 немесе 1-ге апаруы мүмкін, бұл өз кезегінде санның тұрақсыздығына және нашар нәтижелерге әкеледі.

Шығын функциясы

Регрессияны жоғалту функциялары:

L1 және L2 - машинаны оқытудағы екі функция, олар қатені азайтуға қолданылады. L1 жоғалту функциясы ең аз абсолютті ауытқуларды білдіреді. LAD ретінде де белгілі. L2 жоғалту функциясы төртбұрышты қателіктерге арналған. Сонымен қатар LS ретінде белгілі.

L1 жоғалту функциясы

L1 жоғалту функциясы нақты мән мен болжамды мән арасындағы барлық абсолютті айырмашылықтардың қосындысы болатын қатені азайту үшін қолданылады.

L2 жоғалту функциясы

L2 жоғалту функциясы нақты мән мен болжанған мән арасындағы барлық квадраттық айырмашылықтардың қосындысы болатын қатені азайту үшін қолданылады.

Huber ('huber'): ең аз квадраттар мен ең аз абсолютті ауытқуларды біріктіретін тағы бір сенімді шығын функциясы; сатушыларға қатысты сезімталдықты бақылау үшін альфа қолданыңыз.

Жіктеуді жоғалту функциялары:

Биномдық ауытқу ('ауытқу'): бинарлық жіктеу үшін теріс биномдық лог-ықтималдылықты жоғалту функциясы (ықтималдылық бағаларын береді). Бастапқы модель қарама-қарсы коэффициентпен берілген.

Multinomial ауытқу ('ауытқу'): n_classes өзара эксклюзивті сыныптары бар көп классты жіктеуге арналған теріс мультимомиалды лог-ықтималдылықты жоғалту функциясы. Ол ықтималдылық бағасын береді. Бастапқы модель әр сыныптың алдын-ала ықтималдығы бойынша беріледі. Әрбір итерация кезінде n_класстарда регрессиялық ағаштар салынуы керек, бұл GBRT-ді көп санды мәліметтер жиынтығы үшін тиімсіз етеді.

Экспоненциалды шығын ('экспоненциалды'): AdaBoostClassifier функциясымен бірдей шығын. «Ауытқуға» қарағанда бұрмаланған мысалдарға анағұрлым берік; тек екілік классификация үшін пайдалануға болады.

Векторлық машинаны қолдау

SVM-де жоғалту функциясы - топсаның жоғалуы

Soft Margin SVM үшін жоғалту функциясы бар

Hard Margin SVM үшін жоғалту функциясы бар

Random Forest және XG Boost екеуінде де жоғалту функциясын бұзуға болады.

Ағаштарды кесу

GBM-де ағаш кесу теріс шығынға тап болғаннан кейін тоқтайды.

XGBoost ағашты максималды жылдамдыққа дейін өсіреді, содан кейін жоғалту функциясы жақсарғаннан кейін артқа қарай кесіледі.

Айырмашылық және биас

Жақсарту әлсіз оқушыларға негізделеді (жоғары пікір, төмен дисперсия). Шешім ағаштары тұрғысынан, әлсіз оқушылар таяз ағаштар болып табылады, кейде олар тіпті шешім қабылдағанға дейін аз болады (екі жапырағы бар ағаштар). Көтеру қателіктерді негізінен бұрыс пікірлерді азайту арқылы азайтады (сонымен қатар көптеген модельдерден шыққан нәтижелерді жинақтау арқылы дисперсия).

Екінші жағынан, кездейсоқ орман сіз айтқандай толықтай өсетін ағаштарды пайдаланады (төмен бұрышы, дисперсиясы). Қателіктерді азайту тапсырмасын керісінше шешеді: дисперсияны азайту арқылы. Айырмашылықты азайту үшін ағаштар өзара байланыстырылмаған, бірақ алгоритм ауытқушылықты азайта алмайды (бұл ормандағы жеке ағаштың пікірінен сәл жоғары). Демек, үлкен, кесілмеген ағаштарға деген қажеттілік, алдымен бұрыс пікірлер мүмкіндігінше төмен болады.

K-ге жақын көршілер алгоритмі төмен және үлкен дисперсияға ие, алайда сауданы k мәнін көбейту арқылы өзгертуге болады, ол болжауға ықпал ететін көршілер санын көбейтеді және өз кезегінде модельдің бұрмалануын арттырады.

Қолдау векторының алгоритмінің төмен бұрышы және жоғары дисперсиясы бар, бірақ сатылымды C параметрін жоғарылату арқылы өзгертуге болады, бұл оқыту мәліметтерінде рұқсат етілмеген жақсаруды арттыратын, бірақ дисперсияны азайтуға мүмкіндік беретін C параметрін көбейту арқылы өзгеруі мүмкін.

Сызықтық регрессияда нүктелер арқылы түзу сызық сызамыз. Бұл жол, әрине, болжанатын шамалардың жиынтығын білдіреді, статистикалық нөлдік нөлге ие. Бірақ біршама жоғары (мүмкін) жоғары - яғни, бұл мәліметтерге сәйкес келмейді. Келесі, біз деректерді жоғары дәрежелі полиномдық сплайнмен модельдейміз. Біз полиномдық дәрежені сәйкестік жақсарғанша көбейтеміз (және дәлдікпен, дәлірек айтқанда). Қазір бізде нөлдікке бейім жағдай бар, бірақ дисперсия өте жоғары. Жоғары дәрежелі полиномдар үлкен дисперсиямен және төмен бұрыспағымен күрделірек. Логистикалық регрессияның төмен дисперсиясы және жоғары бұрышы бар.

Икемділік

XGBoost пайдаланушыларға таңдамалы оңтайландыру мақсаттары мен бағалау критерийлерін анықтауға мүмкіндік береді. Бұл модельге жаңа өлшем қосады және біздің қолымыздан келетін ештеңе жоқ.

Крестті тексеру

XGBoost қолданушыға күшейту процесінің әр итерациясында кросс-валидацияны жүргізуге мүмкіндік береді, осылайша бір жүгірісте арттырылатын итерациялардың нақты оңтайлы санын алу оңай.

Бұл GBM-ге ұқсамайды, онда біз торды іздеуді жүргізуге мәжбүрміз және тек шектеулі мәндерді тексеруге болады.

Әдетте, кездейсоқ орман жаттығулар мен демалу үшін 2/3 деректерді, ал регрессияға тестілеу үшін, жіктеу кезінде жаттығуға және демалуға арналған 70% дерлік деректерді жинайды. Әрбір ағаштың бөлінуі кезінде ауыспалы таңдауды кездейсоқтық ететіндіктен, ол өзгеге ұқсамайды. басқа модельдер. Сондай-ақ, модельді тексеру үшін пайдаланылмаған (OOB) бағалауды қолдануға болады.

Есептеу қуаты

XGBoost параллель өңдеуді жүзеге асырады және GBM-мен салыстырғанда жылдамырақ. Көтеру - бұл дәйекті процесс, бірақ оны әлі де параллельдеуге болады. Әрбір ағашты алдыңғы ағаштан кейін ғана жасауға болады және әр ағаш барлық өзектерді пайдаланып жасалады. Бұл XGBoost-ты өте жылдам алгоритм етеді.

Кездейсоқ ормандардың басты кемшілігі - олардың күрделілігі. Шешім ағаштарына қарағанда оларды салу әлдеқайда қиын және уақытты қажет етеді. Олар сонымен бірге көп есептеу ресурстарын қажет етеді және олар интуитивті емес. Шешім ағаштарының үлкен коллекциясы болған кезде, енгізілген деректердегі қарым-қатынасты интуитивті түсіну қиын. Кездейсоқ ормандарды қолдану арқылы болжау процесі басқа алгоритмдерге қарағанда уақытты қажет етеді.

Naive Bayes есептеу бойынша жылдам және қарапайым. Ол сонымен қатар көп класты болжауда жақсы орындайды.

Есептеудің құны өте жоғары, өйткені біз әр сұрау данасының барлық жаттығулардың қашықтықтарын есептеуіміз керек. Бұл есептеу құнын төмендету үшін кейбір индекстеу (K-D ағашы) қолданылуы керек. Жалқау оқу алгоритмі KNN есептеулерінің көбін жаттығу кезінде емес, тестілеу кезінде жасауды талап етеді. Бұл үлкен деректер жиынтығы үшін қиындық тудыруы мүмкін.

Деректер кестесінің ерекшеліктері

SVM Егер бізде үлкен мәліметтер жинақталған болса, ол жақсы нәтиже бермейді, өйткені талап етілетін жаттығу уақыты жоғары. Деректер жиынтығы көбірек шу болса, яғни мақсатты кластар бір-біріне сәйкес келсе, ол жақсы жұмыс істемейді. Бұл өлшемдердің саны үлгілер санынан көп болған жағдайда тиімді.

Naive Bayes жоғары өлшемдермен жақсы жұмыс істейді. Ең үлкен кемшілігі - Naive Bayes классификаторы сіздің мәліметтеріңізді тарату формасына өте қатты болжам жасайды, яғни шығыс класын ескере отырып, екі функция да тәуелсіз. Ол сандық айнымалыға (ларға) қарағанда категориялық енгізу айнымалы болған жағдайда жақсы жұмыс істейді. Сандық айнымалы үшін қалыпты үлестіру қабылданады (қоңыраулар қисығы, бұл күшті болжам). Егер категориялық айнымалының оқу мәліметтер жиынтығында байқалмаған санаты болса (тест мәліметтері жиынтығында), онда модель 0 (нөл) ықтималдылықты тағайындайды және болжау жасай алмайды. Бұл көбінесе «Нөлдік жиілік» деп аталады. Мұны шешу үшін біз тегістеу техникасын қолдана аламыз. Тегістеудің қарапайым әдістерінің бірі Лаплас бағалау деп аталады. Тәуелсіздік алған кезде, Naive Bayes жіктеуіші логистикалық регрессия сияқты басқа модельдермен салыстыруды жақсырақ орындайды және сізге аз мәліметтер қажет.

РФ ағаштарды декреляциялайды (қапталған ағаштарға қатысты). Бұл өзара байланысты болуы мүмкін бірнеше мүмкіндіктермен жұмыс жасау кезінде маңызды. Ол сапалы (категориялық) функцияларды орындай алады. Кездейсоқ ормандар кішігірім деректер жиынтығында жақсы нәтиже бере алады. Олар сонымен қатар бастапқы деректерді дайындауды қажет етпейді. Деректерді масштабтаудың қажеті жоқ. Ол сонымен қатар деректердің көп бөлігі болмаған кезде де дәлдікті сақтайды.

Барлық күшейтетін алгоритмдер сапалы (категориялық) мүмкіндіктерді оңай басқара алады. Жақсартылған ағаштар үлкен мәліметтерге ие және үлкен деректер жиынтығын қажет етеді.

Логистикалық регрессия шешімнің диагональды (ерекшелігі) шекараларымен жақсы жұмыс істейді.

Көптеген өлшемдер болған жағдайда, енгізу әдетте көптеген деректер нүктелеріне «жақын» болуы мүмкін. Бұл k-NN тиімділігін төмендетеді, өйткені алгоритм жақындық пен ұқсастық арасындағы корреляцияға сүйенеді. Бұл мәселені шешудің бір шарты - өлшемдердің азаюы, ол жұмыс істейтін айнымалы өлшемдердің санын азайтады (бірақ процесстегі өзгермелі тенденцияларды жоғалтуы мүмкін). K-NN барлық ақпаратты кіріс көршілерінен алатындықтан, локализацияланған ауытқулар деректерге жалпыланған көріністі қолданатын алгоритмге емес, нәтижелерге айтарлықтай әсер етеді. KNN үздіксіз де, дискретті де деректерді өңдей алады, бірақ тиісті қашықтық алгоритмін таңдау керек.