პითონში გაწვრთნილი კლასიფიკატორის დასაკრეფად „pickle“ მოდულის გამოყენებით, ჩვენ შეგვიძლია მივყვეთ რამდენიმე მარტივ ნაბიჯს. Pickling საშუალებას გვაძლევს მოვახდინოთ ობიექტის სერიული და შენახვა ფაილში, რომელიც შეიძლება ჩაიტვირთოს და მოგვიანებით გამოიყენოს. ეს განსაკუთრებით სასარგებლოა, როდესაც ჩვენ გვინდა შევინახოთ გაწვრთნილი მანქანათმცოდნეობის მოდელი, როგორიცაა რეგრესიის კლასიფიკატორი, მომავალი გამოყენებისთვის ყოველ ჯერზე მისი გადამზადების საჭიროების გარეშე.
პირველ რიგში, ჩვენ უნდა შემოვიტანოთ "pickle" მოდული ჩვენს Python სკრიპტში:
python import pickle
შემდეგი, ჩვენ უნდა მოვამზადოთ ჩვენი კლასიფიკატორი და მივიღოთ მომზადებული მოდელი. დავუშვათ, რომ ჩვენ უკვე მოვამზადეთ რეგრესიის კლასიფიკატორი და შევინახეთ ის ცვლადში, სახელწოდებით 'regression_model'.
გაწვრთნილი მოდელის დასაყენებლად შეგვიძლია გამოვიყენოთ 'pickle.dump()' ფუნქცია. ეს ფუნქცია იღებს ორ პარამეტრს: ობიექტს, რომელიც გვინდა მწნილი (ამ შემთხვევაში, გაწვრთნილი კლასიფიკატორი) და ფაილის ობიექტი, სადაც გვინდა მწნილი ობიექტის შენახვა. ჩვენ შეგვიძლია გავხსნათ ფაილი ჩაწერის ორობით რეჟიმში ფუნქციის 'open()' გამოყენებით.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
ზემოთ მოცემულ კოდში ჩვენ ვხსნით ფაილს სახელად 'regression_model.pkl' ჩაწერის ორობით რეჟიმში ('wb') და გადავცემთ მას მეორე პარამეტრად 'pickle.dump()'-ზე. გაწვრთნილი კლასიფიკატორი, შენახული 'regression_model' ცვლადში, მწნილია და ინახება ფაილში.
ახლა, ჩვენ წარმატებით მოვამზადეთ ჩვენი გაწვრთნილი კლასიფიკატორი. ჩვენ შეგვიძლია დავაბრუნოთ ის მეხსიერებაში, როცა დაგვჭირდება "pickle.load()" ფუნქციის გამოყენებით.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
ზემოთ მოცემულ კოდში ჩვენ ვხსნით პიკელებულ ფაილს წაკითხვის ორობით რეჟიმში ('rb') და გადავცემთ მას პარამეტრად 'pickle.load()'-ზე. პიკელებული ობიექტი იტვირთება 'loaded_model' ცვლადში, რომელიც შეიძლება გამოყენებულ იქნას პროგნოზირებისთვის ან სხვა ოპერაციებისთვის.
აქ არის სრული მაგალითი, რომელიც ასახავს გაწვრთნილი რეგრესიის კლასიფიკატორის პიკირებას და დატვირთვას:
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)
ზემოთ მოყვანილ მაგალითში, ჩვენ ჯერ ვავარჯიშებთ მარტივ ხაზოვანი რეგრესიის მოდელს „LinearRegression“ კლასის გამოყენებით „sklearn.linear_model“ მოდულიდან. შემდეგ ჩვენ ვამაგრებთ გაწვრთნილ მოდელს ფაილში სახელად 'regression_model.pkl'. მოგვიანებით, ჩვენ ვტვირთავთ პიკელებულ მოდელს ფაილიდან და ვიყენებთ მას სატესტო შეყვანის "X_test" მნიშვნელობის გამოსაცნობად.
გაწვრთნილი კლასიფიკატორის მწნილისა და ჩატვირთვით, ჩვენ შეგვიძლია გამოვიყენოთ მოდელი მისი გადამზადების საჭიროების გარეშე, რაც დაზოგავს მნიშვნელოვან დროსა და გამოთვლით რესურსებს.
სხვა ბოლოდროინდელი კითხვები და პასუხები EITC/AI/MLP მანქანური სწავლება Python- ით:
- რა არის დამხმარე ვექტორული მანქანა (SVM)?
- არის თუ არა K უახლოესი მეზობლების ალგორითმი კარგად მორგებული მანქანური სწავლების მოდელების შესაქმნელად?
- SVM სასწავლო ალგორითმი ჩვეულებრივ გამოიყენება როგორც ორობითი ხაზოვანი კლასიფიკატორი?
- შეუძლია თუ არა რეგრესიის ალგორითმებს მუშაობა უწყვეტი მონაცემებით?
- ხაზოვანი რეგრესია განსაკუთრებით კარგად შეეფერება სკალირებას?
- როგორ ნიშნავს shift დინამიური გამტარუნარიანობა ადაპტირებულად არეგულირებს გამტარუნარიანობის პარამეტრს მონაცემთა წერტილების სიმკვრივის საფუძველზე?
- რა არის წონების მინიჭება მახასიათებლების კომპლექტებისთვის საშუალო ცვლის დინამიური სიჩქარის განხორციელებისას?
- როგორ განისაზღვრება ახალი რადიუსის მნიშვნელობა საშუალო ცვლის დინამიური სიჩქარის მიდგომით?
- როგორ ახერხებს საშუალო ცვლის დინამიური სიჩქარის მიდგომა ცენტროიდების სწორად პოვნას რადიუსის მყარი კოდირების გარეშე?
- რა არის ფიქსირებული რადიუსის გამოყენების შეზღუდვა საშუალო ცვლის ალგორითმში?
იხილეთ მეტი კითხვა და პასუხი EITC/AI/MLP Machine Learning-ში Python-ით