Որոշման ծառեր

Որոշման ծառերը հատուկ տեղ են զբաղեցնում իմ սիրելի մեքենայական ուսուցման ալգորիթմների շարքում, և երբ մենք խորանում ենք այս հոդվածում, դուք կիմանաք, թե ինչու են նրանք այդպիսի ժողովրդականություն ձեռք բերել ոլորտում:

Մեքենայի ուսուցման ոլորտում որոշումների ծառերը հաճախ կոչվում են «ոչ պարամետրիկ մոդելներ»: Այս պիտակը ցույց է տալիս նրանց ճկունությունը, քանի որ Որոշման ծառերը չեն ավելացնում պարամետրերի քանակը, քանի որ մոդելին ավելացվում են ավելի շատ հատկանիշներ (երբ ճիշտ կառուցված է): Ավելին, Որոշման ծառերը կարող են տրամադրել և՛ կատեգորիկ կանխատեսումներ, ինչպիսիք են բույսի տեսակը որոշելը, և՛ թվային կանխատեսումներ, ինչպիսին է տան գինը գնահատելը:

Նախքան թեմայի իրական բովանդակության մեջ մտնելը, թույլ տվեք ձեզ հարցնել.

Բայց ի՞նչն է իրականում առանձնացնում Որոշումների ծառերը և դարձնում դրանք բարձր գնահատական ​​մեքենայական ուսուցման համայնքում:

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

Ինտուիցիա

Ես ատում եմ օգտագործել նախորդ սերունդների կողմից հորինված շքեղ տերմինը, բայց, այնուամենայնիվ, այստեղ ես դեռ անձնատուր եմ լինում մեքենայական ուսուցման սկզբունքներին:

Այսպիսով, ինչպե՞ս ենք մենք ավելի լավ հասկանալ որոշումների ծառերը ավելի պարզ բառերով: Դե, իսկ ի՞նչ կասեք մեզ համար մեկը կառուցելու մասին: Միգուցե այդ ժամանակ մենք կարողանանք ավելի լավ հասկանալ դրանց մասին: (Հուսանք, այո!)

Բայց նախքան որոշումների ծառ կառուցելը, եկեք ծանոթանանք մի քանի տերմինների հետ.

Արմատային հանգույց.Սա ծառի մեկնարկային կետն է: Նորմալ որոշումների ծառի մեջ այն գնահատում է այն փոփոխականը, որը լավագույնս բաժանում է տվյալները:

Որոշման հանգույց/միջանկյալ հանգույց.Սրանք հանգույցներ են, որտեղ գնահատվում են փոփոխականները, բայց դրանք վերջնական հանգույցներ չեն, որտեղ կանխատեսումներ են արվում:

Տերեւային հանգույցներ.Սրանք այն հանգույցներն են, որտեղ կատարվում են կանխատեսումներ: Երբ տվյալների կետը հասնում է տերևային հանգույցին, բաժանման գործընթացը դադարում է:

Էտում.Սա վերաբերում է հանգույցների հեռացմանը` չափից ավելի տեղադրումը կանխելու համար:

Որոշման ծառերը կառուցվում են օգտագործելով երկու հիմնական տարրեր՝ հանգույցներ և ճյուղեր: Յուրաքանչյուր հանգույցում գնահատվում է մեր տվյալների առանձնահատկություններից մեկը՝ վերապատրաստման գործընթացի ընթացքում դիտարկումները բաժանելու կամ կանխատեսում կատարելիս կոնկրետ տվյալների կետի ուղին որոշելու համար:

Պատկերացնելու համար եկեք դիտարկենք որոշման ծառի պարզ օրինակ: Ենթադրենք՝ եղանակից ելնելով ուզում ենք որոշել թենիս խաղալ, թե ոչ: Եթե ​​եղանակը ամպամած է, ապա թենիս են խաղում։ Եթե ​​արև է, ապա ստուգում ենք խոնավությունը։ Եթե ​​խոնավությունը բարձր է, ապա թենիս չեն խաղում։ Ինչպես նշվեց ավելի վաղ, որոշման ծառերի հիմքում ընկած տրամաբանությունը պարզ է, և դա այն է, ինչն իսկապես առանձնացնում է դրանք:

Որոշման ծառերի կառուցման ժամանակ տարբեր առանձնահատկություններ ռեկուրսիվորեն գնահատվում են, և յուրաքանչյուր հանգույցում ընտրվում է այն հատկանիշը, որը լավագույնս բաժանում է տվյալները։

Այժմ, երբ ընդհանուր պատկերացում ունեք, թե ինչ են որոշումների ծառերը, կարող եք ունենալ որոշ հարցեր.

- Ո՞ր հատկանիշը պետք է ընտրենք առաջինը:
- Ինչպիսի՞ն պետք է լինի բաժանման կարգը:
- Ինչպե՞ս ենք որոշում երեխաների հանգույցների քանակը:
- Ինչպե՞ս կարող ենք համեմատել երկու առանձնահատկությունները՝ որոշելու համար, թե որոնք մեկը ավելի լավ է պառակտման համար:
- Ինչպե՞ս ենք մենք որոշում բաժանման չափանիշները:

Մինչ այս հարցերին պատասխանելը, թույլ տվեք ձեզ ներկայացնել հետևյալ թեմաները.

Էնտրոպիա.

Էնտրոպիան վերահսկում է, թե ինչպես է որոշումների ծառը որոշում, թե որտեղ պետք է բաժանել տվյալները: Դա տվյալների կետերում անմաքրության կամ պատահականության չափումն է:

Էնտրոպիանհաշվարկվում է 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)՝ որոշումների ծառերի միջոցով երկուական դասակարգում կատարելու համար:

Տվյալների հավաքածուի նախնական մշակում

Որոշման ծառեր կառուցելու համար հասանելի ալգորիթմների առատության մեջ մենք ընտրել ենք իրական կյանքի սցենարներում առավել հաճախ օգտագործվողները: Եկեք մանրամասն ուսումնասիրենք յուրաքանչյուր ալգորիթմ.

  1. 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

Հղումներ: