Egy betanított osztályozó pácolásához Pythonban a "pickle" modul segítségével néhány egyszerű lépést követhetünk. A pácolás lehetővé teszi, hogy egy objektumot szerializáljunk és fájlba mentsünk, amelyet aztán később betölthetünk és felhasználhatunk. Ez különösen akkor hasznos, ha egy betanított gépi tanulási modellt, például egy regressziós osztályozót szeretnénk elmenteni későbbi használatra anélkül, hogy minden alkalommal újra kellene tanítani.
Először is importálnunk kell a „pickle” modult a Python-szkriptünkbe:
python import pickle
Ezután meg kell tanítanunk az osztályozónkat, és meg kell szereznünk a betanított modellt. Tegyük fel, hogy már betanítottunk egy regressziós osztályozót, és eltároltuk a 'regression_model' nevű változóban.
A betanított modell pácolásához használhatjuk a 'pickle.dump()' függvényt. Ez a függvény két paramétert vesz igénybe: a pácolni kívánt objektumot (jelen esetben a betanított osztályozót), és azt a fájlobjektumot, ahová a pácolt objektumot menteni szeretnénk. A fájlt írási bináris módban nyithatjuk meg az 'open()' függvény segítségével.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
A fenti kódban megnyitunk egy 'regression_model.pkl' nevű fájlt írási bináris módban ('wb'), és második paraméterként átadjuk a 'pickle.dump()'-nak. A betanított osztályozó, amelyet a 'regression_model' változóban tárolunk, kiválogatjuk és elmentjük a fájlba.
Most sikeresen bepácoltuk képzett osztályozónkat. A 'pickle.load()' függvény segítségével bármikor visszatölthetjük a memóriába, amikor szükségünk van rá.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
A fenti kódban megnyitjuk a pácolt fájlt bináris olvasási módban ('rb'), és paraméterként átadjuk a 'pickle.load()'-nak. A pácolt objektum betöltődik a 'loaded_model' változóba, amely felhasználható előrejelzésre vagy bármilyen más műveletre.
Íme egy teljes példa, amely bemutatja egy betanított regressziós osztályozó pácolását és betöltését:
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 fenti példában először egy egyszerű lineáris regressziós modellt tanítunk a 'Sklearn.linear_model' modul 'LinearRegression' osztályával. Ezután a betanított modellt egy „regression_model.pkl” fájlba tesszük. Később betöltjük a pácolt modellt a fájlból, és felhasználjuk az 'X_test' tesztbemenet értékének előrejelzésére.
A betanított osztályozó bepácolásával és betöltésével a modellt újra betanítás nélkül tudjuk újra felhasználni, amivel jelentős időt és számítási erőforrást takaríthatunk meg.
További friss kérdések és válaszok ezzel kapcsolatban EITC/AI/MLP gépi tanulás Python-nal:
- Mi az a Support Vector Machine (SVM)?
- Alkalmas-e a K legközelebbi szomszédok algoritmusa betanítható gépi tanulási modellek készítésére?
- Az SVM tanító algoritmust gyakran használják bináris lineáris osztályozóként?
- Működhetnek-e a regressziós algoritmusok folyamatos adatokkal?
- A lineáris regresszió különösen alkalmas skálázásra?
- Hogyan jelenti azt, hogy a dinamikus sávszélesség eltolása adaptívan állítja be a sávszélesség paramétert az adatpontok sűrűsége alapján?
- Mi a célja a jellemzőkészletek súlyozásának az átlagos eltolás dinamikus sávszélesség megvalósításában?
- Hogyan határozható meg az új sugárérték az átlagos eltolási dinamikus sávszélesség megközelítésben?
- Hogyan kezeli az átlagos eltolási dinamikus sávszélesség megközelítés a centroidok helyes megtalálását a sugár kemény kódolása nélkül?
- Mi a korlátja a fix sugár használatának az átlagos eltolási algoritmusban?
Tekintse meg a további kérdéseket és válaszokat az EITC/AI/MLP gépi tanulás Python segítségével