8 tehnici de codificare a datelor categorice pentru a vă îmbunătăți modelul în Python!

Prezentare generală

  • Înțelegeți ce este codarea categorică a datelor
  • Aflați diferite tehnici de codificare și când să le utilizați

Introducere

Performanța unui model de învățare automată nu depinde doar de model și de hiperparametri, ci și de modul în care procesăm și alimentăm diferite tipuri de variabile către model. Deoarece majoritatea modelelor de învățare automată acceptă doar variabile numerice, preprocesarea variabilelor categorice devine un pas necesar. Trebuie să convertim aceste variabile categorice în numere, astfel încât modelul să poată înțelege și extrage informații valoroase.

datelor

Un om de știință de date obișnuit își petrece 70 - 80% din timp curățând și pregătind datele. Iar conversia datelor categorice este o activitate inevitabilă. Nu numai că ridică calitatea modelului, ci ajută și la o mai bună inginerie a caracteristicilor. Acum întrebarea este, cum procedăm? Ce metodă de codificare categorică a datelor ar trebui să folosim?

În acest articol, voi explica diferite tipuri de metode de codificare a datelor categorice cu implementare în Python.

În cazul în care doriți să învățați concepte despre știința datelor în format video, consultați cursul nostru - Introducere în știința datelor

Cuprins

  • Ce sunt datele categorice?
  • Codificare etichetă sau codificare ordinală
  • O codare fierbinte
  • Codare fictivă
  • Codificare efect
  • Codare binară
  • Codificare BaseN
  • Codare Hash
  • Codificare țintă

Ce sunt datele categorice?

Deoarece vom lucra la variabile categorice în acest articol, iată o reîmprospătare rapidă a aceluiași lucru, cu câteva exemple. Variabilele categorice sunt de obicei reprezentate ca „șiruri” sau „categorii” și au un număr finit. Iată câteva exemple:

  1. Orașul în care locuiește o persoană: Delhi, Mumbai, Ahmedabad, Bangalore etc.
  2. Departamentul în care lucrează o persoană: finanțe, resurse umane, IT, producție.
  3. Cel mai înalt grad pe care îl are o persoană: liceu, diplomă, licență, masterat, doctorat.
  4. Notele unui elev: A +, A, B +, B, B- etc.

În exemplele de mai sus, variabilele au doar valori posibile definite. Mai mult, putem vedea că există două tipuri de date categorice-

  • Date ordinale: Categoriile au o ordine inerentă
  • Date nominale: Categoriile nu au o ordine inerentă

În datele ordinale, în timp ce codificați, ar trebui să păstrați informațiile referitoare la ordinea în care este furnizată categoria. La fel ca în exemplul de mai sus, cel mai înalt grad pe care îl posedă o persoană, oferă informații vitale despre calificarea sa. Gradul este o caracteristică importantă pentru a decide dacă o persoană este potrivită pentru o postare sau nu.

În timp ce codificăm date nominale, trebuie să luăm în considerare prezența sau absența unei caracteristici. Într-un astfel de caz, nu există nicio noțiune de ordine. De exemplu, orașul în care locuiește o persoană. Pentru date, este important să păstrăm locul în care locuiește o persoană. Aici, nu avem nicio ordine sau secvență. Este egal dacă o persoană locuiește în Delhi sau Bangalore.

Pentru codificarea datelor categorice, avem un pachet python category_encoders. Următorul cod vă ajută să instalați cu ușurință.

Codificare etichetă sau codificare ordinală

Folosim această tehnică de codificare a datelor categorice atunci când caracteristica categorică este ordinală. În acest caz, păstrarea comenzii este importantă. Prin urmare, codificarea ar trebui să reflecte secvența.

În codificarea etichetelor, fiecare etichetă este convertită într-o valoare întreagă. Vom crea o variabilă care conține categoriile care reprezintă calificarea educațională a unei persoane.

O codare la cald

Folosim această tehnică de codificare categorică a datelor atunci când caracteristicile sunt nominale (nu au nicio ordine). Într-o codare la cald, pentru fiecare nivel al unei caracteristici categorice, creăm o nouă variabilă. Fiecare categorie este mapată cu o variabilă binară care conține fie 0, fie 1. Aici, 0 reprezintă absența și 1 reprezintă prezența acelei categorii.

Aceste caracteristici binare nou create sunt cunoscute sub numele de Variabile false. Numărul de variabile fictive depinde de nivelurile prezente în variabila categorică. S-ar putea să pară complicat. Să luăm un exemplu pentru a înțelege mai bine acest lucru. Să presupunem că avem un set de date cu un animal de categorie, având diferite animale precum câine, pisică, oaie, vacă, leu. Acum trebuie să codificăm cu o singură dată aceste date.

După codificare, în al doilea tabel, avem variabile fictive reprezentând fiecare o categorie în caracteristica Animal. Acum, pentru fiecare categorie care este prezentă, avem 1 în coloana categoriei respective și 0 pentru celelalte. Să vedem cum să implementăm o codificare one-hot în python.

Acum să trecem la o altă tehnică de codificare foarte interesantă și pe scară largă, adică codificarea fictivă.

Codare fictivă

Schema de codare falsă este similară cu codarea cu un singur fierbinte. Această metodă de codificare a datelor categorice transformă variabila categorică într-un set de variabile binare (cunoscute și sub numele de variabile fictive). În cazul codificării one-hot, pentru N categorii dintr-o variabilă, folosește N variabile binare. Codificarea fictivă este o mică îmbunătățire față de o codare la cald. Codificarea fictivă folosește caracteristici N-1 pentru a reprezenta N etichete/categorii.

Pentru a înțelege mai bine acest lucru, să vedem imaginea de mai jos. Aici codificăm aceleași date folosind atât tehnici de codare one-hot, cât și tehnici de codare fictive. În timp ce one-hot folosește 3 variabile pentru a reprezenta datele, în timp ce codificarea fictivă folosește 2 variabile pentru a codifica 3 categorii.