För att beta en tränad klassificerare i Python med hjälp av modulen "pickle", kan vi följa några enkla steg. Betning låter oss serialisera ett objekt och spara det i en fil, som sedan kan laddas och användas senare. Detta är särskilt användbart när vi vill spara en tränad maskininlärningsmodell, till exempel en regressionsklassificerare, för framtida användning utan att behöva träna om den varje gång.
Först måste vi importera "pickle"-modulen i vårt Python-skript:
python import pickle
Därefter måste vi träna vår klassificerare och skaffa den tränade modellen. Låt oss anta att vi redan har tränat en regressionsklassificerare och lagrat den i en variabel som kallas 'regression_model'.
För att beta den tränade modellen kan vi använda funktionen 'pickle.dump()'. Den här funktionen tar två parametrar: objektet vi vill beta (i det här fallet den tränade klassificeraren) och filobjektet där vi vill spara det inlagda objektet. Vi kan öppna en fil i binärt skrivläge med funktionen 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
I koden ovan öppnar vi en fil med namnet 'regression_model.pkl' i binärt skrivläge ('wb') och skickar den som den andra parametern till 'pickle.dump()'. Den tränade klassificeraren, lagrad i variabeln 'regression_model', betas och sparas i filen.
Nu har vi framgångsrikt sylt vår utbildade klassificerare. Vi kan ladda tillbaka det till minnet när vi behöver det med funktionen 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
I ovanstående kod öppnar vi den inlagda filen i läs binärt läge ('rb') och skickar den som parameter till 'pickle.load()'. Det betade objektet laddas in i variabeln 'loaded_model', som kan användas för förutsägelse eller andra operationer.
Här är ett komplett exempel som visar betning och lastning av en tränad regressionsklassificerare:
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 exemplet ovan tränar vi först en enkel linjär regressionsmodell med klassen 'LinearRegression' från modulen 'sklearn.linear_model'. Vi syltar sedan den tränade modellen till en fil som heter 'regression_model.pkl'. Senare laddar vi den inlagda modellen från filen och använder den för att förutsäga värdet för en testingång 'X_test'.
Genom att beta och ladda den tränade klassificeraren kan vi återanvända modellen utan att behöva träna om den, vilket kan spara en betydande mängd tid och beräkningsresurser.
Andra senaste frågor och svar ang EITC/AI/MLP maskininlärning med Python:
- Vad är Support Vector Machine (SVM)?
- Är K närmaste grannar-algoritmen väl lämpad för att bygga inlärningsbara maskininlärningsmodeller?
- Används SVM-träningsalgoritmen vanligtvis som en binär linjär klassificerare?
- Kan regressionsalgoritmer fungera med kontinuerliga data?
- Är linjär regression särskilt väl lämpad för skalning?
- Hur betyder skift dynamisk bandbredd adaptivt justera bandbreddsparametern baserat på densiteten hos datapunkterna?
- Vad är syftet med att tilldela vikter till funktionsuppsättningar i implementeringen av genomsnittlig dynamisk bandbredd?
- Hur bestäms det nya radievärdet i den dynamiska bandbreddsmetoden för medelförskjutning?
- Hur hanterar den dynamiska bandbreddsmetoden för medelförskjutning att hitta centroider korrekt utan att hårdkoda radien?
- Vad är begränsningen med att använda en fast radie i medelskiftalgoritmen?
Se fler frågor och svar i EITC/AI/MLP Machine Learning med Python