오늘은 AI4I Predictive Maintenance 데이터셋을 활용하여 제조 데이터 분석 과정을 실습했다. 단순히 머신러닝 모델을 학습하는 것에서 끝나는 것이 아니라, 통계적 가설검정과 머신러닝 결과를 함께 해석하는 방법, 그리고 Feature Engineering의 효과까지 확인할 수 있었다.
1. 기초통계와 T-test를 통한 집단 비교
먼저 정상 설비와 고장 설비를 기준으로 각 특성의 평균과 중앙값을 비교하였다.
- 온도 관련 특성(air_temp, process_temp)
- 동력 관련 특성(rotational_speed, torque)
- 공구 마모(tool_wear)
이후 독립표본 T-test를 수행하여 두 집단 간 평균 차이가 통계적으로 유의한지 검정하였다.
새롭게 알게 된 점
- T-test는 평균 차이가 존재하는지를 검정하는 방법이다.
- p-value가 작다고 해서 반드시 영향력이 크다는 의미는 아니다.
- 표본 수가 매우 많으면 작은 평균 차이도 통계적으로 유의하게 나타날 수 있다.
- 따라서 p-value만으로 변수의 중요성을 판단해서는 안 되며, 효과크기(Cohen's d)나 머신러닝 분석을 함께 고려하는 것이 바람직하다.
2. 선형회귀(Linear Regression)
공기 온도(air_temp)를 이용하여 공정 온도(process_temp)를 예측하는 단순 선형회귀 모델을 생성하였다.
- 회귀계수
- 절편
- 결정계수(R²)
- 새로운 데이터 예측
등을 수행하였다.
핵심 개념
- 회귀계수는 독립변수가 증가할 때 종속변수가 얼마나 변화하는지를 의미한다.
- 결정계수(R²)는 모델이 데이터를 얼마나 잘 설명하는지를 나타낸다.
- sklearn의 LinearRegression은 입력 데이터(X)가 반드시 2차원 형태여야 한다.
3. Random Forest를 이용한 고장 예측
RandomForestClassifier를 이용하여 설비 고장을 예측하였다.
사용 변수
- rotational_speed
- torque
- tool_wear
- Type
Feature Importance
모델이 어떤 변수를 예측 과정에서 많이 활용했는지 확인할 수 있다.
하지만 Feature Importance는
- 실제 원인
- 영향력
을 의미하는 것이 아니라
모델이 예측 과정에서 얼마나 활용했는지를 나타내는 지표라는 점을 알게 되었다.
또한 클래스 불균형 데이터에서는 Accuracy 하나만으로 모델 성능을 판단하면 안 되며,
- Precision
- Recall
- F1-score
- ROC-AUC
등을 함께 확인해야 한다는 점도 다시 확인하였다.
4. Logistic Regression
온도와 Torque를 이용하여 설비 고장을 예측하는 Logistic Regression 모델도 학습하였다.
새롭게 이해한 내용
- Logistic Regression은 선형회귀와 달리 확률을 예측하는 모델이다.
- predict_proba()를 이용하면 정상일 확률과 고장일 확률을 확인할 수 있다.
- 회귀계수의 부호는 고장 확률이 증가하는 방향인지 감소하는 방향인지를 의미한다.
- 다만 변수의 단위(Scale)에 영향을 많이 받기 때문에 계수의 절댓값만으로 중요도를 비교하면 안 된다.
5. 상관분석(Pearson Correlation)
연속형 변수와 고장 여부 사이의 상관계수를 계산하였다.
알게 된 점
- 상관계수는 변수 간 선형 관계의 강도를 나타낸다.
- 이번 데이터에서는 모든 상관계수가 0.2 이하로 나타나 단일 변수만으로는 고장을 충분히 설명하기 어려웠다.
- T-test에서는 모든 변수가 유의했지만, 상관계수는 매우 낮게 나타났다.
이를 통해
- T-test는 평균 차이를 검정하는 방법
- 상관분석은 선형 관계의 강도를 확인하는 방법
이라는 차이를 명확하게 이해할 수 있었다.
6. 박스플롯(Boxplot)을 활용한 분포 분석
각 변수의 분포를 Boxplot으로 시각화하였다.
박스플롯에서 확인할 수 있는 내용
- 중앙값
- 사분위 범위(IQR)
- 이상치
- 데이터 분포
특히 rotational_speed는 평균보다 중앙값 차이가 더 크게 나타났는데, 이는 일부 이상치가 평균을 증가시켰기 때문이라는 점을 시각적으로 확인할 수 있었다.
또한 torque와 tool_wear는 고장 설비의 분포 자체가 전체적으로 높은 구간으로 이동한 것을 확인하였다.
7. 카이제곱 독립성 검정
제품 등급(Type)과 설비 고장 여부의 연관성을 분석하였다.
핵심 내용
- 카이제곱 검정은 범주형 변수 간 독립성을 검정하는 방법이다.
- 제품 등급과 고장 여부는 통계적으로 유의한 연관성을 보였다.
- 하지만 이는 제품 등급이 고장의 원인이라는 의미는 아니다.
실무적인 해석
제품 등급 자체를 관리하는 것이 아니라,
특정 등급 제품을 생산하는 공정에서 어떤 조건 때문에 고장이 많이 발생하는지 추가 분석을 수행하는 것이 중요하다.
즉, 제품 등급은 원인이 아니라 고장 원인을 추적하기 위한 지표로 활용하는 것이 바람직하다.
8. Feature Engineering(파생 변수 생성)
새로운 파생변수를 생성하여 Random Forest 모델을 다시 학습하였다.
생성한 변수
- power = 2π × rotational_speed × torque / 60
- temp_diff = process_temp - air_temp
분석 결과
도전 1에서는 torque가 가장 높은 Feature Importance를 보였지만,
파생변수를 추가하자
- power
- temp_diff
가 가장 중요한 변수로 나타났다.
새롭게 이해한 점
Feature Importance는 절대적인 값이 아니라
모델에 입력된 변수들의 상대적인 중요도를 나타낸다.
즉,
새로운 변수를 추가하거나 제거하면 Importance 결과 역시 크게 달라질 수 있다.
또한 적절한 Feature Engineering을 수행하면 기존 변수보다 더 많은 정보를 담고 있는 새로운 변수를 생성할 수 있으며, 모델은 이러한 변수를 우선적으로 활용할 수 있다는 점도 확인하였다.
오늘 학습하며 얻은 인사이트
- 통계적으로 유의하다는 것과 실제 영향력이 크다는 것은 서로 다른 개념이다.
- Accuracy만으로 머신러닝 모델의 성능을 판단하면 안 된다.
- 상관분석, T-test, Feature Importance는 각각 알려주는 정보가 다르므로 함께 해석해야 한다.
- Feature Importance는 모델과 입력 변수에 따라 달라지는 상대적인 지표이다.
- 도메인 지식을 활용한 Feature Engineering은 모델 성능과 해석력 향상에 중요한 역할을 한다.
- 머신러닝 결과를 해석할 때는 "무엇이 중요한가"보다 "왜 이런 결과가 나왔는가"를 함께 고민하는 과정이 중요하다.