Artikel pengantar tentang penerapan Enkode Target Fitur

Saya baru-baru ini melakukan proyek dengan variabel target multi-kelas, jadi saya mencari cara yang sesuai untuk menyandikan fitur kategorikal. Saya menemukan banyak artikel yang mencantumkan manfaat pengkodean melalui mean variabel target dibandingkan metode lain, dan bagaimana menyelesaikan tugas ini dalam dua baris kode menggunakan pustaka  category_encoders  . Namun, yang mengejutkan saya, saya menemukan bahwa tidak ada artikel yang mendemonstrasikan metode ini untuk variabel target multikelas. Saya melihat-lihat dokumentasi category_encoders dan menyadari bahwa perpustakaan hanya berfungsi untuk variabel biner atau nyata, melihat karya asli oleh  Daniele Micci-Barreca, yang memperkenalkan pengkodean target rata-rata dan juga tidak menemukan sesuatu yang masuk akal. 





Pada artikel ini, saya akan memberikan gambaran umum tentang dokumen yang menjelaskan pengkodean target dan menunjukkan dengan contoh bagaimana pengkodean target bekerja untuk masalah biner.





Teori

Jadi: jika Anda ditanya "0/1", "diklik / tidak diklik" atau "kucing / anjing", maka masalah klasifikasi Anda adalah biner; Jika Anda ingin menjawab "merah atau hijau atau biru, tapi mungkin kuning" atau "sedan versus hatchback dan all versus SUV," maka masalahnya ada di beberapa kelas.





Inilah yang dikatakan artikel tujuan kategoris yang saya sebutkan di atas:





Hasil pengamatan dapat ditampilkan melalui perkiraan probabilitas variabel target.





, , .





.





, .





.  0, 1. P (Y = 1 | X = Xi), ..:





n(Y) - 1 ,





n(i) - i- ,





n(iY) - 1 i- . 





, 1 i- , - 1 . Ī» - , 0 1, n(i), .





Jika Anda menggunakan TargetEncoder dari pustaka category_encoders, k adalah parameter min_sample_leaf dan f adalah parameter anti-aliasing.
TargetEncoder category_encoders, k - min_sample_leaf, f - .

TargetEncoder category_encoders, k - min_sample_leaf, f - .





, , , .  , , , (. . Y).  .





.  .  , . , , , .  .





, .





.





, 1, «»?





: 1/2 = 0,5.





, , Target 1, «»?





: 1/4 = 0,25.





?





, Ā«FemaleĀ» 0,25, .  , 4/9 = 0,4.





, «» , , .





min_sample_leaf, k = 1 , f = 1,





«Male», n = 2;





Ī»(ā€˜Male’)=1/(1+exp(-(2–1)/1))=0.73    # Weight Factor for 'Male'

Target Statistic=(Weight Factor * Probability of 1 for Males)

       + ((1-Weight Factor) * Probability of 1 Overall)S(ā€˜Male’)= (0.73 * 0.5) + ((1–0.73) * 0.4) = 0.485
      
      



, «Female» , n = 4;





Ī»(ā€˜Female’)=1/(1+exp(-(4–1)/1))=0.95 #Weight Factor for 'Female'

Target Statistic=(Weight Factor * Probability of 1 for Females)

    + ((1-Weight Factor) * Probability of 1 Overall)S(ā€˜Female’)= (0.95 * 0.25) + ((1–0.95) * 0.4) = 0.259
      
      



, , Ī» , .  4 Ā«FemaleĀ», 2 Ā«MaleĀ».  0,95 0,73.





, Ā«MaleĀ» 0,485 , Ā«FemaleĀ» 0,259.  «».





!  !





?





, , category_encoders:





!pip install category_encoders

import category_encoders as ce 

x=['Male','Male','Female','Female','Female','Female','Other','Other','Other']

y=[1,0,0,0,0,1,1,1,0]

print(ce.TargetEncoder().fit_transform(x,y))
      
      



TargetEncoder category_encoders.  , .  , .





  , . 





!








All Articles