# 머신러닝
데이터를 기반으로 학습하는 컴퓨터 프로그래밍.
머신러닝 기술을 통해 대용량의 데이터를 분석할 때 겉으로 보이지 않았던 패턴을 발견하게 되는데 그것을 데이터 마이닝(data mining) 이라고 한다.
# 머신러닝의 종류
- 사람이 관여하여 훈련(학습)하는 것의 여부 (지도학습, 비지도학습, 준지도학습, 강화 학습)
- 실시간으로 학습의 능력을 키워나가는지의 여부(온라인학습, 배치 학습)
- 알고 있는 데이터와 새로운 데이터를 비교하는지, 훈련 데이터 셋에서 패턴을 발견하여 예측하는지의 여부(사례 기반 학습, 모델 기반 학습)
(1) 지도학습 알고리즘
- k-NN 알고리즘
- 선형 회귀(Linear Regression)
- 로지스틱 회귀(Logistic Regression)
- 서포트 벡터 머신(SVM; Support Vector Machines)
- 결정 트리(Decision Tree) + 랜덤 포레스트(Random Forests)
- 신경망(Neural networks)
(2) 비지도학습 알고리즘(훈련 데이터 셋 없음)
- 군집(Clustering)
- k-Means
- 계층 군집 분석(HCA; Hierarchical Cluster Analysis)
- 기댓값 최대화(Expectation Maximization)
- 시각화(Visualization)와 차원 축소(Dimensionality reduction)
- 주성분 분석(PCA; Principal Component Analysis)
- Kernel PCA
- 지역적 선형 임베딩(LLE; Locally-Linear Embedding)
- t-SNE(T-distributed Stochastic Neighbor Embedding)
- 연관 규칙 학습(Association rule learning)
- 어프라이어리(Apriori)
- 이클렛(Eclat)
Note. 지도 학습 알고리즘에 데이터를 입력받기 전에 차원 축소 알고리즘을 사용하여 훈련 데이터의 차원을 줄이면 유용하다. 실행속도가 빨라지고, 저장공간에 부담도 덜 가기 때문이다.
(3) 배치 학습(batch learning) - "오프라인 학습"
시스템이 점진적으로 학습할 수 없고, 현재 가지고 있는 데이터를 모두 사용해 훈련하는 학습. 일반적으로 이 학습은 시간과 자원을 많이 소모하여 오프라인에서 사용한다. 먼저, 시스템을 훈련시키고 적용시키면 더 이상의 학습은 하지 않는다. 새로운 데이터가 들어와 이것을 포함시켜 훈련하려면 처음부터 모든 데이터를 다시 훈련 시켜야 한다.
(4) 온라인 학습(online learning)
데이터를 순차적으로 한 개씩 또는 미니배치(작은 묶음)하여 시스템에 훈련시킨다. 학습 단계가 빨라 비용이 적게 들고 데이터가 오면 바로 학습한다. 그래서 빠른 변화가 필요하다면 온라인 학습이 더 좋다. 예를 들면 주식에 대한 정보가 그렇다. 학습이 끝난 데이터는 더 이상 사용할 필요가 없다면 삭제해도 좋다.
온라인 학습에서 중요한 하이퍼파라미터인 "학습률(learning rate)" 에 대해 알아야 한다. 학습률이란 변화하는 데이터에 얼마나 빠르게 적응하는 지의 척도이다. 학습률이 높다고 해서 좋은 경우만 있다고는 할 수 없다. 예전 데이터를 학습한 것을 잊어버릴 가능성이 있기 때문이다.
(5) 사례 기반 학습(instance-based learning)
시스템이 데이터(사례)를 기억함으로써 학습한다. 이를 통해 유사도를 측정하고 새로운 데이터를 일반화한다.
(6) 모델 기반 학습(model-based learning)
사례 기반 학습처럼 데이터를 일반화시키는 것이지만 다른 것은 모델을 만들어 그 모델을 통해 예측하는 것이다.
Note. 이상치 탐지(비지도) 알고리즘을 사용하여 정상 데이터가 아닌 이상치를 판단하여 자동 제거하는 것 또한 좋다.
# 머신러닝의 과정
- 데이터를 분석한다.
- 적용할 모델을 선택한다.
- 훈련 데이터로 모델을 훈련시킨다. (학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터를 찾는다.)
- 새로운 데이터에 모델을 적용해 예측한다.
* [도서] 핸즈 온 머신러닝을 공부하며 정리한 내용입니다.
'데이터 분석 > 머신러닝 독학하기' 카테고리의 다른 글
Step3. 지도학습과 비지도학습 (0) | 2020.12.15 |
---|---|
머신러닝 단기집중과정 요점정리 (0) | 2020.12.15 |
머신러닝 - MNIST 알아보기 (분류) - Python (1) | 2020.11.23 |
Step2. 머신러닝을 시작하기 전에 (0) | 2020.09.14 |