상품가입고객 예측 및 타겟팅
| age | job | marital | education | default | housing | loan | contact |
|---|---|---|---|---|---|---|---|
| 나이 | 직업 | 결혼 | 교육 | 신용카드 | 주택 | 대출 | 연락처 |
| month | day_of_week | duration | campaign |
|---|---|---|---|
| 마지막 연락월 | 마지막 연락요일 | 통화시간 | 캠페인 기간동안 고객 연락횟수 |
| pdays | previous | poutcome |
|---|---|---|
| 이전 캠페인 연락 후 지난일 | 현재 캠페인 전에 연락횟수 | 이전 마케팅 결과 |
| emp.var.rate | cons.price.idx | cons.conf.idx | euribor3m |
|---|---|---|---|
| 고용 변동률 | 소비자 물가 지수 | 소비자 신뢰지수 | 유리보 3개월 비율 |
| nr,employed | y |
|---|---|
| 직원수 | 정기예금 가입여부 |
수집된 데이터의 기본 정보들을 확인
1) Data shape 확인
2) Data type 확인
3) Null 값 확인
4) Outlier 확인
현재 정기예금 가입이 어느정도 되는지 확인
df['y'].value_count()
_현재 평균 정기예금 가입률은 약 11% 정도_
print ("numerical_list :", numerical_list)
print ("categorical_list :", categorical_list)

# catplot을 이용하여 Categorical 변수의 구성 형태 시각화
import seaborn as sns
import matplotlib.pyplot as plt
plt.style.use (['dark_background'])
sns.catplot ( x='job', hue='y', kind='count', palette='pastel', edgecolor='.6', data=df)
df['y'] = np.where (df['y'] == 'yes', 1, 0)
df_job = df.groupby ('job')['y'].agg(['count', 'sum'])
df_job['ratio'] = round ((df_job['sum'] / df_job['count']) *100, 2)
df_job.sort_values (by=['ratio'], ascending=False)
plt.style.use (['dark_background'])
sns.catplot (x='job', y='sign_ratio', kind='bar', palette='ch:.25', data=df_job)

for문을 활용하여 각 범주형 변수에 대하여 가입률 모두 비교
Rule에 기반한 타켓 고객군을 추출했을 때 평균 약 14%의 가입률을 보인다
학습 후 성능 평가

성능을 올리기 위해 하이퍼 파라미터를 조절하고 재학습

Feature IMP분석을 통해 중요변수를 파악한다
이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.