kyejin0412 님의 블로그

Week 9-5 심화 프로젝트 - 도메인 조사, 컬럼 솎아내기 본문

내일배움캠프-데이터분석

Week 9-5 심화 프로젝트 - 도메인 조사, 컬럼 솎아내기

kyejin0412 2025. 12. 19. 21:25

 

이제 심화프로젝트가 시작되었다.

우리 조는 어제 데이터셋과 팀명, 프로젝트 목표를 정하고 끝냈다.

  • 데이터셋 : 금융 데이터인 Lending Club
  • 팀명 : 아쉬워 벌써 12시조 - 내가 아이디어를 냈다 ㅋㅋㅋ 우리가 12조라 어부지리조, 일석이조도 냈는데 이게 채택되었다. 
  • 프로젝트 목표 : 대출을 해줬을 때 누가 돈을 잘 갚을까? 를 판별하기
  • 학습효과 : 머신러닝 - 분류, 데이터 불균형 처리, 모델 성능 평가

 


 

도메인 조사

  • 데이터 누수 (Data Leakage)
    • 머신러닝 모델 학습 시, 실제 예측 시점에는 알 수 없어야 할 정보(미래 정보나 정답 정보 등)가 훈련 데이터에 포함되어 모델 성능을 비정상적으로 높이는 현상을 의미
    • 마치 미리 답을 보고 시험을 치르는 것처럼, 모델이 학습 과정에서 훈련 데이터 밖에서 들어온 외부 정보나 정답 정보까지 활용해 실제 환경에서는 제대로 작동하지 못하게 만드는 문제로, 모델의 신뢰도를 떨어뜨림 

 

컬럼이 151개라 파일이 잘 열리지조차 않았다. 따라서 데이터 누수가 발생할 수 있는 컬럼들을 먼저 솎아내보기로 했다.

그 과정에서 대출 도메인 단어를 몇 개 알게 되어 정리하려고 한다.

 

 

  • 대출 용어정리
    • hardship : 차용인이 실직, 질병, 자연재해 등 예상치 못한 사건으로 인해 재정적 어려움에 처하여 대출 상환 의무를 이행하기 어려운 상황
    • collection : 대출금을 갚지 않은 채무자에게 돈을 받아내는 행위, 즉 채권추심(Debt Collection)을 의미하며, 채권자 대신 전문 추심업체가 채무자의 재산을 조사하고 변제를 독촉하며 실제 돈을 회수하는 모든 활동을 뜻함
    • 상환 : 빌린 돈(원금)과 이자를 정해진 기간 동안 갚아나가는 것
    • 대손상각 : 기업이 외상 매출금, 대여금 등 받을 돈(채권)을 채무자의 파산, 폐업, 사망 등으로 인해 더 이상 받을 수 없게 되어 회수가 불가능해졌을 때, 그 손실을 비용으로 처리하고 재무상태표에서 해당 채권을 제거하는 회계 처리 과정
    • inquiries : 신용조회
    • joint : 공동 명의 대출
    • Delinquency 연체, 체납
    • 추심 : 대출금을 갚지 않은 채무자에게 돈을 받아내는 행위
    • 부실률 : 금융기관의 전체 대출 자산(또는 보증 잔액) 중에서 회수 가능성이 낮은 부실 채권이 차지하는 비율
    • fico : 미국 신용평가 시장의 독점적 지위를 가진 데이터 분석 회사 'Fair, Isaac and Company'의 약자이며, 이 회사가 만든 FICO 신용 점수
    • dti : 연간 소득 대비 갚아야 하는 대출의 원리금(원금+이자)과 기타 부채의 연간 이자 상환액의 비율

 

데이터 불러오기

  • 우리 조가 고른 Lending Club 데이터는 너무 커서 memory error 가 떴다. 데이터를 불러올 RAM을 다 써버리면 불러오다가 멈추게 된다. 따라서 데이터를 쪼개서 불러오는 코드를 검색했더니 됐다. 빨리 안 쓰는 컬럼을 쳐내야 할 것 같다.
import pandas as pd

pd.set_option('display.max_columns', None) # vscode에서 중간데이터가 잘리는 것을 막아줌
pd.set_option('display.max_rows', None)

chunk_size = 50000 # 한 번에 읽을 행 수 조절
chunks = []

for chunk in pd.read_csv('accepted_2007_to_2018Q4.csv', chunksize=chunk_size):
    # 각 청크에서 필요한 처리 수행 (예: 필터링)
    chunks.append(chunk)

df = pd.concat(chunks, axis=0)