Koolitatud klassifikaatori marineerimiseks Pythonis mooduli "marineerimine" abil saame järgida mõnda lihtsat sammu. Pickling võimaldab meil objekti järjestada ja salvestada faili, mida saab seejärel laadida ja hiljem kasutada. See on eriti kasulik, kui tahame salvestada treenitud masinõppemudelit, näiteks regressiooniklassifikaatorit, et seda kasutada tulevikus, ilma et oleks vaja seda iga kord ümber õpetada.
Esiteks peame oma Pythoni skripti importima mooduli "pickle":
python import pickle
Järgmisena peame koolitama oma klassifikaatorit ja hankima koolitatud mudeli. Oletame, et oleme regressiooniklassifikaatori juba välja õpetanud ja salvestanud selle muutujas nimega 'regression_model'.
Koolitatud mudeli marineerimiseks saame kasutada funktsiooni 'pickle.dump()'. Sellel funktsioonil on kaks parameetrit: objekt, mida tahame marineerida (antud juhul koolitatud klassifikaator) ja failiobjekt, kuhu soovime marineeritud objekti salvestada. Saame faili avada binaarrežiimis, kasutades funktsiooni "open()".
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Ülaltoodud koodis avame faili nimega 'regression_model.pkl' binaarrežiimis ('wb') ja edastame selle teise parameetrina 'pickle.dump()'-le. Treenitud klassifikaator, mis on salvestatud muutujas 'regression_model', valitakse ja salvestatakse faili.
Nüüd oleme oma koolitatud klassifikaatori edukalt marineerinud. Funktsiooni 'pickle.load()' abil saame selle alati mällu tagasi laadida, kui seda vajame.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Ülaltoodud koodis avame marineeritud faili lugemisbinaarrežiimis ('rb') ja edastame selle parameetrina 'pickle.load()'-le. Märgitud objekt laaditakse muutujasse 'loaded_model', mida saab kasutada ennustamiseks või muudeks toiminguteks.
Siin on täielik näide, mis demonstreerib treenitud regressiooniklassifikaatori peitsimist ja laadimist:
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)
Ülaltoodud näites treenime esmalt lihtsat lineaarset regressioonimudelit, kasutades mooduli 'sklearn.linear_model' klassi 'LinearRegression'. Seejärel marineerime treenitud mudeli faili nimega 'regression_model.pkl'. Hiljem laadime failist marineeritud mudeli ja kasutame seda testsisendi 'X_test' väärtuse ennustamiseks.
Koolitatud klassifikaatorit marineerides ja laadides saame mudelit uuesti kasutada, ilma et oleks vaja seda ümber õpetada, mis võib säästa oluliselt aega ja arvutusressursse.
Muud hiljutised küsimused ja vastused selle kohta EITC/AI/MLP masinõpe Pythoniga:
- Mis on tugivektori masin (SVM)?
- Kas K lähimate naabrite algoritm sobib hästi koolitatavate masinõppemudelite loomiseks?
- Kas SVM-i treeningalgoritmi kasutatakse tavaliselt binaarse lineaarse klassifikaatorina?
- Kas regressioonialgoritmid saavad töötada pidevate andmetega?
- Kas lineaarne regressioon sobib skaleerimiseks eriti hästi?
- Kuidas tähendab dünaamilise ribalaiuse nihutamine ribalaiuse parameetrit adaptiivselt vastavalt andmepunktide tihedusele?
- Mis on funktsioonikomplektidele kaalu määramise eesmärk keskmise nihke dünaamilise ribalaiuse rakendamisel?
- Kuidas määratakse uus raadiuse väärtus keskmise nihke dünaamilise ribalaiuse lähenemisviisis?
- Kuidas saab keskmise nihke dünaamilise ribalaiuse lähenemisviisi abil õigesti leida tsentroidid ilma raadiust kõvasti kodeerimata?
- Mis on fikseeritud raadiuse kasutamise piirang keskmise nihke algoritmis?
Vaadake rohkem küsimusi ja vastuseid EITC/AI/MLP masinõppes Pythoniga