Norėdami marinuoti išmokytą klasifikatorių „Python“ naudodami „marinavimo“ modulį, galime atlikti kelis paprastus veiksmus. Marinavimas leidžia suskirstyti objektą serijiniu būdu ir įrašyti jį į failą, kurį vėliau galima įkelti ir naudoti. Tai ypač naudinga, kai norime išsaugoti parengtą mašininio mokymosi modelį, pvz., regresijos klasifikatorių, kad būtų galima naudoti ateityje, nereikalaujant jo kiekvieną kartą mokyti iš naujo.
Pirmiausia turime importuoti „pickle“ modulį į savo Python scenarijų:
python import pickle
Tada turime išmokyti savo klasifikatorių ir gauti išmokytą modelį. Tarkime, kad jau paruošėme regresijos klasifikatorių ir išsaugojome jį kintamajame, vadinamame „regression_model“.
Norėdami marinuoti išmokytą modelį, galime naudoti funkciją „pickle.dump()“. Šiai funkcijai reikalingi du parametrai: objektas, kurį norime marinuoti (šiuo atveju apmokytas klasifikatorius), ir failo objektas, kuriame norime išsaugoti marinuotą objektą. Failą galime atidaryti dvejetainiu rašymo režimu naudodami funkciją „open ()“.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Aukščiau pateiktame kode atidarome failą pavadinimu „regression_model.pkl“ dvejetainiu rašymo režimu („wb“) ir perduodame jį kaip antrąjį parametrą „pickle.dump()“. Išmokytas klasifikatorius, saugomas kintamajame „regression_model“, išrenkamas ir įrašomas į failą.
Dabar sėkmingai paruošėme savo paruoštą klasifikatorių. Galime įkelti jį atgal į atmintį, kai tik reikia, naudodami funkciją „pickle.load()“.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Aukščiau pateiktame kode atidarome marinuotą failą skaitymo dvejetainiu režimu („rb“) ir perduodame jį kaip parametrą „pickle.load()“. Marinuotas objektas įkeliamas į 'loaded_model' kintamąjį, kurį galima naudoti numatymui ar kitoms operacijoms.
Čia pateikiamas išsamus pavyzdys, parodantis išmokyto regresijos klasifikatoriaus marinavimą ir įkėlimą:
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)
Aukščiau pateiktame pavyzdyje pirmiausia apmokome paprastą tiesinės regresijos modelį, naudodami „LinearRegression“ klasę iš „sklearn.linear_model“ modulio. Tada surenkame parengtą modelį į failą, pavadintą „regression_model.pkl“. Vėliau įkeliame marinuotą modelį iš failo ir naudojame jį nuspėti bandomosios įvesties „X_test“ reikšmę.
Parinkę ir įkeldami išmokytą klasifikatorių, galime pakartotinai naudoti modelį, nereikia jo perkvalifikuoti, o tai gali sutaupyti daug laiko ir skaičiavimo resursų.
Kiti naujausi klausimai ir atsakymai apie EITC/AI/MLP mašininis mokymasis su „Python“:
- Kas yra palaikymo vektorių mašina (SVM)?
- Ar K artimiausių kaimynų algoritmas gerai tinka kuriant mokomus mašininio mokymosi modelius?
- Ar SVM mokymo algoritmas dažniausiai naudojamas kaip dvejetainis tiesinis klasifikatorius?
- Ar regresijos algoritmai gali veikti su nuolatiniais duomenimis?
- Ar tiesinė regresija ypač tinka mastelio keitimui?
- Kaip reiškia, kad keičiamas dinaminis pralaidumas adaptyviai koreguoja pralaidumo parametrą pagal duomenų taškų tankį?
- Koks yra funkcijų rinkinių svorių priskyrimo tikslas, įgyvendinant vidutinio poslinkio dinaminį pralaidumą?
- Kaip naujoji spindulio vertė nustatoma taikant vidutinio poslinkio dinaminio dažnių juostos pločio metodą?
- Kaip vidutinio poslinkio dinaminio dažnių juostos pločio metodas leidžia teisingai rasti centroidus, nenurodant spindulio?
- Kokie yra fiksuoto spindulio naudojimo vidutinio poslinkio algoritme apribojimai?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/AI/MLP mašininio mokymosi naudojant Python