[UUUI] 3. laboratorijska vježba - 2020/2021
Diego
Za predikciju ulaza upper_class,male,child,over_100,B,yes
za correct_output_less_branches treba bit no
za correct_output trebalo bi biti yes
Jel ja to krivi vidim ili za dva sluzbena rjesenja za isti ulaz dobije se različita rjesenja?
funky_funghi
Diego Ne. Možeš na dva načina pristupiti rješavanju: ili ćeš iz zadnjeg čvora (age) povući samo one vrijednosti koje si vidio, a negdje sa strane u tom čvoru upisati što vratiti u slučaju vrijednosti koju nisi vidio, ili možeš povući sve moguće vrijednosti iz tog čvora i ono što bi pisao sa strane upisati u njih.
Za primjer koji si naveo je vrijednost koja bi pisala sa strane (u slučaju “less_branches”), tj. piše u umjetno dodanim listovima (u datoteci s više grana) je “yes” zato što se češće pojavljuje u podatcima za treniranje (dakle ne nužno u vrhovima grana!):
benac
jel bitno kojim ce redosljedom algoritam prolazit kroz vrijednosti znacajke(npr ako prvo ulazi u rainy,pa sunny, pa couldy)
funky_funghi
caneb Nije bitno koju granu ispišeš prije, a koju kasnije. Bitno je da ih sve ispišeš
miran
Jesu li mijenjali nacin koristenja autogradera?
Kad pokrenem autograder Python file ne generira mi nikakav ispis.
funky_funghi
mirko Komanda koju treba pokrenuti je: python autograder.py lab3
bernard
mirko kakvo je to uopće pitanje? pa naravno! nekonzistentni su i apsolutno svaki labos ima drugačiji API za autograder tak da imamo posla (oni koji to rade ko ja) zajebavat se z dorađivanjem auto-autograder skripte.
autizam.
Diego
funky_funghi Hvala ti vec me tjedan dana to muci
TheNubKiller
Na koju foru je ovo “yes” za titanic?:
(passenger_class)=upper_class (sex)=male (age)=child (fare)=over_100 (cabin_letter)=B (to je testni primjer)
Što trebam vratiti ako stablo ide npr (sex) - (passenger_class) i dalje stane? Koju vrijednost trebam vratit? Govorim za testne primjere jer mi je stablo dobro
ovo su dvije grane kojima stablo može ići:
1:sex=male 2:cabin_letter=B 3:fare=over_100 4:age=young_adult no
1:sex=male 2:cabin_letter=B 3:fare=over_100 4:age=adult yes
ali primjer je age=child, pa kako yes?
edit: verzija sa less branches
funky_funghi
Lumpy To je “yes” zato što ta grana stabla ide:
1:sex=male 2:cabin_letter=B 3:fare=over_100 4:age
… a za sljedeći čvor (age) u tom tvom testnom primjeru imaš vrijednost “child” koja se nije pojavila u podatcima za treniranje za tu granu (slika u mojem prošlom komentaru prikazuje sve podatke za treniranje uz zadane vrijednosti prethodnih čvorova, tj. u toj grani).
Kad ti se to dogodi, uzimaš onu završnu vrijednost koja se najčešće pojavljivala u podatcima za treniranje u toj grani, a to je u ovom slučaju “yes”.
funky_funghi
Dakle nemoj zaboraviti da se ne broje grane nego podatci za treniranje jer tako piše u uputama za izradu vježbe:
Pri predikciji (metoda predict), ako se model u nekom čvoru susretne s vrijednošću
značajke koju dosad nije vidio, kao predikciju treba vratiti najčešću vrijednost ciljne
varijable u podskupu podataka za treniranje u tom čvoru.
TheNubKiller
funky_funghi HVALA!!!!!!!!!!!!!!! Sad sve radi 100% 🙂
Jale
funky_funghi zna li netko u cemu bi mogao biti problem ako vec radim ovo a krivo 2 predikcije su mi krive i generira neke grane pogresno u oba titanic primjera
funky_funghi
čakijale Na temelju ovih informacija mi je teško skužit di je problem. Ako si provjerio da ti kôd radi baš po onom pseudokodu i da ovakav argmax koristiš i u onom if-u kad je D prazan i u onom izvan kad nije, onda još baci oko jel ti traži minimum po abecednom poretku (osim u spomenutim argmaxovima) i u argmax-u za informacijsku dobit (makar ne piše izričito u uputama)
Jale
wesley jesi uspjela popravit mozda u meduvremenu, imam isti problem
wesley
čakijale nisam :/
Nocna_smjena
J*bala ih ova 4 ectsa. Ajme kako mi zivce svaki put proradi kad cujem u glavi Snajderove rijeci s pocetka semestra: “Ovaj predmet je adekvatnog opterecenja s obzirom na broj dodjeljenih ects-a” -.-'
Tompa007
ovo su dva redka u train-u , u testu dolazi
“upper_class,female,adult,20_to_30,D,yes” , njihova predikcija kaze da je “no” , mene zanima kako i zasto je to tako ? kaj nebi trebali abecedno uzet i stim uzimamo granu B i to je “yes” ?
Fikalo
𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁 ako postoji upper_class,female,adult,20_to_30,D onda uzmes njegov zavrsni, ili ako imas vise upper_class,female,adult,20_to_30,D preborjis sve zavrsne za njih pa uzmes najcesci, a ako sam dobro shvatio i nepostoji upper_class,female,adult,20_to_30,D onda uzmes sve upper_class,female,adult,20_to_30 koji postoje i uzmes najcesci zavrsni od njih, znaci i C i B, i ako u ovom slucaju postoje samo dva retka, jedan zavrsava s no, a drugi yes, posto imaju isti broj pojavljivanja (1-1), onda gledas zavrsne znakove abecedno, a n dolazi prije y pa odaberes no
Retard00
Kak bi trebo izgledat ispis u [BRANCHES] ako je on samo npr. za volleyball odgovor “yes” ili “no”?
funky_funghi
Retard00 Ako sam dobro skužio pitanje: Kad su sve vrijednosti izlaza jednake, tj. kad je dubina stabla 0, samo ispiši tu vrijednost izlaza, tj. list koji je ujedno korijen stabla (kao u 3. primjeru ispisa - str. 8 u uputama za LV)
Jale
funky_funghi hvala na odgovoru, problem je bio sto sam se nesto glupo zabunio i stavljao u list neku glupu vrijednost umjesto najcesce oznake klase u tom cvoru
wesley skuzio sam sto mi je bilo krivo, kad trazim najvecu informacijsku dobit, u if naredbi gdje provjeravam je li trenutni IG veci od do tada najveceg IG sam zaboravio na slucaj gdje je IG == max_IG, a varijabla u kojoj cuvam najdiskriminativniju znacajku do sad nije postavljena (kad je postavljena usporeduje se abecedno), mozda je tebi nesto slicno kad je isti problem. Hope it helps