Pythonissa koulutetun luokittelijan marinointia käyttämällä "pickle"-moduulia voimme noudattaa muutamia yksinkertaisia vaiheita. Peittauksen avulla voimme sarjoittaa objektin ja tallentaa sen tiedostoon, joka voidaan sitten ladata ja käyttää myöhemmin. Tämä on erityisen hyödyllistä, kun haluamme tallentaa koulutetun koneoppimismallin, kuten regressioluokituksen, tulevaa käyttöä varten ilman, että sitä tarvitsee kouluttaa uudelleen joka kerta.
Ensin meidän on tuotava "pickle"-moduuli Python-skriptimme:
python import pickle
Seuraavaksi meidän on koulutettava luokittajamme ja hankittava koulutettu malli. Oletetaan, että olemme jo kouluttaneet regressioluokituksen ja tallentaneet sen muuttujaan nimeltä 'regression_model'.
Koulutetun mallin suolaamiseen voimme käyttää 'pickle.dump()'-funktiota. Tämä funktio tarvitsee kaksi parametria: objektin, jonka haluamme peittata (tässä tapauksessa koulutettu luokitin), ja tiedostoobjektin, johon haluamme tallentaa peitatun objektin. Voimme avata tiedoston kirjoitusbinääritilassa käyttämällä 'open()'-funktiota.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Yllä olevassa koodissa avaamme tiedoston nimeltä "regression_model.pkl" kirjoitusbinääritilassa ('wb') ja välitämme sen toiseksi parametriksi "pickle.dump()". Regression_model-muuttujaan tallennettu koulutettu luokitin valitaan ja tallennetaan tiedostoon.
Nyt olemme onnistuneesti peittaneet koulutetun luokittelijamme. Voimme ladata sen takaisin muistiin aina, kun tarvitsemme sitä käyttämällä toimintoa "pickle.load()".
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Yllä olevassa koodissa avaamme peitatun tiedoston lukubinääritilassa ('rb') ja välitämme sen parametriksi 'pickle.load()':lle. Peittausobjekti ladataan 'loaded_model'-muuttujaan, jota voidaan käyttää ennustamiseen tai muihin toimintoihin.
Tässä on täydellinen esimerkki, joka havainnollistaa koulutetun regressioluokittajan peittausta ja lataamista:
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)
Yllä olevassa esimerkissä harjoittelemme ensin yksinkertaista lineaarista regressiomallia käyttämällä 'LinearRegression'-luokkaa 'sklearn.linear_model'-moduulista. Sitten suodatamme koulutetun mallin tiedostoon nimeltä "regression_model.pkl". Myöhemmin lataamme peitatun mallin tiedostosta ja ennustamme sen avulla testisyötteen 'X_test' arvon.
Peittauksen ja lastaamisen avulla voimme käyttää mallia uudelleen ilman, että sitä tarvitsee kouluttaa uudelleen, mikä voi säästää huomattavasti aikaa ja laskentaresursseja.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen EITC/AI/MLP-koneoppiminen Pythonilla:
- Mikä on Support Vector Machine (SVM)?
- Soveltuuko K lähin naapuri -algoritmi hyvin koulutettavien koneoppimismallien rakentamiseen?
- Käytetäänkö SVM-harjoitusalgoritmia yleisesti binaarisena lineaarisena luokittelijana?
- Voivatko regressioalgoritmit toimia jatkuvan datan kanssa?
- Sopiiko lineaarinen regressio erityisen hyvin skaalaukseen?
- Miten tarkoittaa dynaamisen kaistanleveyden siirtoa mukautuvasti säätämään kaistanleveysparametria datapisteiden tiheyden perusteella?
- Mikä on tarkoitus painotusten määrittämisellä ominaisuusjoukkoihin keskimääräisen siirron dynaamisen kaistanleveyden toteutuksessa?
- Kuinka uusi sädearvo määritetään keskimääräisen siirtymän dynaamisen kaistanleveyden lähestymistavassa?
- Kuinka keskimääräisen siirron dynaamisen kaistanleveyden lähestymistapa hoitaa sentroidien löytämisen oikein ilman säteen kovaa koodausta?
- Mitä rajoittaa kiinteän säteen käyttäminen keskisiirtymäalgoritmissa?
Katso lisää kysymyksiä ja vastauksia EITC/AI/MLP-koneoppimisesta Pythonilla