Որոշման ծառեր
Որոշման ծառերը հատուկ տեղ են զբաղեցնում իմ սիրելի մեքենայական ուսուցման ալգորիթմների շարքում, և երբ մենք խորանում ենք այս հոդվածում, դուք կիմանաք, թե ինչու են նրանք այդպիսի ժողովրդականություն ձեռք բերել ոլորտում:
Մեքենայի ուսուցման ոլորտում որոշումների ծառերը հաճախ կոչվում են «ոչ պարամետրիկ մոդելներ»: Այս պիտակը ցույց է տալիս նրանց ճկունությունը, քանի որ Որոշման ծառերը չեն ավելացնում պարամետրերի քանակը, քանի որ մոդելին ավելացվում են ավելի շատ հատկանիշներ (երբ ճիշտ կառուցված է): Ավելին, Որոշման ծառերը կարող են տրամադրել և՛ կատեգորիկ կանխատեսումներ, ինչպիսիք են բույսի տեսակը որոշելը, և՛ թվային կանխատեսումներ, ինչպիսին է տան գինը գնահատելը:
Նախքան թեմայի իրական բովանդակության մեջ մտնելը, թույլ տվեք ձեզ հարցնել.
Բայց ի՞նչն է իրականում առանձնացնում Որոշումների ծառերը և դարձնում դրանք բարձր գնահատական մեքենայական ուսուցման համայնքում:
Պատասխանը կայանում է նրանում, որ նրանք կարող են ընդօրինակել մարդկային մակարդակի մտածողությունը՝ դարձնելով դրանք հեշտ հասկանալի և մեկնաբանելու: Որոշման ծառերը մեզ թույլ են տալիս հասկանալ տվյալների հիմքում ընկած տրամաբանությունը՝ հնարավորություն տալով արդյունքների պարզեցված մեկնաբանություն: Այս եզակի հատկանիշը մեզ հնարավորություն է տալիս բացահայտելու տվյալների մեջ առկա բարդ օրինաչափությունները՝ խթանելով որոշումների կայացման գործընթացի ավելի խորը ըմբռնումը:
Ինտուիցիա
Ես ատում եմ օգտագործել նախորդ սերունդների կողմից հորինված շքեղ տերմինը, բայց, այնուամենայնիվ, այստեղ ես դեռ անձնատուր եմ լինում մեքենայական ուսուցման սկզբունքներին:
Այսպիսով, ինչպե՞ս ենք մենք ավելի լավ հասկանալ որոշումների ծառերը ավելի պարզ բառերով: Դե, իսկ ի՞նչ կասեք մեզ համար մեկը կառուցելու մասին: Միգուցե այդ ժամանակ մենք կարողանանք ավելի լավ հասկանալ դրանց մասին: (Հուսանք, այո!)
Բայց նախքան որոշումների ծառ կառուցելը, եկեք ծանոթանանք մի քանի տերմինների հետ.
Արմատային հանգույց.Սա ծառի մեկնարկային կետն է: Նորմալ որոշումների ծառի մեջ այն գնահատում է այն փոփոխականը, որը լավագույնս բաժանում է տվյալները:
Որոշման հանգույց/միջանկյալ հանգույց.Սրանք հանգույցներ են, որտեղ գնահատվում են փոփոխականները, բայց դրանք վերջնական հանգույցներ չեն, որտեղ կանխատեսումներ են արվում:
Տերեւային հանգույցներ.Սրանք այն հանգույցներն են, որտեղ կատարվում են կանխատեսումներ: Երբ տվյալների կետը հասնում է տերևային հանգույցին, բաժանման գործընթացը դադարում է:
Էտում.Սա վերաբերում է հանգույցների հեռացմանը` չափից ավելի տեղադրումը կանխելու համար:
Որոշման ծառերը կառուցվում են օգտագործելով երկու հիմնական տարրեր՝ հանգույցներ և ճյուղեր: Յուրաքանչյուր հանգույցում գնահատվում է մեր տվյալների առանձնահատկություններից մեկը՝ վերապատրաստման գործընթացի ընթացքում դիտարկումները բաժանելու կամ կանխատեսում կատարելիս կոնկրետ տվյալների կետի ուղին որոշելու համար:
Պատկերացնելու համար եկեք դիտարկենք որոշման ծառի պարզ օրինակ: Ենթադրենք՝ եղանակից ելնելով ուզում ենք որոշել թենիս խաղալ, թե ոչ: Եթե եղանակը ամպամած է, ապա թենիս են խաղում։ Եթե արև է, ապա ստուգում ենք խոնավությունը։ Եթե խոնավությունը բարձր է, ապա թենիս չեն խաղում։ Ինչպես նշվեց ավելի վաղ, որոշման ծառերի հիմքում ընկած տրամաբանությունը պարզ է, և դա այն է, ինչն իսկապես առանձնացնում է դրանք:
Որոշման ծառերի կառուցման ժամանակ տարբեր առանձնահատկություններ ռեկուրսիվորեն գնահատվում են, և յուրաքանչյուր հանգույցում ընտրվում է այն հատկանիշը, որը լավագույնս բաժանում է տվյալները։
Այժմ, երբ ընդհանուր պատկերացում ունեք, թե ինչ են որոշումների ծառերը, կարող եք ունենալ որոշ հարցեր.
- Ո՞ր հատկանիշը պետք է ընտրենք առաջինը:
- Ինչպիսի՞ն պետք է լինի բաժանման կարգը:
- Ինչպե՞ս ենք որոշում երեխաների հանգույցների քանակը:
- Ինչպե՞ս կարող ենք համեմատել երկու առանձնահատկությունները՝ որոշելու համար, թե որոնք մեկը ավելի լավ է պառակտման համար:
- Ինչպե՞ս ենք մենք որոշում բաժանման չափանիշները:
Մինչ այս հարցերին պատասխանելը, թույլ տվեք ձեզ ներկայացնել հետևյալ թեմաները.
Էնտրոպիա.
Էնտրոպիան վերահսկում է, թե ինչպես է որոշումների ծառը որոշում, թե որտեղ պետք է բաժանել տվյալները: Դա տվյալների կետերում անմաքրության կամ պատահականության չափումն է:
Էնտրոպիանհաշվարկվում է 0-ի և 1-ի միջև:Էնտրոպիայի փոքր արժեքը, այնքան լավ:
Վերցնենք կարմիր, կապույտ և կանաչ գնդակների օրինակը տուփերում: 6 կապույտ գնդակներով տուփը կունենա շատ ցածր (զրոյական) էնտրոպիա, մինչդեռ 2 կապույտ, 2 կանաչ և 2 կարմիր գնդիկներով տուփը կունենա համեմատաբար բարձր էնտրոպիա:
C դասերով տվյալների բազայի համար տեղեկատվական էնտրոպիայի հաշվարկման բանաձևը.
որտեղ pᵢ-ըi դասի տարրը պատահականորեն ընտրելու հավանականությունն է (այսինքն՝ i դասից կազմված տվյալների հավաքածուի համամասնությունը):
Սա ավելի լավ հասկանալու համար բերենք օրինակ: Դիտարկենք տվյալների հավաքածու 1 կապույտ, 2 կանաչ և 3 կարմիր գնդակներով, ապա.
Բնօրինակ բանաձևը ընդլայնվել է՝ ցույց տալու տվյալների հավաքածուի երեք դասերը
Մենք գիտենք pb = 1/6 (կապույտ), քանի որ տվյալների հավաքածուի 1/6-րդը կապույտ է: Նմանապես, pg = 2/6 (կանաչներ) և pr = 3/6 (կարմիրներ): Այսպիսով,
Էնտրոպիա 1 կապույտ, 2 կանաչ և 3 կարմիր գնդակների համար
Մինչդեռ տվյալների բազայի համար, որը բաղկացած է միայն կապույտ գնդիկներից, էնտրոպիան կլինի.
Էնտրոպիա միայն կապույտ գնդակների համար = Զրո, էնտրոպիան զրո է, երբ դուք ունեք նույն փոփոխականների դաս:
Տեղեկատվության ձեռքբերում.
Տեղեկատվության ստացումը չափիչ է, որն օգնում է մեզ որոշել, թե ուսումնական հատկանիշի վեկտորների տվյալ հավաքածուի որ հատկանիշն է առավել օգտակար թիրախ դասերի միջև տարբերակման համար: Մենք օգտագործում ենք այն որոշումների ծառի հանգույցներում ատրիբուտների դասավորությունը որոշելու համար:
Տեղեկատվության ձեռքբերման բանաձևը
Տեղեկատվության ձեռքբերում = Ծնողի էնտրոպիա — երեխաների միջին էնտրոպիա
Տեղեկատվության ձեռքբերման այս բանաձեւը բավականին ինտուիտիվ է: Մենք նայում ենք ծնողների և երեխաների էնտրոպիայի միջև տարբերությունը:
Էնտրոպիայի բարձր նվազումը լավ է, քանի որ մենք կարողանում ենք ավելի լավ տարբերակել թիրախային դասերը: Սա պարզապես ենթադրում է, որ մենք ընտրում ենք այն հատկանիշը, որն ունիառավելագույն տեղեկատվական շահույթ
Ջինի ինդեքս՝
Gini Index-ը այլընտրանքային չափանիշ է, որն օգտագործվում է տվյալների բազան բաժանելու համար՝ հիմնվելով դրա առանձնահատկությունների վրա: Չնայած էնտրոպիան սովորաբար օգտագործվում է այդ նպատակով, Ջինի ինդեքսը տրամադրում է ավելի պարզ հաշվարկման մեթոդ: Էնտրոպիայի հաշվարկը ներառում է լոգարիթմական գործողություններ, որոնք կարող են ժամանակատար և բարդ լինել: Ի հակադրություն, Gini Index-ն առաջարկում է պարզ հաշվարկ:
Scikit-Learn գրադարանն օգտագործում է Ջինի ինդեքսը՝ որոշման ծառը բաժանելու օպտիմալ հատկանիշը որոշելու համար: Օգտագործելով Gini Index-ը, Scikit-Learn-ը կարողանում է արդյունավետ կերպով բացահայտել ծառի կառուցման գործընթացում որոշումներ կայացնելու լավագույն հատկանիշը:
որտեղ pjնշում էj դասի տարրը պատահականորեն ընտրելու հավանականությունը (այսինքն՝ j դասից կազմված տվյալների հավաքածուի համամասնությունը):
Տեղեկատվության ձեռքբերման հարաբերակցությունը՝
Տեղեկատվության ձեռքբերման հարաբերակցությունը չափանիշ է, որն օգտագործվում է տվյալների արդյունավետ բաժանման գործառույթի ներուժը գնահատելու համար:
Տեղեկատվության շահույթի հարաբերակցությունը հաշվարկվում է Տեղեկատվության շահույթը բաժանելով հատկանիշի բաժանված տեղեկատվության (SI) վրա: The Split Information-ը ներկայացնում է պոտենցիալ տեղեկատվությունը, որը ստեղծվում է տվյալների բազայի բաժանման արդյունքում՝ հիմնվելով որոշակի հատկանիշի վրա:
Այն հաշվարկվում է բանաձևով.
SI(Հատկանիշ) = -∑ [ (|D_i| / |D|) * log2(|D_i| / |D|) ]
որտեղ գումարումը կատարվում է հատկանիշի բոլոր հնարավոր արժեքների վրա: Վերջապես, տեղեկատվության շահույթի հարաբերակցությունը տրվում է հետևյալով.
Տեղեկատվության ձեռքբերման հարաբերակցություն (հատկանիշ) = IG (առանձնահատկություն) / SI (առանձնահատկություն)
Ալգորիթմների իրականացում Python-ում.
Վերջապես, մենք այստեղ ենք՝ մեր որոնումների համար ուսապարկով շրջելուց հետո, քանի որ մեր ճանապարհորդությունն ավարտվել է: Այժմ մենք պատրաստ ենք սանձազերծել որոշումների ծառը կառուցող ալգորիթմների ուժը:
Նախքան ալգորիթմների մասին անհանգստանալը, եկեք ընտրենք առաջադրանքը, միջավայրը և տվյալների նախնական մշակումը: Այս հոդվածում մենք կուսումնասիրենք Python-ում ID3, CART, C4.5, Random Forest և Gradient Boosting ալգորիթմների իրականացումը:
Տվյալների հավաքածուի ընտրություն
Նախքան որոշումների ծառի ալգորիթմների իրականացման մեջ մտնելը, կարևոր է ընտրել համապատասխան տվյալների բազա, որը հիմք կծառայի մեր վերլուծության համար: Տվյալների տվյալների ընտրությունը վճռորոշ դեր է խաղում ստացված որոշումների ծառի ճշգրտության և համապատասխանության հարցում:
Տվյալների հավաքածու ընտրելիս հաշվի առեք հետևյալ գործոնները.
1. Առաջադրանք և նպատակ.Որոշեք այն կոնկրետ առաջադրանքը կամ խնդիրը, որը դուք մտադիր եք լուծել որոշման ծառի միջոցով: Դուք աշխատում եք դասակարգման կամ ռեգրեսիայի խնդրի վրա: Առաջադրանքը հասկանալը կօգնի ձեզ ընտրել ձեր նպատակին համապատասխանող տվյալների բազա:
2. Դոմենի համապատասխանությունը.Ընտրեք տվյալների բազա, որը համապատասխանում է այն տիրույթին կամ ոլորտին, որի վրա կենտրոնանում եք: Սա երաշխավորում է, որ որոշումների ծառը արժեքավոր պատկերացումներ և իմաստալից կանխատեսումներ կտա ձեր հետաքրքրության ոլորտի համատեքստում:
3. Տվյալների որակ.Գնահատեք տվյալների բազայի որակը և հուսալիությունը: Ստուգեք բացակայող արժեքները, արտաքուստները և անհամապատասխանությունները, որոնք կարող են ազդել որոշման ծառի ալգորիթմների աշխատանքի վրա: Համոզվեք, որ տվյալների հավաքածուն մաքուր է և ներկայացնում է իրական աշխարհի սցենարը, որը ցանկանում եք մոդելավորել:
4. Տվյալների հավաքածուի չափ.Դիտարկենք տվյալների հավաքածուի չափը: Մեծ տվյալների բազան կարող է ապահովել ավելի ամուր և ճշգրիտ որոշումների ծառեր, մինչդեռ փոքր տվյալների բազան կարող է հանգեցնել չափից ավելի հարմարեցման: Ձգտեք հավասարակշռության, որը թույլ է տալիս բավարար թվով դիտարկումներ կատարել՝ առանց ալգորիթմները գերակշռելու:
Հենց որ դուք նույնականացնեք համապատասխան տվյալների բազան, ժամանակն է այն նախապես մշակել՝ համոզվելու համար, որ այն մաքուր և հարմար ձևաչափով է որոշումների ծառի ալգորիթմների համար:
Հաջորդ բաժնում մենք կխորանանք տվյալների նախնական մշակման մեջ՝ նախքան ալգորիթմների մեր ներդրումը սկսելը: Տվյալների նախնական մշակումը կարևոր քայլ է, որն ապահովում է տվյալների բազան համապատասխան ձևաչափով ալգորիթմի համար և օգնում է բարելավել ստացված որոշումների ծառի ճշգրտությունն ու արդյունավետությունը:
Ես ներմուծել եմ տվյալների բազա UCI-ից (https://archive.ics.uci.edu/dataset/367/dota2+games+results)՝ որոշումների ծառերի միջոցով երկուական դասակարգում կատարելու համար:
Տվյալների հավաքածուի նախնական մշակում
Որոշման ծառեր կառուցելու համար հասանելի ալգորիթմների առատության մեջ մենք ընտրել ենք իրական կյանքի սցենարներում առավել հաճախ օգտագործվողները: Եկեք մանրամասն ուսումնասիրենք յուրաքանչյուր ալգորիթմ.
- ID3 (Iterative Dichotomiser 3).
ID3 ալգորիթմը օգտագործում է տեղեկատվության ձեռքբերման չափանիշ՝ որոշման ծառում հանգույցների բաժանման լավագույն հատկանիշները ընտրելու համար: Այն ռեկուրսիվ կերպով կառուցում է ծառը՝ հիմնվելով տեղեկատվության ստացման հաշվարկների վրա: Մենք ID3-ը զրոյից կիրականացնենք Python-ում՝ առանց որևէ արտաքին գրադարանների վրա հենվելու:
ID3 ալգորիթմի միջոցով դասակարգումը կանխատեսելու համար մենք պետք է հաշվարկենք ծնող և երեխա հանգույցների էնտրոպիան՝ բաժանումը կատարելուց հետո՝ հիմնված լավագույն բաժանման վրա:
Էնտրոպիան հաշվարկելուց հետո անհրաժեշտ է որոշել տեղեկատվության ստացումը, ինչպես ցույց է տրված ստորև՝ լավագույն բաժանումը գտնելու համար
Ճշգրտությունը, որը հաշվարկվում է ID3 ալգորիթմի միջոցով՝ 0.9235833783054507
2. C4.5:
C4.5-ը ID3 ալգորիթմի ընդլայնումն է, որը ներառում է լրացուցիչ հնարավորություններ, ինչպիսիք են բացակայող արժեքների և շարունակական ատրիբուտների մշակումը: Այն օգտագործում է շահույթի հարաբերակցության չափանիշ՝ հատկանիշի ընտրության որոշումներ կայացնելու համար: Մենք կխորանանք C4.5-ի իրականացման մանրամասների մեջ և կքննարկենք դրա առավելությունները ID3-ի նկատմամբ:
C4.5-ի համար մենք պետք է հաշվարկենք տեղեկատվության ստացման հարաբերակցության չափանիշը, նախքան մոդելի մեջ ներդնելը՝ ճշգրտությունը կանխատեսելու համար:
C4.5 ալգորիթմի միջոցով հաշվարկված ճշտությունը՝ 0.921856449001619
3. CART (դասակարգման և ռեգրեսիայի ծառեր).
CART-ը բազմակողմանի ալգորիթմ է, որը կարող է օգտագործվել ինչպես դասակարգման, այնպես էլ ռեգրեսիայի առաջադրանքների համար: Այն օգտագործում է Ջինիի ինդեքսը կամ միջին քառակուսի սխալը (MSE)՝ որպես անմաքրության չափումներ՝ հատկանիշի բաժանումները որոշելու համար: Մենք կուսումնասիրենք CART-ի աշխատանքի սկզբունքները և կհասկանանք, թե ինչպես է այն լուծում տարբեր տեսակի խնդիրներ:
Մենք պետք է հաշվարկենք Gini ինդեքսը, որպեսզի հաշվարկենք ճշգրտությունը CART ալգորիթմի միջոցով:
CART ալգորիթմի միջոցով կանխատեսված ճշգրտությունը՝ 0.921856449001619
4. Պատահական անտառ.
Random Forest-ը հզոր համույթի մեթոդ է, որը միավորում է բազմաթիվ որոշումների ծառերը և համախմբում դրանց կանխատեսումները՝ բարելավելու ճշգրտությունը և նվազեցնելու չափից ավելի հարմարեցումը: Այն ներկայացնում է պատահականությունը bootstrapping-ի և պատահական հնարավորությունների ընտրության միջոցով: Մենք կիրականացնենք Random Forest-ը Python-ում և կքննարկենք այս անսամբլի տեխնիկայի առավելությունները:
Պատահական անտառի միջոցով կանխատեսված ճշգրտությունը՝ 0.95876956287102
5. Գրադիենտի ուժեղացում.
Գրադիենտի խթանումը անսամբլի մեկ այլ տեխնիկա է, որը կրկնվող կերպով կառուցում է որոշումների ծառեր, որոնցից յուրաքանչյուրը նպատակ ունի ուղղել նախորդ ծառերի կողմից թույլ տրված սխալները: Այն ձեռք է բերում գերազանց կատարողականություն՝ թույլ սովորողներին միավորելով ուժեղ կանխատեսողի մեջ: Մենք կուսումնասիրենք Gradient Boosting-ի ներքին աշխատանքը և կքննարկենք դրա առավելությունները այլ ալգորիթմների նկատմամբ:
Գրադիենտ խթանման միջոցով կանխատեսված ճշգրտությունը՝ 0.9592012951969778
Օգտագործելով այս լայնորեն օգտագործվող ալգորիթմները, մենք կարող ենք արդյունավետորեն կառուցել որոշումների ծառեր, որոնք արժեքավոր պատկերացումներ են տալիս և հնարավորություն են տալիս տեղեկացված որոշումներ կայացնել տարբեր ոլորտներում:
Եզրակացություն:
Այս հոդվածում մենք լուսաբանել ենք ID3, C4.5, CART, Random Forest և Gradient Boosting ալգորիթմների իրականացումը որոշումների ծառեր կառուցելու համար: Կարևոր է նշել, որ լավագույն ալգորիթմի ընտրությունը կախված է մի քանի գործոններից, այդ թվում՝ կոնկրետ խնդրից, տվյալների բազայի բնութագրերից և ցանկալի արդյունքներից:
ID3-ը, C4.5-ը և CART-ը հիմնարար որոշումների ծառի ալգորիթմներ են, որոնք լավ են համապատասխանում դասակարգային ատրիբուտների և դիսկրետ թիրախային փոփոխականների առաջադրանքների համար: ID3-ը պարզ ալգորիթմ է, մինչդեռ C4.5-ը և CART-ն անդրադառնում են ID3-ի որոշ սահմանափակումների, ինչպիսիք են՝ շարունակական ատրիբուտների մշակումը և բացակայող արժեքները: C4.5-ը, իր տեղեկատվության ձեռքբերման հարաբերակցության չափանիշով, ապահովում է ատրիբուտների ընտրության ավելի լավ ռազմավարություն, երբ գործ ունենք մեծ թվով տարբեր արժեքներով ատրիբուտների հետ:
Մյուս կողմից, Gradient Boosting-ը և Random Forest-ը համույթի մեթոդներ են, որոնք միավորում են բազմաթիվ որոշումների ծառեր՝ ավելի ճշգրիտ մոդելներ ստեղծելու համար: Gradient Boosting-ը կենտրոնանում է մոդելի կրկնվող բարելավման վրա՝ սովորելով նախորդ ծառերի սխալներից, մինչդեռ Random Forest-ը կառուցում է ծառերի բազմազան հավաքածու՝ ներառելով պատահականությունը: Այս համույթի մեթոդները, հատկապես Random Forest-ը, արդյունավետ են տվյալների մեծածավալ շտեմարանների հետ աշխատելու և չափից դուրս տեղադրման վտանգը նվազեցնելու համար:
Երբ մեկնաբանելիությունը կարևոր է, ID3-ը և CART-ը նման ալգորիթմներն ապահովում են ավելի թափանցիկ որոշումների ծառեր՝ թույլ տալով ավելի հեշտ հասկանալ և բացատրել որոշումների կայացման գործընթացը: Ի հակադրություն, անսամբլի մեթոդները, ինչպիսիք են Random Forest-ը և Gradient Boosting-ը, հակված են ավելի բարդ և ավելի քիչ մեկնաբանելի լինել բազմաթիվ ծառերի համակցության պատճառով:
Ի վերջո, ամենահարմար ալգորիթմի ընտրությունը կախված է կոնկրետ խնդրի մանրակրկիտ դիտարկումից, տվյալների բնույթից, մոդելի ցանկալի մեկնաբանելիությունից և ճշգրտության և բարդության փոխզիջումից: Ընտրելով ճիշտ ալգորիթմը և այն արդյունավետ կիրառելով՝ որոշումների ծառերը կարող են հզոր գործիքներ լինել տարբեր ոլորտներում տեղեկացված որոշումներ կայացնելու համար:
Այնուամենայնիվ, կարևոր է նշել, որ ծածկույթը սահմանափակ էր, և կան մի քանի ասպեկտներ, որոնք կարող են ավելի մեծացնել օպտիմալ որոշումների ծառի մոդելի որոնումները: Այս ասպեկտները ներառում են տարբեր պարամետրերի ուսումնասիրություն և կարգավորում, ինչպիսիք են ծառերի խորությունը և գնահատողների թիվը համույթի մեթոդներում, ավելի լավ կատարողականություն ձեռք բերելու համար: Բացի այդ, հաշվի առնելով դասակարգման շեմը և մոդելի գնահատումը, օգտագործելով այնպիսի տեխնիկա, ինչպիսին է ROC կորը, կարող է պատկերացում կազմել մոդելի վարքագծի վերաբերյալ և օգնել օպտիմալացնել դրա կատարումը:
Որոշման ծառերի ամբողջ ներուժը օգտագործելու համար անհրաժեշտ է ավելի խորանալ այս ասպեկտների մեջ, կատարել մանրակրկիտ փորձարկումներ և կիրառել համապատասխան տեխնիկա հիպերպարամետրային թյունինգի, էտման և կատարողականի գնահատման համար: Դրանով մենք կարող ենք հասնել ավելի ճշգրիտ և հուսալի որոշումների ծառի մոդելների, որոնք արդյունավետորեն լուծում են իրական աշխարհի խնդիրների բարդությունները և մարտահրավերները:
Ամբողջական github կոդը՝ https://github.com/YaswanthAdari/Decision_Trees.git
Հղումներ: