ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 머신러닝
    빅데이터 분석 2021. 10. 13. 16:56

    데이터로 부터 학습하도록 컴퓨터를 프로그래밍하는 과학

    -> 다양한 곳에서 말은 서로 다르지만, 공통적으로 '데이터' 부분은 들어간다.

    목적

    일반화(generalization) : 훈련 데이터로 학습하지만 새로운 데이터에 대한 예측이 최종 목표이다.

    확장성 이슈?

    알고리즘의 확장성: 알고리즘이 어느 정도 빨라져야, 나중에 다른 것을 추가할 수 있다.

    머신러닝 시스템의 종류

    지도 학습 vs 비지도 학습

    지도 학습(supervised learning)

    훈련 데이터 = 특성들(features) + 레이블(label)

    레이블은 결과, 특성들은 변수라고 생각하면 편하다.

    특성들로 레이블을 예측하는 수학적 모형을 훈련한다.

    특성은 레이블을 설명하기 위한, 여러가지 변수들 이라고 생각하면 편하다.

    분류

    • 레이블(=target 변수)이 범주형인 경우
    • 종양의 악성 여부, 스팸 메일 여부, 융자 상환 여부

    회귀

    레비블이 수치형(연속형)인 경우

    개인 신용평가(credit scoring), 자산 평가, 판매량(재고), 강수량 예측

    지도 학습 알고리즘

    회귀 모형

    선형 회귀 : 회귀 문제를 푸는 알고리즘이다.

    로지스틱 회귀 : 분류 문제를 푸는 알고리즘이다.

    • 신경망(Neural Networks)
    • 서포트 벡터 머신(SVM : Support Vector Machines)
    • 결정 트리(Decision Trees)
    • k-최근접 이웃(k-Nearest Neighbors)

    비지도 학습

    특성들만 있고 레이블이 없다.

    • 군집화(clustering) : k-평균(k-Means), 계층군집분석(HCA)
    • 차원 축소(dimension reduction) : 주성분 분석(PCA)
    • 연관 규칙 학습(association rule learning) : 장바구니분석, Apriori 알고리즘
    • 이상치 탐색(anomaly detection) : 부정거래, 제조결함, 네트워크 침입 탐지

    강화 학습

    알파고가 여기에 속한다.

     

    머신러닝 시스템의 종류

    배치 학습(batch learning)

    업데이트된 데이터로 훈련시키고 새 학습시스템으로 교체하는 것을 정기적으로 반복

    온라인 학습(Online learning)

    • 점진적 학습(incremental learning)
    • 빠른 변화에 스스로 적응해야 하는 시스템에 적합

    모형 기반 학습

    훈련 시킨 모형을 레이블이 없는 새로운 샘플에 적용하여 추론

    사례기반 학습

    사례들간의 유사도(similarity)를 측정하여 새로운 데이터에 일반화시킴 (k-인접 이웃을 사용한다.)

     

    주요 도전과제

    훈련 데이터가 에러, 이상치, 심한 잡음이 있는 경우 데이터 정제가 필요하다.

    • 특성 선택(feature selection) : 훈련에 유용한 특성 선택하기
    • 특성 공학(feature engineering) : 학습에 사용할 좋은 특성을 찾아야 한다.
    • 특성 추출(feature extraction) : 특성을 결합하여 더 유용한 특성 만들기

    과데적합

    너무 많이 훈련 데이터를 훈련한 것이다.

    훈련 데이터에서는 높은 성과를 보여주지만, 새로운 데이터에는 그렇지 못하다.

    과소적합

    모형이 너무 단순해서 데이터의 내재된 구조를 학습하지 못하는 현상이다.

    Scikit-Learn

    머신러닝 툴킷이다.

    입력 데이터

    featrue matrix

    • X로 표시한다.
    • (샘플의 개수, 특성의 개수)
    • NumPy 이차원 배열, Pandas DataFrame, SciPy sparse 행렬

     -> numpy 배열이 더 빠르다.

    label vector

    • y로 표시한다.
    • (샘플의 개수,)
    • NumPy 일차원 배열, Pandas Series

    Scikit-Learn API의 기본원칙(설계철학)

    일관성 : 모든 객체가 일관되고 단순한 공통 인터페이스를 공유한다.

    • 추정기 : 모델 훈련 -> fit() 메서드
    • 변환기 : 데이터를 변환하는 추정기 -> transform() 메서드
    • 예측기 : predict() 매서드, score() 매서드

    검사 : 추정기의 모스는 공개 속성으로 노출 된다.

    클래스 남용 방지 : 데이터셋은 numpy 배열 or Scipy 희소행렬, 하이퍼파라미터는 숫자 혹은 파이썬 문자열이다.

    조합성 : 알고리즘의 시퀀스로 기존 구성요소를 최대한 재사용, 파이프라인

    합리적 기본값 : 라이브러리가 적절한 기본값을 지정해 둠

    전형적인 API 사용 단계

    1. 클래스를 임포트
    2. 모델 클래스를 인스턴스화(모델의 하이퍼파라미터 지정)
    3. 데이터를 특징 행렬과 타겟으로 배치
    4. fit() 메서드를 호출해서 모델을 학습
    5. predict() 메서드로 레이블(타겟) 예측
    6. score() 메서드를 사용하여 모형의 성능(정확도) 평가

    단순선형모델

    선형 회귀 모형 (linear regression model)

    단순회귀 : 특성이 하나인 경우

    최소제곱추정법(LSE) : 오차제곱합(SSE)을 최소로 한다.

    최소제곱추정치

    • yi : i번째 관측값
    • y^i : i번째 예측값
    • (yi - y^i) : 오차
    • T : 전치
    • -1 부분 : 역행렬

    X~는 특성 행렬 X의 앞에 값이 1인 열이 추가된 행렬이다.

    예측값 (predicted values) : y~ = X~B~

     

    '빅데이터 분석' 카테고리의 다른 글

    데이터 전처리  (0) 2021.11.15
    분류  (0) 2021.10.27
    pandas  (0) 2021.10.12
    Numpy  (0) 2021.10.04
    Hadoop  (0) 2021.09.08

    댓글

Designed by Tistory.