데이터 분석/머신러닝 독학하기

Step1. 머신러닝이란.

Jerry Jun 2020. 9. 13. 14:55
728x90

machineimage

# 머신러닝

데이터를 기반으로 학습하는 컴퓨터 프로그래밍.

머신러닝 기술을 통해 대용량의 데이터를 분석할 때 겉으로 보이지 않았던 패턴을 발견하게 되는데 그것을 데이터 마이닝(data mining) 이라고 한다. 

 

 

 

# 머신러닝의 종류

  • 사람이 관여하여 훈련(학습)하는 것의 여부 (지도학습, 비지도학습, 준지도학습, 강화 학습)
  • 실시간으로 학습의 능력을 키워나가는지의 여부(온라인학습, 배치 학습)
  • 알고 있는 데이터와 새로운 데이터를 비교하는지, 훈련 데이터 셋에서 패턴을 발견하여 예측하는지의 여부(사례 기반 학습, 모델 기반 학습)

(1) 지도학습 알고리즘

  • k-NN 알고리즘
  • 선형 회귀(Linear Regression)
  • 로지스틱 회귀(Logistic Regression)
  • 서포트 벡터 머신(SVM; Support Vector Machines)
  • 결정 트리(Decision Tree) + 랜덤 포레스트(Random Forests)
  • 신경망(Neural networks)

 

(2) 비지도학습 알고리즘(훈련 데이터 셋 없음)

  • 군집(Clustering)
    1. k-Means
    2. 계층 군집 분석(HCA; Hierarchical Cluster Analysis)
    3. 기댓값 최대화(Expectation Maximization)
  • 시각화(Visualization)와 차원 축소(Dimensionality reduction)
    1. 주성분 분석(PCA; Principal Component Analysis)
    2. Kernel PCA
    3. 지역적 선형 임베딩(LLE; Locally-Linear Embedding)
    4. t-SNE(T-distributed Stochastic Neighbor Embedding)
  • 연관 규칙 학습(Association rule learning)
    1. 어프라이어리(Apriori)
    2. 이클렛(Eclat)

 

Note. 지도 학습 알고리즘에 데이터를 입력받기 전에 차원 축소 알고리즘을 사용하여 훈련 데이터의 차원을 줄이면 유용하다. 실행속도가 빨라지고, 저장공간에 부담도 덜 가기 때문이다.

 

 

(3) 배치 학습(batch learning) - "오프라인 학습"

시스템이 점진적으로 학습할 수 없고, 현재 가지고 있는 데이터를 모두 사용해 훈련하는 학습. 일반적으로 이 학습은 시간과 자원을 많이 소모하여 오프라인에서 사용한다. 먼저, 시스템을 훈련시키고 적용시키면 더 이상의 학습은 하지 않는다. 새로운 데이터가 들어와 이것을 포함시켜 훈련하려면 처음부터 모든 데이터를 다시 훈련 시켜야 한다.

 

 

 

(4) 온라인 학습(online learning)

데이터를 순차적으로 한 개씩 또는 미니배치(작은 묶음)하여 시스템에 훈련시킨다. 학습 단계가 빨라 비용이 적게 들고 데이터가 오면 바로 학습한다. 그래서 빠른 변화가 필요하다면 온라인 학습이 더 좋다. 예를 들면 주식에 대한 정보가 그렇다. 학습이 끝난 데이터는 더 이상 사용할 필요가 없다면 삭제해도 좋다. 

 

온라인 학습에서 중요한 하이퍼파라미터인 "학습률(learning rate)" 에 대해 알아야 한다. 학습률이란 변화하는 데이터에 얼마나 빠르게 적응하는 지의 척도이다. 학습률이 높다고 해서 좋은 경우만 있다고는 할 수 없다. 예전 데이터를 학습한 것을 잊어버릴 가능성이 있기 때문이다. 

 

 

 

(5) 사례 기반 학습(instance-based learning)

시스템이 데이터(사례)를 기억함으로써 학습한다. 이를 통해 유사도를 측정하고 새로운 데이터를 일반화한다.

 

 

(6) 모델 기반 학습(model-based learning)

사례 기반 학습처럼 데이터를 일반화시키는 것이지만 다른 것은 모델을 만들어 그 모델을 통해 예측하는 것이다. 

 

 

Note. 이상치 탐지(비지도) 알고리즘을 사용하여 정상 데이터가 아닌 이상치를 판단하여 자동 제거하는 것 또한 좋다.

 

 


# 머신러닝의 과정

  1. 데이터를 분석한다.
  2. 적용할 모델을 선택한다.
  3. 훈련 데이터로 모델을 훈련시킨다. (학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터를 찾는다.)
  4. 새로운 데이터에 모델을 적용해 예측한다.

 

* [도서] 핸즈 온 머신러닝을 공부하며 정리한 내용입니다.

300x250