안녕하세요! Brightics 서포터즈 3기
입니다.💙
지난 개인미션 1탄에서는 로지스틱 회귀분석 및 모델 평가를 진행했었는데요!
오늘은 이어서 개인미션 3탄 여러 분류 모델 비교 분석을 진행할 예정입니다(*^o^*)


시작하기 앞서 Brightics Studio 설치가 되지 않으셨다면, 다운로드 및 설치 방법으로!
개인미션 1탄을 아직 안 읽으셨다면, 지지난 주 포스팅으로!
개인미션 2탄을 아직 안 읽으셨다면, 지난 주 포스팅으로!
저는 오늘 세번째 미션으로 Brightics Studio를 이용해
XGB, SVM, Random Forest, Decision Tree Classification 모델을 적용해보고
지난 포스팅에서 사용한 Logistic Regression과 비교분석을 진행해보려고 합니다.
그럼 지금부터 시작하도록 하겠습니다!
아쟈잣\\\\٩( 'ω' )و ////
분석에 들어가기 앞서!!
지난 포스팅에서 Logistic Regression을 적용해 모델링을 진행했었는데
혹시 그 순서... 기억 나시나요?0?
오늘 포스팅에서는 여러 종류의 분류 모델을 적용해볼 예정이기 때문에,
모델링의 전체 플로우를 가볍게 살펴보도록 하겠습니다!
Split Data
- Classification Train
-Classification Predict
- Evaluate Classification
짠~ 모델링의 전체 플로우는 위와 같이 4단계로 설명할 수 있습니다.
(사실 split은 한 번만 해주면 돼서 3단계...!)
1) Data를 Test와 Train으로 split 해주고
2) 해당 분류 모델로 Train 시킨 뒤
3) 해당 분류 모델로 Predict를 진행하고
4) 마지막으로 분류 모델을 평가해주면 완성~~!!
이해되시나요??? 아직은 헷갈릴 수도 있으니
오늘 여러 분류 모델을 적용해보면서 모델링을 완.전.정.복.해보도록 합시다.ㅎㅎ
이제 진짜 분석 들어가겠습니다.
XGB
Brightics Studio에는 저어어엉말 다양한 분류 모델이 있는데요, 첫번째로 XGB Classification을 적용해보도록 하겠습니다.
XGB란 XGBoost(eXtream Gradient Boosting) 의 약자로 풀네임에서 유추할 수 있듯이, Gradient Boosting의 한 방법입니다. 트리 기반의 앙상블 학습에서 가장 각광받고 있는 알고리즘 중 하나로, 분류와 회귀 영역에서 뛰어난 예측 성능 발휘합니다.
과적합 규제(Regularization)에 적합하고 자체 내장된 교차 검증으로 최적화된 반복 수행 횟수를 가질 수 있다는 장점이 있습니다.
1) XGB Classification Train
Brightics Studio의 XGB Classification Train 함수를 통해 모델을 간편하게 훈련시킬 수 있습니다.

Input으로 Train table를 선택 후 모델을 학습시킬 차례입니다.
(%주의% Test table이 아니에요❌)
Feature Columns에는 독립변수(센서의 모든 열)를 넣어주고, 다음으로 Label Column에는 종속변수(Pass_Fail)를 넣어줍니다. 또한 함수의 옵션은 모두 default로 두었으며,Importance Type은 Gain으로 선택 후 seed를 123으로 고정해 두었습니다.

Train의 결과로는 Feature Importance를 통해 유의한 변수로 작용하는 주요 센서를 파악할 수 있습니다. 저는 feature가 많아 글씨가 약간씩 겹친 상태이지만, 매의 눈으로...! 390, 117, 114, 571 등의 센서가 유의한 것을 모니터링할 수 있습니다.
2) XGB Classification Predict
그럼 이제 모델을 사용해 test 데이터를 예측해보도록 하겠습니다!

Input으로 Test table를 선택 후 모델을 학습시킬 차례입니다.
( %주의% Train table이 아니에요!!❌)
XGB Classification Predict 함수를 Run해주면, 가장 오른쪽 열에 3개의 열이 추가된 모습을 확인하실 수 있습니다.
prediction column에 예측값(0 or 1)을 보여주고, probability column에는 각각 해당 예측값이 나올/나오지 않을 확률을 보여줍니다.
3) Evaluate Classification
다음으로 모델을 평가할 차례입니다. 🔆

