Mashinani o'rganish algoritmlari: Turli algoritmlarni taqqoslash va ulardan qachon foydalanish

Machine Learning-da turli xil algoritmlar mavjud. Ko'pincha biz ushbu algoritmlarning barchasini nimani qachon qo'llashni o'ylamasdan qo'llashga moyilmiz. Ushbu algoritmlar o'rtasidagi tafovutni bilganimizda, biz ularni qo'llashni optimallashtirishimiz va qaysi stsenariyda biz foydalanayotganimizni bilish osonlashadi.

Ushbu algoritmlar bir-biridan farq qiladigan ma'lum parametrlar mavjud. Ushbu parametrlarni va ularning qo'llanilishini tushunish bizga yanada aniqroq bo'lishimizga yordam beradi va bashorat qilishda xato ehtimolini minimallashtiradi.

Regulyatsiya yoki ortiqcha ishlov berish

Ikkala RF ham, GBM ham ansambl usullari bo'lib, siz ko'p sonli kichik klassifikatorlardan klassifikator yaratasiz. RF juda mos kelishga moyil bo'lgan qaror daraxtlarini ishlatadi. Yuqori aniqlikka erishish uchun, RF ularning sumkalari asosida ularning ko'p sonini yaratishga qaror qiladi. Asosiy g'oya - ma'lumotlarni qayta-qayta takrorlash va har bir namunaga yangi klassifikatorni tayyorlash. Turli tasniflagichlar ma'lumotlarni boshqacha tarzda to'ldirishadi va ovoz berish orqali ushbu farqlar bartaraf etiladi. Turli qaror daraxtlarining natijalarini o'rtacha qilish yoki birlashtirish jarayoni ortiqcha bezak muammosini engishga yordam beradi. Tasodifiy o'rmon ham bitta qaror daraxtiga qaraganda kamroq tafovutga ega. Bu bitta qaror daraxtlariga qaraganda ma'lumot elementlarining katta doirasi uchun to'g'ri ishlashini anglatadi.

GBM - zaif tasniflagichlarga asoslangan mustahkamlovchi usul. Fikr shundan iboratki, klassifikatorni bir vaqtning o'zida qo'shish kerak, shunda keyingi klassifikator allaqachon o'qitilgan ansamblni yaxshilashga o'rgatiladi. E'tibor bering, har bir iteratsiya uchun RF klassifikatori qolgan qismidan mustaqil ravishda o'qitiladi.

Shunday qilib, GBMda muntazamlashtirish uchun hech qanday shart mavjud emas, ammo ma'lumotlarni bir necha marta takrorlash sababli RF algoritmi yanada tartibga solinadi.

GBM-ni standart ravishda amalga oshirish XGBoost kabi tartibga solishga ega emas, shuning uchun ortiqcha xarajatlarni kamaytirishga yordam beradi. Aslida, XGBoost shuningdek, "muntazam ravishda kuchaytirish" usuli sifatida ham tanilgan. Ammo algoritmlarni kuchaytirish, agar daraxtlar soni juda katta bo'lsa, ularni bekor qilishi mumkin.

SVM chiziqli bo'linish paytida logistik regressiyaga o'xshash tarzda ishlaydi va ishlatilgan yadroga qarab chiziqli bo'lmagan chegara bilan yaxshi ishlaydi. SVM yadroga qarab ortiqcha tayyorgarlik / o'qitish muammolariga moyil. Keyinchalik murakkab yadro modeldan ustun turadi.

Yo'qolgan qadriyatlar

XGBoost ichki etishmayotgan qiymatlarni boshqarish uchun mo'ljallangan. Yo'qotilgan qiymatlarga shunday munosabatda bo'lish kerakki, agar etishmayotgan qiymatlarning har qanday tendentsiyasi mavjud bo'lsa, u model tomonidan ushlab turiladi. Foydalanuvchi boshqa kuzatuvlardan farqli ravishda boshqa qiymatni berishi va bu parametr sifatida o'tishi kerak. XGBoost har bir tugunda etishmayotgan qiymatga duch kelganda turli xil narsalarni sinab ko'radi va kelajakda etishmayotgan qiymatlarni topish uchun qaysi yo'lni tanlashni o'rganadi.

Tasodifiy o'rmon qiymat xususiyatlariga ega bo'lmagan ma'lumotlar to'plami uchun juda yaxshi.

SVM etishmayotgan ma'lumotlar bilan yaxshi ishlamaydi. SVM-ni ishga tushirishdan oldin etishmayotgan qiymatlarni hisoblash har doim yaxshiroqdir.

