데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_9주차_25.01.22

onion95 2025. 1. 22. 20:23

Today's Goals

1. 머신러닝 개인과제 풀어보기

 

 

 

모델의 정확도는 높은데, 이탈하지 않는 클래스는 전혀 예측하지 못한 모델이 나왔다.머신러닝 결과 해석은 정말 다각도로 수행해야겠구나 싶었다.

 

 

 

 

 

1. 머신러닝 개인과제


[라벨 인코더, 범주형 변수의 변환]

  • 머신러닝 모델 학습을 위해서는 범주형 변수인 y에 대해 라벨 인코더를 진행해야 함
  • y값의 종류는 yse와 no이기 때문에 사전순으로 no = 0, yes = 1로 인코딩 됨

  • 사전순과 다르게 인코딩하려면 위와 같은 방법으로도 가능함(직접 지정)

 

 

[정확도로 모델을 평가할 수 있을까]

  • 고객의 이탈을 예측하는 로지스틱 회귀 모델을 학습한 결과, 정확도는 71%로 나옴

  • 정확도 자체만 보면 성능이 좋은 모델로 보임

  • 정밀도, 재현율, F1 점수 등 다른 값들도 확인해보면 모델의 성능은 다르게 해석됨
  • 해당 모델은 클래스 0(이탈하지 않는 경우)를 전혀 예측하지 못했음(모두 이탈로 예측한 것)
  • 각 클래스의 데이터 개수를 살펴본 결과, 데이터 불균형으로 인한 결과라고 예상됨
  • 해당 모델 결과를 베이스라인으로 하여 불균형 조정 방법 적용 등을 통해 모델 개선을 수행할 필요가 있음
  • 처음에는 어쨌든 학습의 목적이 이탈 예측이었으므로, 해당 관점에서 보았을 때 이 모델은 그래도 성능이 나쁘지 않다고 할 수 있지 않을까 생각함
  • 하지만 이처럼 모든 경우를 이탈이라고 해버려도 일정 수준 이상으로 성능이 나올 것이기 때문에 그런 해석은 올바르지 않음