Brightics Studio에서는 Evaluate Classification 함수를 통해 모델의 Accuracy와 f1 score, precision, recall, Confusion matrix 정보를 제공해줍니다.
Label Column으로 Pass_Fail을 선택하고, Prediction Column으로는 앞서 만들어준 prediction을 선택해줍니다.
마지막에 한번에 비교해보도록 하고, 지금은 Acurracy만 살펴보도록하겠습니다. 분석결과, XGB Classification 모델의 정확도는 93%이네요!
앞서 진행한 Logistic Regression 모델의 정확도가 65%였던 것에 비하면 매우매우매우
높은 수치라 감격의 눙물이... 쥬르륵...
SVM
두번째로는 SVM Classification을 적용해보도록 하겠습니다.
SVM은 Support Vector Machine의 약자로 입력 데이터에서 단순한 초평면 hyperplane으로 정의되지 않는 더 복잡한 모델을 만들 수 있도록 확장한 것입니다. 즉, 분류를 위한 기준 선을 정의하는 모델인 SVM(SVC)은 서포트 벡터(support vectors)를 사용해서 결정 경계(Decision Boundary)를 정의하고, 분류되지 않은 점을 해당 결정 경계와 비교해서 분류해 줍니다. 커널 기법으로 주어진 데이터를 고차원의 특징 공간으로 사상해, 원래의 차원에선 포이지 않던 선형(초평면)이 데이터를 분류할 수 있도록 한다는 장점이 있습니다.
1) SVM Classification Train
Brightics Studio의 SVM Classification Train 함수를 통해 모델을 간편하게 훈련시킬 수 있습니다.

여러분!!Input, Feature Columns, Label Column은 이제 익숙하시죠>> 설명은 생략하도록 하겠습니다! 위의 XGB 와 동일하게 선택해주면 돼요ㅎㅎ
다만, SVM에서는 Kernel을 선택해주어야합니다. 저는 4개의 커널 중 가장 효과적인 커널로 증명된 RBF (Radial Basis Function) 커널은 선택했습니다. 이외의 옵션은 모두 default~
2) SVM Classification Predict
그럼 이제 모델을 사용해 test 데이터를 예측해보도록 하겠습니다!

설명생략ㅎㅎ(여러분도 지겨우시죠...? 믿어요..)
3) Evaluate Classification
다음으로 모델을 평가할 차례입니다. 🔆

분석결과, SVM Classification 모델의 정확도는 86%이네요!
XGB에 비해서는 약간 정확도가 떨어졌네요ㅠ.ㅠ
Random Forest
세번째로 Random Forest Classification을 적용해보도록 하겠습니다.
RandomForest는 앙상블 분석 기법 중 하나로, 배깅과 부스팅보다 더욱 무작위성을 주어서 약한 학습기를 생성한 후 선형결합을 통해 최종 학습기를 만드는 방법입니다. 알고리즘이 굉장히 간단하고, 새로운 데이터에 대해 overfitting 되지않고 generalize 되기 쉽다는 장점이 있지만, Memory 사용량이 많은 편이고 Training data 의 양이 증가해도 성능에 대한 향상이 잘 일어나지 않는다는 단점이 있습니다.
1) Random Forest Classification Train
Brightics Studio의 Random Forest Classification Train 함수를 통해 모델을 간편하게 훈련시킬 수 있습니다.

설명생략ㅎㅎ

Train의 결과로는 Feature Importance를 통해 유의한 변수로 작용하는 주요 센서를 파악할 수 있습니다. XGB와 비교했을 때 주요 센서가 바뀐 모습을 확인할 수 있습니다. 매의 눈으로 살펴본 결과 117, 525, 116,110 등의 센서가 유의한 것을 모니터링할 수 있습니다.
2) Random Forest Classification Predict
그럼 이제 모델을 사용해 test 데이터를 예측해보도록 하겠습니다!

설명생략ㅎㅎ
3) Evaluate Classification
다음으로 모델을 평가할 차례입니다. 🔆

분석결과, Random Forest Classification 모델의 정확도는 93%이네요!
Random Forest 모델은 XGB 모델의 정확도와 거의 비슷하지만, 소수점까지 포함하면 XGB모델이 조금 더 정확하고 SVM 모델보다는 높은 정확도를 보이고 있어요.
Decision Tree
마지막으로 Decision Tree Classification을 적용해보도록 하겠습니다.
Decision Tree(의사결정나무)는 의사결정규칙(decision rule)을 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로 분류, 예측을 수행하는 분석방법입니다. 분석과정이 나무구조에 의해서 표현되기 때문에 사용자에게 쉽고 직관적으로 결과를 보여주는 분류 모델입니다.
1) Decision Tree Classification Train
Brightics Studio의 Decision Tree Classification Train 함수를 통해 모델을 간편하게 훈련시킬 수 있습니다.

설명 생략ㅎㅎ

Train의 결과로 색색의 Decision Tree를 볼 수 있습니다.

또한 Train의 결과로 Feature Importance를 통해 유의한 변수로 작용하는 주요 센서를 파악할 수 있습니다. XGB, Random Forest와 비교했을 때 주요 센서가 바뀐 모습과 중요도가 확연히 낮은 모습을 확인할 수 있습니다. 매의 눈으로 살펴본 결과 390,120,110,089 등 117, 525, 116,110 등의 센서가 유의한 것을 모니터링할 수 있습니다.
2) Decision Tree Classification Predict
그럼 이제 모델을 사용해 test 데이터를 예측해보도록 하겠습니다!

Decision Tree이기 때문에 결과값으로 probability column에 0 또는 1의 해당 예측값이 나올/나오지 않을 확률을 보여줍니다.
3) Evaluate Classification
다음으로 모델을 평가할 차례입니다. 🔆

