For å sylte en trent klassifisering i Python ved å bruke 'surtfeste'-modulen, kan vi følge noen få enkle trinn. Pickling lar oss serialisere et objekt og lagre det i en fil, som deretter kan lastes inn og brukes senere. Dette er spesielt nyttig når vi ønsker å lagre en trent maskinlæringsmodell, for eksempel en regresjonsklassifiserer, for fremtidig bruk uten å måtte trene den på nytt hver gang.
Først må vi importere 'pickle'-modulen i Python-skriptet vårt:
python import pickle
Deretter må vi trene klassifisereren vår og få den trente modellen. La oss anta at vi allerede har trent en regresjonsklassifiserer og lagret den i en variabel kalt 'regresjonsmodell'.
For å sylte den trente modellen kan vi bruke 'pickle.dump()'-funksjonen. Denne funksjonen tar to parametere: objektet vi ønsker å sylte (i dette tilfellet den trente klassifisereren), og filobjektet der vi ønsker å lagre det syltede objektet. Vi kan åpne en fil i skrive binær modus ved å bruke 'open()'-funksjonen.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
I koden ovenfor åpner vi en fil med navnet 'regression_model.pkl' i skrive binær modus ('wb') og sender den som den andre parameteren til 'pickle.dump()'. Den trente klassifikatoren, lagret i 'regression_model'-variabelen, syltes og lagres i filen.
Nå har vi vellykket syltet vår trente klassifiserer. Vi kan laste den tilbake til minnet når vi trenger den ved å bruke 'pickle.load()'-funksjonen.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
I koden ovenfor åpner vi den syltede filen i lese binær modus ('rb') og sender den som parameter til 'pickle.load()'. Det syltede objektet lastes inn i 'loaded_model'-variabelen, som kan brukes til prediksjon eller andre operasjoner.
Her er et komplett eksempel som viser beising og lasting av en trent regresjonsklassifiserer:
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)
I eksemplet ovenfor trener vi først en enkel lineær regresjonsmodell ved å bruke 'LinearRegression'-klassen fra 'sklearn.linear_model'-modulen. Vi sylter deretter den trente modellen til en fil som heter 'regression_model.pkl'. Senere laster vi den syltede modellen fra filen og bruker den til å forutsi verdien for en testinngang 'X_test'.
Ved å sylte og laste den trente klassifisereren kan vi gjenbruke modellen uten å trene den på nytt, noe som kan spare en betydelig mengde tid og beregningsressurser.
Andre nyere spørsmål og svar vedr EITC/AI/MLP maskinlæring med Python:
- Hva er Support Vector Machine (SVM)?
- Er K nærmeste nabo-algoritmen godt egnet for å bygge trenerbare maskinlæringsmodeller?
- Er SVM treningsalgoritme ofte brukt som en binær lineær klassifisering?
- Kan regresjonsalgoritmer fungere med kontinuerlige data?
- Er lineær regresjon spesielt godt egnet for skalering?
- Hvordan betyr skift dynamisk båndbredde tilpasset båndbreddeparameteren basert på tettheten til datapunktene?
- Hva er hensikten med å tildele vekter til funksjonssett i implementeringen av gjennomsnittlig skift dynamisk båndbredde?
- Hvordan bestemmes den nye radiusverdien i den dynamiske båndbreddemetoden for gjennomsnittlig skift?
- Hvordan håndterer den dynamiske båndbreddetilnærmingen med gjennomsnittlig skift å finne centroider riktig uten å hardkode radiusen?
- Hva er begrensningen ved å bruke en fast radius i middelforskyvningsalgoritmen?
Se flere spørsmål og svar i EITC/AI/MLP Machine Learning with Python