데이터 사이언티스트 직업에 관심이 있어 데이터 사이언티스트 직업과 관련된 데이터를 찾다가 본 데이터를 마주하게 되었습니다.
여러분들이 빅데이터와 데이터 사이언스에서 활발한 활동을 하는 회사라고 가정합니다. 많은 사람들이 이 회사에 지원합니다.
이들은 다양한 자격, 인구분포, 경험, 교육 등의 특성을 가진 사람들입니다.
데이터 사이언티스트인 이들 중 어떤 특징을 가진 사람들이 다른 직장으로 옮길지 아니면 남아서 일을 할지 예측을 하고 분석해보는 것이 이 데이터셋의 주요 목적입니다.
어떠한 특성들이 직장 변경에 영향을 줄지 분석해보는 것이 재미있을 것 같아서 이 데이터 셋을 선택하게 되었습니다.
직장 변경을 고려하는 경우 타겟 값을 1로 하고 직장 변경을 고려하지 않는 경우 타겟 값을 0으로 하는 분류 문제형의 데이터셋입니다.
이 데이터셋은 타겟 0과 1사이의 양의 차이가 큰 불균형한 데이터 셋이기도 합니다. 그리고 결측 데이터라고 하는 특정한 특성의 데이터가 빠진 경우가 많은 데이터셋입니다.
원래는 결측치가 전혀 없고 불균형 하지 않은 다른 데이터셋으로 프로젝트를 하려고 하였으나 좀 더 도전적이고 성장에 도움이 되기 위하여 이러한 특성을 가진 데이터셋을 고르게 되었습니다.
- 가설은 도시 개발 지수, 성별, 관련 경험 유무, 대학과정에 등록되어 있는지 여부, 학력, 전공계열등의 특성이 이 회사를 떠나고 남아 있는 것과 관련이 있다는 것이고
이를 통해 우리가 예측하려는 것은 결국 이직을 할 것인지 아니면 이직을 안하고 남아서 일을 할 것인지 입니다.
이 것을 예측하는 이유는 회사에서 비용과 시간을 줄이고 회사에서 여러가지 코스를 설계하고 지원자들을 분류할때의 퀄리티를 높이기 위해서입니다. - 이 과제에서 베이스라인 모델은 모두가 회사를 떠나지 않을 것 즉 이직을 고려하지 않는다고 예측하는 것입니다.
이 베이스라인을 선택한 이유는 분류 문제에서는 가장 빈도가 높은 값으로 전부 예측하는 것이 가장 기초적인 베이스라인으로 사용되기 때문입니다.
평가지표로는 정확도(accuracy_score), 정밀도(precision)와 재현율(recall) 그리고 ROC Curve와 AUC 점수를 볼 것입니다.
이를 평가지표로 사용한 이유는 분류 문제에서는 이것들이 모델의 성능을 평가하는 지표로 주로 사용되기 때문입니다.
- 데이터 Leakage를 방지하기 위하여 upsampling 을 하기 전에 데이터를 훈련과 검증세트로 나누어 주었다. 따라서 Data Leakage가 없을 것으로 기대합니다.
- 저의 모델은 분류 문제를 풀기에 유용하고 업샘플링으로 데이터 불균형 문제는 해결 되었으나 새로운 데이터로 인해 어느 정도의 편향을 감수해야 하는 한계를 가지고 있습니다.
- 모델링을 한 결과 모든 모델이 베이스라인보다 월등히 나은 결과치를 나타냈습니다. 데이터가 불균형이었다면 베이스라인의 정확도가 높게 나왔을 수도 있는데 데이터의 균형을 맞춤으로 인해 베이스라인의 정확도를 0.5로 낮게 만들 수 있었습니다.
- *모델 성능을 높이기 위해서 로지스틱 회귀에 MinMaxScaler을 적용하였다. 이유는 로지스틱 회귀 처럼 가중된 입력 변수의 합계를 사용하는 모델에 스케일링을 하면 성능이 좋아지기 때문입니다
*XGBoost의 성능을 높이기 위해서는 하이퍼 파라미터 튜닝을 했다. 하이퍼 파라미터란 연구자가 직접 지정하는 값으로 모델 마다 최적의 값을 찾으면 성능을 높이는데 도움이 됩니다. - 최종모델은 하이퍼파라미터 튜닝과 검증곡선을 통해 찾은 최적의 하이퍼 파라미터 값을 갖는 XGBoost 모델입니다. 최종 테스트 결과 이직을 하지 않는 사람들에 대해 높은 정밀도(0.88)와 재현율(0.80)을 보인 반면 이직을 하는 사람들에 대한 정밀도(0.56)는 좀 낮게 나왔습니다. 이직을 하는 사람들의 재현율은 양호(0.71)하게 나온 편입니다.
- 모델 분석 결과 모델이 관측치를 예측하기 위해 도시개발지수, 회사규모, 전공계열 같은 특성을 주로 활용한 것을 알 수 있다.
- 모델의 예측에 도움이 될만한 특성은 각 특성마다 가장 많은 이직 확률을 가지고 있는 범주를 하나씩 찾아서 데이터마다 그러한 값을 가지고 있는 특성의 개수를 세서 점수화 한 후 하나의 특성으로 만들면 모델 예측에 도움이 될 만한 새로운 특성이 될 것 같습니다.