📊 DATA ANALYSIS/스터디노트

[스터디노트] 품질관리를 위한 주요인자 분석

bodeok 2024. 5. 24. 18:37

상황

A공장에서는 Wine을 생산한다. 좋은 품질의 Wine은 높은 단가로 시장에 판매할 수 있다.
A공장에서 생산하는 Wine은 1~9등급까지의 등급이 있고, 7등급 이상이 가장 프리미엄 Wine이다.
7등급 이상의 Wine을 최대한 많이 생산해야 영업이익을 남길 수 있다.
Wine 품질에 영향을 끼치는  주요 공정변수를 확인하고, 공정 변수 관리를 통해 7등급 이상의 Wine을 생성하고자 한다.

 

데이터 구조

fixed acidity volatile acidity citric acid residual sugar chlorides free sulfur dioxide
산도 휘발성산 시트르산 잔당 염화물 독립 이산화황
total sulfur dioxide density pH sulphates alcohol quality
이산화항 밀도 수소이온농도 황산염 도수 품질

 

6,497 row, 12 col의 데이터셋

 

분석과정 요약

1. EDA 및 품질 중요인자 탐색
2. 선형회귀 활용 중요인자 도출
3. ML 활용 품질 중요인자 도출

 

1. EDA 및 품질 중요인자 탐색

df.shape                       #행,열 수 확인
df.info()                        #data type 확인
df.isnull().sum()          #결측치 확인
df.describe()               #이상치 확인
df['quality'].value_counts()     #7, 8, 9등급의 Wine이 현저하게 적음을 확인

  • 7등급 이상의 Wine을 프리미엄 Wine으로 정의하고 target data 생성. 프리미엄 Wine을 예측하는 Classification 문제로 변경
df['target'] = np.where(df['quality']>6, 1, 0)
  • 상관관계 파악

  • 상관계수(0.2) 이상의 상관관계를 가지는 변수 집중 탐색(volatile acidity, density, alcohol)
  • density 1미만인 데이터에 대해서만 시각화

등급이 올라갈수록 volatile acidity(휘발성산)이 낮아지는 경향성이 보임


2. 선형회귀 활용 중요인자 도출

  • MAE, R2 score를 지표로
  • 예측 모델이 얼마나 실제값을 설명하는가를 그래프로 시각화

  • 반올림을 통해 예측값(y) 정수화
  • 변형된 y값에 대한 MAE, R2 score 재산출
  • 다중 회귀 상관계수 확인
    -다중공선성 제거
    -분석 결과인 회귀 계수가 불안정, 회귀계수가 해당 변수의 종속변수에 미치는 영향력을 올바로 설명하지 못함
# (density, residual sugar) → 0.552517
# (total sulfur dioxide, free sulfur dioxide) → 0.720934
# (pH, alcohol) → 0.720934
      • 'quality', 'target', 'residual sugar', 'total sulfur dioxide', 'pH' 를 드랍
      • 선형회귀를 활용하여 재예측 → Density(밀도) 회귀계수의 부호가 바뀜이 확인됨
      • scaling 필요성이 확인되어 MinMaxscaler사용
        (
        즉, MinMaxscaler 적용후 'quality', 'target', 'residual sugar', 'total sulfur dioxide', 'pH' 를 드랍한 X와 종속변수 y 데이터셋 구분)

변수제거전/변수제거후/Scaling및변수제거후

  • Scaling을 통해 해석하기 쉬워짐

 


3. ML 활용 품질 중요인자 도출

  • lightgbm 모델을 통한 target변수 예측
  • parameter 조절
# params [ 'learning_rate'] = 0.02
# params [ 'boosting_type'] = 'gbdt' # GradientBoostingDecisionTree
# params ['objective'] = 'binary'
# params [ 'metric' ] = 'binary_logloss' # metric for binary-class
# params [ 'max_depth'] = 3
# params [ 'num_leaves' ] = 6
# params ['seed'] = 23456
  • classification_report 패키지를 활용한 검증

Feature IMP 분석을 통한 중요변수 파악

 

 

  • Model을 통해 도출된 중요 공정 변수와 품질 간의 상관관계 분석
  • 공정변수 Control / 프리미엄 Wine 생산량 비교를 통한 성과 측정
  • 해당 공정 변수 관리를 통해 프리미엄 Wine 생산

 


위 교육 자료는 zerobase로부터 제공받아 작성되었습니다.