Za kiseljenje obučenog klasifikatora u Pythonu pomoću modula 'pickle', možemo slijediti nekoliko jednostavnih koraka. Pikling nam omogućava da serijaliziramo objekt i spremimo ga u datoteku, koja se zatim može učitati i koristiti kasnije. Ovo je posebno korisno kada želimo da sačuvamo obučeni model mašinskog učenja, kao što je klasifikator regresije, za buduću upotrebu bez potrebe da ga svaki put ponovo obučavamo.
Prvo, moramo uvesti modul 'pickle' u našu Python skriptu:
python import pickle
Zatim, trebamo trenirati naš klasifikator i dobiti obučeni model. Pretpostavimo da smo već trenirali regresijski klasifikator i pohranili ga u varijablu pod nazivom 'regression_model'.
Za kiseljenje obučenog modela, možemo koristiti funkciju 'pickle.dump()'. Ova funkcija uzima dva parametra: objekat koji želimo da depiliramo (u ovom slučaju obučeni klasifikator) i fajl objekat u koji želimo da sačuvamo pikirani objekat. Možemo otvoriti datoteku u binarnom načinu pisanja pomoću funkcije 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
U gornjem kodu otvaramo datoteku pod nazivom 'regression_model.pkl' u binarnom načinu pisanja ('wb') i prosljeđujemo je kao drugi parametar u 'pickle.dump()'. Obučeni klasifikator, pohranjen u varijabli 'regression_model', se bira i pohranjuje u datoteku.
Sada smo uspješno ukiselili naš obučeni klasifikator. Možemo ga ponovo učitati u memoriju kad god nam zatreba pomoću funkcije 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
U gornjem kodu otvaramo pikled datoteku u binarnom modu čitanja ('rb') i prosljeđujemo je kao parametar u 'pickle.load()'. Pikirani objekat se učitava u varijablu 'loaded_model', koja se može koristiti za predviđanje ili bilo koje druge operacije.
Evo kompletnog primjera koji demonstrira kiseljenje i učitavanje obučenog regresijskog klasifikatora:
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
U gornjem primjeru, prvo treniramo jednostavan model linearne regresije koristeći klasu 'LinearRegression' iz modula 'sklearn.linear_model'. Zatim upakovamo obučeni model u datoteku pod nazivom 'regression_model.pkl'. Kasnije učitavamo ukiseljeni model iz datoteke i koristimo ga da predvidimo vrijednost za testni ulaz 'X_test'.
Sastavljanjem i učitavanjem obučenog klasifikatora, možemo ponovo koristiti model bez potrebe za ponovnim obučavanjem, što može uštedjeti značajnu količinu vremena i računskih resursa.
Ostala nedavna pitanja i odgovori u vezi EITC/AI/MLP mašinsko učenje sa Pythonom:
- Šta je mašina vektora podrške (SVM)?
- Da li je algoritam K najbližih susjeda dobro prikladan za izgradnju modela mašinskog učenja koji se može obučiti?
- Da li se SVM algoritam za obuku obično koristi kao binarni linearni klasifikator?
- Mogu li algoritmi regresije raditi s kontinuiranim podacima?
- Da li je linearna regresija posebno pogodna za skaliranje?
- Kako znači pomak dinamičkog propusnog opsega prilagodljivo prilagoditi parametar širine pojasa na osnovu gustine podataka?
- Koja je svrha dodjeljivanja pondera skupovima karakteristika u implementaciji dinamičkog propusnog opsega srednjeg pomaka?
- Kako se nova vrijednost radijusa određuje u pristupu dinamičkog propusnog opsega srednjeg pomaka?
- Kako pristup dinamičkog propusnog opsega sa pomakom srednjeg pomaka pravilno rješava pronalaženje centara bez tvrdog kodiranja radijusa?
- Koje je ograničenje upotrebe fiksnog radijusa u algoritmu srednjeg pomaka?
Pogledajte više pitanja i odgovora u EITC/AI/MLP mašinskom učenju uz Python