LG DX DATA SCHOOL

01/13 파이썬 머신러닝 시작

getfeelingsfrom 2026. 1. 13. 16:58

넘파이(NumPy)의 필요성

  • 수치 연산을 빠르게 처리하기 위한 라이브러리임
  • 데이터 분석, 머신러닝, 딥러닝의 기본 도구임
  • 숫자를 단순 값이 아니라 공간상의 표현으로 다루기 위함임

ndarray란 무엇인가

  • NumPy의 핵심 자료구조임
  • N차원 배열 구조임
  • 벡터와 행렬을 표현하기 위한 객체임
  • 데이터의 방향과 크기를 함께 표현함

행렬·벡터와 시각화의 관계

  • 벡터는 방향과 크기를 가지는 수학적 객체임
  • 행렬은 벡터들의 집합임
  • 시각화는 벡터를 좌표계 위에 배치하는 과정임
  • 데이터 분석은 공간상의 위치 관계를 해석하는 작업임

딥러닝 연산의 본질

  • 딥러닝은 덧셈, 뺄셈, 곱셈 연산의 반복임
  • 모든 연산은 벡터 및 행렬 단위로 수행됨
  • 학습 과정은 공간상의 점을 이동·변형시키는 과정임
  • NumPy는 이러한 연산을 효율적으로 처리함

명목형 데이터와 벡터라이징

  • Setosa, Versicolor, Virginica는 명목형 데이터임
  • 숫자 크기로 의미를 비교할 수 없음
  • 단순 숫자 치환은 의미 왜곡을 유발함
  • 벡터라이징을 통해 의미 기반 구분 가능함

예시

  • Setosa → (1, 0, 0)
  • Versicolor → (0, 1, 0)
  • Virginica → (0, 0, 1)

 

의미를 벡터로 표현한다는 것

  • 숫자는 값이 아니라 위치를 의미함
  • 벡터는 의미를 가진 좌표임
  • 벡터 간 차이는 의미의 차이임
  • 방향은 의미의 변화 방향을 나타냄

 

의미 공간에서의 관계 예시

  • man → woman 변환은 벡터 이동임
  • 방향과 크기는 유지됨
  • 위치만 변화함
  • 의미 속성만 전환됨

 

NumPy의 핵심 역할 

  • 데이터를 벡터로 표현함
  • 벡터를 공간에서 연산함
  • 의미와 관계를 수학적으로 다룸
  • 머신러닝과 딥러닝의 기반 구조임

 

머신러닝에서 추천시스템의 위치

  • 머신러닝 기반 추천시스템은 사용자 행동 패턴을 학습함
  • 전통적인 추천시스템은 통계·머신러닝 중심 구조임
  • 최근에는 추천시스템이 AI 에이전트로 확장되는 흐름임
  • 단순 예측을 넘어 행동 결정까지 수행함

모델 평가를 위한 데이터 분리

  • 모델 성능 평가를 위해 데이터 분리 필요함
  • 훈련용 데이터(train)와 테스트용 데이터(test)로 나눔
  • 훈련 데이터는 모델 학습에 사용함
  • 테스트 데이터는 일반화 성능 평가에 사용함
  • 평가 없는 학습은 의미 없음

 

목표변수(Y)의 개념

  • 목표변수는 예측하고자 하는 값임
  • 다른 변수들의 영향을 받는 결과값임
  • 예시
    • 해지 여부
    • 구매 여부
    • 클릭 여부

 

목표변수에 영향을 미치는 변수 선택

  • 목표변수에 영향을 주는 변수를 탐색함
  • 독립변수(X) 선별 과정 필요함
  • 변수 간 관계 분석 수행함
  • 영향력 탐색은 지도학습의 핵심 과정임

 

지도학습의 특징

  • 정답(Y)이 존재함
  • 모든 학습은 Y값을 맞추는 방향으로 진행됨
  • 손실함수를 최소화하는 과정임
  • 모든 데이터 포인트는 Y를 향해 수렴함

 

비지도학습과 추천시스템

  • 비지도학습은 정답(Y)이 없음
  • 추천시스템 초기 단계에서 자주 사용됨
  • 사용자 군집화에 활용됨
  • 패턴과 구조 탐색이 목적임
  • “무엇이 정답인지 모른 상태”에서 학습함

 

