클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

머신러닝 9 - 선형 분류 모델 실습해보기 1 : 직원 이직 예측을 위한 데이터 수집 및 전처리 과정 본문

인공지능/머신러닝

머신러닝 9 - 선형 분류 모델 실습해보기 1 : 직원 이직 예측을 위한 데이터 수집 및 전처리 과정

huenuri 2024. 9. 17. 16:58

지난 시간에 선형 분류 모델에 대한 개념 학습을 진행했다. 이번에는 배운 내용을 토대로 직원 이직을 예측하는 실습을 해볼 것이다.


 

 

선형분류 실습해보기

 

캐글 IBM

 

여기 등장하는 데이터로 실습을 할 예정이다. HR은 Human Resource의 약자로 직원들이 이탈할지 등을 보여주는 가상의 데이터이다.


 

 

 

 

 

 

데이터 주요 정보

 

직원의 이직 여부가 가장 중요하므로 이것을 정답 데이터로 쓸 것이다. 

 

 

 

 

 


 

 

데이터의 타입을 확인하는 이유는 범주형 데이터는 학습하지 못하므로 수치형으로 바꾸어주어야 하기 때문이다.


 

 

 

 


 

 

 

한번만 실행해야 하며 다시 실행하면 위쪽 코드를 실행 후 해야 한다. 이미 값을 바꾸었기 때문이다.


 

 

 

df라는 데이터프레임의 'Age'라는 열을 기준으로 나이를 3개의 범주(카테고리)로 나누는 작업을 수행한다. np.where()는 조건에 따라 다른 값을 반환해주는 함수이다. np.where(조건, 참일 때 값, 거짓일 때 값)의 형식을 따른다. 

 

  1. 첫 번째 np.where(df['Age'] <= 30, '30대 이하', ...)
    • 'Age' 열에서 값이 30 이하인 경우 '30대 이하'로 범주를 지정한다.
  2. 두 번째 np.where(df['Age'] <= 40, '30-40대', '40대 이상')
    • 첫 번째 조건이 거짓일 경우, 즉 'Age'가 30보다 큰 값에 대해 다시 조건을 확인한다.
    • 나이가 40 이하인 경우 '30-40대'로 범주화하고, 나이가 40보다 큰 경우 '40대 이상'으로 범주화한다.
  3. 결과적으로 'Age_gp' 열 생성:
    • 'Age_gp'라는 새로운 열을 생성하여, 'Age' 열의 값을 30대 이하, 30-40대, 40대 이상으로 구분한다.

이렇게 세 가지의 구간으로 잘 분류가 되어 출력되는 것을 볼 수 있다.


 

 

학습을 마치고

이 실습도 지난번 선형 회귀 모델 실습처럼 여러 단계에 걸쳐 모델링을 하게 된다. 두번째 실습이다보니 처음보다는 감이 좀 잡히고 이런 식으로 머신러닝이 진행되고 학습이 된다는 것 정도는 알게 되었다.

PPT가 좀 깨져서 보이는 것만 빼면 괜찮았다. 나중에 관련 그래프는 따로 찾아보면서 학습하면 될 것 같다. 중간에 선생님이 재미있는 머신러닝을 알려주셨는데 한번 해볼까 고민이 된다.