1장 The Machine Learning Landscape

머신러닝의 정의 및 핵심 개념

  • 목적: 데이터로부터의 학습을 통한 컴퓨터 프로그래밍 및 작업 성능의 점진적 개선
  • 정의
    • 명시적인 프로그래밍 없이 컴퓨터가 데이터로부터 학습하는 능력을 부여하는 연구 분야
    • 특정 작업(T)에 대해 성능 지표(P)가 경험(E)을 통해 개선될 경우, 해당 프로그램은 경험에서 학습한 것으로 간주
  • 구성요소
    • 훈련 세트 (Traning Set)
    • 훈련 사례(Instance / Sample)
    • 성능 지표(Accuracy)
  • 핵심 매커니즘
    • 경험 E를 활용하여 작업 T에 대한 성능 P를 정량적으로 향상시키는 프로세스
  • 학습의 임계점
    • 단순 데이터 축적(다운로드 등)은 ML이 아님, 새로운 사례에 대한 성능 개선이 수반되어야 함
  • 주의점: 작업 성격에 부합하는 명확한 성능 지표(P) 정의 필수

머신러닝의 필요성 및 전통적 방식과의 비교

  • 목적: 수동 작성이 불가능한 복잡한 규칙 해결 및 유동적 환경에 대한 자동 적응.
  • 전통적 방식: 문제 연구 수동 규칙(Rules) 작성 평가 런칭
    • 규칙이 길어질수록 유지보수 난이도 급증
  • 머신러닝 방식: 데이터 내 패턴 감지를 통한 자동 규칙 생성 및 업데이트; 코드 간소화 및 높은 정확도 유지
  • 데이터 마이닝: 머신러닝 알고리즘을 대량의 데이터에 적용하여 인간이 인지하지 못한 숨겨진 패턴을 발견하는 과정
  • 핵심 사례: 스팸 필터, 음성 인식
  • 적용 환경:
    • 규칙이 너무 길고 복잡한 문제
    • 환경이 수시로 변하는 시스템
    • 복합적인 데이터 통찰이 필요한 분야

