Per seleccionar un classificador entrenat a Python mitjançant el mòdul 'pickle', podem seguir uns quants passos senzills. Pickling ens permet serialitzar un objecte i desar-lo en un fitxer, que es pot carregar i utilitzar més tard. Això és especialment útil quan volem desar un model d'aprenentatge automàtic entrenat, com ara un classificador de regressió, per a un ús futur sense necessitat de tornar-lo a entrenar cada vegada.
Primer, hem d'importar el mòdul 'pickle' al nostre script Python:
python import pickle
A continuació, hem d'entrenar el nostre classificador i obtenir el model entrenat. Suposem que ja hem entrenat un classificador de regressió i l'hem emmagatzemat en una variable anomenada "regression_model".
Per encaixar el model entrenat, podem utilitzar la funció 'pickle.dump()'. Aquesta funció pren dos paràmetres: l'objecte que volem conservar (en aquest cas, el classificador entrenat) i l'objecte fitxer on volem desar l'objecte decapat. Podem obrir un fitxer en mode binari d'escriptura mitjançant la funció 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Al codi anterior, obrim un fitxer anomenat 'regression_model.pkl' en mode d'escriptura binari ('wb') i el passem com a segon paràmetre a 'pickle.dump()'. El classificador entrenat, emmagatzemat a la variable 'regression_model', es conserva i es desa al fitxer.
Ara, hem seleccionat amb èxit el nostre classificador entrenat. El podem tornar a carregar a la memòria sempre que el necessitem mitjançant la funció 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Al codi anterior, obrim el fitxer pickle en mode binari de lectura ('rb') i el passem com a paràmetre a 'pickle.load()'. L'objecte en vinagre es carrega a la variable 'loaded_model', que es pot utilitzar per a la predicció o qualsevol altra operació.
Aquí hi ha un exemple complet que demostra el decapatge i la càrrega d'un classificador de regressió entrenat:
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)
A l'exemple anterior, primer entrenem un model de regressió lineal senzill utilitzant la classe 'LinearRegression' del mòdul 'sklearn.linear_model'. A continuació, recollim el model entrenat a un fitxer anomenat "regression_model.pkl". Més tard, carreguem el model en vinagre des del fitxer i l'utilitzem per predir el valor d'una entrada de prova "X_test".
En conservar i carregar el classificador entrenat, podem reutilitzar el model sense necessitat de tornar-lo a entrenar, cosa que pot estalviar una quantitat important de temps i recursos computacionals.
Altres preguntes i respostes recents sobre Aprenentatge automàtic EITC/AI/MLP amb Python:
- Què és la màquina de vectors de suport (SVM)?
- L'algoritme K de veïns més propers és adequat per crear models d'aprenentatge automàtic entrenables?
- S'utilitza habitualment l'algorisme d'entrenament SVM com a classificador lineal binari?
- Els algorismes de regressió poden funcionar amb dades contínues?
- La regressió lineal és especialment adequada per a l'escala?
- Com vol dir canviar l'amplada de banda dinàmica d'ajustar adaptativament el paràmetre d'amplada de banda en funció de la densitat dels punts de dades?
- Quin és el propòsit d'assignar pesos als conjunts de característiques en la implementació d'ample de banda dinàmic de canvi mitjà?
- Com es determina el nou valor del radi en l'enfocament de l'ample de banda dinàmic del canvi mitjà?
- Com gestiona l'enfocament de l'ample de banda dinàmic del canvi mitjà per trobar els centroides correctament sense codificar el radi?
- Quina és la limitació d'utilitzar un radi fix a l'algorisme de desplaçament mitjà?
Consulteu més preguntes i respostes a EITC/AI/MLP Machine Learning amb Python