Lai marinētu apmācītu klasifikatoru Python, izmantojot 'marinēšanas' moduli, mēs varam veikt dažas vienkāršas darbības. Kodināšana ļauj mums serializēt objektu un saglabāt to failā, ko pēc tam var ielādēt un izmantot vēlāk. Tas ir īpaši noderīgi, ja vēlamies saglabāt apmācītu mašīnmācīšanās modeli, piemēram, regresijas klasifikatoru, turpmākai lietošanai bez nepieciešamības katru reizi to apmācīt.
Pirmkārt, mums ir jāimportē 'marinēšanas' modulis mūsu Python skriptā:
python import pickle
Tālāk mums ir jāapmāca mūsu klasifikators un jāiegūst apmācīts modelis. Pieņemsim, ka esam jau apmācījuši regresijas klasifikatoru un saglabājuši to mainīgajā ar nosaukumu “regression_model”.
Lai marinētu apmācīto modeli, mēs varam izmantot funkciju 'pickle.dump()'. Šai funkcijai ir nepieciešami divi parametri: objekts, kuru vēlamies marinēt (šajā gadījumā apmācīts klasifikators), un faila objekts, kurā vēlamies saglabāt marinēto objektu. Mēs varam atvērt failu rakstīšanas binārajā režīmā, izmantojot funkciju "open ()".
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Iepriekš minētajā kodā mēs atveram failu ar nosaukumu "regression_model.pkl" rakstīšanas binārajā režīmā ("wb") un nododam to kā otro parametru "pickle.dump()". Apmācītais klasifikators, kas tiek glabāts mainīgajā “regression_model”, tiek kodināts un saglabāts failā.
Tagad mēs esam veiksmīgi marinējuši mūsu apmācīto klasifikatoru. Mēs varam to ielādēt atpakaļ atmiņā, kad vien tas ir nepieciešams, izmantojot funkciju 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Iepriekš minētajā kodā mēs atveram marinēto failu lasīšanas binārajā režīmā ('rb') un nododam to kā parametru 'pickle.load()'. Marinētais objekts tiek ielādēts mainīgajā 'loaded_model', ko var izmantot prognozēšanai vai citām darbībām.
Šeit ir pilnīgs piemērs, kas demonstrē apmācīta regresijas klasifikatora kodināšanu un ielādi:
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)
Iepriekš minētajā piemērā mēs vispirms apmācām vienkāršu lineārās regresijas modeli, izmantojot “LinearRegression” klasi no moduļa “sklearn.linear_model”. Pēc tam mēs iegremdējam apmācīto modeli failā ar nosaukumu “regression_model.pkl”. Vēlāk mēs ielādējam marinēto modeli no faila un izmantojam to, lai prognozētu testa ievades “X_test” vērtību.
Kodinot un ielādējot apmācīto klasifikatoru, mēs varam atkārtoti izmantot modeli bez nepieciešamības to atkārtoti apmācīt, kas var ietaupīt ievērojamu laiku un skaitļošanas resursus.
Citi jaunākie jautājumi un atbildes par EITC/AI/MLP mašīnmācīšanās ar Python:
- Kas ir atbalsta vektora mašīna (SVM)?
- Vai K tuvāko kaimiņu algoritms ir labi piemērots apmācāmu mašīnmācīšanās modeļu veidošanai?
- Vai SVM apmācības algoritms parasti tiek izmantots kā binārs lineārs klasifikators?
- Vai regresijas algoritmi var darboties ar nepārtrauktiem datiem?
- Vai lineārā regresija ir īpaši piemērota mērogošanai?
- Kā nozīmē, ka dinamiskā joslas platuma maiņa adaptīvi pielāgo joslas platuma parametru, pamatojoties uz datu punktu blīvumu?
- Kāds ir nolūks piešķirt svarus funkciju kopām vidējās nobīdes dinamiskās joslas platuma ieviešanā?
- Kā tiek noteikta jaunā rādiusa vērtība vidējās nobīdes dinamiskās joslas platuma pieejā?
- Kā vidējās nobīdes dinamiskās joslas platuma pieeja ļauj pareizi atrast centroīdus, nešifrējot rādiusu?
- Kāds ir fiksēta rādiusa izmantošanas ierobežojums vidējās nobīdes algoritmā?
Skatiet citus jautājumus un atbildes EITC/AI/MLP mašīnmācībā ar Python