머신러닝에서 명목형 데이터 문제

  • 명목형 데이터는 크기 개념이 없음
  • 단순 숫자 변환 시 회귀분석에 문제 발생함
  • 회귀(regression)는 연속형 Y를 가정함
  • 명목형 Y 사용 시 모델 가정 위반 발생함

 

Classification의 역할

  • 분류 문제는 명목형 Y를 다룸
  • 결과는 범주 중 하나임
  • 예시
    • 해지 / 유지
    • 구매 / 미구매
  • 지도학습의 대표적 형태임

 

지도학습 핵심 요약

  • 정답(Y)이 존재함
  • 모든 모델은 Y를 향해 학습함
  • 오차를 줄이는 방향으로 파라미터 조정함
  • 예측 문제의 기본 구조임

 

 


 

머신러닝 

지도학습 

 

  • 정답(y)이 주어진 상태에서 학습함
  • 입력값(X)과 출력값(y)의 관계를 학습함
  • 목표는 예측 성능 향상

 

  • 분류목적 : 레코드의 특정 속성의 값이 범주형으로 정해져 있으며 데이터의 실체가 어떤 그룹에 속하는지 예측하는 기법 
    • 분류분석의 전체 절차
      • 대량의 주어진 데이터에서 패턴과 규칙 탐색함
      • 데이터에 맞게 모델을 적합(fitting)함
      • 학습된 규칙을 이용해 새로운 데이터 예측함
      • 핵심 목적은 일반화된 예측 모델 생성
  • 수치예측 : 회귀 분석 

비지도학습 

  • 군집분석 : 각 객체의 유사성이 높은 대상 집단을 분류하는 분석 방법 
    • 계층적 군집분석
    • 비계층적 군집 분석 
  • 연관 분석 

 

데이터 구성

  • 전체 데이터는 훈련데이터와 테스트데이터로 분리함

훈련 데이터 (Training Data)

  • 모델 학습에 사용함
  • 입력값(X)과 정답(y)이 모두 존재함
  • 패턴과 규칙을 학습하는 용도임

테스트 데이터 (Test Data)

  • 모델 평가에 사용함
  • 학습에 사용하지 않은 데이터임
  • 예측 결과와 실제값 비교함

학습 과정

  • 훈련데이터를 알고리즘에 입력함
  • 알고리즘을 통해 패턴·규칙 도출함
  • 결과로 예측 함수(모델) 생성됨

 

학습 방법 = 알고리즘

  • 회귀분석
  • 로지스틱 분석
  • 의사결정나무 (Decision Tree)
  • 기타 분류 알고리즘 포함됨

 

패턴·규칙과 예측치

  • 학습된 모델은 입력값을 예측치(ŷ)로 변환함
  • 예측치는 실제값(y)과 비교 대상임
  • 예측의 정확도가 모델 성능을 의미함

 

오차(Error)와 비용함수(Cost Function)

  • 오차는 실제값(y)과 예측값(ŷ)의 차이임
  • 오차를 수치화한 함수가 비용함수임
  • 학습 목표는 오차 최소화임
  • 모든 학습은 비용함수 값을 줄이는 방향으로 진행됨

 

모형 적합도(Fitting)

  • 훈련데이터에 얼마나 잘 맞는지 나타냄
  • 훈련 성능이 지나치게 높으면 과적합 위험 존재함
  • 과적합은 일반화 성능 저하를 의미함

 

일반화(Generalization)

  • 새로운 데이터에서도 잘 맞는 능력임
  • 진짜 목표는 테스트 데이터 성능임
  • 훈련 성능보다 일반화 성능이 중요함

 

모델 정확도(Accuracy) 평가

  • 테스트 데이터 기준으로 평가함
  • 예측이 얼마나 정확한지 측정함
  • 모델이 실제 상황에서도 잘 작동하는지 판단함

 

 

#머신러닝 라이브러리 
from sklearn.datasets import load_iris #load_iris라는 함수를 불러오는거 
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

 

sklearn.utils._bunch.Bunch

 

  • 사이킷런에서 사용하는 데이터 컨테이너 객체
  • 파이썬 딕셔너리(dict) 기반 구조임
  • key-value 형태로 데이터 저장함
  • 객체.키 방식으로 접근 가능함

Bunch의 핵심 특징

  • 딕셔너리와 동일한 구조를 가짐
  • 딕셔너리보다 접근성이 좋음
  • iris['data'] 와 iris.data 모두 가능함
  • 데이터셋 구성 요소를 묶어서 전달하기 위함임