Naive Bayes ma'lumotlarning etishmasligi bilan yaxshi ishlamaydi. Xususiyatning mumkin bo'lgan har qanday qiymatini aniqlash uchun, ehtimoliy qiymatni tez-tez so'raladigan usul bilan aniqlash kerak. Bu 0 yoki 1 ga boradigan ehtimolliklarni keltirib chiqarishi mumkin, bu esa sonning beqarorligiga va yomonroq natijalarga olib keladi.

Yo'qotish funktsiyasi

Regressiya yo'qotish funktsiyalari:

L1 va L2 - bu xatoni minimallashtirish uchun ishlatiladigan mashina o'rganishda ikkita yo'qotish funktsiyasidir. L1 Loss funktsiyasi eng kam mutlaq sapmalarga ishora qiladi. LAD sifatida ham tanilgan. L2 Loss funktsiyasi eng kam kvadrat xatolar uchun mo'ljallangan. LS sifatida ham tanilgan.

L1 yo'qotish funktsiyasi

L1 Loss funktsiyasi haqiqiy qiymat va taxmin qilingan qiymat o'rtasidagi mutlaq farqlarning yig'indisini tashkil etuvchi xatoni kamaytirish uchun ishlatiladi.

L2 yo'qotish funktsiyasi

L2 yo'qotish funktsiyasi haqiqiy qiymat va taxmin qilingan qiymat o'rtasidagi barcha kvadratik farqlarning yig'indisi bo'lgan xatoni kamaytirish uchun ishlatiladi.

Huber ('huber'): Kvadratlar va eng mutlaq og'ishlarni birlashtiradigan yana bir kuchli yo'qotish funktsiyasi; alfa-dan foydalaning, tashqi sotuvchilarga nisbatan sezgirlikni boshqarish.

Tasnifni yo'qotish funktsiyalari:

Binomial sapma ('devansiya'): Ikkilik tasniflash uchun manfiy binom logning ehtimolligi yo'qolish funktsiyasi (ehtimollik bahosini beradi). Boshlang'ich model log-stavkalar-nisbati bo'yicha berilgan.

Multinomial deviatsiya ('deviance'): O'zaro eksklyuziv sinflarga ega bo'lgan n_classes bilan tasniflash uchun manfiy multinomial log-ehtimolligi yo'qotish funktsiyasi. Bu ehtimollik bahosini beradi. Dastlabki model har bir sinfning oldingi ehtimolligi bo'yicha beriladi. Har bir iteratsiyada n_classes regressiya daraxtlari qurilishi kerak, bu GBRTni juda ko'p sonli ma'lumot to'plamlari uchun samarasiz qiladi.

Eksponensial yo'qotish ('eksponensial'): AdaBoostClassifier bilan bir xil yo'qotish funktsiyasi. Noto'g'ri yozilgan misollar uchun 'og'ishtirish' ga qaraganda kamroq ishonchlilik; faqat ikkilik tasniflash uchun ishlatilishi mumkin.

Vector Machine-ni qo'llab-quvvatlang

SVM-dagi yo'qotish funktsiyasi Hinge Loss

Soft Margin SVM uchun yo'qotish funktsiyasi mavjud

va Hard Margin SVM uchun yo'qotish funktsiyasi mavjud

Random Forest va XG Boost ikkalasida ham yo'qotish funktsiyasi buzilishi mumkin.

Daraxtlarni Azizillo

GBMda daraxtlarni Azizillo salbiy yo'qotishlarga duch kelganda to'xtaydi.

XGBoost daraxtni maksimal darajaga qadar o'stiradi va keyin yo'qotish funktsiyasi yaxshilanganidan pastroq bo'lgunga qadar orqada qoldiradi.

O'zgarish va buzilishlar

Kuchaytirish zaif o'quvchilarga asoslanadi (yuqori tarafkashlik, past tafovut). Qaror daraxtlari nuqtai nazaridan, zaif o'quvchilar sayoz daraxtlardir, ba'zida ular hatto qaror qabul qilish daraxtlari kabi kichik (ikki bargli daraxtlar). Boosting asosan xatolarni kamaytiradi (shuningdek, ko'pgina modellarning chiqishlarini jamlash orqali).

