머신러닝은 AI의 하위 개념이며 딥 러닝(Deep Learning)이 머신러닝의 하위 개념이다.
머신러닝 알고리즘 유형을 구분하는 것에는 두가지 기준이 있다.
첫 번째 기준은 정답의 유무로 구분되는 1) 지도학습과 2) 비지도학습이 있다.
지도학습에는 분류(Classification)과 회귀(Regression)이 있다.
비지도학습에는 군집화(Clustering)과 차원축소(Dimensionality Reduction)이 있다.
그리터 데이터의 형태에 따라 범주형을 다루는 알고리즘은 분류와 군집화, 수치형 데이터를 다루면 회귀와 차원축소로 구분지을 수 있다.
지도학습은 정답(label)이 있는 데이터셋이 주어지는 경우로 여러 문제와 답을 함께 학습하여 문제에 대한 올바른 답을 예측하고자 하는 방법이다.
문제의 답은 범주형 값을 갖는다.
ex : 종양이 악성인지 양성인지 진단하는 문제
주어진 input 변수를 output 변수에 대응시키는 연속함수를 찾는 과정
ex : 기간별 매출액
과거 및 현재 데이터를 기반으로 미래를 예측하는 과정으로 동향 분석에 가장 많이 사용됨
정답이 없고 비슷한 것 끼리 묶거나 차원 축소를 통한 분석 방법
서로 유사한 관찰치들을 그룹으로 묶어 분류하여 군집을 찾는 것
차원의 저주*를 해소하기 위해 사용하는 기법
*차원의 저주:
① 차원 증가 → 변수 증가 → 개별 차원 내에서 학습 데이터 감소 → 성능 저하
② 차원 증가 → 데이터 간 거리 증가 → 모델 예측의 신뢰도 저하
학습하는 시스템을 agent, 환경을 관찰해 agent가 스스로 행동하게 하고 모델은 그 결과로 특정 보상을 받아 이 보상을 최대화하도록 학습한다.
ex : 딥마인드의 알파고
분류와 회귀 문제에 널리 사용하는 모델로 결정에 다다르기 위해 예/아니오 질문을 이어 나가면서 학습한다. 가능한 적은 질문으로 문제를 해결하는 것을 목표로 한다.
노드 : 질문이나 정답을 담은 네모 박스
리프 : 마지막 노드
분류, 회귀분석에 사용되는 앙상블 학습 방법의 일종.
훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 회귀 분석을 출력함으로 동작함.
결정 트리의 과적합 위험에 대한 대안으로 제시됨.
높은 정확도
랜덤 포레스트가 생성한 일부 트리는 과적합될 수 있지만, 많은 수의 트리를 생성해 과적합이 큰 영향을 미치지 못하도록 예방한다. 모델의 노이즈를 심화시키는 과적합 문제를 회피하여 정확도를 향상시킨다.
다재다능
분류(Classification)와 회귀(Regression) 문제에 모두 사용 가능하기 때문에 매우 다재다능하다. 변환이나 재조정 없이 이진 및 숫자 기능과 범주형 기능을 쉽게 처리할 수 있다. 거의 모든 다른 모델과 달리 모든 유형의 데이터에서 매우 효율적이다.
데이터 관리 소요 시간 단축
회귀 알고리즘이 아닌 의사결정나무 알고리즘에 기반한 기법이기 때문에 scaling, 정규화 과정이 필요 없어 데이터 관리 소요 시간이 단축된다.
느린 연산속도
알고리즘에서 많은 트리를 사용하기 때문에 예측의 정교함과 정확도가 높아지지만 예측에 오랜 프로세스 시간이 걸려 실시간 예측에는 비효율적이다.
추정 불가
랜덤 포레스트의 예측은 관찰된 레이블의 평균에 의존하기 때문에 모델 특성상 모든 트리 모델을 다 확인하기 어렵기 때문에 해석이 어려워진다.
훈련 시 메모리 소모가 크다
배깅(Bagging)은 bootstrap aggregating의 약자
부트스트랩(bootstrap)을 통해 조금씩 다른 훈련 데이터에 대해 훈련된 기초 분류기(Base Learner)들을 결합(Aggregating)시키는 방법
→ 서로 다른 데이터셋들에 대해 훈련시킴으로써, 트리들을 비상관화시켜주는 과정
분산을 줄이고 과적합(Overfitting)을 피하도록 해줌
n_estimators :
min_samples_split :
min_samples_leaf :
max_features :
max_depth :
max_leaf_nodes :
n_jobs :