One-hot ներկայացումները կատեգորիաները կամ տոկենները մոդելի համար հասկանալի թվերի վերածելու ամենապարզ ձևն են։ Դուք կազմում եք ֆիքսված բառարան, յուրաքանչյուր անդամին տալիս եք ինդեքս և ցանկացած անդամ ներկայացնում եք |vocab| երկարության վեկտորի տեսքով, որտեղ համապատասխան ինդեքսում 1 է, իսկ մնացած տեղերում՝ 0։
Բառարան
One-Hot ներկայացում
cat
1 0 0 0
dog
0 1 0 0
fox
0 0 1 0
banana
0 0 0 1
unknown
0 0 0 0
Քանի որ բոլոր կատեգորիաները հավասարապես են հեռու մեկը մյուսից, one-hot կոդավորումը նմանության մասին որևէ պատկերացում չի տալիս (օրինակ՝ «cat»-ը (կատու) ավելի մոտ չէ «dog»-ին (շուն), քան «banana»-ին (բանան))։ Այսպիսի ներկայացումներ ստեղծելը հեշտ է, և դրանք կատարյալ կերպով պահպանում են նույնականությունը, այդ իսկ պատճառով դրանք հաճախ օգտագործվում են փոքր կատեգորիկ հատկանիշների համար (գույներ, փոստային կոդեր և այլն)։ Թերություններն են բարձր չափողականությունը մեծ բառարանների դեպքում և նոսրությունը (վեկտորի անդամների մեծ մասը զրոներ են), ինչը կարող է հանգեցնել հիշողության վատնման և խանգարել ընդհանրացմանը։
One-hot հատկանիշներով մոտակա հարևանի ալգորիթմներում (nearest-neighbor) Էվկլիդյան և կոսինուսային հեռավորությունները հանգում են պարզ համընկնման կամ չհամընկնման ստուգման։ Սա հարմար է ճշգրիտ համեմատությունների համար, բայց հարմար չէ ավելի նուրբ կապերն արտահայտելու համար։ Ավելի հարուստ իմաստ և կոմպակտություն ստանալու համար մոդելները սովորաբար one-hot ներկայացումները փոխարինում կամ լրացնում են ուսուցանված խիտ ներկայացումներով (dense embeddings), որոնք կապակցված անդամներին տեղադրում են իրար մոտ՝ շարունակական տարածության մեջ։
Մարսի ընտանի կենդանիների շքերթը
Մարսի վրա «Ընտանի կենդանիների շքերթ» կոնսոլը որոշում է՝ արդյոք կենդանին հանգիստ է, թե ընկերասեր։ Ժյուրին նայում է երկու բանի՝ կենդանու տարիքին (տարիներով) և տեսակին, այնուհետև թույլ է տալիս, որ կոնսոլի 3-nearest neighbors կատարեն քվեարկությունը։
Ձեզանից պահանջվում է կարդալ ֆիքսված տեսակների բառարանը, այնուհետև՝ որոշ նախապես գոյություն ունեցող գրառումներ և մի քանի նոր կենդանիների տվյալներ։ Կառուցե՛ք վեկտորներ՝ տարիքը սանդաղվորելով min–max մեթոդով՝ օգտագործելով նախապես գոյություն ունեցող գրառումները միայն (միջակայքը՝ [0,1], եթե բոլոր տարիքները նույնն են, ապա սանդղավորված արժեքը 0.0 է), դրանից հետո կատարե՛ք տեսակների one-hot կոդավորում՝ ըստ բառարանում դրանց հանդիպման հերթականության, և միացրե՛ք սանդղավորված տարիքը one-hot կոդավորված տեսակի հետ։ Օգտագործե՛ք Էվկլիդյան հեռավորությունը ստացված միացության վրա՝ գտնելու 3 մոտակա հարևաններին։ Կանխատեսումն արե՛ք՝ հիմնվելով նախապես գոյություն ունեցող 3 ամենամոտ գրառումների մեծամասնության քվեի վրա։ Եթե պիտակների միջև ձայները հավասար են, տպե՛ք այբբենական կարգով ամենափոքր պիտակը։ Երաշխավորվում է, որ տվյալների բոլոր տեսակները կան տրված բառարանում։
Մուտքի առաջին տողում տրված է միակ ամբողջ թիվը v՝ տեսակների քանակը բառարանում։ Երկրորդ տողում տրված են v հատ բացատներով առանձնացված տոկեններ՝ տեսակների բառարանը։ Հաջորդ տողում տրված են երկու ամբողջ թիվ՝ n d, որտեղ այստեղ d = 1 (կա միայն տարիքի հատկանիշը)։ Հաջորդ n տողերից յուրաքանչյուրը պարունակում է տարիք (իրական թիվ), տեսակ և պիտակ - age species label։ Հաջորդ տողում տրված է միակ ամբողջ թիվը q՝ դասակարգման ենթակա նոր կենդանիների քանակը։ Հաջորդ q տողերից յուրաքանչյուրը պարունակում է age species՝ նոր կենդանու համար։
Ծրագիրը պետք է տպի q տող։ Յուրաքանչյուր տող պետք է պարունակի կանխատեսված պիտակը՝ calm կամ friendly։
Մուտք
Ելք
3 cat dog rabbit 6 1 1 cat calm 2 dog friendly 3 dog friendly 5 rabbit calm 4 cat calm 2 rabbit calm 2 3 dog 5 rabbit
friendly calm
2 cat dog 5 1 1 cat calm 4 cat calm 2 dog friendly 3 dog friendly 5 dog friendly 2 2 cat 5 dog
calm friendly
4 cat dog rabbit lizard 7 1 1 cat calm 2 cat calm 2 dog friendly 3 lizard friendly 4 rabbit calm 5 rabbit calm 4 dog friendly 2 3 dog 4 rabbit