Figura 27.1: Un arbore de decizie (nu unul deosebit de bun, după cum se va dovedi) pentru setul de date despre jocuri video.
Imaginile arborilor de decizie din capitolul 27 au fost destul de ilustrative, dar, desigur, pentru a automatiza ceva, trebuie să scriem cod în loc să desenăm imagini. Cum ar arăta Figura 27.1 în cod Python? Este de fapt destul de simplă, deși există o mulțime de indentări imbricate. Vedeți dacă puteți urmări fluxul din Figura 28.1.
Aici definim o funcție numită predict() care primește trei argumente, câte unul pentru fiecare valoare a caracteristicii. Setul uimitor de instrucțiuni if/elif/else pare descurajant la început, dar când îl examinați cu atenție, veți realiza că reflectă perfect structura diagramei. De fiecare dată când coborâm cu un nivel al arborelui, indentăm un tab la dreapta. Corpul instrucțiunii „if major == ‘PSYC’:” este foarte scurt deoarece ramura din stânga arborelui (pentru Psihologie) este foarte simplă. Corpul „elif major == ‘CPSC’ :”, prin contrast, are o structură internă imbricată tocmai pentru că ramura din dreapta a arborelui (pentru Informatică) este complexă. Etc.
def predict(major, age, gender): if major == 'PSYC': return 'No' elif major == 'MATH': if gender == 'M': return 'No' elif gender == 'F' or gender == 'O': return 'Yes' elif major == 'CPSC': if age == 'young': return 'Yes' elif age == 'middle': return 'No' elif age == 'old': if gender == 'M' or gender == 'O': return 'Yes' elif gender == 'F': return 'No'
Figura 28.1: O implementare Python a arborelui decizional din Figura 27.1.
Dacă apelăm această funcție, ne va oferi exact aceleași predicții pe care le-am calculat manual:
print(predict('PSYC','M','old'))
print(predict('MATH','O','young'))
print(predict('CPSC','F','old'))
▌No ▌Yes ▌No
Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2025 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.




Lasă un răspuns