Boshqa tomondan, Random Forest siz aytgandek to'liq yetishtirilgan daraxt daraxtlaridan foydalanadi (past tarafli, yuqori o'zgaruvchan). Xatolarni qisqartirish vazifasini teskari yo'nalishda hal qiladi: tafovutni kamaytirish orqali. Qarama-qarshilikning pasayishi uchun daraxtlar bir-biriga bog'lanmagan, ammo algoritm noaniqlikni kamaytira olmaydi (bu o'rmonda alohida daraxtga nisbatan balandroq). Shunday qilib, avvaliga tarafkashlik imkon qadar past bo'lishi uchun katta, kesilmagan daraxtlarga ehtiyoj bor.

K-ga yaqin qo'shnilar algoritmi past tarafli va katta tafovutlarga ega, ammo savdoni k qiymatini ko'paytirish orqali o'zgartirish mumkin, bu esa qo'shnilar sonini ko'paytiradi va o'z navbatida modelning noto'g'ri tomonini oshiradi.

Qo'llab-quvvatlovchi vektorli mashina algoritmi past tarafli va katta tafovutlarga ega, ammo savdoni o'zgartirish C parametrini oshirish orqali o'zgartirilishi mumkin, bu o'qitish ma'lumotlarida ruxsat berilgan marjonlar sonini ko'paytiradigan, ammo tafovutni kamaytiradigan ma'lumotlarga ta'sir qiladi.

Chiziqli regressiyada biz nuqtalar orqali to'g'ri chiziqni bog'laymiz. Albatta, bashorat qilingan qiymatlar to'plamini ifodalovchi ushbu chiziq nol statistik tafovutga ega. Ammo tarafkashlik (ehtimol) yuqori - ya'ni, bu ma'lumotlarga juda to'g'ri kelmaydi. Keyingi, biz ma'lumotlarni yuqori darajadagi ko'pxosil chizig'i bilan modellashtiramiz, deylik. Uyg'unlik yaxshilanmaguncha ko'paytirilgan darajani oshiramiz (va bu o'zboshimchalik bilan aniqlanadi). Endi bizda nolga teng bo'lgan tarafkashlik bilan bog'liq vaziyat mavjud, ammo tafovut juda katta. Yuqori darajali polinomiya yuqori dispersiya va past tarafliligi bilan murakkabroqdir. Logistik regressiya past tafovutlarga va yuqori tarafga ega.

Moslashuvchanlik

XGBoost foydalanuvchilarga maxsus optimallashtirish maqsadlari va baholash mezonlarini aniqlashga imkon beradi. Bu modelga yangi o'lchovlarni qo'shadi va biz qila oladigan narsalar uchun cheklov yo'q.

Xochni tekshirish

XGBoost foydalanuvchiga kuchaytirish jarayonining har bir iteratsiyasida o'zaro o'zaro tasdiqlashni amalga oshirishga imkon beradi va shu bilan bitta yugurishda kuchaytiradigan iteratsiyalarning aniq maqbul sonini olish juda oson.

Bu GBM-dan farqli o'laroq, biz panjara qidirishni amalga oshirishimiz kerak va faqat cheklangan qiymatlarni sinab ko'rishimiz mumkin.

Odatiy bo'lib, tasodifiy o'rmon o'rgatish va dam olish uchun 2/3 ma'lumotni va regressiyani sinash uchun mashq qilish uchun va 70% ma'lumotni tasniflash paytida sinab ko'rish uchun yig'adi. Chunki printsip har bir daraxtning bo'linishi paytida o'zgaruvchan tanlovni tasodifiy ravishda o'zgartiradi, chunki unchalik farq qilmaydi. boshqa modellar. Shuningdek, u "Out of bag" (OOB) smetalarini modelni tekshirish uchun ishlatilishi mumkin.

Hisoblash kuchi

XGBoost parallel ishlov berishni amalga oshiradi va GBM bilan solishtirganda tezroq ishlaydi. Boosting - bu ketma-ket jarayon, ammo baribir uni parallellashtirish mumkin. Har bir daraxtni faqat avvalgisidan keyin qurish mumkin va har bir daraxt barcha yadrolar yordamida quriladi. Bu XGBoost-ni juda tez algoritmga aylantiradi.

Tasodifiy o'rmonlarning asosiy kamchiligi ularning murakkabligi. Daraxtlarni qurishdan ko'ra ularni qurish ancha qiyin va vaqt talab etadi. Bundan tashqari, ular ko'proq hisoblash manbalarini talab qiladi va ular kamroq sezgir. Qaror daraxtlarining katta to'plamiga ega bo'lganingizda, kirish ma'lumotlarida mavjud bo'lgan munosabatlarni intuitiv tushunish qiyin. Tasodifiy o'rmonlar yordamida bashorat qilish jarayoni boshqa algoritmlarga qaraganda vaqt talab etadi.

Naive Bayes hisoblash tez va sodda. Bundan tashqari, ko'p sinfli bashorat qilishda yaxshi ishlaydi.

