내일배움캠프

데이터 분석 트랙 49일차 25.04.22. [TIL]

jjaio8986 2025. 4. 22. 22:03

[프로젝트 진행 상황]

 - 'client_id'를 기준으로 테이블(cards, transactions, users)별 데이터를 1차 그룹핑 후 결합하였다.   

# 약 1200명 가량의 고객 데이터

 - 그 후 고객 세그먼트에 무의미할 컬럼들(ex. [dark_web 뭐시깽이] : 전부다 NO값)을 제거하고, 파생변수를 선정하여 다음과 같은 컬럼을 제작하였다.

파생변수분류 파생변수명 조합에 사용된 원본 테이블의 컬럼
[고객 재무]
(Financial Behavior)
총 부채 상환비율 (DTI)
- 신용도 확인 목적
<users>
- ['total_debt', 'yearly_income']
신용카드 사용빈도 [비율]
- 신용 한도 과도사용 여부 확인 목적
- 신용 리스크 구분 목적
<transaction>
- ['amount', 'credit_limit']
평균 거래액
-소비 성향 파악 목적
<transaction>
- ['amount']
거래 변동성
- 소비 일관성 확인 목적
<transaction>
- ['amount']
[카드 특성]
(Card Profile)
카드 발급 후 유지 기간(card_age)
- 개인 소비 성향 및 신용도 파악 목적
- [차후] 개인 맞춤 액션(캠페인)진행 가능
ex. 부채 돌려막기, 무의미한 신용도 사용
<cards>
- ['acct_open_date']
카드 만료 기간(days_to_expire)
- 단기 관리 필요 고객 식별
<cards>
- ['expires'] 
pin번호 변경 주기(pin_change_gap)
- 개인 보안 민감도, 습관 파악
<cards>
- ['year_pin_last_changed']
[거래 패턴]
(Usage Pattern)
ic 칩 카드 사용 정도(chip_use_ratio)
- 개인 보안 민감도, 취약도 파악 가능
<transactions>
- ['use_chip']
개인의 거래 불편 경험 빈도 [비율] (error_rate)
- 개인의 금융활동 만족도 파악 가능
<transactions>
- ['errors']
이상거래 비율 [ (잔액부족 / 정상거래) / (total 년 or 월)]
- 개인 연 단위, 월 단위 잔액부족거래 비율 확인 가능
- 개인 소비 패턴 및 신용도 파악 가능
- 개인 맞춤형 액션(캠페인)가능
<transactions>
- ['date', 'errors']
개인 소비 타입 (mcc_diversity)
- 집중형과 분산형 구분

- mcc 컬럼 이용
- 고객의 소비 타입 확인
- [추가 활용 시]고객 이상 탐지 가능
(ex. 기존까지의 주요 거래 카테고리가 아닌 것 + transaction의 결제내역 중에서 주된 거래 지역과 다른 가맹점 위치) 
<transactions>
- ['amount', 'mcc']
사용자 별 주된 거래지역 (top_merchant_state)
- 사용자의 주된 거래 지역을 확인 가능
- [추가 활용 시] 위의 개인 소비 타입과 연계할 시 이상탐지 가능 (단, 현재는 전체 거래 중에서 주된 거래지역만 그룹핑하였기에 추가적으로 가장 적은 거래 지역을 조사하여 위와 연계하면 된다.)
<transactions>
- ['merchant_state']
결제 중 고액 결제비율(high_trans_ratio)
- 고객의 소비 패턴 확인 가능
- 고객 맞춤형 액션(캠페인)가능
ex. 뱅크샐러드인지 어디 어플에서 "고객 소비 습관 관리"에 대한 액션으로, 카드 사용 내역 중에서 택시 많이 타면 AI가 "그거 쓸 돈 모아서 차를 사면 된다.", "내일은 밥 안먹으려고?" 같은 문구를 적는 것을 본 것 같다.
              "big borther watching you! "
<transactions>
- ['amount']
[행동, 소셜] 소득 대비 카드 개수(card_per_income)
- 개인의 과소비 위험도 확인 가능
<users>
- ['yearly_income']
카드 신규 발급 빈도(avg_cards_issued_per_year)
[비율]
- 개인의 과소비 위험도 확인 가능
(신용카드 발급 수가 많아지며 소비가 늘어난다.)
<users>
- ['acct_open_year']
야간 활동(night_txn_ratio)
- 이상 거래 탐지 가능
- 고객 행동 패턴 확인 가능(고객 맞춤형 액션 가능)
<transactions>
- ['hour', 'amount']
개인 소득 예상 기간IEP <users>
['retirement_age', 'current_age']
[신용등급] credit_score_range
- 기존의 신용 등급 컬럼을 100단위로 구분
<users>
- ['credit_score_range']

 

총 18개의 파생 변수(컬럼) 외에도 그룹핑한 컬럼(변수) 15개가 있다.

['id', 'current_age', 'retirement_age', 'gender', 'per_capita_income',

'yearly_income', 'total_debt', 'credit_score', 'num_credit_cards', 'amount',

'use_chip', '상위카테고리', 'card_type', 'num_cards_issued', 'account_age']

 

따라서 1200개의 고객 그룹핑 데이터를 33개의 변수로 클러스터링을 하기 위해

이상치 탐지 및 표준-정규화를 진행한 후 추가적인 전처리(피쳐 엔지니어링, 주요 변수 선정)를 진행할 예정이다.

 

이후 프로젝트의 메인인 클러스터링 기법을 시도할 계획이다.