https://ss-doubt.tistory.com/38
제조 데이터에서의 전처리란? (1) (for 데이터셋 구성)
0. 들어가며 데이터 분석가가 분석 프로젝트를 진행할 때 80%의 시간을 전처리에 사용한다고 합니다. 데이터 사이언티스트도 마찬가지, 모델링을 하기 위해서는 내가 원하는 형식의 데이터 셋 구
ss-doubt.tistory.com
0. 들어가며
지난 글에서는 데이터 전처리 과정에 대해 알아봤는데요 !
이번에는 모델링 과정에 대해 자세히 글을 작성해 보겠습니다.
이번 모델링의 경우 제조 분야에서 "가상 계측"이라고 흔히 불리는 품질/물성 예측 모델링을 중점적으로 이야기하겠습니다. 즉, 다양한 공정 변수(X)를 활용하여 물성값(Y, 정형 데이터, 숫자형)을 예측하는 모델링 과정입니다.
[그림1]은 실제값(Y)와 예측값(Y')을 시각화한 그림인데요, LINE PLOT, SCATTER PLOT으로 시각화가 가능합니다.
그럼 이제부터 모델 성능 upgrade를 위한 데이터 전처리 과정에 대해 소개하겠습니다.
당연히 정답은 없고, 다양한 실험과 검증을 반복해야 한다는 점 참고해주세요 😊
1. 모델 성능을 높이기 위한 전처리
지난 글에서 소개한 데이터 전처리는 단순히 X변수와 Y변수를 결합하기까지였습니다.
모델링을 위한 전처리는 데이터의 특징을 고려해, 모델의 성능이 높아질 수 있는 방향으로 전처리합니다.
[ 파생변수 생성 ]
- 이동평균 / 분산
: 특히 설비의 센서 데이터의 변동성을 탐지하고 싶을 때, 많이 만드는 파생변수 입니다.
: [그림 2]와 같이 일정 구간에 대한 평균값 (분산값으로 대체 가능)을 계산한 값입니다.
: 이동평균 (이동분산) 값이 갑자기 커지거나 작아질 경우, 설비의 이상이 있거나 불량이 발생했음을 반증합니다.
: 이 변수의 경우에는 평균을 낸 시점 (t1, t2, t3, t4, t5) 중 어느 시점의 Y와 결합해야할지는 공정 지식이 필요합니다.
- 도메인 지식 활용
: 체류시간 (이전 공정 종류 이후 다음 공정 시작 전까지의 시간) 을 X인자로 보는 경우도 있습니다.
_체류시간의 개념은 이전 전처리 글에 자세한 설명이 있습니다.
[ 데이터 증강 (Data Augmentation) ]
- 데이터 불균형 해소는 모델링에 있어서 매우 중요합니다.
- 어떤 공정에서 불량률이 5%라고 가정하면, 불량일 때의 값(Y)를 예측하기가 아주 어려워집니다. 모델은 주로 학습을 많이 한 정산 데이터의 Y값을 출력하기 마련이니까요.
- 보통 분류 모델링에서는 SMOTE 기법, GAN 등을 많이 사용하지만, 정형 데이터의 경우에는 SMOGN 기법, GAN 등을 활용합니다.
- 그림 출처 : 라온피플, 데이터 솔루션 '이지디펙트' 개발 - 전자신문 (etnews.com)
- 즉, 데이터 증강 기법을 활용해서 부족한 데이터의 비중을 늘려 모델이 잘 맞추지 못하는 Y값의 학습 비중을 늘려줍니다. 이는 실제 데이터가 아닌 가상의 데이터이기에
_사실 근본적인 원인은 데이터 부족이나 데이터가 수집되는 것을 기다릴 수 없는 프로젝트의 시간적 제약인 경우가 많죠 ^^
[ 주요 인자 추출 (Feature Selection) ]
- X인자가 너무 많을 경우, Y값과 오히려 관련 없는 feature들은 예측 성능을 저하시키는 경우가 더러 있습니다. Y값과 관련이 있는 인자만 추출하는 것이 Y값을 예측하는 데 큰 도움이 됩니다.
제가 주로 사용하는 2가지 방법에 대해 소개드립니다.
1. 상관계수 활용하기
말 그래도 상관분석을 활용해 Y값과 상관도가 높은 feature(인자)만 추출하거나, 혹은 상관이 없는 feature 를 제거하는 방식을 선택합니다. 이 방법은 Linear Regression를 활용해 선형성만을 고려하므로 대부분의 경우에서 이 방법만을 활용하는 데에는 무리가 있습니다. 특히나 제조 데이터의 경우는 여러 공정 조건의 영향을 받아 물성값이 결정되는 경우가 대부분이기에 참고용으로 활용합니다.
* PCA (주성분분) 방법도 이의 연장선에서 활용할 수 있는데요, 주요 인자 추출이 아닌 차원 축소를 통해 X변수의 개수를 줄이는 방식입니다. 이 방식 역시나 기반은 선형성이기에 참고해서 활용하시면 좋을 것 같습니다.
2. SHAP value를 활용하기
SHAP value란 여러 feature의 조합을 구성하고, 해당 feature의 유무에 따른 평균적인 변화를 통해 얻은 값입니다. 즉, 하나의 feature가 얼마나 공헌했는지 수치로 표현할 수 있어 feature에 대한 중요도를 얻을 때 가장 많이 활용하는 방식입니다.
주로 python에서 간단하게 구현할 수 있으며, 위 그림과 같은 시각화 자료로 output 값에 영향을 미친 정도와, 그것이 양의 방향인지 음의 방향인지 확인할 수 있습니다.
2. 마치며
모델링을 하며 가장 많이 실험을 해봤던 3가지의 전처리 방법을 시도해보았는데요! 사실상 가장 중요했던 것은 역시 현업의 공정 도메인 지식이었습니다. 한창 삽질을 했었는데 알고보니 관련 없는 변수였던 경우도 있었고, 어떤 값을 계속 예측하지 못했던 이유가 단순히 실험실 측정값이 잘못 되었거나 공정 방식이 바뀌었던 경험도 있었네요 ㅎㅎ
그래도 데이터의 무결성이 검정된 이후, 모델링을 하는 방법에 있어서는 위의 전처리 방법들이 성능을 올리는데 큰 도움이 됐습니다. 아무리 모델 layer를 쌓아도 성능이 비슷할 때, 데이터를 살펴보니 해결되는 경우가 있었어요.
여러분들은 모델 성능이 오르지 않을 때, 데이터 전처리와 모델 튜닝의 정도 조절을 어떻게 하는지도 궁금해집니다! 다른 좋은 방법이 있으면 공유는 언제나 환영입니다 :)
_미루고 미루고 이 글을 결국 글또 9기 마지막 글로 매듭짓게 되네요.. 다음 기수에는 명확한 컨셉과 저만의 글쓰기 루틴을 만들어야겠다는 짧은 회고를 곁들이며 글 마치겠습니다 !
3. 참고자료
https://sktechsummit.com/sessions/sessionsList.do
https://www.youtube.com/watch?v=9KpAzBh470s
https://proceedings.mlr.press/v74/branco17a/branco17a.pdf
An Introduction to SHAP Values and Machine Learning Interpretability | DataCamp
'DATA ANALYSIS > in 제조 분야' 카테고리의 다른 글
쉽게 정리하는 이상 탐지(Anomaly Detection) - 정의, 종류, 제조 분야에서의 활용 (0) | 2024.07.30 |
---|---|
제조 데이터에서의 전처리란? (1) (for 데이터셋 구성) (0) | 2024.02.12 |
제조 도메인에서의 데이터 분석과 AI 활용 (2) | 2024.01.21 |