1. 애져 포탈 로그인
2. 리소스 만들기 ( 작업영역 이름은 마음대로~~)
3. 리소스 그룹 -> docs-aml
4. 작업영역 : Basic -> 검토 + 만들기
5. 배포 성공하면 -> 리소스 이동 선택 -> azure 머신러닝 스튜디오 로그인 후 시작
6. 왼쪽에서 노트북 선택 -> 샘플 폴더 열기 -> 파이썬 폴더 열기 -> 1.0.85 -> 튜토리얼 ... 눌러 복제
7.
8. VM(컴퓨팅)찾을 수 없는 경우 -> +새 컴퓨팅(vm) 눌러 인스턴스 vm 설치( 이름 입력 :2~16자 사이 ,5분 정도 걸림)
9. 튜토리얼 - 첫번째 모델 훈련
(1) 작업 공간 연결 및 실험 생성
from azureml.core import Workspace
ws = Workspace.from_config()
from azureml.core import Experiment
experiment = Experiment(workspace=ws, name="diabetes-experiment")
(2) 데이터 로드 및 학습 준비 -> 당뇨병의 진행 예측, 트레인 테스트 스플릿
from azureml.opendatasets import Diabetes
from sklearn.model_selection import train_test_split
x_df = Diabetes.get_tabular_dataset().to_pandas_dataframe().dropna()
y_df = x_df.pop("Y")
X_train, X_test, y_train, y_test = train_test_split(x_df, y_df, test_size=0.2, random_state=66)
(3) 모델 학습 ->
소규모 학습은 로컬에서 쉽게 가능하지만 수십가지의 다양한기능과 파라미터 설정 , 반복 학습을 위해서는
SDK를 활용해 클라우드에서 학습을 하는것이 바람직
다양한 하이퍼 파라미터 알파 값을 통해 루프에서 RIdge 모델 학습 시키는 스크립트
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
from sklearn.externals import joblib
import math
alphas = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
for alpha in alphas:
run = experiment.start_logging()
run.log("alpha_value", alpha)
model = Ridge(alpha=alpha)
model.fit(X=X_train, y=y_train)
y_pred = model.predict(X=X_test)
rmse = math.sqrt(mean_squared_error(y_true=y_test, y_pred=y_pred))
run.log("rmse", rmse)
model_name = "model_alpha_" + str(alpha) + ".pkl"
filename = "outputs/" + model_name
joblib.dump(value=model, filename=filename)
run.upload_file(name=model_name, path_or_stream=filename)
run.complete()
(4) 포탈에서 학습결과 보기
런 넘버 실행번호 링크 클릭하면 각 개별 실행에 대한 페이지로 이동->
학습 반복중 실행에 업로드 된 모델 .pkl 파일표시
여기서는 모델파일을 수동 학습 없이 바로 다운 가능
(5) 최적 모델 가져오기
minimum_rmse_runid = None
minimum_rmse = None
for run in experiment.get_runs():
run_metrics = run.get_metrics()
run_details = run.get_details()
# each logged metric becomes a key in this returned dict
run_rmse = run_metrics["rmse"]
run_id = run_details["runId"]
if minimum_rmse is None:
minimum_rmse = run_rmse
minimum_rmse_runid = run_id
else:
if run_rmse < minimum_rmse:
minimum_rmse = run_rmse
minimum_rmse_runid = run_id
print("Best run_id: " + minimum_rmse_runid)
print("Best run_id rmse: " + str(minimum_rmse))
Best run_id: 864f5ce7-6729-405d-b457-83250da99c80
Best run_id rmse: 57.234760283951765
'BigQuery' 카테고리의 다른 글
AWS - RDBMS 생성 기초 (0) | 2021.04.19 |
---|---|
Azure Steaming Analytics (0) | 2020.08.25 |
SQL 문법 + GCP 예제 (0) | 2020.08.08 |
R을 통한 기계학습 모델 생성 + 배포 (0) | 2020.04.07 |