넘파이(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 |