For at sylte en trænet klassificering i Python ved hjælp af 'pickle'-modulet, kan vi følge et par enkle trin. Pickling giver os mulighed for at serialisere et objekt og gemme det i en fil, som derefter kan indlæses og bruges senere. Dette er især nyttigt, når vi ønsker at gemme en trænet maskinlæringsmodel, såsom en regressionsklassifikator, til fremtidig brug uden at skulle genoptræne den hver gang.
Først skal vi importere 'pickle'-modulet i vores Python-script:
python import pickle
Dernæst skal vi træne vores klassificering og få den trænede model. Lad os antage, at vi allerede har trænet en regressionsklassifikator og gemt den i en variabel kaldet 'regression_model'.
For at sylte den trænede model kan vi bruge funktionen 'pickle.dump()'. Denne funktion tager to parametre: det objekt, vi vil sylte (i dette tilfælde den trænede klassifikator), og det filobjekt, hvor vi vil gemme det syltede objekt. Vi kan åbne en fil i skrive binær tilstand ved at bruge funktionen 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
I ovenstående kode åbner vi en fil med navnet 'regression_model.pkl' i skrive binær tilstand ('wb') og sender den som den anden parameter til 'pickle.dump()'. Den trænede klassifikator, gemt i 'regression_model'-variablen, syltes og gemmes i filen.
Nu har vi med succes syltet vores trænede klassificeringsapparat. Vi kan indlæse det tilbage i hukommelsen, når vi har brug for det ved hjælp af 'pickle.load()'-funktionen.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
I ovenstående kode åbner vi den syltede fil i læse binær tilstand ('rb') og sender den som parameter til 'pickle.load()'. Det syltede objekt indlæses i variabelen 'loaded_model', som kan bruges til forudsigelse eller andre operationer.
Her er et komplet eksempel, der demonstrerer bejdsningen og påfyldningen af en trænet regressionsklassifikator:
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 ovenstående eksempel træner vi først en simpel lineær regressionsmodel ved at bruge klassen 'LinearRegression' fra modulet 'sklearn.linear_model'. Vi sylter derefter den trænede model til en fil med navnet 'regression_model.pkl'. Senere indlæser vi den syltede model fra filen og bruger den til at forudsige værdien for en testinput 'X_test'.
Ved at bejdse og indlæse den trænede klassifikator kan vi genbruge modellen uden at skulle genoptræne den, hvilket kan spare en betydelig mængde tid og beregningsressourcer.
Andre seneste spørgsmål og svar vedr EITC/AI/MLP maskinindlæring med Python:
- Hvad er Support Vector Machine (SVM)?
- Er K nærmeste nabo-algoritmen velegnet til at bygge oplærbare maskinlæringsmodeller?
- Er SVM træningsalgoritme almindeligvis brugt som en binær lineær klassifikator?
- Kan regressionsalgoritmer arbejde med kontinuerlige data?
- Er lineær regression særligt velegnet til skalering?
- Hvordan betyder skift dynamisk båndbredde adaptivt justere båndbreddeparameteren baseret på tætheden af datapunkterne?
- Hvad er formålet med at tildele vægte til funktionssæt i implementeringen af den gennemsnitlige dynamiske båndbredde?
- Hvordan bestemmes den nye radiusværdi i metoden med middelskift dynamisk båndbredde?
- Hvordan håndterer den gennemsnitlige skift dynamiske båndbredde tilgang at finde tyngdepunkter korrekt uden hård kodning af radius?
- Hvad er begrænsningen ved at bruge en fast radius i middelforskydningsalgoritmen?
Se flere spørgsmål og svar i EITC/AI/MLP Machine Learning med Python