Upang mag-pickle ng sinanay na classifier sa Python gamit ang module na 'pickle', maaari nating sundin ang ilang simpleng hakbang. Ang pag-aatsara ay nagpapahintulot sa amin na i-serialize ang isang bagay at i-save ito sa isang file, na maaaring i-load at magamit sa ibang pagkakataon. Ito ay partikular na kapaki-pakinabang kapag gusto naming mag-save ng sinanay na modelo ng machine learning, gaya ng regression classifier, para magamit sa hinaharap nang hindi na kailangang muling sanayin ito sa bawat oras.
Una, kailangan naming i-import ang 'pickle' na module sa aming script ng Python:
python import pickle
Susunod, kailangan nating sanayin ang ating classifier at makuha ang sinanay na modelo. Ipagpalagay natin na nagsanay na tayo ng regression classifier at inimbak ito sa isang variable na tinatawag na 'regression_model'.
Upang i-pickle ang sinanay na modelo, maaari naming gamitin ang function na 'pickle.dump()'. Ang function na ito ay tumatagal ng dalawang parameter: ang bagay na gusto nating i-pickle (sa kasong ito, ang sinanay na classifier), at ang file object kung saan gusto nating i-save ang adobo na bagay. Maaari naming buksan ang isang file sa write binary mode gamit ang 'open()' function.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Sa code sa itaas, magbubukas kami ng file na pinangalanang 'regression_model.pkl' sa write binary mode ('wb') at ipapasa ito bilang pangalawang parameter sa 'pickle.dump()'. Ang sinanay na classifier, na nakaimbak sa 'regression_model' na variable, ay adobo at ini-save sa file.
Ngayon, matagumpay naming na-pick ang aming sinanay na classifier. Maaari naming i-load ito pabalik sa memorya tuwing kailangan namin ito gamit ang function na 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Sa code sa itaas, binubuksan namin ang adobo na file sa read binary mode ('rb') at ipapasa ito bilang parameter sa 'pickle.load()'. Ang adobo na bagay ay na-load sa 'loaded_model' na variable, na maaaring magamit para sa hula o anumang iba pang mga operasyon.
Narito ang isang kumpletong halimbawa na nagpapakita ng pag-aatsara at pag-load ng isang sinanay na regression classifier:
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)
Sa halimbawa sa itaas, sanayin muna namin ang isang simpleng modelo ng linear regression gamit ang klase ng 'LinearRegression' mula sa module na 'sklearn.linear_model'. Pagkatapos ay atsara namin ang sinanay na modelo sa isang file na pinangalanang 'regression_model.pkl'. Sa paglaon, nilo-load namin ang adobo na modelo mula sa file at ginagamit ito upang mahulaan ang halaga para sa isang test input na 'X_test'.
Sa pamamagitan ng pag-aatsara at pag-load ng sinanay na classifier, maaari naming muling gamitin ang modelo nang hindi na kailangang sanayin muli ito, na makakatipid ng malaking tagal ng oras at mga mapagkukunan ng computational.
Iba pang kamakailang mga tanong at sagot tungkol sa Pag-aaral ng EITC/AI/MLP Machine na may Python:
- Ano ang Support Vector Machine (SVM)?
- Ang K na pinakamalapit na kapitbahay na algorithm ba ay angkop para sa pagbuo ng mga nasanay na modelo ng machine learning?
- Ang SVM training algorithm ba ay karaniwang ginagamit bilang isang binary linear classifier?
- Maaari bang gumana ang mga algorithm ng regression sa tuluy-tuloy na data?
- Ang linear regression ba ay talagang angkop para sa scaling?
- Paano naaangkop ng mean shift dynamic na bandwidth ang parameter ng bandwidth batay sa density ng mga punto ng data?
- Ano ang layunin ng pagtatalaga ng mga timbang sa mga set ng tampok sa mean shift dynamic na pagpapatupad ng bandwidth?
- Paano tinutukoy ang bagong halaga ng radius sa mean shift dynamic na bandwidth approach?
- Paano pinangangasiwaan ng mean shift dynamic bandwidth approach ang paghahanap ng mga centroid nang walang hard coding sa radius?
- Ano ang limitasyon ng paggamit ng nakapirming radius sa mean shift algorithm?
Tingnan ang higit pang mga tanong at sagot sa EITC/AI/MLP Machine Learning gamit ang Python