[STRUCE1] 5. laboratorijska vježba - 2021/2022
gad_gadski
Imam problem kod dijela di predajemo svoji predict u funkciju plot_2d_clf_problem(). Predict mi prima primjer x i vraca oznaku klase, te ga predajem isto kao i ovaj ugrađeni predict (za koji funkcija za graf radi):
plot_2d_clf_problem(X_art, y_art, lambda x: neigh.predict(x)) - njihov predict
plot_2d_clf_problem(X_art, y_art, lambda x: knn.predict(x)) - moj predict.
Dobivam ovaj error
Netko zna u cemu je problem?
tomekbeli420
gad_gadski predict ti mora primati 2D polje/matricu primjera po retcima i vratiti 1D polje oznaka klasa
također quick tip, ne moraš pisati vlastitu lambdu, možeš kao 3. argument staviti samo npr knn.predict
steker
u 1b) kako radi ovaj KNeighborsClassifier u slucaju kada dode do izjednacenja glasova klasa kod predikcije? jel uzme samo klasu s najmanjim indeksom ili
gad_gadski
U 2b), jel normalno da svaki put kad run-am kod da mi daje drukcije najbolje k-ove?
nikace
gad_gadski mislim da se generiraju različiti primjeri pa da su i izgledi grafova drugačiji, a tim i najbolji k-ovi
teta_iz_menze
jel trebamo splitat u train i test podskupove u prvom zadatku (pod a konkretno)
ErnestHemingway
BillIK
je li ovo u redu za 2.a ?
teta_iz_menze
BillIK nezz jel uredu, ali dobio sam isto
Zero
Što trebamo usporediti sa numpy.all u 1.b) ?
SuperSaiyano
Zero Treba usporediti one array-eve što dobiješ iz svoje i ugrađene implementacije primjenom funkcije predict(). Onda ih samo usporediš i primjeniš .all() na njima ( npr. (predict_custom == predict_implemented).all() ). Ako ti je True onda je tvoja implementacija dobra.
Baksuz
Kako ste fittali klasu KNN u prvom zadatku?
tomekbeli420
Baksuz nemaš nikakvih parametara za nafitati, ja sam samo sačuvao informacije o npr oznakama klasa, koliko ih ima, itd… Naravno moraš sačuvati (referencu) primjera za treniranje i njihovih oznaka da bi mogao kasnije ih koristiti u predictu.
maraska
Kako se točno koristi ova norm funkcija? Mislila sam da trebam usporediti svaki testni primjer sa svakim train primjerom, ali onda ponovo dobijem vektore pa nez što dalje s tim.
tomekbeli420
maraska Najlakše ti je za ovaj labos, recimo da imaš 2D matricu vektora po retcima
onda norm možeš koristiti ovako, u jednom pozivu:
import numpy as np
vectors = np.array([[-1, 1], [-2.3, 0]])
norms = np.linalg.norm(vectors, axis=1)
print(norms) #ispisuje [1.41421356 2.3 ]
e a kako ovo iskoristiti za računanje euklidskih udaljenosti, pa od skupa primjera za treniranje oduzmeš primjer od kojeg racunas udaljenosti svakog primjera
#neka je x primjer od kojeg racunas udaljenosti svakog primjera iz training seta X_train
X_diff = X_train - x
norms = np.linalg.norm(X_diff, axis=1)
m21
Kako bi trebali koristit numpy.all za usporedbu nizova u 1. zadatku?
Bucc
m21 (a==b).all()
ipak ne to nije s numpy-em, ide numpy.all(a, b)
m21
Olive Oil Radi mi ovako numpy.all(a==b)
Bucc
m21 e to, == ide, krivo sam se prisjetio