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

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

지도학습 기본 알고리즘1 - 선형회귀



데이터 준비

1. 데이터 전처리

  • 모든 셀에는 값이 있어야 한다. -> 그냥 빈 값이라고 해도 NA, NaN과 같은 결측값을 넣어줘야 한다.
  • 모든 값은 숫자여야 한다. -> e.g. Yes나 No 같은 값은 1이나 0 같은 값으로 넣는다.
  • 값의 범위를 일치시켜야 한다.

2. 가변수화

  • 데이터는 머신러닝 알고리즘에 사용하려면 숫자로 변환해야 한다.
  • One-Hot-Encoding
  • pandas의 get_dummies()와 같은 함수를 사용하여 가변수화 시킨다.

3. 데이터 분할(1) - x, y

  • x(input): features, 요인, 설명 변수
  • y(output): target, label, 종속 변수

4. 데이터 분할(2) - trian, validation, test

  • Train: 학습용, 모델을 생성할 때 사용한다. ex) 문제집 교과서, 교재
  • Validation: 검증용, 모델의 성능을 검증하는데 사용한다. ex) 연습문제, 모의고사
  • Test: 평가용, 모델의 성능을 평가하기 위한 용도 ex) 찐 수능
  • 게임에서 베타 데스트(최종 테스트) 때만 사용하는 데이터를 test data라고 생각하면 된다.

train, validation, test의 비율은 보통 6:2:2 또는 8:1:1로 나누기도 한다.


지도학습 기본 알고리즘1 - 선형회귀

단순회귀 vs 다중회귀

  • 단순회귀(Simple Regression): 하나의 feature로 하나의 target을 예측
    e.g. 온도라는 하나의 요인만으로 아이스크림 판매량 예측하기
  • 다중회귀(Multiple Regression): 복수의 feature로 하나의 target을 예측
    e.g. 온도, 습도, 요일 등등 여러 변수를 가지고 아이스크림 판매량을 예측하기

Linear Regression

  • 데이터를 하나의 직선으로 요약
  • 자료를 설명하는 직선은 여러 개가 될 수도 있다. 그 중에서 전체 오차가 가장 적은 직선을 선택한다.

[직선 선택 방법]

  1. 해석적(계산적) 방법: 최소 제곱 법(Least Square)

  2. 최적화 방법: 오차를 조금씩 줄여가면서 반복적으로 직선을 찾음(경사 하강법)

산점도와 회귀직선

  • 산점도(Scatter Plot):
    • 데이터를 좌표평면 위 점으로 나타낸 그래프
    • x축은 feature, y축은 target
  • 회귀 직선: 직선은 y = a*x+ b 라는 직선의 방정식을 갖는다.

모델링 절차

1. 필요한 함수 불러오기

# 데이터 다루는 라이브러리
import numpy as np
import pandas as pd

# 데이터 시각화 라이브러리
import matplotlib.pyplot as plt

# 머신러닝 라이브러리
from sklearn.model_selection import train_test_split  # 데이터 분할
from sklearn.metrics import *          # 모델 평가 함수들 전체(*)

2. 모델 선언

  • 모델에 필요한 하이터 파라미터도 설정
model = LinearRegression()

3. 학습

  • .fit 이라는 함수 사용
  • feature들과 target과의 관계, 패턴을 선형회귀 알고리즘을 이용하여 모델로 만든다.
model.fit(x_train1, y_train)

4. 모델 내부 열어보기

  • 모델.coef_: 회귀계수 (python에서 마지막에 언더바가 있으면 어떠한 값이다)
  • 모델.intercept_: y 절편
  • e.g. 직선식: y = 4.108*x - 19.756

이것들을 가중치(weight), 파라미터 등이라고 부른다!

print('회귀계수 : ', model1.coef_)
print('절편 : ', model1.intercept_)

5. 예측 및 검증 평가

  • 학습시킨 모델이 얼마나 정확한지 검증하기 위해 학습할 때 사용하지 않은 데이터셋을 시험
    pred1 = model1.predict(x_val1)

6. 평가

  • 회귀 모델은 평균오차의 양과 율로 평가한다.
# 평균오차 
mean_absolute_error(y_val, pred1)

# R1 score로 평가 
r2_score(y_val, pred1)

# MSE -> 평균제곱 오차 
mean_squared_error( y_val   , pred1   )

# RMSE -> 제곱근 평균제곱오차 
root_mean_squared_error( y_val   , pred1)

# MAE -> 평균절대오차
mean_absolute_error(y_val   , pred1)

# MAPE -> 평균절대백분율오차 
mean_absolute_percentage_error(y_val   , pred1)

R² Score

R² Score (결정계수, Coefficient of Determination)란?

정의: 모델이 실제 데이터를 얼마나 잘 설명하는지를 나타내는 지표

범위: 일반적으로 0 ~ 1 사이 값 (가끔 음수가 될 수도 있음)

해석

  • R² = 1 → 모델이 데이터를 완벽하게 설명함 (예측값 = 실제값)

  • R² = 0 → 모델이 데이터를 전혀 설명하지 못함 (단순히 평균으로 예측한 것과 같음)

  • R² < 0 → 모델이 오히려 평균으로 예측하는 것보다 못한 경우



2주차 블로그 챌린지🔥

인스타팔로우

BDA학회 인스타입니다! 빅데이터 분석 학회로 데이터와 관련된 다양한 정보성 카드뉴스나 취업 정보, 부트캠프 등 다양한 정보를 확인하실 수 있습니다. 데이터에 관심이 있으시다면 팔로우 하시는 것을 추천드립니다🤗


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

[BDA 11기] 데이터 분석 모델링(ML1) - 6주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 5주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 4주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 3주차  (0) 2026.01.04
[BDA 11기] 데이터 분석 모델링(ML1) - 1주차  (0) 2026.01.04
'BDA-11th' 카테고리의 다른 글
  • [BDA 11기] 데이터 분석 모델링(ML1) - 5주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 4주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 3주차
  • [BDA 11기] 데이터 분석 모델링(ML1) - 1주차
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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바