Chcete-li vybrat trénovaný klasifikátor v Pythonu pomocí modulu 'pickle', můžeme provést několik jednoduchých kroků. Moření nám umožňuje serializovat objekt a uložit jej do souboru, který lze poté načíst a použít později. To je zvláště užitečné, když chceme uložit natrénovaný model strojového učení, jako je regresní klasifikátor, pro budoucí použití, aniž bychom jej museli pokaždé znovu trénovat.
Nejprve musíme importovat modul 'pickle' do našeho skriptu Python:
python import pickle
Dále musíme natrénovat náš klasifikátor a získat natrénovaný model. Předpokládejme, že jsme již natrénovali regresní klasifikátor a uložili jej do proměnné nazvané 'regresní_model'.
K moření natrénovaného modelu můžeme použít funkci 'pickle.dump()'. Tato funkce má dva parametry: objekt, který chceme nakládat (v tomto případě trénovaný klasifikátor), a objekt souboru, kam chceme nakládaný objekt uložit. Soubor můžeme otevřít v binárním režimu zápisu pomocí funkce 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Ve výše uvedeném kódu otevřeme soubor s názvem 'regression_model.pkl' v binárním režimu zápisu ('wb') a předáme jej jako druhý parametr 'pickle.dump()'. Natrénovaný klasifikátor, uložený v proměnné 'regression_model', je vybrán a uložen do souboru.
Nyní jsme úspěšně naložili náš vyškolený klasifikátor. Můžeme ji načíst zpět do paměti, kdykoli ji potřebujeme, pomocí funkce 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Ve výše uvedeném kódu otevřeme nakládaný soubor v binárním režimu čtení ('rb') a předáme jej jako parametr 'pickle.load()'. Nakládaný objekt je načten do proměnné 'loaded_model', kterou lze použít pro predikci nebo jakékoli jiné operace.
Zde je kompletní příklad demonstrující moření a nakládání trénovaného regresního klasifikátoru:
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)
Ve výše uvedeném příkladu nejprve trénujeme jednoduchý model lineární regrese pomocí třídy 'LinearRegression' z modulu 'sklearn.linear_model'. Natrénovaný model pak přeneseme do souboru s názvem 'regression_model.pkl'. Později načteme mořený model ze souboru a použijeme jej k predikci hodnoty pro testovací vstup 'X_test'.
Pomocí moření a načtení natrénovaného klasifikátoru můžeme model znovu použít, aniž bychom jej museli přeškolovat, což může ušetřit značné množství času a výpočetních zdrojů.
Další nedávné otázky a odpovědi týkající se Strojové učení EITC/AI/MLP s Pythonem:
- Co je Support Vector Machine (SVM)?
- Je algoritmus K nejbližších sousedů vhodný pro vytváření trénovatelných modelů strojového učení?
- Používá se cvičný algoritmus SVM běžně jako binární lineární klasifikátor?
- Mohou regresní algoritmy pracovat se spojitými daty?
- Je lineární regrese obzvláště vhodná pro škálování?
- Jak průměrná dynamická šířka pásma adaptivně upravuje parametr šířky pásma na základě hustoty datových bodů?
- Jaký je účel přidělování vah sadám funkcí v implementaci dynamické šířky pásma se středním posunem?
- Jak se určuje nová hodnota poloměru při přístupu dynamické šířky pásma středního posunu?
- Jak přístup s dynamickou šířkou pásma se středním posunem zvládá správné nalezení těžišť bez tvrdého kódování poloměru?
- Jaké je omezení použití pevného poloměru v algoritmu středního posunu?
Prohlédněte si další otázky a odpovědi v EITC/AI/MLP Machine Learning with Python