Kako bismo ukiselili obučenog klasifikatora u Pythonu pomoću modula 'pickle', možemo slijediti nekoliko jednostavnih koraka. Pickling nam omogućuje da serijaliziramo objekt i spremimo ga u datoteku, koja se zatim može učitati i koristiti kasnije. Ovo je osobito korisno kada želimo spremiti obučeni model strojnog učenja, kao što je regresijski klasifikator, za buduću upotrebu bez potrebe da ga svaki put ponovno obučavamo.
Prvo, moramo uvesti modul 'pickle' u našu Python skriptu:
python import pickle
Zatim moramo obučiti naš klasifikator i dobiti obučeni model. Pretpostavimo da smo već uvježbali 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: objekt koji želimo ukiseliti (u ovom slučaju, obučeni klasifikator) i objekt datoteke u koji želimo spremiti ukiseljeni objekt. Datoteku možemo otvoriti 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()'. Uvježbani klasifikator, pohranjen u varijabli 'regression_model', bira se i sprema u datoteku.
Sada smo uspješno ukiselili našeg obučenog klasifikatora. Možemo ga učitati natrag 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 ukiseljenu datoteku u binarnom načinu čitanja ('rb') i prosljeđujemo je kao parametar 'pickle.load()'. Ukiseljeni objekt učitava se u varijablu 'loaded_model', koja se može koristiti za predviđanje ili bilo koje druge operacije.
Evo cjelovitog primjera koji pokazuje odabiranje 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 obučavamo jednostavan model linearne regresije koristeći klasu 'LinearRegression' iz modula 'sklearn.linear_model'. Zatim smo ukiselili obučeni model u datoteku pod nazivom 'regression_model.pkl'. Kasnije učitavamo odabrani model iz datoteke i koristimo ga za predviđanje vrijednosti za testni unos 'X_test'.
Odabirom i učitavanjem obučenog klasifikatora, možemo ponovno koristiti model bez potrebe za ponovnim uvježbavanjem, što može uštedjeti značajnu količinu vremena i računalnih resursa.
Ostala nedavna pitanja i odgovori u vezi EITC/AI/MLP Strojno učenje s Pythonom:
- Što je Support Vector Machine (SVM)?
- Je li algoritam K najbližih susjeda prikladan za izgradnju modela strojnog učenja koji se mogu obučiti?
- Koristi li se SVM algoritam za obuku obično kao binarni linearni klasifikator?
- Mogu li regresijski algoritmi raditi s kontinuiranim podacima?
- Je li linearna regresija posebno prikladna za skaliranje?
- Kako dinamička propusnost srednjeg pomaka adaptivno prilagođava parametar propusnosti na temelju gustoće podatkovnih točaka?
- Koja je svrha dodjele težine skupovima značajki u implementaciji dinamičke propusnosti srednjeg pomaka?
- Kako se određuje nova vrijednost radijusa u pristupu dinamičke propusnosti srednjeg pomaka?
- Kako pristup dinamičke propusnosti srednjeg pomaka rješava ispravno pronalaženje težišta bez teškog kodiranja radijusa?
- Koje je ograničenje korištenja fiksnog radijusa u algoritmu srednjeg pomaka?
Pogledajte više pitanja i odgovora u EITC/AI/MLP Strojno učenje s Pythonom