Ak chcete vybrať trénovaný klasifikátor v Pythone pomocou modulu 'pickle', môžeme postupovať podľa niekoľkých jednoduchých krokov. Morenie nám umožňuje serializovať objekt a uložiť ho do súboru, ktorý je možné neskôr načítať a použiť. Je to užitočné najmä vtedy, keď chceme uložiť natrénovaný model strojového učenia, ako je regresný klasifikátor, na budúce použitie bez toho, aby sme ho museli zakaždým pretrénovať.
Najprv musíme importovať modul 'pickle' do nášho skriptu Python:
python import pickle
Ďalej musíme natrénovať náš klasifikátor a získať natrénovaný model. Predpokladajme, že sme už natrénovali regresný klasifikátor a uložili ho do premennej s názvom 'regresný_model'.
Na morenie natrénovaného modelu môžeme použiť funkciu 'pickle.dump()'. Táto funkcia má dva parametre: objekt, ktorý chceme moreť (v tomto prípade trénovaný klasifikátor) a objekt súboru, do ktorého chceme morený objekt uložiť. Súbor môžeme otvoriť v binárnom režime zápisu pomocou funkcie 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Vo vyššie uvedenom kóde otvoríme súbor s názvom 'regression_model.pkl' v binárnom režime zápisu ('wb') a odovzdáme ho ako druhý parameter 'pickle.dump()'. Vyškolený klasifikátor, uložený v premennej 'regression_model', sa vyberie a uloží do súboru.
Teraz sme úspešne naložili náš vyškolený klasifikátor. Môžeme ho načítať späť do pamäte kedykoľvek to potrebujeme pomocou funkcie 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Vo vyššie uvedenom kóde otvoríme nakladaný súbor v binárnom režime čítania ('rb') a odovzdáme ho ako parameter 'pickle.load()'. Morený objekt sa načíta do premennej 'loaded_model', ktorú možno použiť na predikciu alebo akékoľvek iné operácie.
Tu je úplný príklad demonštrujúci morenie a nakladanie trénovaného regresného klasifikátora:
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)
Vo vyššie uvedenom príklade najprv trénujeme jednoduchý lineárny regresný model pomocou triedy 'LinearRegression' z modulu 'sklearn.linear_model'. Potom preložíme natrénovaný model do súboru s názvom 'regression_model.pkl'. Neskôr načítame morený model zo súboru a použijeme ho na predpovedanie hodnoty pre testovací vstup 'X_test'.
Morením a načítaním natrénovaného klasifikátora môžeme model znova použiť bez potreby preškolenia, čo môže ušetriť značné množstvo času a výpočtových zdrojov.
Ďalšie nedávne otázky a odpovede týkajúce sa Strojové učenie EITC/AI/MLP s Pythonom:
- Čo je stroj podpory vektorov (SVM)?
- Je algoritmus K najbližších susedov vhodný na vytváranie trénovateľných modelov strojového učenia?
- Používa sa cvičný algoritmus SVM bežne ako binárny lineárny klasifikátor?
- Môžu regresné algoritmy pracovať so spojitými údajmi?
- Je lineárna regresia obzvlášť vhodná na škálovanie?
- Ako priemerná dynamická šírka pásma adaptívne upravuje parameter šírky pásma na základe hustoty dátových bodov?
- Aký je účel priraďovania váh súborom funkcií v implementácii dynamickej šírky pásma so stredným posunom?
- Ako sa určuje nová hodnota polomeru v prístupe so stredným posunom dynamickej šírky pásma?
- Ako prístup so stredným posunom dynamickej šírky pásma zvláda správne nájdenie ťažísk bez tvrdého kódovania polomeru?
- Aké je obmedzenie používania pevného polomeru v algoritme stredného posunu?
Pozrite si ďalšie otázky a odpovede v časti EITC/AI/MLP Machine Learning with Python