Amazon SageMaker Processing을 사용한 간단한 사전 처리
8538 단어 AWSSageMakerSageMakerProcessing
그중 하나를 소개하고 싶습니다
Amazon SageMaker Processing
.Amazon SageMaker Processing이란?
그럼 이것
Amazon SageMaker Processing
이 원래 어떤 물건이었는지 한번 봅시다.공식 블로그에서
Amazon SageMaker의 새로운 기능으로, 데이터의 사전 처리 및 사후 처리, 모델의 평가 등 워크로드가 모든 관리 인프라에서 간단하게 수행되는 기능
이렇게 쓰여 있다.
즉, SageMaker에서 사용할 수 있는 간단한 사전 처리 기능입니다.
어떻게 사용하는지, 나는 정식으로 시위 행진을 해 보고 싶다.
실제로 이용해볼게요.
먼저 S3에서 사용된 데이터를 읽기 시작합니다.
이번에 사용된 데이터는 AME의 데이터에서 ID 표시줄과 적절하게 데이터를 손실한 것이다.
jupyter
import pandas as pd
prefix = 's3://sagemaker-first-tests/data'
data_dir=f'{prefix}/iris.csv'
df=pd.read_csv(data_dir)
df.to_csv('dataset.csv', index=False)
불러오면 미리 처리할 작업을 만듭니다.jupyter
import sagemaker
from sagemaker.sklearn.processing import SKLearnProcessor
sklearn_processor = SKLearnProcessor(
framework_version='0.20.0',
role=sagemaker.get_execution_role(),
instance_count=1,
instance_type='ml.m5.xlarge'
)
작업이 완료되면 사전 처리 스크립트를 실행합니다.jupyter
from sagemaker.processing import ProcessingInput, ProcessingOutput
sklearn_processor.run(
code='preprocessing.py',
inputs=[ProcessingInput(
source='dataset.csv',
destination='/opt/ml/processing/input'
)],
outputs=[ProcessingOutput(source='/opt/ml/processing/output/prepro_file')]
)
code
에 사전 처리 스크립트를 지정합니다.이번에 jupter Home 바로 아래에서 제작된preprocessing.py
을 지목했다.inputs
에서 사전 처리를 할 데이터를 지정합니다.outputs
에서 이전에 처리가 끝난 파일의 출력 위치를 지정합니다.또한 출력된 데이터는 기본 S3 파일로 출력됩니다.
이번 예처리 스크립트에서 결손값의 열이 수치 데이터일 때
0
, 문자 데이터일 때NaN
를 보충하고 데이터를 분할한다.코드는 다음과 같습니다.
preprocessing.py
import pandas as pd
import numpy as np
import os
from sklearn.model_selection import train_test_split
df = pd.read_csv('/opt/ml/processing/input/dataset.csv')
# 欠損値を0かNaNで埋める
for col_name in df:
if df[col_name].dtypes == 'object':
df[col_name] = df[col_name].fillna('NaN')
else:
df[col_name] = df[col_name].fillna(0)
# データ分割
train, test = train_test_split(df, test_size=0.2)
train, validation = train_test_split(train, test_size=0.2)
# outputファイルを作成
os.makedirs('/opt/ml/processing/output/prepro_file', exist_ok=True)
# データを保存
train.to_csv("/opt/ml/processing/output/prepro_file/train.csv", index=False)
validation.to_csv("/opt/ml/processing/output/prepro_file/validation.csv", index=False)
test.to_csv("/opt/ml/processing/output/prepro_file/test.csv", index=False)
이상은 집행 전 처리까지의 절차입니다.실제로 데이터를 유출해 봤는데 결과는 다음과 같다.
결손이 있는 줄은 파란색으로 대응하는 곳이 임의의 값으로 채워져 있음을 알 수 있다.
(전처리된 데이터는 ID순으로 정렬되어 이해하기 쉽지만 실제로는 무작위로 분산되어 있다.)
총결산
이번 사용
Amazon SageMaker Processing
은 예처리를 시도했다.데이터의 분할과 손실 처리가 매우 간단하기 때문에 적극적으로 이용하고 싶습니다!
사이트 축소판 그림
Reference
이 문제에 관하여(Amazon SageMaker Processing을 사용한 간단한 사전 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/K-Nomu3/items/fc32d767d8279528ec7e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)