Data: LG Aimers 제공, 외부 데이터 이용 금지
고객 지수 산출을 위해 MQL 고객 정보를 활용해 영업 전환 성공 여부를 예측하는 AI 모델 개발
| Field | 설명 |
|---|---|
| bant_submit | MQL 구성 요소들 중 [1]Budget(예산), [2]Title(고객의 직책/직급), [3]Needs(요구사항), [4]Timeline(희망 납기일) 4가지 항목에 대해서 작성된 값의 비율 |
| business_unit | MQL 요청 상품에 대응되는 사업부 |
| com_reg_ver_win_rate | Vertical Level 1, business unit, region을 기준으로 oppty 비율을 계산 |
| customer_type | 고객 유형 |
| enterprise | Global 기업인지, Small/Medium 규모의 기업인지 |
| historical_existing_cnt | 이전에 Converted(영업 전환) 되었던 횟수 |
| id_strategic_ver | (도메인 지식) 특정 사업부(Business Unit이 ID일 때), 특정 사업 영역(Vertical Level1)에 대해 가중치를 부여 |
| it_strategic_ver | (도메인 지식) 특정 사업부(Business Unit이 IT일 때), 특정 사업 영역(Vertical Level1)에 대해 가중치를 부여 |
| customer_job | 고객의 직업군 |
| lead_desc_length | 고객이 작성한 Lead Descriptoin 텍스트 총 길이 |
| inquiry_type | 고객의 문의 유형 |
| product_category | 요청 제품 카테고리 |
| product_subcategory | 요청 제품 하위 카테고리 |
| product_modelname | 요청 제품 모델명 |
| customer_country.1 | 담당 자사 법인명 기반의 지역 정보(대륙) |
| customer_position | 고객의 회사 직책 |
| response_corporate | 담당 자사 법인명 |
| expected_timeline | 고객의 요청한 처리 일정 |
| ver_cus | 특정 Vertical Level 1(사업영역) 이면서 Customer_type(고객 유형)이 소비자(End-user)인 경우에 대한 가중치 |
| ver_pro | 특정 Vertical Level 1(사업영역) 이면서 특정 Product Category(제품 유형)인 경우에 대한 가중치 |
| ver_win_rate_x | 전체 Lead 중에서 Vertical을 기준으로 Vertical 수 비율과 Vertical 별 Lead 수 대비 영업 전환 성공 비율 값을 곱한 값 |
| ver_win_ratio_per_bu | 특정 Vertical Level1의 Business Unit 별 샘플 수 대비 영업 전환된 샘플 수의 비율을 계산 |
| business_area | 고객의 사업 영역 |
| business_subarea | 고객의 세부 사업 영역 |
| lead_owner | 영업 담당자 이름 |
| is_converted | 영업 성공 여부. True일 시 성공. |
줄쳐진거는 삭제할거
빨간색은 사용할 칼럼
파란색은 합칠 칼럼들
노랑색은 전처리 해야할 칼럼들_남은거
ver_~~ 그대로 사용
# Column Non-Null Count Dtype
--- ------ -------------- -----
**0 bant_submit 59299 non-null float64**
~~1 customer_country 58317 non-null object~~
2 business_unit 59299 non-null object
**3 com_reg_ver_win_rate 14568 non-null float64**
~~4 customer_idx 59299 non-null int64~~
**5 customer_type 15338 non-null object**
6 enterprise 59299 non-null object
**7 historical_existing_cnt 13756 non-null float64**
8 id_strategic_ver 3444 non-null float64
9 it_strategic_ver 1121 non-null float64
~~10 idit_strategic_ver 4565 non-null float64
11 customer_job 40566 non-null object~~
12 lead_desc_length 59299 non-null int64
13 inquiry_type 58358 non-null object
**14 product_category 39925 non-null object**
~~15 product_subcategory 9235 non-null object
16 product_modelname 9229 non-null object
17 customer_country.1 58317 non-null object
18 customer_position 59299 non-null object~~
**19 response_corporate 59299 non-null object**
**20 expected_timeline 28436 non-null object**
**21 ver_cus 59299 non-null int64
22 ver_pro 59299 non-null int64
23 ver_win_rate_x 18417 non-null float64
24 ver_win_ratio_per_bu 15304 non-null float64**
**25 business_area 18417 non-null object**
~~26 business_subarea 5526 non-null object~~
**27 lead_owner 59299 non-null int64
28 is_converted 59299 non-null bool**
[x] 2 business unit 레이블 인코딩 하면 될듯→ ID IT 삭제
[x] 25 business_area.fillna(other)로 채우기
[x] 12 lead_desc_length
5이하 → none
6~50이하 → short
나머지 → long
[x] 13 inquiry_type
Quotation -> quot 포함되면 넣는거 Technical -> tech 포함되면 넣는거 Partnership -> partner, ship, Inquiry 포함되면 넣는거 Suggestion -> suggest 포함되면 넣는거 Other → 나머지 다
[x] 14 product_category
TV / monitor
→ signage, tv, moniotor, display
오디오 → audio
airconditioner → vrf, air
aplliances → wash, refrigerator
Other → 나머지
Response_corporate, timeline인코딩 부분 코드
# 호출
import pandas as pd
import numpy as np
from sklearn.metrics import (
accuracy_score,
confusion_matrix,
f1_score,
precision_score,
recall_score,
)
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
df_train = pd.read_csv("train.csv") # 학습용 데이터
df_test = pd.read_csv("submission.csv") # 테스트 데이터(제출파일의 데이터)