Aby zamarynować przeszkolony klasyfikator w Pythonie za pomocą modułu „pikle”, możemy wykonać kilka prostych kroków. Wytrawianie pozwala nam serializować obiekt i zapisywać go w pliku, który można następnie załadować i użyć później. Jest to szczególnie przydatne, gdy chcemy zapisać przeszkolony model uczenia maszynowego, taki jak klasyfikator regresji, do wykorzystania w przyszłości bez konieczności ponownego uczenia go za każdym razem.
Najpierw musimy zaimportować moduł „pickle” w naszym skrypcie Pythona:
python import pickle
Następnie musimy wytrenować nasz klasyfikator i uzyskać wytrenowany model. Załóżmy, że wytrenowaliśmy już klasyfikator regresji i zapisaliśmy go w zmiennej o nazwie „model_regresji”.
Aby zamarynować wyszkolony model, możemy użyć funkcji „pickle.dump()”. Ta funkcja przyjmuje dwa parametry: obiekt, który chcemy zamarynować (w tym przypadku przeszkolony klasyfikator) oraz obiekt pliku, w którym chcemy zapisać zamarynowany obiekt. Możemy otworzyć plik w trybie zapisu binarnego za pomocą funkcji „open()”.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
W powyższym kodzie otwieramy plik o nazwie „regression_model.pkl” w trybie zapisu binarnego („wb”) i przekazujemy go jako drugi parametr do „pickle.dump()”. Przeszkolony klasyfikator przechowywany w zmiennej „regression_model” jest wybierany i zapisywany w pliku.
Teraz pomyślnie wytrawiliśmy naszego wyszkolonego klasyfikatora. Możemy załadować go z powrotem do pamięci, kiedy tylko będziemy go potrzebować, używając funkcji „picle.load()”.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
W powyższym kodzie otwieramy zamarynowany plik w trybie odczytu binarnego („rb”) i przekazujemy go jako parametr do „pickle.load()”. Marynowany obiekt jest ładowany do zmiennej „loaded_model”, której można użyć do predykcji lub innych operacji.
Oto kompletny przykład demonstrujący wytrawianie i ładowanie wytrenowanego klasyfikatora regresji:
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)
W powyższym przykładzie najpierw uczymy prosty model regresji liniowej przy użyciu klasy „LinearRegression” z modułu „sklearn.linear_model”. Następnie wytrawiamy przeszkolony model do pliku o nazwie „regression_model.pkl”. Później ładujemy marynowany model z pliku i używamy go do przewidywania wartości dla wejścia testowego „X_test”.
Wytrawiając i ładując przeszkolony klasyfikator, możemy ponownie użyć modelu bez konieczności ponownego uczenia go, co może zaoszczędzić znaczną ilość czasu i zasobów obliczeniowych.
Inne niedawne pytania i odpowiedzi dotyczące EITC/AI/MLP Uczenie Maszynowe z Pythonem:
- Co to jest maszyna wektorów nośnych (SVM)?
- Czy algorytm K najbliższych sąsiadów dobrze nadaje się do budowania modeli uczenia maszynowego, które można trenować?
- Czy algorytm szkolenia SVM jest powszechnie używany jako binarny klasyfikator liniowy?
- Czy algorytmy regresji mogą działać z danymi ciągłymi?
- Czy regresja liniowa szczególnie dobrze nadaje się do skalowania?
- W jaki sposób średnie przesunięcie dynamicznej przepustowości adaptacyjnie dostosowuje parametr przepustowości w oparciu o gęstość punktów danych?
- Jaki jest cel przypisywania wag do zestawów funkcji w implementacji dynamicznej przesunięcia średniej przepustowości?
- W jaki sposób określa się nową wartość promienia w podejściu opartym na dynamicznym przesunięciu średniej szerokości pasma?
- W jaki sposób podejście oparte na dynamicznym przesunięciu średniego pasma radzi sobie z prawidłowym wyszukiwaniem centroidów bez kodowania na stałe promienia?
- Jakie są ograniczenia stosowania stałego promienia w algorytmie przesunięcia średniego?
Zobacz więcej pytań i odpowiedzi w EITC/AI/MLP Machine Learning with Python