분석결과, Decision Tree Classification 모델의 정확도는 83%이네요!
Logistic Regression 모델보다는 분명히 높지만, 오늘 분석한 4개의 모델 중 가장 낮은 정확도를 보이고 있는 걸 확인할 수 있습니다.
모델 비교 분석
1) Logistic Regression

Logistic Regression의 결과로는 Accuracy가 64.69%, precision이 0.65, recall이 0.62으로 모두 높게 나왔답니다.
(precision: 0이라고 예측한 값 중 실제 0의 비율, recall: 실제 0 중 0이라고 맞춘 비율)
다음으로 분류 결과를 토대로 한 confusion matrix를 확인하실 수 있습니다.
불량 예측률은 66.51%(292/439)이지만, False Alarm(실제 정상이지만 불량으로 판단)이 163개로 많은 편입니다.
2) XGB Classification

XGB Classification의 결과로는 Accuracy가 93.28%, precision이 0.93, recall이 0.93으로 모두 매우 높게 나왔답니다. 지난 시간 Logistic Regression에서 0.6*의 값도 높다고 생각했는데 0.93이라니... 행복해요
다음으로 분류 결과를 토대로 한 confusion matrix를 확인하실 수 있습니다.
불량 예측률은 93.39%(410/439) 로 매우 높은 예측률을 가지고 있고, False Alarm(실제 정상이지만 불량으로 판단)역시 30개로 매우 적은 편입니다.
3) SVM Classification

SVM Classification의 결과로는 Accuracy가 86.45%, precision이 0.89, recall이 0.82으로 모두 높은 편입니다.
다음으로 분류 결과를 토대로 한 confusion matrix를 확인하실 수 있습니다.
불량 예측률은 90.21%(396/439) 로 매우 높은 예측률을 가지고 있고, False Alarm(실제 정상이지만 불량으로 판단)역시 76개로 적은 편입니다.
4) Random Forest Classification

Random Forest Classification의 결과로는 Accuracy가 93.17%, precision이 0.91, recall이 0.95으로 모두 높은 편입니다.
다음으로 분류 결과를 토대로 한 confusion matrix를 확인하실 수 있습니다.
불량 예측률은 91.16%(400/439) 로 매우 높은 예측률을 가지고 있고, False Alarm(실제 정상이지만 불량으로 판단)역시 21개로 매우 적은 편입니다.
5) Decision Tree Classification

Decision Tree Classification의 결과로는 Accuracy가 83.26%, precision이 0.84, recall이 0.80으로 모두 높은 편입니다.
다음으로 분류 결과를 토대로 한 confusion matrix를 확인하실 수 있습니다.
불량 예측률은 85.42%(375/438) 로 매우 높은 예측률을 가지고 있고, False Alarm(실제 정상이지만 불량으로 판단)역시 84개로 적은 편입니다.
종합적으로 판단하자면 XGB Classification의 결과로는 Accuracy가 93.28%,불량 예측률은 93.39%, False Alarm 역시 30개로 매우 적은 편입니다. 또한 Random Forest Classification의 결과로는 Accuracy가 93.17%,불량 예측률은
91.16%로 매우 높은 예측률을 가지고 있고, False Alarm 역시 21개로 매우 적은 편입니다.
따라서 두 모델을 교차 검증하며 사용해 Feature Importance를 통한 주요 센서를 파악한다면, 불량 예측률이 높은 성능을 보유하고 있기 때문에 공정의 모니터링/수율 향상에 영향을 미칠 수 있을 것으로 판단됩니다!!
Data Analysis Flow

오늘 진행한 step별 함수의 전체는 위와 같습니다ʕ•ᴥ•ʔ
지금까지 3주간의 대장정이었던 개인 분석 미션
" 반도체 공정 이상 예측"이었습니다.
오늘 포스팅이 여러분께 도움이 됐으면 하는 바람입니다.
추가적인 질문은 댓글로 부탁드려요!!
감사합니다~

* 본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다.
#삼성SDSBrightics#삼성SDS#Brightics#Brightics서포터즈#Brightics서포터즈3기#BrighticsStudio#브라이틱스#모델링#데이터분석#코딩없이데이터분석#브라이틱스와함께하는데이터분석
'삼성 SDS Brightics' 카테고리의 다른 글
| [삼성 SDS Brightics] 06 DACON 자율주행 센서의 안테나 성능 예측 AI 경진대회 후기_팀미션2탄 (0) | 2022.08.25 |
|---|---|
| [삼성 SDS Brightics] 05. DACON 자율주행 센서의 안테나 성능 예측 AI 경진대회 후기_팀미션1탄 (0) | 2022.08.16 |
| [삼성 SDS Brightics] 03. 반도체 공정 이상 예측_개인미션2탄 (0) | 2022.07.05 |
| [삼성 SDS Brightics] 02-2. 반도체 공정 이상 예측_개인미션1탄 (0) | 2022.06.28 |
| [삼성 SDS Brightics] 02-1. Brightics 서포터즈 3기 발대식 후기(Feat. EBC 센터 투어) (0) | 2022.06.28 |


