하마가 분석하마

[개인 분석-6주차] Modeling 본문

Brightics 서포터즈

[개인 분석-6주차] Modeling

Rrohchan 2021. 10. 5. 22:38

안녕하세요.

Brightics 서포터즈 노승찬입니다.

저번 주차에는 은행 변수와 대출 변수에 초점을 맞춰서, 두 유형의 변수들이 종속변수를 포함한 다른 변수들과 어떤 관계를 갖고 있는지 확인했습니다.

 

이번 주차에는 전처리를 거의 하지 않았을 때의 정확도 및 변수 영향력을 확인해보고, 전처리 후의 영향력을 비교해보겠습니다.

 

 

Modeling

 

프로젝트 목표

 

고객의 기본 세부 정보를 바탕으로 잠재 고객을 타겟팅 할 수 있는 알고리즘을 개발하여 보다 나은 리드 전환을 이끌어 내는 것을 목적으로 합니다.

 

평가 지표

 

고객 정보를 활용하여 잠재 고객을 선별하는 것이 본 프로젝트에서의 목표라고 말씀드렸습니다. '잠재 고객'인지 아닌지 (Approved가 0인지 1인지)를 구분하는 지금, 결과변수의 두 범주의 비율은 차이가 꽤 나고 있습니다. 1로 분류되는 고객이 누구인가 ('잠재 고객'이 누구인가)가 중요하기에 단순하게 정확도로 보는 것은 0인 고객이 많기에 큰 의미가 없다고 생각합니다. 따라서 평가 지표를 다르게 하여 성능을 확인해보도록 하겠습니다.

 

먼저 평가지표에 대한 설명을 간략하게 드리고자 합니다.

 

1. 정확도 (Accuracy)

 

정확도

 

가장 많이 들어보신 단어일거라 생각합니다. '정확도'는 평가 지표 중에서 가장 직관적이라고 할 수 있습니다. 정확도는 결과 변수가 편향되어 있을 때, 적합하지 않습니다. 예를 들어 이진 분류의 경우 0 클래스가 95개, 1 클래스가 5개면 모두 0 클래스라고 선택하여도 정확도는 95%로 매우 높게 나옵니다. 1 클래스를 맞추는 게 중요한 경우 위 예시처럼 정확도는 무의미한 평가 지표가 될 수 있습니다.

 

2. 정밀도 (Precision)

 

정밀도

 

정밀도는 1로 예측한 관측치 중에서 실제로 얼마나 일치하는 가를 보여주는 평가 지표입니다. 1클래스를 맞추는 게 중요한 경우 주로 사용되고 있습니다.

 

3. 재현율 (Recall)

 

 

재현율은 실제 1클래스 값 중에서 1로 예측한 값이 얼마나 일치하는 가를 보여줍니다.

 

좋은 예측값은 정밀도와 재현율이 모두 높아야 합니다. 본 프로젝트에서는 정확도보다는 정밀도와 재현율, 그리고 이 두 개를 모두 고려한 f1 score까지 총 3개를 평가 지표로 두고 진행했습니다.

 

 

기본 모델링

 

1. 변수 선택

 

 

브라이틱스는 인코딩을 했을 때, 변수가 새롭게 생기기에 데이터 분할 전에 [SELECT COLUMN] 함수를 사용해서 변수를 선택해주어야 합니다. (알고리즘 내에서 선택할 수도 있습니다.)

 

지금까지 전처리를 적용한 변수들을 모두 사용했습니다.

 

2. 데이터 분할

 

 

불균형이 심한 데이터셋이기에 8:2가 아닌 7:3으로 나누었습니다.

 

파라미터를 튜닝하지 않고, 기본적인 모델로만 알고리즘을 돌려보겠습니다.

 

3. XGBoost

 

XGBoost Classification

 

예상대로 월급 변수가 가장 좋은 변수로 나왔습니다.

4개 정도의 변수를 제외하고선 영향력이 매우 적게 나왔습니다.

 

임계치를 0.5

 

'1'클래스 분류의 임계치를 0.5로 설정했습니다. 

 

결과

 

모든 예측이 '0'클래스로 분류합니다. 

 

4. Random Forest

 

Random Forest

 

 

랜덤 포레스트는 아주 조금 구분을 하고 있습니다.

 

불균형 클래스를 분류하기 위해서 smote, 스태킹 등 다양한 방법을 시도해보기 위해서 함수를 시험 삼아 돌려보고 있습니다. 다음 주차에는 인코딩 방식의 변환 등 다양한 방법을 시도해보겠습니다.

 


변수 선택 및 전처리를 조금 바꾸어 보았는데도 결과가 좋지는 않았습니다. 
'잠재 고객' 관련 다른 데이터셋을 찾아보았을 때, 기본 정보가 아닌 외적인 정보(변수)가 더 많은 영향을 미치는 것을 보았습니다. 본 데이터셋의 변수에는 가장 기초적인 정보만이 존재하기에 외부요인이 결정적인 '잠재 고객' 분류에 별다른 영향을 미치지 못하는 것인지 싶습니다.
결측값을 포함한 인코딩, 모델링에서 결과가 달라질 수 있기에 다른 방식들을 더 시도해 보도록 하겠습니다.

 

 

"Brightics 서포터즈 활동의 일환으로 작성된 포스팅입니다"

<a href='https://kr.freepik.com/vectors/people'>People 벡터는 pch.vector - kr.freepik.com가 제작함</a>