Եթե ​​դուք գտնվում եք տվյալների գիտության ուսումնասիրության կամ անձնական նախագծեր իրականացնելու փուլում, կարող եք հանդիպել հասկացությունների, որոնք կոչվում են One-Hot Encodingև Label Encoding: Շքեղ է թվում, բայց ML մոդելներ ստեղծելը հեշտ և էական հայեցակարգ է: Բարի գալուստ Debunked!, որտեղ ես կպարզաբանեմ տվյալների գիտության հասկացությունները Ինչ, ինչու և երբ::

Ինչ

Պարզ խոսքերով, մեկ տաք կոդավորումը կատեգորիկ տվյալների քանակականացման մեթոդ է: Դասակարգային տվյալները վերաբերում են փոփոխականներին, որոնք կազմված են պիտակի արժեքներից, այսինքն՝ «սեզոն» փոփոխականը կարող է ունենալ «ամառ», «ձմեռ», «աշուն», «գարուն» պիտակի արժեքներ: Այս դասակարգային պիտակի արժեքները: դրանք քարտեզագրված են ամբողջ թվերի վրա, որպեսզի օգնեն մոդելին ավելի լավ կանխատեսումներ անել:

Այս մեթոդով մենք կարող ենք մեր տվյալները վերածել նոր կատեգորիայի սյունակի և այդ սյունակներին վերագրել 0-ի և 1-ի երկուական արժեք:

Օրինակ, եթե մեր զանգվածն ի սկզբանե ունենար ամբողջ թվեր, ապա դրա մեկ տաք կոդավորման տարբերակը այսպիսի տեսք կունենար. 👇

Կամ, եթե մեր զանգվածն ի սկզբանե ուներ տեքստային (լարային) կատեգորիաներ, ապա մեկ տաք կոդավորման տարբերակը այսպիսի տեսք կունենա. 👇

Ինչո՞ւ

Մեքենայական ուսուցման շատ մոդելներ իրենց մուտքային փոփոխականների կարիքն ունեն՝ թվային տվյալների տեսքով: Օգտագործելով թվային արժեքներ, մենք կարող ենք որոշել մեր արժեքների հավանականությունը: Մասնավորապես, մեկ տաք կոդավորումն օգտագործվում է մեր ելքային արժեքների համար, քանի որ այն ապահովում է ավելի նրբերանգ կանխատեսումներ, քան առանձին պիտակներ:

Պիտակային կոդավորում v/s Մեկ տաք կոդավորում

Պիտակի կոդավորումն օգտագործվում է դասակարգային տվյալների համար հերթական ձևով: Որքան բարձր է դասակարգային արժեքը, այնքան մեծ է տրված/ավելի լավ կատեգորիայի նշանակությունը և հակառակը: Մեր տվյալների մեջ, որոնք մենք նախկինում տեսանք, չկա «ձմեռ» նախապատվությունը«ամառ», այսինքն՝ այն կարգավորված չէ: Այստեղ պիտակի կոդավորումն օգտագործելը, հավանաբար, կդարձնի «ամառ» = 1 և «ձմեռ» = 2 — սա ենթադրում է, որ մոդելն ավելի մեծ նշանակություն կտա «ձմեռին», քանի որ այն ունի ավելի բարձր արժեք և կխանգարի մեր կանխատեսման մոդելին: Սա աղետի բաղադրատոմս է։

Ահա թե ինչու մենք օգտագործում ենք մեկ տաք կոդավորիչ՝ կատեգորիան «երկուականացնելու» և ներառելու այն որպես մեր մոդելը վարժեցնելու հատկանիշ:

Երբ

Մեկ տաք կոդավորումը պետք է օգտագործվի միայն այն դեպքում, երբ .

  1. Տվյալներում առկա կատեգորիկ հատկանիշները շարքային չեն:
  2. Երբ տվյալների շտեմարանում առկա դասակարգային հատկանիշների թիվն ավելի քիչ է, այնպես որ մեկ տաք կոդավորման տեխնիկան կարող է արդյունավետորեն կիրառվել մոդելը կառուցելիս:

Մեկ տաք կոդավորումը ՉԻ կարող օգտագործվել միայն այն դեպքում, երբ՝

  1. Երբ տվյալների շտեմարանում առկա դասակարգային հատկանիշները սովորական են, այսինքն՝ տվյալների համար նման են Բարձր, միջին, ցածր: Ենթադրվում է, որ Label Encoder-ը պետք է օգտագործվի այս իրավիճակում:
  2. Երբ կատեգորիկ փոփոխականները քանակով մեծ են։ Հանգեցնում է հիշողության մեծ սպառման և կարող է պոտենցիալ բարձրանալ բազմագծայինության:

Եզրակացություն

Մենք վերջապես հասկացանք, թե ինչ է մեկ տաք կոդավորումը և ինչու է դա մեզ անհրաժեշտ: Անձամբ ես նախընտրում եմ օգտագործել get_dummy() մեթոդը Pandas-ում այս կոդավորման գործողությունը կատարելու համար, քանի որ այն արագ և հեշտ է: Մյուս հայտնի մեթոդը OneHotEncoder մեթոդի օգտագործումն է scikit-learn-ում:

Լրացուցիչ՝ կեղծ փոփոխական թակարդի խնդիր

Dummy Variable Trap-ը մի սցենար է, որտեղ առկա փոփոխականները մեծ փոխկապակցված են միմյանց հետ: Երբեմն One-Hot Encoding-ի կատարումը հանգեցնում է Dummy Variable Trap-ի, քանի որ մեկ փոփոխականի արդյունքը հեշտությամբ կարելի է կանխատեսել մնացած փոփոխականների օգնությամբ: Այսպիսով, Dummy Variable Trap-ը հանգեցնում է մեկ այլ խնդրի, որը հայտնի է որպես բազմակողմանիություն: Multicollinearity տեղի է ունենում միայն այն դեպքում, երբ կա կախվածություն անկախ հատկանիշների միջև: Multicollinearity-ը լուրջ խնդիր է մեքենայական ուսուցման մոդելներում, ինչպիսիք են Գծային ռեգրեսիան և լոգիստիկ ռեգրեսիան: Այսպիսով, բազմակողմանիության խնդիրը հաղթահարելու համար պետք է բաց թողնել կեղծ փոփոխականներից մեկը:

Ցանկանու՞մ եք արագ զրուցել ինձ հետ՝ կապված ML-ի կամ ֆուտբոլի հետ: — ուղարկեք ինձ միացման հարցում Linkedin-ում: