데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

4차산업혁명현장! 스마트팩토리 빅데이터분석 사례2

데이터 이야기
작성자
dataonair
작성일
2018-07-24 00:00
조회
6684


4차산업혁명현장! 스마트팩토리 빅데이터분석 사례2

빅데이터 분석방법론 기반의 데이터 전처리



기고자 조경미
소속 씨에스리, 아이리포기술사회
경력사항 정보관리기술사, 정보시스템수석감리원
빅데이터분석, 인공지능 연구, Tech R&D, IT컨설팅
기술기획, 기술전략, 검색서비스 개발



4차산업혁명으로 전통 제조산업은 ICT융합 제조로 진화하고 있습니다. 데이터 분석은 이와 같은 제조산업이 디지털 트랜스포메이션(Digital Transformation)을 위해중요한 비즈니스 전략이 될 수 있습니다. 제조산업 등 비즈니스 도메인 특화된 빅데이터 분석을 위해 도메인의 이해, 데이터의 이해가 기본이 되어야 한다는 이야기는 지난호에서 함께 공감하였습니다.

도메인 이해, 데이터 이해를 프로세스 단계로 포함하는CRISP-DM은 데이터 마이닝 프로젝트를 수행하는 표준적인 프로세스 모델을 정의하기 위한 프로젝트로 SPSS, NCR, DaimlerChrysler, OHRA 이 함께 정의한 데이터 마이닝 방법론입니다. 비즈니스 이해(Business Understanding)를 시작으로 데이터 이해(Data Understanding), 데이터 준비(Data Preparation), 모델링(Modeling), 평가(Evaluation), 배포(Deployment)의 6단계로 수행이 됩니다.

column_img_3493.jpg

[표1] CRISP-DM 프로세스 단계 설명

“데이터 준비(Data Preparation)”는 분석을 위한 초기 데이터 준비 단계로 여러 측면에서 데이터를 점검하고 정제하는 단계입니다. 데이터 준비는 빅데이터 분석 프로세스에서도 작업 시간 비율이 70%에 달한다고 할 수 있을 만큼 가장 오랜 시간이 걸리는 중요한 단계입니다. 데이터 준비 단계에서 면밀히 검토하고 정제한 데이터는 모델의 생산성과 정확도를 높이는 기본 바탕이 됩니다.

스마트팩토리 빅데이터 분석을 수행하면서 경험한 데이터 전처리 기법들 이지만, 다른 어떤 도메인에서도 공통으로 활용가능한 기법들로, 데이터 준비단계에서 수행하는 다양한 데이터 전처리(data preprocessing) 방법을 알아보고 각 방법에 사용하는 R명령어를 소개합니다. R을 사용한 이유는 벡터를 이용한 데이터 연산으로 속도가 빠르고 오픈소스로 다양한 분석기법들을 쉽게 사용할 수 있는 장점이 있기 때문입니다. 다만, R에 대해서 깊은 설명은 하지 않을 것이고, 전처리 기법에서 어떤 R함수를 이용했는지 간단히 언급하도록 하겠습니다.

① 데이터 변수 이름, 변수 타입 확인하기
분석하는 데이터는 이해하기 쉬워야 합니다. 간혹 데이터베이스에서 사용하는 변수 이름이 해당 도메인의 나름의 규칙에 따라 작성된 코드값으로 정의되어 있는 경우가 있습니다. 데이터 전처리(data preprocessing)의 첫 단계로 이해하기 쉬운 변수 이름으로 변경해야 앞으로 진행할 전처리 및 분석 알고리즘 적용 단계까지 쉽게 사용할 수 있습니다.

column_img_3494.jpg

② 트렌드 데이터 확인하기
전체적인 데이터의 분포를 시계열로 확인합니다. “데이터 트렌드를 본다”라고 할 수 있습니다. 특정 장비의 온도 센서 데이터 트렌드를 확인하니 7~9월에 가장 높고, 12월~2월사이에 가장 낮습니다. 온도 센서는 대기 온도의 영향을 가장 크게 받는 것을 확인할 수 있습니다. 중간에 그래프가 누락된 것은 측정되지 않거나 누락된 데이터입니다.

column_img_3495.jpg

