본문 바로가기
공부/MLOps

MLOps - 5 (TFDV)

by DSLAB_JS 2022. 1. 23.
  • 데이터 검증 ( TFDV )
    • 데이터 검증 TFDV
    • 스키마 추론과 스키마 환경
    • 데이터 드리프트 및 스큐

 

  •  데이터 검증 TFDV
    • 데이터 검증이 필요한 이유
      1. 머신러닝 시스템에서 데이터로 인한 장애는 파악하기 쉽지 않다.
      2. 데이터가 잘못 들어와도 예측은 정상적으로 수행되기 때문에 잘못된 예측값을 늦게서야 인지하는 경우가 많아서, 데이터를 사용하기 전에 미리 데이터가 정상적인지 확인하는 과정을 거쳐야한다.
      3. 'TFDV'에는 기술 통계보기, 스키마 추론, 이상 항목 확인 및 수정, 데이터 세트의 드리프트 및 왜곡확인이 포함된다.
        #Pip 업그레이드
        try:
        	import colab
            !pip install --upgrade pip
        except:
        	pass
            
        #TensorFlow 설치
        $ pip install tensorflow==2.2.0
        
        #python 버전 확인
        import sys
        assert sys.version_info.major is 3
        
        #Colab 런타임 재시작
        
        # TFDV 설치
        import tensorflow as tf
        print('Installing Tensorflow Data Validation')
        !pip install -q tensorflow_data_validation[visualization]
        
        #Google cloud Storage에서 dataset을 load
        import os
        import tempfile,urllib, zipfile
        
        BASE_DIR = tempfile.mkdtemp()
        DATA_DIR = os.path.join(BASE_DIR, 'data’)
        OUTPUT_DIR = os.path.join(BASE_DIR, 'chicago_taxi_output’)
        TRAIN_DATA = os.path.join(DATA_DIR, 'train', 'data.csv’)
        EVAL_DATA = os.path.join(DATA_DIR, 'eval', 'data.csv’)
        SERVING_DATA = os.path.join(DATA_DIR, 'serving', 'data.csv')
        
        #데이터 검증 TFDV 소개
        zip, headers = urllib.request.urlretrieve('https://storage.googleapis.com/artifacts.
        tfx-oss-public.appspot.com/datasets/chicago_data.zip’)
        zipfile.ZipFile(zip).extractall(BASE_DIR)
        zipfile.ZipFile(zip).close()
        print("Here's what we downloaded:")
        !ls -R {os.path.join(BASE_DIR, 'data')}
        
        #다음과 같이 3가지 폴더에 출력을 볼 수 있음
        Here's what we downloaded:
         /tmp/tmp481nnxcj/data:
         eval serving train
         /tmp/tmp481nnxcj/data/eval:
         data.csv
         /tmp/tmp481nnxcj/data/serving:
         data.csv
         /tmp/tmp481nnxcj/data/train:
         data.csv
         
         #TFDV Version 체크
         import tensorflow_data_validation as tfdv
         print('TFDV version:{}'.format(tfdv.version.__version__))​
  • 통계 계산 및 시각화
    • tfdv.generate_statistics_from_csv 를 사용하여 훈련 데이터에 대한 통계를 계산
    • TFDV는 존재하는 특징과 가치 분포의 형태 측면에서 데이터의 빠른 개요를 제공하는 기술 통계를 계산할 수 있다.
    • 내부적으로 TFDV는 Apache Beam의 데이터 병렬 처리 프레임 워크를 사용한다.
    • 대규모 데이터 세트에 대한 통계 계산을 확장한다.
      #통계 계산 및 시각화
      train_stats =
       tfdv.generate_statistics_from_csv(data_location=TRAIN_DATA)
       
       tfdv.visualize_statistics(train_stats)​

시각화 할 수 있다.

  • 학습데이터의 통계 전부가 시각화를 할 수 있다. 어떠한 feature들의 갯수, missing, mean 등등 한눈에 볼 수 있다. 실제로 찍어보면 feature의 이상치를 시각적으로 확인할 수 있다.

'공부 > MLOps' 카테고리의 다른 글

MLops - 6. 도커 & 쿠버네틱스  (0) 2022.03.01
MLops - 5.1 (TFDV)  (0) 2022.02.02
MLOps - 4  (0) 2022.01.06
MLOps - 3  (0) 2022.01.03
MLOps - 2  (0) 2021.12.12