최근 들어 조기퇴사자가 굉장히 증가하고 있다. 1년 이내 조기퇴사자가 발생하는 것에 대해서 기업의 85%가 동의를 할 정도이다.
퇴직율이 증가할수록 기업에게 있어서 크게 두 가지 리스크가 존재한다. 신입 사원들의 교육 비용과 핵심 인재 탈출이다.
신입사원 교육 비용과 채용 비용이 6천만원에서 크게는 1억 원 정도로 산정되고 있다. 이렇게 투자를 해도 조기 퇴사를 한다면 재채용을 진행해야 하고 또다시 교육 비용을 투자해야 한다. 이에 따라 신입사원 투자 비용은 기하급수적으로 증가할 수 있다. 이 뿐만 아니라 핵심 인재의 퇴직을 사전에 파악하지 못한다면 핵심 인재를 손실할 수 있는 리스크 또한 존재한다.
따라서 예측 모델을 통해 사전에 퇴직 위험을 가진 직원들을 추려내고 직원별 맞춤형 솔루션을 제공한다면 기업의 비용을 최소화하며 효율적인 조직관리를 할 수 있을 것이다.
여러 가지직원 데이터를 활용해서 퇴사자를 사전에 예측해내야 한다. 분류 및 예측이 가능한 기계학습 알고리즘을 사용해보며 정확도를 비교해 나갈 것이다. 더 나아가 퇴사로 분류되는데 많은 영향력을 끼치는 주요 변수들을 파악해서 퇴사를 막을 수 있는 솔루션을 도출해낼 것이다.
활용 데이터는 kaggle에서 제공한 ibm직원 데이터를 사용하여 진행하였다. 총 1,470개 인스턴스와 38개의 컬럼이 존재한다.
https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset
IBM HR Analytics Employee Attrition & Performance
Predict attrition of your valuable employees
www.kaggle.com
굉장히 많은 변수들이 존재하기 때문에 데이터를 더욱 자세히 탐색해보고자 여러 가설들을 설정한 후 데이터 시각화를 통해서 검증해보았다.
설정 가설
1. 전공과 직무가 맞지 않은 직원들의 퇴사율은 높을 것이다.
2. 거주지와 회사의 거리가 먼 곳일수록 직원들의 퇴사율은 높을 것이다.
3. 퇴사를 한 직원의 월 급여가 평균보다 낮을 것이다.
4. 신입사원일 경우 퇴사율이 높을 것이다.
5. 워라벨이 낮을수록 퇴사율이 높을 것이다.
1. 전공과 직무가 맞지 않은 직원들의 퇴사율은 높을 것이다.
전공과 직무가 일치하는 직원과 일치하지 않는 직원들의 퇴직 비율은 큰 차이가 없었다. 하지만 그럼에도 전공과 직무가 일치하지 않는 직원들의 퇴직 비율이 높음을 확인할 수 있다.
2. 거주지와 회사의 거리가 먼 곳일수록 직원들의 퇴사율은 높을 것이다.
3. 퇴사를 한 직원의 월 급여가 평균보다 낮을 것이다.
거리가 멀어질수록 퇴사 비율이 높아짐을 확인할 수 있으며 퇴사를 한 직원들의 월 급여가 낮음을 확인할 수 있다. 또한 박스의 크기가 더 작은 것으로 보아 월급여의 분포도가 작은 것으로 보여진다.
4. 신입사원일 경우 퇴사율이 높을 것이다.
5. 워라벨이 낮을수록 퇴사율이 높을 것이다.
0~2년 경력을 가진 사원들의 퇴사율이 가장 높음을 확인할 수 있다. 워라벨의 경우 나쁨인 직원들의 퇴사비율이 가장 높았지만 좋음을 뜻하는 good, better, best를 합쳐서 퇴사 비율을 살펴보면 워라벨이 좋아도 퇴사비율이 높음을 확인할 수 있다.
따라서 사전에 설정해둔 5가지 가설 중 4가지 가설(1,2,3,4)이 성립함을 확인할 수 있었으며 이에 따라 직무 적합 여부, 거주지 적합 여부, 평균 연봉 이하 여부, 신입사원 여부의 변수를 전처리를 통해 추가하였다. 사용할 알고리즘은 전형적인 분류 모델이며, 의사결정 규칙과 그 결과를 트리구조로 표현해주는 Decision Tree, Logistic Regression, 분류를 위한 기준 선을 정의하는 알고리즘이며 학습과정에서 보지 못한 새로운 데이터도 분류가 가능한 SVM이다. Cross validation을 총 5회 진행할 것이며 Grid Search를 통해 최적의 하이퍼 파라미터를 도출해내고자 한다.
먼저, Logistic Regression이다.
파라미터 수정 전에도 정확도 87%로 좋은 성능을 보이고 있으며 Learning Curve를 보아 과적합이 일어나지 않고 있음을 확인할 수 있다. 성능을 더 개선해보고자 C값과 solver를 설정해 보았지만 약간의 Learning Curve 개선만 있을 뿐 정확도에는 큰 차이를 보이지 않았다.
다음으로는 Decision Tree이다.
파라미터 수정 전 정확도는 약 77%로 좋지 않은 성능을 보이고 있다. Learning Curve로 보아 과대적합 또한 발생한 것을 알 수 있다. Max_depth와 min_sample을 설정한 결과 정확도가 86%로 개선이 되었으며 Learning Curve로 보아 과대적합 또한 다소 개선된 것을 확인할 수 있다.
다음으로는 SVM이다.
정확도는 86%로 좋은 성능을 보이고 있으며 Learning Curve로 보아 과적합이 일어나지 않고 있음을 확인할 수 있다. SVM의 경우 추가적인 파라미터 조정을 해주지는 않았다.
ROC커브를 통해서도 Decision Tree보다는 Logistic regression과 SVM이 더욱 좋은 성능을 보이고 있음을 알 수 있다.
3가지 모델에서 중복되는 중요 변수를 살펴보면 야근, 경력, 급여이다. 대인관계 만족도나 업무 만족도 보다는 야근과 같은 근무 시간, 급여 등이 퇴직에 더욱 많은 영향을 끼치는 것을 확인할 수 있다.
전 IBM ceo인 로메티의 말에 의하면 직원에게 다가서기 가장 좋은 시기는 그들이 떠나기 전이라고 한다. 따라서 직원이 떠나기 전 그들을 사전에 예측하고 퇴직에 중요한 영향을 끼치는 변수들을 토대로 솔루션을 제공한다면 앞서 말했던 기하급수적으로 늘어나는 직원 고용 비용과 핵심 인재 이탈 리스크를 최소화할 수 있을 것이다.
데이터를 가지고 모델을 통해서 학습시키는 것 또한 중요하지만 문제 정의부터 시작해서 일련의 과정을 빌드업 해봄으로써 모델을 학습시키는 여러가지 스킬보다는 해결해보고자 하는 문제 정의를 제대로 해야 하며 데이터 전처리 및 가공 능력, 모델이 전달해 주는 의미를 정확히 파악하는 것이 중요함을 깨닫게 되었다. 사소하지만 데이터 탐색 과정에서 가설에 따른 새로운 변수들을 도출해내고 이에 따라 모델 성능까지 올라가며 중요 변수로도 선정되는 것을 보며 많은 흥미를 느꼈다. 물론, 가설 검정 단계에서 그저 시각화로 검정할 뿐 통계적인 기법을 활용해서 변수 간의 유의미한 설명력이 있는지 파악하는 과정을 진행해 보지 못한 것이 아쉬움으로 남는다.
또한, 본 프로젝트에서 사용한 데이터는 1,470건으로 많지 않다. 더욱이 6년 전의 데이터이기 때문에 현재 상황과 결과치가 상이할 수 있다. 중요 변수가 야근, 경력, 급여 등이 산출이 되었는데 오히려 대인관계 만족도, 업무 만족도 등이 중요 변수로 산출될 수 있지 않았을까?
의미 있는 변수가 많을수록 더욱 퇴직자를 분류해내기 쉽고 또 이에 대한 솔루션도 적극적으로 제시해줄 수 있지 않을까 싶다. 앞으로 HR에서의 인공지능 활용이 더욱 다양해지고 실용적이어지길 기대한다.
'python' 카테고리의 다른 글
유튜브 트렌드 비교 분석 - 데이터 분석편 (2) | 2023.01.08 |
---|---|
유튜브 트렌드 비교 분석 - 데이터 수집편 (1) | 2023.01.07 |
지하철 장애인 시위에 대한 유튜브 댓글 분석 (1) | 2023.01.05 |