③ 수치적 자료 요약하기
데이터 분포를 확인하는 또 다른 방법은 수치적으로 데이터를 확인하는 방법입니다. 수치적으로 데이터를 확인하는 이유는 데이터의 분포, 편향 등을 확인할 수 있기 때문입니다. 기존의 스마트팩토리 시스템에도 임계치를 가지고 운영을 합니다. 다만, 그 임계치 상하한값이 장비가 완전히 장애로 회복 불가능한 상태를 나타내고 있습니다. 빅데이터 분석을 스마트팩토리에 적용하는 이유는 장애를 사전에 알고 예측할 수 있기를 희망하기 때문입니다. 빅데이터 분석을 통해서 통계적 수치에 벗어나는 데이터가 있는지를 확인하여 장애가 발생하기 전에 불규칙적인 데이터의 발생 회수와 일정 기준을 넘어서는 데이터를 통해 장애를 예측할 수 있습니다.

앞서 말씀드린 IQR에서 확인가능한 Q1, Median, Q3, 1.5IQR, -1.5IQR이외에도 전체 카운트, unique값, 표준편차 등이 대표적인 수치적 자료가 될 수 있습니다.

column_img_3496.jpg

(예시) 데이터의 수치 자료 요약 예시

④ 결측치 데이터 확인하기
센서 이상 혹은 데이터 전송 오류로 측정되지 않은 데이터를 결측치(missing value)라고 합니다. 위에서 살펴본 데이터에서 중간중간에 그래프가 그려지지 않은 부분이 결측치라고 할 수 있습니다. 스마트팩토리에서 설비를 A,B,C,D,E 5대를 운영한다고 할 때, 에너지 생산 목표량에 따라 A,C만 또는 B,D,E만 운행하는 경우가 있습니다. 이러한 경우에 A와C만 운행하는 경우, B,D,E는 측정된 데이터가 없으므로 ②와 같이 트렌드 데이터를 확인해보면 중간중간 데이터가 없는 경우가 발생합니다. 또는 각 설비에 부착된 센서의 이상으로 결측치 데이터가 생기기도 합니다. 스마트팩토리의 센서는 외부환경의 영향을 많이 받게 됩니다. 온도, 외부 충격 등에 따라 센서의 수명이 한정되기도 합니다. 측정되는 데이터의 누락 여부, 이상 여부를 통해 센서의 교체시기까지 판단하기도 합니다.

결측치는 해당 row를 삭제하거나, column을 삭제합니다. 평균값(mean)과 중앙값(median)으로 대체하기도 합니다. 결측치를 확인하는 방법은 is.na(dataset)으로 확인할 수 있으며, na.omit(dataset)으로 해당 row를 삭제할 수 있습니다.

column_img_3497.jpg

⑤ boxplot이용한 데이터 분포 확인하기

시계열 트렌드 보기 이외에 데이터 분포를 확인하는 방법은 사분위수범위(IRQ)를 그래프로 그려 확인하는 것입니다. 사분위수범위는 수치적자료로 포함하여 확인할 수도 있습니다. 빅데이터 시각화 방법을 적용하면 수치적으로 확인하는 것 보다 보다 시각적으로 확인되머 데이터의 이상 여부를 빠르게 확인할 수 있습니다. 스마트팩토리의 데이터는 기계의 수명, 마모 정도, 외부 환경 등의 영향으로 데이터의 변화가 지속적으로 발생하게 됩니다. 최근 몇 개월, 지난 월 등의 사분위수범위 데이터를 비교 분석하여 데이터의 변화 여부를 쉽게 시각적으로 확인할 수도 있습니다.

사분위수범위를 그래프로 그릴 때 R에서는 boxplot함수를 이용합니다. 사분위수범위로 중앙값과 Q1, Q3값을 확인할 수 있습니다. Q1는 25percentile, Q3는 75percentile의 값을 의미하며, IRQ은 Q3에서 Q1를 뺀 값입니다.

column_img_3498.jpg

boxplot그래프는 1.5IQR의 상한값과 -1.5IQR의 하한값을 표시해 주는데, 이때 1.5IQR을 초과하거나 -1.5IQR미만값은 통계적으로 이상치(outlier)일로 판단합니다. 다만, 스마트팩토리에서 운행하는 장비의 특성이나 데이터의 특성을 고려하여 이러한 이상치 데이터를 사용할지 여부는 현장의 업무 전문가와 협의하여 결정하도록 합니다. 필요에 따라 분석 모델에 포함될 수도 있고 그렇지 않을 수도 있습니다. 일반적으로 예측모델을 생성할 때는 이상치 데이터가 모델의 결과를 왜곡할 수 있어서 학습 데이터(training data)에서 제외합니다. 이상치(Outlier) : 통계적으로 신뢰 되는 범위를 벗어나거나 있거나 통계적 측정값 또는 예측 모델의 결과를 왜곡하는 데이터

