Pentru a decapa un clasificator antrenat în Python folosind modulul „pickle”, putem urma câțiva pași simpli. Pickling ne permite să serializeze un obiect și să-l salvăm într-un fișier, care poate fi apoi încărcat și utilizat ulterior. Acest lucru este util în special atunci când dorim să salvăm un model de învățare automată antrenat, cum ar fi un clasificator de regresie, pentru utilizare ulterioară, fără a fi nevoie să-l reantrenăm de fiecare dată.
Mai întâi, trebuie să importam modulul „pickle” în scriptul nostru Python:
python import pickle
În continuare, trebuie să ne antrenăm clasificatorul și să obținem modelul antrenat. Să presupunem că am antrenat deja un clasificator de regresie și l-am stocat într-o variabilă numită „regression_model”.
Pentru a decapa modelul antrenat, putem folosi funcția 'pickle.dump()'. Această funcție ia doi parametri: obiectul pe care vrem să-l decapam (în acest caz, clasificatorul antrenat) și obiectul fișier în care dorim să salvăm obiectul decapat. Putem deschide un fișier în modul binar de scriere folosind funcția „open()”.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
În codul de mai sus, deschidem un fișier numit „regression_model.pkl” în modul binar de scriere („wb”) și îl transmitem ca al doilea parametru la „pickle.dump()”. Clasificatorul antrenat, stocat în variabila „regression_model”, este decapat și salvat în fișier.
Acum, am ales cu succes clasificatorul nostru instruit. Îl putem încărca înapoi în memorie ori de câte ori avem nevoie de el folosind funcția „pickle.load()”.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
În codul de mai sus, deschidem fișierul pickle în modul binar de citire ('rb') și îl transmitem ca parametru la 'pickle.load()'. Obiectul decapat este încărcat în variabila „loaded_model”, care poate fi folosită pentru predicție sau orice alte operațiuni.
Iată un exemplu complet care demonstrează decaparea și încărcarea unui clasificator de regresie antrenat:
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)
În exemplul de mai sus, antrenăm mai întâi un model de regresie liniară simplă folosind clasa „LinearRegression” din modulul „sklearn.linear_model”. Apoi decapăm modelul antrenat într-un fișier numit „regression_model.pkl”. Mai târziu, încărcăm modelul murat din fișier și îl folosim pentru a prezice valoarea pentru o intrare de test „X_test”.
Prin decaparea și încărcarea clasificatorului antrenat, putem reutiliza modelul fără a fi nevoie să-l reantrenăm, ceea ce poate economisi o cantitate semnificativă de timp și resurse de calcul.
Alte întrebări și răspunsuri recente cu privire la EITC/AI/MLP Machine Learning cu Python:
- Ce este Support Vector Machine (SVM)?
- Este algoritmul K vecinilor cei mai apropiați potrivit pentru construirea modelelor de învățare automată care pot fi antrenate?
- Este algoritmul de antrenament SVM folosit în mod obișnuit ca clasificator liniar binar?
- Algoritmii de regresie pot funcționa cu date continue?
- Este regresia liniară foarte potrivită pentru scalare?
- Cum înseamnă schimbarea lățimii de bandă dinamică, ajustarea adaptivă a parametrului lățimii de bandă în funcție de densitatea punctelor de date?
- Care este scopul atribuirii de ponderi seturi de caracteristici în implementarea lățimii de bandă dinamică a deplasării medii?
- Cum se determină noua valoare a razei în abordarea lățimii de bandă dinamică a deplasării medii?
- Cum se ocupă de abordarea lățimii de bandă dinamică a deplasării medii găsirea corectă a centroizilor fără a codifica raza?
- Care este limitarea utilizării unei raze fixe în algoritmul de schimbare medie?
Vedeți mai multe întrebări și răspunsuri în EITC/AI/MLP Machine Learning cu Python