Hisoblash qiymati ancha yuqori, chunki biz har bir so'rov namunasini masofadan turib, barcha o'quv namunalari bilan hisoblashimiz kerak. Ushbu hisoblash narxini pasaytirish uchun ba'zi indeksatsiya (K-D daraxti) dan foydalanish kerak. Bu dangasa o'rganish algoritmi KNN hisob-kitoblarining aksariyati mashg'ulot paytida emas, balki sinov paytida bajarilishini talab qiladi. Bu katta ma'lumotlar to'plami uchun muammo bo'lishi mumkin.

Ma'lumotlar bazasining xususiyatlari

SVM Bu juda yaxshi natija bermaydi, chunki bizda katta ma'lumotlar to'plami mavjud, chunki talab qilinadigan mashg'ulot vaqti ko'proq. Ma'lumotlar to'plamida shovqin ko'proq bo'lsa, ya'ni maqsad sinflari bir-biriga mos kelsa, u ham yaxshi ishlamaydi. Bu o'lchovlar soni namunalar sonidan ko'p bo'lgan holatlarda samarali bo'ladi.

Naive Bayes yuqori o'lchovlar bilan yaxshi ishlaydi. Eng katta kamchilik shundaki, Naive Bayes klassifikatori sizning ma'lumotlaringizni tarqatish shakli bo'yicha juda kuchli taxminlarga ega, ya'ni har qanday ikkita xususiyat chiqish sinfiga bog'liq holda mustaqil hisoblanadi. Raqamli o'zgaruvchilar (lar) ga nisbatan kategoriyali kirish o'zgaruvchilari bo'lsa, bu juda yaxshi ishlaydi. Raqam o'zgaruvchisi uchun normal taqsimot qabul qilinadi (kuchli taxmin bo'lgan qo'ng'iroq egri). Agar kategoriyali o'zgaruvchida o'quv ma'lumotlari to'plamida kuzatilmagan kategoriya (test ma'lumotlari to'plamida) bo'lsa, u holda model 0 (nol) ehtimollikni tayinlaydi va bashorat qila olmaydi. Bu ko'pincha "Nol chastota" deb nomlanadi. Buni hal qilish uchun biz tekislash texnikasidan foydalanishimiz mumkin. To'g'ri tekislash usullaridan biri Laplasni hisoblash deb ataladi. Mustaqillik taxmin qilinsa, Naive Bayes tasniflagichi boshqa modellar bilan taqqoslashni yaxshiroq bajaradi va logistika regressi kabi, sizga kamroq ma'lumot kerak.

RF daraxtlarni dekoltratsiya qiladi (qoplangan daraxtlarga nisbatan). Bu o'zaro bog'liq bo'lishi mumkin bo'lgan bir nechta funktsiyalar bilan ishlashda muhimdir. U sifatli (kategoriyali) xususiyatlarga ega. Tasodifiy o'rmonlar kichik ma'lumot to'plamlarida yaxshiroq ishlashi mumkin. Ular, shuningdek, kirish ma'lumotlarini tayyorlashni talab qilmaydi. Ma'lumotni kattalashtirish shart emas. Shuningdek, ma'lumotlarning katta qismi yo'qolganda ham aniqlikni saqlaydi.

Barcha kuchaytiruvchi algoritmlar sifatli (kategoriyali) funktsiyalarni osonlikcha bajarishi mumkin. Kengaytirilgan daraxtlar ma'lumotlarga muhtoj va katta ma'lumotlar to'plamini talab qiladi.

Logistik regressiya diagonali (xususiyatli) qaror chegaralari bilan yaxshi ishlaydi.

Ko'p o'lchovlar mavjud bo'lganda, ma'lumotlar odatda ko'plab ma'lumotlarga yaqin bo'lishi mumkin. Bu k-NN samaradorligini pasaytiradi, chunki algoritm yaqinlik va o'xshashlik o'rtasidagi bog'liqlikka tayanadi. Ushbu muammoning echimlaridan biri bu ishlaydigan o'zgaruvchan o'lchamlarning sonini kamaytiradigan o'lchamlarni qisqartirishdir (ammo bu jarayonda o'zgaruvchan tendentsiyalarni yo'qotishi mumkin). K-NN barcha ma'lumotlarini kirish qo'shnilaridan olganligi sababli, ma'lumotlarning umumiy ko'rinishini ishlatadigan algoritmni emas, balki mahalliy anomaliyalar natijalarga sezilarli darajada ta'sir qiladi. KNN har ikkala uzluksiz va diskret ma'lumotlarni boshqarishi mumkin, ammo tegishli masofa algoritmini tanlash kerak.