Bunch의 핵심 특징

  • 딕셔너리와 동일한 구조를 가짐
  • 딕셔너리보다 접근성이 좋음
  • iris['data'] 와 iris.data 모두 가능함
  • 데이터셋 구성 요소를 묶어서 전달하기 위함임

 

Bunch의 핵심 특징

  • 딕셔너리와 동일한 구조를 가짐
  • 딕셔너리보다 접근성이 좋음
  • iris['data'] 와 iris.data 모두 가능함
  • 데이터셋 구성 요소를 묶어서 전달하기 위함임

DataFrame으로 변환하는 이유

  • numpy 배열은 컬럼 의미 파악이 어려움
  • DataFrame은 가독성이 좋음
  • 분석 및 시각화에 유리함
  • feature와 label을 함께 관리 가능함

 

X_train, X_test, y_train, y_test = train_test_split(
    iris_data, iris_label, 
    test_size=0.2, 
    random_state=11
)

 

 

train_test_split 함수 역할

  • 데이터를 학습용과 테스트용으로 분리함
  • 모델 평가를 위한 필수 단계임
  • 데이터 누수 방지를 위해 사용함

입력 인자 설명

  • iris_data
    • 입력 변수(X)임
    • feature 데이터임
    • numpy ndarray 형태임
  • iris_label
    • 목표 변수(y)임
    • 정답 레이블임
    • 분류 문제의 기준값임

 

출력 변수 의미

  • X_train
    • 학습용 입력 데이터임
    • 모델 학습에 사용됨
  • X_test
    • 테스트용 입력 데이터임
    • 모델 평가에 사용됨
  • y_train
    • 학습용 정답 데이터임
    • X_train에 대응되는 레이블임
  • y_test
    • 테스트용 정답 데이터임
    • 예측 결과와 비교 대상임

 

test_size=0.2 의미

  • 전체 데이터의 20%를 테스트 데이터로 사용함
  • 나머지 80%는 학습 데이터로 사용됨
  • 일반적으로 0.2 또는 0.3 자주 사용됨

 

random_state=11 의미

  • 데이터 분할 기준을 고정함
  • 실행할 때마다 동일한 결과 보장함
  • 실험 재현성을 확보함
  • 값 11 자체는 의미 없음
  • 임의의 정수값 사용 가능함

random_state=11 의미

  • 데이터 분할 기준을 고정함
  • 실행할 때마다 동일한 결과 보장함
  • 실험 재현성을 확보함
  • 값 11 자체는 의미 없음
  • 임의의 정수값 사용 가능함


# DecisionTreeClassifier 객체 생성 
dt_clf = DecisionTreeClassifier(random_state=11) #지정된 랜덤값을 유지하라는 의미

# 학습 수행 
dt_clf.fit(X_train, y_train)

 

features와 label 기본 개념

  • features는 입력 변수임
  • label은 정답 변수임
  • 머신러닝은 features로 label을 예측함


X와 y의 의미

  • X는 features를 의미함
  • y는 label을 의미함
  • 관례적으로 대문자 X, 소문자 y 사용함


X_train의 의미

  • 학습용 feature 데이터임
  • 입력 변수 집합임
  • 모델이 참고하는 정보임

예시

  • 꽃받침 길이
  • 꽃받침 너비
  • 꽃잎 길이
  • 꽃잎 너비


y_train의 의미

  • 학습용 label 데이터임
  • 정답값임
  • 모델이 맞춰야 하는 목표임

예시

  • 0 → setosa
  • 1 → versicolor
  • 2 → virginica


X_test와 y_test

  • X_test는 평가용 feature 데이터임
  • y_test는 평가용 실제 정답임
  • 예측값과 비교 기준임


왜 X_train, y_train으로 나누는가

  • 입력과 정답 역할이 다름
  • 학습 과정에서 처리 방식이 다름
  • 모델은 X만 보고 y를 예측함

지도학습 관점에서의 구조

  • (X_train, y_train)으로 모델 학습함
  • X_train → 입력
  • y_train → 목표
  • 모든 학습은 y_train을 향해 진행됨

'LG DX DATA SCHOOL' 카테고리의 다른 글

01/16 사이킷런으로 시작하는 머신러닝  (0) 2026.01.16
01/14  (1) 2026.01.15
01/12 회귀 분석 마무리  (0) 2026.01.12
01/08 가설 검정  (0) 2026.01.08
01/07 확률 분포 (t- 검정 vs 카이제곱 검정 )  (0) 2026.01.07