📁 1. 선형 회귀(Linear Regression)
- 가장 기초 적인 머신러닝 모델
- 여러 가지 데이터를 활용하여 연속형 변수인 목표 변수를 예측해 내는 것이 목적
ex) 몸무게, 나이, BMI, 성별 등을 데이터로 활용하여 키와 같은 연속형 변수를 예측하는 것
→ 남성/여성으로 구분되는 성별은 연속형 변수가 아님
- 선형 회귀 모델은 예측할 종속 변수만 연속형 변수이어야 하며, 예측하는데 사용되는 그외 변수들은 연속형일 필요는 없음
- 구분 : 지도 학습
- 문제 유형 : 회귀
- 적합한 데이터 유형 : 종속변수와 독립변수가 선형 관계에 있는 데이터
→ 복잡한 알고리즘에 비해서는 예측력이 떨어지지만 데이터 특성이 복잡하지 않을 때는 쉽고 빠른 예측이 가능하기 때문에 많이 사용됨
→ 다른 모델과의 성능을 비교하는 베이스라인으로 사용하기도 함
<장점>
- 모델이 간단하기 때문에 구현과 해석이 쉬움
- 같은 이유로 모델링하는 데 오랜 시간이 걸리지 않음
<단점>
- 최신 알고리즘에 비해 예측력이 떨어짐
- 독립변수와 예측변수의 선형 관계를 전제로 하기 때문에, 이러한 전제에서 벗어나는 데이터에서는 좋은 예측을 보여주기 어려움
<예시>
- 연속된 변수를 예측하는 데 사용
- BMI(체질량지수), 매출액, 전력 사용량과 같은 변수
📁 2. 로지스틱 회귀(Logistic Regression)
- 선형회귀처럼 기본 분석 모델
- 알고리즘의 근간을 선형 회귀 분석에 두고 있어서 선형 회귀 분석과 상당히 유사하지만 다루는 문제가 다름
- 선형 회귀 분석은 연속된 변수를 예측하는 반면, 로지스틱 회귀 분석은
Yes/No
처럼 두 가지로 나뉘는 분류 문제를 다룸
- 구분 : 지도 학습
- 문제 유형 : 분류
- 적합한 데이터 유형 : 종속변수와 독립변수가 선형 관계에 있는 데이터
→ 너무 기본 알고리즘이라 꼭 알고 있어야 함
→ 실제 이진분류가 필요한 상황이 많이 때문에 두 가지 범주를 구분하는 간단한 예측에 유용하며 딥러닝에서도 기본 지식
<장점>
- 선혀 회귀 분석만큼 구현하기 용이
계수(기울기)
를 사용해 각 변수의 중요성을 쉽게 파악할 수 있음
<단점>
- 선형 회귀 분석을 근간으로 하고 있기 때문에, 선형 관계가 아닌 데이터에 대한 예측력이 떨어짐
<예시>
Yes/No
, True/False
와 같은 두 가지 범주로 나뉜 값을 예측하는 데 사용
- 분류 문제에 있어서 기준선 베이스라인으로 자주 활용(타 모델과 비교 목적)
📁 3. K-최근접 이웃(KNN)
- 거리 기반 모델
- 선형 관계를 전제로 하지 않음
- 각 데이터 간의 거리를 활용해서 새로운 데이터를 예측하는 모델
- 가까이에 있는 데이터를 고려하여 예측값이 결정됨
- 구분 : 지도학습
- 문제 유형 : 회귀/분류
- 적합한 데이터 유형 : 아웃라이어가 적은 데이터
→ 다중분류 문제에 가장 간편히 적용할 수 있는 알고리즘(베이스라인 모델로도 사용)
<장점>
- 수식에 대한 설명이 필요 없을 만큼 직관적이고 간단
- 선형 모델과 다르게 별도의 가정이 없음
ex) 선형 회귀
는 독립변수와 종속변수의 선형 관계를 가정하고 있기 때문에 가정에 들어맞지 않는 데이터에 취약하나, KNN
은 이러한 가정이 없어 더 자유로움
<단점>
- 데이터가 커질수록 상당히 느려질 수 있음
- 아웃라이어에 취약
<예시>
- 주로 분류(Classification)에서 사용되며, 로지스틱 회귀(Logistic Regression)로 해결할 수 없는 3개 이상의 목표 변수들도 분류할 수 있음
- 작은 데이터셋에 적합
📁 4. 나이브 베이즈(Naive Bayes)
- 베이즈 정리를 적용한 조건부 확률 기반의 분류 모델
→ 조건부 확률 : A가 일어났을 때 B가 일어날 확률을 의미
ex) '무료라는 단어가 들어 있을 때 해당 메일이 스팸일 확률' (이러한 특징으로 스팸 필터링을 위한 대표적인 모델로 꼽힘)
- 구분 : 지도 학습
- 문제 유형 : 분류
- 적합한 데이터 유형 : 독립변수의 종류가 매우 많은 경우고리즘
→ 범용성이 높지는 않지만 독립변수들이 모두 독립적이라면 충분히 경쟁력 있는 알고리즘
→ 딥러닝을 제외하고 자연어 처리에 가장 적합한 알고리즘
<장점>
- 비교적 간단한 알고리즘에 속하며 속도 또한 빠름
<단점>
- 모든 독립변수가 각각 독립적임을 전제로 하는데 이는 장점이 되기도 하고 단점이 되기도 함
→ 실제 독립변수들이 모두 독립적이라면 다른 알고리즘보다 우수할 수 있지만, 실제 데이터에서 그런 경우가 많지 않기에 단점임
<예시>
- 각 독립변수들이 모두 독립적이고, 그 중요도가 비슷할 때 유용
- 자연어 처리(NLP)에서 간단하지만 좋은 성능을 보여줌
- 범주 형태의 변수가 많을 때 적합하며, 숫자형 변수가 많은 때는 적합하지 않음
📁 5. 결정 트리(Decision Tree)
- 관측값과 목푯값을 연결시켜주는 예측 모델로서 나무 모양으로 데이터를 분류
- 수많은 트리 기반 모델의 기본 모델이 되는 중요 모델
- 트리 기반 모델은 선형 모델과는 전혀 다른 특징을 가지며, 선형 모델이 각 변수에 대한 기울기 값들을 최적화하여 모델을 만들어 나갔다면, 트리 모델에서는 각 변수의 특정 지점을 기준으로 데이터를 분류해가며 예측 모델을 만듦
ex) 남자/여자
로 나눠서 각 목푯값 평균치를 나눈다거나, 나이를 30세 이상/미만
인 두 분류로 나눠서 평균치를 계산하는 방식으로 데이터를 무수하게 쪼개어 나가고, 각 그룹에 대한 예측치를 만들어 냄
- 구분 : 지도 학습
- 문제 유형 : 회귀/분류
- 적합한 데이터 유형 : 일반적인 데이터
→ 예측력과 성능으로만 따지면 시각화가 매우 뛰어나다는 유일한 장점이 있을 뿐 결정 트리 모델을 사용할 일은 없음
→ 하지만 트리 기반 모델은 딥러닝을 제외하고 현재 가장 유용하고 많이 쓰이는 트렌드임
<장점>
- 데이터에 대한 가정이 없는 모델
- ex) 선형 모델은 정규분포에 대한 가정이나 독립변수와 종속변수의 선형 관계 등을 가정으로 하는 모델인 반면, 결정 트리는 데이터에 대한 가정이 없으므로 어디에나 자유롭게 적용할 수 있음
- 아웃라이어에 영향을 거의 받지 않음
- 트리 그래프를 통해서 직관적으로 이해하고 설명할 수 있음(즉, 시각화에 굉장히 탁월)
<단점>
- 트리가 무한정 깊어지면 오버피팅 문제를 야기할 수 있음
- 앞으로 배울 발전된 트리 기반 모델들에 비하면 예측력이 상당히 떨어짐
<예시>
- 종속변수가 연속형 데이터와 범주형 데이터 모두 사용할 수 있음
- 모델링 결과를 시각화할 목적으로 가장 유용
- 아웃라이어가 문제될 정도로 많을 때 선형 모델보다 좋은 대안이 될 수 있음
📁 6. 랜덤 포레스트(Random Forest)
- 결정 트리의 단점인 오버피팅 문제를 완화시켜주는 발전된 형태의 트리 모델
랜덤으로
생성된 무수히 많은 트리를 이용하여 예측하기 때문에 랜덤 포레스트라 불림
→ 여러 모델(여기서는 결정 트리)을 활용하여 하나의 모델을 이루는 기법을 앙상블
이라 부름
- 구분 : 지도학습
- 문제 유형 : 회귀/분류
- 적합한 데이터 유형 : 일반적인 데이터
→ 앙상블 기법을 사용한 기반 모델 중 가장 보편적인 방법
<장점>
- 결정 트리와 마찬가지로, 아웃라이어에 거의 영향을 받지 않음
선형/비선형
데이터에 상관없이 잘 작동
<단점>
- 학습 속도가 상대적으로 느린 편
- 수많은 트리를 동원하기 때문에 모델에 대한 해석이 어려움
📁 7. XG부스트(XGBoost)
- 랜덤 포레스트는 각 트리를 독립적으로 만드는 알고리즘이나 부스팅은 순차적으로 트리를 만들어 이전 트리로부터 더 나은 트리를 만들어 내는 알고리즘
- 트리 모델을 기반으로 한 최신 알고리즘 중 하나로, 랜덤 포레스트보다 훨씬 빠른 속도와 더 좋은 예측 능력을 보여줌
- 손실함수뿐만 아니라 모형 복잡도까지 고려함
- 구분 : 지도 학습
- 문제 유형 : 회귀/분류
- 적합한 데이터 유형 : 일반적인 데이터
<장점>
- 예측 속도가 상당히 빠르며, 예측력 또한 좋음
- 변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능을 보여줌
<단점>
- 복잡한 모델인 만큼, 해석에 어려움이 있음
- 더 나은 성능을 위한 하이퍼파라미터 튜닝이 까다로움
📁 8. 라이트GBM(LightGBM)
- XGBoost 이후로 나온 최신 부스팅 모델
- 리프 중심 트리 분할 방식을 사용
- 구분 : 지도 학습
- 문제 유형 : 회귀/분류
- 적합한 데이터 유형 : 일반적인 데이터
<장점>
- XGBoost보다도 빠르고 높은 정확도를 보여주는 경우가 많음
- 예측에 영향을 미친 변수의 중요도를 확인할 수 있음
- 변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능을 보여줌
<단점>
- 복잡한 모델인 만큼, 해석에 어려움이 있음
- 하이퍼파라미터 유닝이 까다로움
📁 9. K-평균 군집화(K Means Clustering)
- 비지도 학습의 대표적인 알고리즘 중 목표 변수가 없는 상태에서 데이터를 비슷한 유형끼리 묶어내는 머신러닝 기법
- 거리 기반으로 작동하며 적절한 K값을 사용자가 지정해야 함
- 거리 기반으로 작동하기 때문에 데이터 위치가 가까운 데이터끼리 한 그룹으로 묶음(이때 전체 그룹의 수는 사용자가 지정한 K개)
→ 수많은 데이터를 가지고 있을 때, 데이터를 하나하나 직접 살펴보기에는 시간적인 한계가 따름
→ 클러스터링은 이러한 상황에서 데이터를 적절한 수의 그룹으로 나누고 그 특징을 살펴볼 수 있는 장점을 제공
<장점>
- 구현이 비교적 간단
- 클러스터링 결과를 쉽게 해석할 수 있음
<단점>
- 최적의 K값을 자동으로 찾지 못하고, 사용자가 직접 선택해야 함
- 거리 기반 알고리즘이기 때문에, 변수의 스케일에 따라 다른 결과를 나타낼 수 있음
📁 10. 주성분 분석(PCA)
- Principal Component Analysis의 약자
- 비지도 학습에 속하기 때문에 당연히 종속 변수는 존재하지 않고, 어떤 것을 예측하지도 분류하지도 않음
- PCA의 목적은 데이터 차원을 축소하는 데 있음(
차원 축소
: 변수의 개수를 줄이되, 가능한 그 특성을 보존해내는 기법)
- 기존의 변수 중 일부를 그대로 선택하는 방식이 아니라, 기존 변수들의 정보를 모두 반영하는 새로운 변수들을 만드는 방식으로 차원 축소를 함
→ 차원 축소 방법 중 가장 인기 있으며 구현하기 또한 쉬운 편
<장점>
- 다차원을 2차원에 적합하도록 차원 축소하여 시각화에 유용
- 변수 간의 높은 상관관계 문제를 해결해줌
<단점>
- 기존 변수가 아닌 새로운 변수를 사용하여 해석하는 데 어려움이 있음
- 차원이 축소됨에 따라 정보 손실이 불가피
<예시>
- 다차원 변수들을 2차원 그래프로 표현하는 데 사용할 수 있음
- 변수가 너무 많아 모델 학습에 시간이 너무 오래 걸릴 때 (차원 축소를 진행하면 학습에 드는 시간을 줄일 수 있어) 유용
- 오버피팅을 방지하는 용도로 사용할 수도 있음
📌 출처 ‣ https://yozm.wishket.com/magazine/detail/1931/