머신러닝 시스템의 분류 : 감독 여부

  • 분류 기준: 학습 시 시스템에 제공되는 레이블(Label의 유무와 형태
  • 핵심 용어 구분: 속성(Attribute, 데이터 타입/열) vs 특성(Feature, 속성과 그 값의 결합)
  • 지도 학습(Supervised Learning): 레이블을 포함한 훈류 (분류, 회귀)
    • 주요 알고리즘
      • K-Nearest Neighbors
      • Linear Regression
      • Logistic Regression
      • Support Vector Machines(SVM)
      • Decision Trees
      • Random Forests
      • Neural networks
  • 비지도 학습(Unsupervised Learning): 레이블 없는 데이터의 구조 탐색
    • 군집(Clustering):
      • K-Means
      • DBSCAN
      • Hierarchical Cluster Analysis(HCA)
    • 차원 축소/시각화
      • Principal Component Analysis(PCA)
      • Kernel PCA
      • Locally-Linear Embedding(LLE)
      • t-SNE
    • 기타
      • 이상치/신규성 탐지(One-class SVM, Isolation Forest)
      • 연관 규칙 학습(Apriori, Eclat)
  • 준지도 학습(Semisupervised Learning): 소량의 레이블 데이터와 대량의 무레이블 데이터 결합
  • 강화 학습(Reinforcement Learning): 에이전트(Agent)가 환경 내 보상/벌칙을 통해 최적 정책 학습

머신러닝 시스템의 분류: 학습 환경 및 일반화 방식

  • 목적 : 데이터 유입 속도 및 운영 자원 제약에 따른 최적 아키텍처 결정
  • 배치 학습 (Batch Learning): 모든 데이터를 사용해 오프라인에서 학습; 새로운 데이터 적용 시 전체 데이터셋 재학습 필요
  • 온라인 학습(Online Learning): 미니 배치(Mini-batch) 단위로 점진적/실시간 학습; 데이터 유입 즉시 업데이트 가능
    • 핵심 변수: 학습률(Learning Rate; 신규 데이터 적응 속도 미 노이즈 민감도 조절)
    • 활용
      • 외부 메모리 학습(Out-of-core)
      • 자원 제한 시스템
  • 사례 기반 학습(Instance-based): 데이터를 암기한 후 유사도 측정을 통해 새로운 사례에 일반화
  • 모델 기반 학습(Model-based): 데이터로부터 모델(함수)을 선택하고 파라미터 최적화
    • 효율 함수(Utility Function): 모델의 적합도 및 성능을 측정하는 지표
    • 비용 함수(Cost Function): 모델의 예측 오차 및 불량도를 측정하여 최소화할 대상

머신러닝의 주요 도전 과제: 데이터 측면

  • 원칙: 가비지 인, 가비지 아웃; 데이터 품질이 모델 성능의 결정적 요소
  • 부족한 데이터: 복잡한 문제일수록 수백만 개 이상의 대규모 샘플 요구
  • 비대표성 데이터: 훈련 세트가 일반화 대상을 대변하지 못할 때 발생
    • 샘플링 소음: 소규모 샘플로 인한 우연한 데이터 불일치
    • 샘플링 편향: 체계적 오류가 포함된 표본 추출 방식
    • 무응답 편향: 특정 구릅의 설문 거부로 인한 표본 왜곡
  • 저품질 데이터/무관한 특성: 오류, 노이즈, 이상치 제거 및 특성 공학(Feature Enginerring) 필수
    • 특성 선택(Selection): 유용한 특성 선별
    • 특성 추출(Extraction): 상관관계가 높은 특성 결합 및 차원 축소

머신러닝의 주요 도전 과제: 알고리즘 측면

  • 과대적합(Overfitting): 모델이 훈련 데이터의 소음까지 학습하여 일반화 성능이 저하된 상태; 모델 적합도 > 데이터 양/질
    • 해결책: 모델 단순화(파라미터 수 제한), 훈련 데이터 증강, 데이터 노이즈 정제
  • 과소적합(Underfitting): 모델이 너무 단순하여 데이터의 내재적 구조를 학습하지 못한 상태
    • 해결책: 파라미터가 더 많은 강력 모델 선택, 더 좋은 특성 주입, 모델 제약 완화
  • 규제(Regularization): 과대적합 방지를 위해 학습 알고리즘에 가하는 인위적 제약
    • 매커니즘: 하이퍼파라미터 조절을 통해 모델의 자유(Degress of freedom) 제한
    • 모델 파라미터(θ): 학습 알고리즘이 훈련 과정에서 자동으로 최적화하는 값

2장 End-to-End machine Learning Project

Look at the Big Picture

구성 (Entites)

  • 비즈니스 목적 정의(Business Objective Definition): 모델 활용 방안, 최종 목표 수립
  • 현재 솔루션 상태(Current Solution Status): 기존 시스템 성능 지표, 한계점, 베이스라인(Baseline) 수치
  • 문제 정의(Problem Framing): 학습 방식(지도/비지도/강화), 과제 유형(회귀/분류), 배치/온라인 학습 결정
  • 성능 지표 선택(Performance Measure Selection): 문제 성격에 부합하는 평가 척도 확정
  • 가정 확인 (Assuption Check): 하위 시스템의 출력값 활용 방식 등 데이터 흐름 관련 가정 검증

핵심 매커니즘

  • 평균 제곱근 오차(RMSE, Root Mean Squre Error): 회귀 프로젝트의 표준 성능 지표.
    • 수식:
    • 특징: 큰 오차에 높은 가중치 부여
  • 평균 절대 오차(MAE, Mean Absolute Error): 이상치가 많은 데이터셋에 적합한 지표
    • 수식: ​
    • 특징: 오차의 절대값 평균 산출

Get the Data

  • 작업환경 구축
  • 데이터 다운로드
  • 데이터 구조 확인
  • 테스트 세트 생성
  • 계층적 샘플링 프로세스
    1. 계층 정의 : 중요 특성 기반 그룹 분할
    2. 비율 유지: 전체 모집단의 계층
    3. 샘플 추출: 훈련/테스트 세트에 모집단 비율 동일 적용
    4. 결과: 테스트 세트의 데이터 대표성 확보

데이터 탐색 및 시각화 (Discover and Visualize the Data)

  • 표준 상관계수(Standard Correlation Coefficient)
    • 범위: -1(강한 음의 상관) ~ 1 (강한 양의 상관)
    • 해석: 0 인근 수치는 선형적 관계 부재 의미
  • 시각화 구성 요소
    • alpha: 데이터 밀집도 파악을 위한 투명도 옵션
    • cmap: 수치 범위 시각화를 위한 컬러 맵 옵션
  • 특성 조합 (Attribute Combinations)
    • 목적: 도메인 지식 기반 신규 유용 특성 생성(Feature Engineering)
    • 사례(Rations)
      • 가구당 방 개수(Rooms per Household)
      • 방당 침실 개수(Bedrooms per Room)
      • 가구당 인원수(Population per Household)

Prepare the Data for Machine Learning Algorithms

분류 (결측치 처리)

  • 삭제(Drop): 결측치 포함 행 또는 열 제거
  • 채우기(Imputation): 중앙값, 평균값 등 특정 수치 대체 특징 (인코딩 명세)
  • 원-핫 인코딩 (One-Hot Encoding): 범주별 이진 특성 생성, 이진 행렬(Binary Matrix) 매핑 (순서 없는 데이터용)
  • Ordinal Encoding: 카테고리별 정수 (Integer Mapping) 할당. (순서 있는 데이터용

변환 파이프라인(Transformation Pipelines) 흐름

  1. 데이터 정제 (Cleaning)
  2. 특성 변환(Transformation)
  3. 스케일링(Scaling)
  4. 자동화: 전체 시퀀스의 fit_transform()자동 실행 및 적용

모델 선택 및 훈련 (Select and Train a Model)

핵심 매커니즘

  • 훈련 세트 오차: 훈련 데이터에 대한 모델 적합도 측정
  • 교차 검증(Cross-Validation): K-겹(K-fold) 분할 반복 평가, 일반화 점수 산출
  • 대조 분석: 훈련 오차와 검증 점수 격차 기반 모델 상태 진단 구성 요소 (Model)
  • 결정 트리(Decision Tree): 비선형 관계 학습 모델
  • 랜덤 포레스트(Random Forest): 다수 결정 트리 기반 앙상블 모델 적용 환경 / 주의점
  • 과대적합(Overfitting) 징후: 훈련 오차 대비 현저히 낮은 교차 검수 점수.
  • 과소적합(Underfitting) 징후: 모델이 너무 단순하여 훈련 데이터의 구조를 학습하지 못함

모델 미세 조정 (Fine-Tune Your Model)

학습 과정(Hyperparameter Tuning)

  • 그리드 탐색(Grid Search): 지정된 하이퍼파라미터 조합 전수 조사
  • 랜덤 탐색(Randomized Search): 탐색 공간 내 임의 조합 반복 탐색. (대규모 탐색 공간 최적화)

앙상블 방법(Ensemble Methods)

  • 구성 알고리즘
    • 투표 기반 분류기(Voting Classifiers)
    • 배깅 및 페이스팅(Bagging & Pasting)
    • 랜덤 포레스트(Random Forest)
    • 부스팅(Boosting): AdaBoost, Gradient Boosting
    • 스태킹(Stacking)

특성 중요도(Feature Importance)

  • 분석 기법: 최상위 모델의 특성별 상대적 중요도 측정
  • 활용: 영향력 낮은 특성 제거, 오차 원인 파악

시스템 론칭 및 유지보수 (Launch, Monitor, and Maintain)

구성 요소(Monitoring & Maintenance)

  • 성능 모니터링: 운영 환경 내 예측 성능 실시간 감시
  • 데이터 교체 체계: 최신 데이터 수집 및 정기적 재훈련 자동화
  • 품질 관리: 데이터 입력 파이프라인 체크, Concept Drift(데이터 분포 변화) 감지

주의점(Constraints)

  • 하위 시스템 오작동에 따른 데이터 품질 저하
  • 수동 분석과 자동 모니터링의 병행 필요성

프로젝트 종착점

  • 최종 모델 배포 및 지속적인 성능 유지보수 단계 진입

3장 분류(Classification)

MNIST 데이터셋: 분류의 기초 및 데이터 탐색

  • 규칙 기반(Rule-based) 접근은 이미지 인식 문제에서 처참히 실패함
    • 수기 숫자의 픽셀 위치와 강도는 무한에 가까운 변수를 생성하기 때문
    • 이를 해결 하기 위해 등장한 것이 데이터 스스로 패턴을 학습하는 분류 모딜이다.
    • MINIST 는 새로운 알고리즘의 성능을 검증하는 전 세계적 표준임
  • 개념 정의 및 구성
    • 데이터 구조: 총 7만개의 수기 숫자 이미지 데이터 셋
    • 이미지 특성: 각 이미지는 28x28 픽셀로 구성된 그레이스케일 데이터로 0(흰색) 부터 255(검은색) 까지의 정수값을 가짐
    • 특성 벡터화: 2차원 배열 이미지는 모델 입력을 위해 784차원의 1차원 특성 벡터(Feature Vector)로 변환된다.
  • 모델 동작 및 데이터 흐름
    1. 데이터 로드
      • Sikit-Learnfetch_openml을 통해 데이터를 수집함
    2. 데이터 분할
      • 처음 6만개를 훈려 세트로, 나머지 1만개를 테스트 세트로 엄격히 분리
    3. 데이터 섞기
      • 훈련 세트의 순서를 무작위로 섞어 특정 숫자가 연속되는 것을 방지
      • 이는 교차 검증 시 폴드(Fold)가 고르게 분포되도록 보장
      • 단, 시계열 데이터와 같이 순서가 중요한 데이터에는 적용하지 않음
  • 정리
    • 필수 키워드: MINIST, Feature Vector, Shuffling
    • Strategic Application: 데이터 섞기는 모델이 특정 순서 패턴을 학습하는 편향(Biase)을 제거하여 일반화 성능을 높이는 핵심 전처리 단계

2진 분류기 훈련 (Training a Binary Classifier)

개념 정의 및 로직

  • SGD(Stochastic Gradient Descent) Classifier: 확률적 경사 하강법을 사용하는 분류기
    • Internal Logic:
      • 매우 큰 데이터셋을 효율적으로 처리
      • 각 훈련 샘플을 독립적으로 처리하므로 온라인 학습(Online Learning)에 최적화되어 있다.
    • 타켓 백터 생성: 5-Classfier를 만들기 위해 기존 레이블을 불리언(True/False) 값으로 이진화한다.

모델 동작 흐름

  1. 훈련 데이터 공급: 이진화된 레이블을 기반으로 모델을 학습
  2. 가중치 업데이트: 무작위성을 활용해 손실 함수를 최소화하는 방향으로 결정 경계(Decision Boundary)를 학습

성능 측정 - 교차 검증과 오차 행렬

분류 모델에서 정확도(Acuracy)는 가장 위험한 지표가 될 수 있음. 데이터의 불균형이 존재할 때 정확도는 모델의 실제 변별력을 가리는 기만적인 수치가 되기 때문이다.

정확도의 함정: Never5Classifier

  • 모든 숫자를 5가 아니다라고 예측하는 모델이 있다고 가정할 때 MINIST 데이터에서의 5의 비율은 약 10%이므로, 이 무의미한 모델의 정확도는 90%에 달하게 된다. 이것이 분류 문제에서 정확도 이외의 진단 도구가 필요한 이유이다.

핵심 지표 및 구성

  • 교차 검증(Cross-Validation): cross_val_score를 통해 훈련 세트를 여러 폴드로 나누어 검증함으로써 모델 성능의 통계적 신뢰성을 확보함
  • 오차 행렬(Confusion Matrix): 클래스 A가 클래스 B로 분류된 횟수를 나타내는 진단표
    • TN(True Negative): 음성을 음성으로 정확히 분류
    • FP(False Positive): 음성을 양성으로 잘못 분류 (1종 오류)
    • FN(False Negative): 양성을 음성으로 잘못 분류 (2종 오류)
    • TP(True Positive): 양성을 양성으로 정확히 분류

정리

  • 키워드: Accuracy Pardox, Confusion Matrix, 1종/2종 오류
  • 혼동 포인트: 오차 행렬의 행(Row)는 실제 클래스, 열(Column) 은 예측 클래스를 의미함

정밀도, 재현율 및 F1 점수

  • 오차 행렬의 수치들은 비즈니스 목적에 따라 정밀도(Precision)와 재현율이라는 전략적 지표로 재구성된다.

개념 및 수식

  • 정밀도(Precision): 모델이 양성이라고 예측한 것 중 실제 양성의 비율
    • Precision =
  • 재현율(Recall): 실제 양성 샘플 중 모델이 양성이라고 찾아낸 비율
    • Recall =
  • F1 점수 (F1 Score): 정밀도와 재현율의 조화 평균(Harmonic Mean)
    • F1 Score =

조화 평균인 이유

  • 산술 평균과 달리 낮은 값에 훨씬 더 큰 무게를 둔다. 따라서 두 지표가 모두 높을 때만 높은 F1 점수를 얻을 수 있어, 균형 잡인 모델을 평가하는 데 유리하다.

Strategic Application: 비즈니스 결정 품질

  • Scenario A (아동용 안전 필터): 나쁜 영상을 하나라도 놓치는 것 보다, 좋은 영상을 나쁜 영상으로 잘못 분류하는 것이 더 위험함. 이 경우 높은 정밀도가 최우선이다.
  • Scenario B (도둑 포착 시스템): 경보가 몇 번 잘못 울리더라도(낮은 정밀도), 실제 도둑을 놓치지 않는 것(높은 재현율)이 중요하다. 이 경우 높은 재현율이 핵심임

정리

  • Strategic Application: 정밀도를 높이면 재현율이 낮아지고, 그 반대도 마찬가지인 트레이드오프 관계를 이해하고 비즈니스 임계값(Threshold)을 튜닝해야 한다.

ROC 곡선과 AUC

개념 및 성능 기준

  • ROC 곡선: FPR(거짓 양성 비율)에 대한 TPR(진짜 양성 비율 = 재현율)의 그래프이다.
  • PR(정밀도-재현율) 곡선: 양성 클래스가 매우 드물거나(Rare class), 거짓 양성(FP)을 줄이는 것이 훨씬 더 중요할 때 사용한다.
  • 경고: 양성 클래스가 희소한 경우, ROC 곡선은 매우 낙관적이므로(성능이 좋아 보이게) 왜곡될 수 있으므로 주의해야 한다.

다중 분류, 에러 분석 및 기타 분류 체계

다중 분류 전략

  • OvR(One-versus-the-Rest): 각 클래스마다 이진 분류기를 만들어 가장 점수가 높은 클래스를 선택한다(대부분의 알고리즘에서 선호).
  • OvO(One-versus-One): 모든 클래스 쌍에 대한 분류기를 만든다. 클래스가 N개일 때 N(N-1)/2개의 분류기가 필요하다.
    • SVM과 OvO: 서포트 백터 머신 (SVM)은 훈련 세트 크기에 따라 성능이 급격히 저하되므로, 작은 데이터셋으로 여러 번 학습하는 OvO 방식이 전산학적으로 훨씬 유리하다.

에러 분석: 진단 품질의 고도화

  • 단순히 오차 행렬을 보는 것에서 나아가, 행렬의 각 수치를 해당 클래스의 이미지 개수로 나누어 에러 비율로 정규화 해야한다.
  • 절대적인 에러 개수만 보면 이미지가 많은 클래스의 에러가 부각되어 왜곡된 결론에 도달 할 수 있다.

확장된 분류 체계

  • 다중 레이블(Multilabel): 한 샘플에 여러 개의 태그를 할당
  • 다중 출력(Multioutput): 한 레이블이 여러 값을 가짐