column_img_3499.jpg
column_img_3500.jpg

⑥ 데이터의 병합
데이터의 병합은 여러 장비에서 측정된 데이터를 하나로 모으거나, 2개 이상의 테이블에 있는 데이터를 하나의 데이터셋으로 구성하여 전체적으로 분석을 수행하고자 할 때 사용하는 기법입니다. 실제로 펌프류 1번~10번의 장비에서 수집되는 데이터셋은 같은 컬럼을 가지고 있고, 전체적인 특성을 파악하고자 할 때는 같은 컬럼에 로우만 추가합니다. 연도별도 데이터가 나눠져 있는 경우 장비별로 연도데이터를 병합하여 분석을 수행하기도 합니다. 외부 온도, 습도, 대기압력, 해수면 높이 등 모든 측정장비에 공통적으로 활용될 수 있는 공통 데이터는 장비에서 측정된 데이터와 병합하여 예측 모델을 만들기도 합니다. 환경적 요인인 온도, 습도 등은 예측 모델에서 중요한 설명변수가 되기 때문입니다. 이와 같은 데이터의 병합은 크게 rbind로 수행하는 로우 병합과 cbind로 수행하는 컬럼 병합으로 나눌 수 있습니다. SQL Join명령어와 유사한 기능을 수행하는 merge함수를 이용하여 특정 기준이 되는 컬럼(데이터베이스에서 key값)으로 병합하기도 합니다. 이때 key값은 merge하는 두 데이터셋에 공통으로 있는 컬럼이어야 합니다.

column_img_3501.jpg

⑦ 데이터 샘플링
분석 대상 데이터에서 일부를 선택하거나, 학습 데이터(Training Data)와 테스트 데이터(Test Data)를 구분할 때 데이터를 샘플링합니다. 샘플링은 단순임의추출, 계통추출, 층화추출로 세분화됩니다. 중복 추출 여부에 따라 복원과 비복원의 옵션을 설정할 수도 있습니다. 단숨임의추출은 특별한 조건없이 랜덤하게 샘플링하는 기법이고, 계통추출은 같은 간격의 데이터를 샘플로 추출한다. 예를 들어 온도데이터를 10도 단위로 추출간격을 두고 추출할 때 5도, 15도, 25도, 35도 등으로 추출할 때 사용할 수 있다. 특정 데이터를 같은 비율로 가지도록 샘플링하고자 할 때 층화추출을 이용합니다. 예를 들어 온도데이터가 50도 이상인 경우 1만건, 50건 미만인 경우 1만을 각각 샘플링하고자 할 때 비율을 설정하여 샘플링 할 수 있습니다. 이것을 층화추출 이라고 합니다.

column_img_3502.jpg

데이터 전처리 과정은 전체 빅데이터 분석 라이프사이클에서 70%이상 해당하는 중요한 단계입니다. 스마트 팩토리 도메인 뿐만 아니라 어떤 산업분야에도 데이터 분석 전처리 과정은 유사하게 적용할 수 있습니다. 데이터의 전체 시계열 트렌드를 확인하고, 현업 전문가와 함께 데이터의 특성을 공유하면서 수치적 분포, 이상치 처리, 결측치 처리하고, 데이터셋을 통합하거나 샘플링해서 분석/예측 모델을 위한 데이터셋을 구성할 수 있습니다. 다음 호에서는 통계적 분석/예측 모델의 대표인 회귀모델, 의사결정트리의 과적합 문제를 해결한 랜덤포레스트 등 다양한 분석/예측 알고리즘에 대해 알아보도록 하겠습니다.



[Reference]
① 데이터 분석 전문가 가이드 / 한국데이터진흥원
② R을 활용한 데이터 처리&분석 실무 / 서민구
③ 다변량분석 / 한국방송통신대학교 / 김성수 외
④ https://cran.r-project.org/
⑤ http://rfriend.tistory.com/



출처 : 한국데이터진흥원

제공 : 데이터 전문가 지식포털 DBguide.net