[BDA 11기] 데이터 분석 모델링(ML1) - 5주차

2026. 1. 4. 00:32·BDA-11th

🌳기본 알고리즘3: Decision Tree

Decision Tree(의사결정 나무)

특정 변수에 대한 규칙을 적용하여, 나무의 가지가 뻗는 형태로 분류해 나가는 알고리즘

[장점]

  • 분석 과정이 직관적이고 이해하기 쉬움
  • Regression, Classification 둘 다 가능
  • 계산 비용이 낮아 대규모의 데이터 셋에서도 비교적 빠르게 연산 가능


모델링 기본 틀

  1. 필요한 함수 불러오기
# 모델링을 위해
from sklearn.tree import DecisionTreeClassifier

# 평가를 위해.
from sklearn.metrics import *
  1. 선언 및 학습
# 모델 선언
model = DecisionTreeClassifier()

# 학습
model.fit(x_train, y_train)
  1. 검증: 예측
pred = model.predict(x_val)
  1. 검증: 평가
confusion_matrix(y_val, pred)

print(classification_report(y_val, pred, digits = 4))

[추가개념]

decision tree에서 분류 말고 회귀를 쓰고 싶으면 다음과 같은 모델을 선언하면 됨.

목적 모델 이름 import 경로
분류(Classification) DecisionTreeClassifier from sklearn.tree import DecisionTreeClassifier
회귀(Regression) DecisionTreeRegressor from sklearn.tree import DecisionTreeRegressor




🌳모델링 실습

[해결 문제]

어느 통신회사의 데이터분석가라고 할 때, 회사는 약정기간이 끝난 고객이 번호이동(이탈)해 가는 문제를 해결한다.

1. 환경준비

1) import

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.model_selection import train_test_split

2) 데이터 준비

path = 'https://@@@@@@.csv'
data = pd.read_csv(path)
data.head()

2. 데이터 전처리

1) 변수 정리

-> id나 주민번호, 전화번호, 사번과 같은 불필요한 변수는 drop

drop_cols = ['id']
data.drop(drop_cols, axis = 1, inplace = True)

2) x, y 분할

target = 'CHURN;
x = data.drop(target, axis = 1)
y = data.loc[:, target]

3) 가변수화

dumm_cols = ['REPORTED_SATISFACTION','REPORTED_USAGE_LEVEL','CONSIDERING_CHANGE_OF_PLAN']
x = pd.get_dummies(x, colums = dumm_cols, drop_first = True)

4) train, val 분할

x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=.2, random_state = 20)

3. 모델링

1) 필요한 함수 불러오기

from sklearn.tree import DecisionTreeClassifier

from sklearn.metrics import *

2) 모델 선언

model = DecisionTreeClassifier()

3) 모델링(학습)

model.fit(x_train, y_train)

4) 검증: 예측

pred = model.predict(x_val)

5) 검증: 평가

  • confusion matrix
confusion_matrix(y_val, pred)
array([[1143,  819],
       [ 739, 1299]])
  • classification report
    print(classification_report(y_val, pred, digits = 4)) # 소숫점 4자리까지만 보이기
              precision    recall  f1-score   support

       LEAVE     0.6073    0.5826    0.5947      1962
        STAY     0.6133    0.6374    0.6251      2038

    accuracy                         0.6105      4000
   macro avg     0.6103    0.6100    0.6099      4000
weighted avg     0.6104    0.6105    0.6102      4000
  • Precision(정밀도): 모델이 정답이라고 예측한 것 중 실제로 맞은 비율

  • Recall(재현율): 실제 정답 중에서 모델이 잘 찾아낸 비율

  • F1-score: precision과 recall의 조화 평균

  • Accuracy(정확도): 전체 중에서 맞춘 비율




🌳 블로그 챌린지

빅데이터 분석 학회 BDA는 학생들의 중간, 기말고사 일정에 맞춰 휴회 기간을 가진다. 이 기간 동안 학회원들이 시험에 집중할 수 있도록 배려하며, 휴회 기간이 끝난 후 다시 BDA에 집중하게 된다. 대학생들이 많이 참여하는 학회인 만큼 너무 좋은 제도라고 생각했다.

휴회기간이 끝났기 때문에 이번 강의에서 강사님이 그동안의 내용을 함께 복기해 주셔서 학습의 흐름을 되찾을 수 있었다. 5주차 수업을 시작으로 남은 수업까지 성실하게 참여하고 무사히 수료할 수 있도록 노력해야 겠다!



'BDA-11th' 카테고리의 다른 글

[BDA 11기] 데이터 분석 모델링(ML1) - 8주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 6주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 4주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 3주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 2주차  (0) 2026.01.04
'BDA-11th' 카테고리의 다른 글
  • [BDA 11기] 데이터 분석 모델링(ML1) - 8주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 6주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 4주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 3주차
choisio2
choisio2
sio2-dev 님의 블로그 입니다.
  • choisio2
    SiO2 for Developer
    choisio2
  • 전체
    오늘
    어제
    • 분류 전체보기 (46) N
      • TAVE-16th (14)
      • BDA-11th (16)
      • C++ (5)
      • 개인 프로젝트 (4)
      • 백준 (4) N
      • 컴퓨터 그래픽스 (1)
      • 잡담 (1)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 링크

    • github.com/choisio2
  • 공지사항

  • 인기 글

  • 태그

    playconsole
    알고리즘스터디
    viewpager2
    geminicli
    spotify
    BDA
    코테
    frontend
    C++
    SpotifyAPI
    polling
    프론트엔드
    KakaoOauth
    데시벨측정
    백준
    개발자
    알고리즘
    바이브코딩
    BDAI
    백준1463
    AI시대
    kotlin
    BDA #데이터분석모델링
    calculator
    개발자미래
    코딩테스트
    Tave
    androidstudio
    kotin
    데이터분석모델링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
choisio2
[BDA 11기] 데이터 분석 모델링(ML1) - 5주차
상단으로

티스토리툴바