Definiția țintei
Publicat: 2015-08-21Metodele de învățare automată pot fi clasificate în două mari categorii: supravegheate și nesupravegheate. Învățarea supravegheată învață din setul de observații etichetat, unde se știe că observațiile aparțin anumitor clase (pentru probleme de clasificare) sau au anumite valori (problema de regresie). Învățarea nesupravegheată învață din seturi de observații neetichetate, unde nu se cunoaște nimic altceva în afară de observațiile în sine.
Pentru metodele de învățare supravegheată, spunem în esență că „uitați-vă la aceste date „adevărate” și spuneți-mi să știu „adevărul” datelor nevăzute”. Pentru metodele de învățare nesupravegheate, acest lucru este echivalent cu „uitați-vă la aceste date și spuneți-mi ceva interesant pe care nu știu”. În timp ce dihotomia clară este utilă, în această postare vom vorbi despre variante interesante în care definirea țintei poate deveni ea însăși o sarcină foarte interesantă!
Semi supravegheat
Aceasta este calea de mijloc între datele supravegheate și cele nesupravegheate, unde etichetele „adevărate” există doar pentru unele dintre observații, dar nu pentru toate. Ignorarea informațiilor disponibile este o nedreptate pentru calitatea modelelor analitice, dar utilizarea acestor informații poate face problema neobișnuită. În lumea în care generarea datelor este ușoară – gândiți-vă la internet – și etichetarea este costisitoare, multe probleme se încadrează în domeniul semi-supravegheat.
O abordare ar putea fi aceea de a nu include informații de etichetă pentru modelare, ci doar pentru validarea modelului și compararea performanței. De exemplu, putem segmenta datele în k clustere folosind clustering nesupravegheat și apoi putem verifica competența modelului nostru prin compararea clusterului prezis cu clusterul real. Acest lucru ne poate ajuta să decidem mai bine între mai multe soluții de clustering.
O altă abordare ar putea fi folosirea acestor informații pentru modelare. Am discutat despre clusteringul semi-supravegheat în postarea anterioară de blog.
Discret versus continuu
În timp ce multe situații se încadrează în mod evident în categorii de clasificare sau regresie – unde valoarea „adevărată” este o clasă discretă sau o valoare continuă – există cazuri în care transformarea țintei are sens.
Luați în considerare veniturile la nivel de client în funcție de comportamentul demografic și de tranzacțiile anterioare ale clientului. Aceasta este o problemă destul de comună în industria de retail, bănci, asigurări și telecomunicații. Veniturile, adesea din ultimele N luni, sunt, evident, un număr continuu. O regresie (liniară, poate) se poate potrivi aici, spuneți! Dar există metode mai complexe și mai sofisticate disponibile pentru problemele de clasificare, cum ar fi rețelele neuronale, care pot face o treabă mai bună, dar nu se vor aplica țintei continue. În funcție de contextul afacerii, este posibil să nu fie nevoie să preziceți veniturile reale, ci doar dacă veniturile vor fi mari, medii sau scăzute. Dacă da, puteți revizui distribuția veniturilor pentru toți clienții și puteți defini limitele pentru ridicat-mediu și mediu-scăzut și voila! Ați transformat o problemă țintă continuă într-o problemă de clasificare discretă cu trei clase.
Dacă ținta dvs. continuă este un procent - să zicem o fracțiune de studenți care promovează examenul de către școli - și doriți să preziceți procentul și pentru școala nouă/nevăzută, atunci aveți o altă opțiune în afară de modelul de regresie. Puteți parcela datele! Parcelarea transformă fracțiile continue în clase binare prin replicarea observațiilor. Pentru o observație cu valoarea țintă de 40%, replicați observația de 100 de ori și pentru 40 dintre ele atribuiți clasa 1 și pentru restul de 60 atribuiți clasa 60. Dat fiind că observația este aceeași și setul de caracteristici este același, modelul va încerca să diferențieze 1 de la 0 și trageți concluzia că acest tip de observație are 40% probabilitatea de a fi 1 și 60% probabilitatea de a fi 0. Puteți face același lucru pentru toate observațiile. (Da, aceasta va crește dimensiunea colectorului de date de antrenament.) Cele mai comune modele de clasificare produc oricum probabilitatea clasei=1 ca rezultat și acesta este rezultatul pe care îl doriți oricum!
Ar putea exista un caz pentru convertirea claselor discrete în valoare continuă? În mare parte nu, dar există exemple. Când încercați să preziceți vârsta cuiva în ani – care este în esență un număr întreg discret de la 0 la 100 (sau cam asa ceva) – puteți trata vârsta ca țintă continuă. În mod similar, dacă aveți categorii de venit suficient de granulare, de exemplu, 0-50k, 50k-100k, 100k-150k etc., atunci puteți beneficia de tratarea venitului ca variabilă continuă, mai degrabă decât de rezolvarea problemei cu 20 de clase.
Cazul fără clasă
Toate datele sunt fie etichetate, fie nu. Când datele sunt etichetate (presupune, binare), fie aparțin unei clase, fie alteia. Dar, în practică, este posibil ca datele să nu aparțină niciunei clase.
De exemplu, printre o mulțime de daune de asigurare, este posibil să știți cu siguranță că anumite pretenții sunt fraude, iar altele nu sunt fraude, dar este posibil să nu știți despre multe care nu au fost niciodată investigate. Luați în considerare, printre solicitanții de carduri de credit, care sunt acceptați sau și care au fost respinși ca parte a modelului de notare a aplicației în sectorul bancar. Dar sunt mulți clienți care nu au aplicat deloc și nu știi dacă ar fi fost acceptați sau nu. Adesea, nu ne putem ocupa de date fără etichetă și trebuie să le excludem din populația noastră de dezvoltare. Cu toate acestea, trebuie să avem în vedere dacă acest lucru induce părtinire în modelare. În exemplul de asigurări de mai sus, poate că cererile care au fost investigate au fost suspecte pentru început (chiar și cele constatate că nu sunt fraudate), sau în exemplul bancar, clienții care nu au aplicat nu au fost solicitați de forța de vânzări care a exclus cu totul o categorie demografică.
Dacă faceți transformarea țintei așa cum este descris în secțiunea anterioară, puteți crea singur date fără clasă. Să presupunem că definiți un venit de peste 5000/- pe an un nivel ridicat și mai mic de 5000/- pe an un nivel scăzut pentru a converti ținta continuă în țintă binară. Acesta va fi, totuși, un design prost, pentru că există o limită arbitrară la 5000. Un client cu venituri de 4999/- nu este foarte diferit de cel cu venituri de 5001/-, totuși îi deosebești din lume. Definiția dvs. va implica faptul că veniturile de 5001/- sunt mai asemănătoare cu veniturile de 10000/- decât de 4999/-. Vezi problema? Puteți face acest lucru, din punct de vedere tehnic, dar modelul rezultat nu va fi bun și robust, deoarece îi cereți să învețe diferențele de la clienți similari.
Ceea ce este de obicei o practică bună este includerea unei zone tampon/fără clasă. Deci, puteți defini veniturile de 6000/- sau mai mult ca fiind ridicate și 4000/- sau mai puțin la fel de scăzute și ignorați observațiile cu venituri între 4000/- și 6000/-. În timp ce pierzi unele date, modelul va face o treabă mult mai bună, deoarece ceea ce definiți ca fiind diferit este cu adevărat diferit.
În timp ce se pune mult accent pe pregătirea datelor, generarea de caracteristici și metoda de învățare automată, definirea țintei potrivite poate fi, de asemenea, utilă pentru calitatea rezultatului general analitic.