'pickle' 모듈을 사용하여 Python에서 훈련된 분류자를 피클하려면 몇 가지 간단한 단계를 따를 수 있습니다. 피클링을 통해 개체를 직렬화하고 파일에 저장한 다음 나중에 로드하여 사용할 수 있습니다. 이는 매번 다시 훈련할 필요 없이 나중에 사용할 수 있도록 회귀 분류기와 같은 훈련된 기계 학습 모델을 저장하려는 경우에 특히 유용합니다.
먼저 Python 스크립트에서 'pickle' 모듈을 가져와야 합니다.
python import pickle
다음으로 분류기를 훈련하고 훈련된 모델을 얻어야 합니다. 이미 회귀 분류기를 훈련하고 'regression_model'이라는 변수에 저장했다고 가정해 보겠습니다.
훈련된 모델을 피클하기 위해 'pickle.dump()' 함수를 사용할 수 있습니다. 이 함수는 피클하려는 객체(이 경우 훈련된 분류자)와 피클된 객체를 저장할 파일 객체의 두 가지 매개변수를 사용합니다. 'open()' 함수를 사용하여 바이너리 쓰기 모드로 파일을 열 수 있습니다.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
위의 코드에서는 바이너리 쓰기 모드('wb')에서 'regression_model.pkl'이라는 파일을 열고 '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)
위의 예에서는 먼저 'sklearn.linear_model' 모듈의 'LinearRegression' 클래스를 사용하여 간단한 선형 회귀 모델을 훈련합니다. 그런 다음 훈련된 모델을 'regression_model.pkl'이라는 파일로 피클합니다. 나중에 파일에서 절인 모델을 로드하고 이를 사용하여 테스트 입력 'X_test'의 값을 예측합니다.
학습된 분류기를 피클링하고 로드하면 재학습할 필요 없이 모델을 재사용할 수 있으므로 상당한 시간과 계산 리소스를 절약할 수 있습니다.
기타 최근 질문 및 답변 Python을 사용한 EITC/AI/MLP 머신 러닝:
- SVM(지원 벡터 머신)이란 무엇입니까?
- K 최근접 이웃 알고리즘은 훈련 가능한 기계 학습 모델을 구축하는 데 적합합니까?
- SVM 훈련 알고리즘은 이진 선형 분류기로 일반적으로 사용됩니까?
- 회귀 알고리즘이 연속 데이터와 작동할 수 있습니까?
- 선형 회귀가 스케일링에 특히 적합합니까?
- 평균 이동 동적 대역폭은 데이터 포인트의 밀도에 따라 대역폭 매개변수를 어떻게 적응적으로 조정합니까?
- Mean Shift 동적 대역폭 구현에서 기능 세트에 가중치를 할당하는 목적은 무엇입니까?
- 평균 이동 동적 대역폭 접근 방식에서 새 반경 값은 어떻게 결정됩니까?
- 평균 이동 동적 대역폭 접근 방식은 반경을 하드 코딩하지 않고 중심을 올바르게 찾는 방법을 어떻게 처리합니까?
- 평균 이동 알고리즘에서 고정 반경을 사용할 때의 제한 사항은 무엇입니까?
Python을 사용한 EITC/AI/MLP 기계 학습에서 더 많은 질문과 답변 보기
더 많은 질문과 답변:
- 들: 인공 지능
- 프로그램 : Python을 사용한 EITC/AI/MLP 머신 러닝 (인증 프로그램으로 이동)
- 교훈: 리그레션 (관련 강의 바로가기)
- 주제 : 산세 및 스케일링 (관련 항목으로 이동)
- 심사 검토