머신러닝을 이해하려면 알아야 할 10가지 알고리즘

기계가 세상을 이해하는 방법

이 글은 요즘IT의
“확실히 알아두면 만사가 편해지는 머신러닝의 10가지 알고리즘”
이란 글을 참고했습니다.


머신러닝은 데이터를 분석하는데 얼마나 많은 알고리즘을 사용하고 있을까요? 머신러닝을 이해가 위해서는 선형, 군집, 트리와 같은 기본 개념과 XGBoost, LightGBM과 같은 최신 알고리즘을 알아야 합니다.

머신러닝의 역사는 1949년 Hebb이 Hebbian Learning Theory를 발표하는 것으로 시작되었다고 하는데, 역사는 짧지 않지만, 최근에도 계속해서 관련 논문이 지속적으로 발표되는 최신(?) 기술인 만큼, 지속적인 학습이 필요한 분야입니다. 다음은 머신러닝에 사용되는 대표적인 알고리즘의 종류입니다.

1. 선형 회귀

선형 회귀는 가장 기초적인 머신러닝 모델로, 여러 가지 데이터를 활용하여 연속형 변수인 목표 변수를 예측해 내는 것이 목적인 알고리즘입니다. 즉, 몸무게, 나이, BMI, 성별 등을 데이터로 활용하여 키와 같은 연속형 변수를 예측하는 모델입니다.

연속형 변수란 55.2kg, 68.5kg, 72.8kg와 같이 연속적으로 이어질 수 있는 변수로, 남성/여성으로 구분되는 성별과는 다릅니다. 선형 회귀 모델에서는 예측할 종속변수만 연속형 변수이면 되는데, 예측하는데 사용되는 그 외의 변수들이 연속형일 필요는 없습니다.

선형 회귀 알고리즘은 지도 학습에 이용되며, 문제 유형은 회귀이고, 적합한 데이터 유형은 종속변수와 독립변수가 선형 관계에 있는 데이터입니다. 복잡한 알고리즘에 비해서는 예측력이 떨어지지만, 데이터의 특성이 복잡하지 않을 때는 쉽고 빠른 예측이 가능합니다.

선형 회귀 알고리즘

2. 로지스틱 회귀

로지스틱 회귀 역시 기본적인 분석 모델로, 알고리즘의 뿌리를 선형 회귀 분석에 두고 있습니다. 때문에 선형 회귀 분석과 상당히 유사하지만 다루는 문제는 조금 다른데, 선형 회귀 분석은 연속된 변수를 예측하지만, 로지스틱 회귀 분석은 Yes/No처럼 두 가지로 나뉘는 분류 문제를 다룹니다.

로지스틱 회귀는 지도 학습에 사용되고, 문제 유형은 분류입니다. 적합한 데이터 유형은 종속변수와 독립변수가 선형 관계에 있는 데이터입니다.

로지스틱 회귀 역시 기본 알고리즘인 만큼, 머신러닝과 딥러닝을 공부한다면 꼭 알고 있어야 하는 알고리즘입니다. 실제 이진분류가 필요한 상황이 많기 때문에 두 가지 범주를 구분하는 간단한 예측에 유용합니다.

로지스틱 회귀

3. K-최근접 이웃

K-최근접 이웃은 거리 기반 모델로, 앞의 알고리즘들과는 달리 선형 관계를 전제로 하지 않습니다. KNN은 각 데이터 간의 거리를 활용해서 새로운 데이터를 예측하는 모델로, 가까이에 있는 데이터를 고려하여 K개의 가장 가까운 이웃 데이터에 의해 예측값이 결정됩니다.

KNN은 지도 학습에 사용되고, 유형은 회귀/분류입니다. 적합한 데이터 유형은 아웃라이어가 적은 데이터입니다. 다중분류 문제에 가장 간편히 적용할 수 있는 알고리즘으로, 데이터가 크지 않고 예측이 까다롭지 않은 상황에서 KNN을 사용하면 신속하고 쉽게 예측 모델을 구현할 수 있습니다.

k-최근접 이웃

4. 나이브 베이즈

나이브 베이즈는 베이즈 정리를 적용한 조건부 확률 기반의 분류 모델로, 조건부 확률은 A가 일어났을 때 B가 일어날 확률을 의미합니다. 예를 들어 ‘A라는 단어가 들어 있는 메일이 스팸일 확률’과 같은 것인데, 이러한 특징으로 스팸 필터링을 위한 대표적인 모델로 꼽히기도 합니다.

최근에는 딥러닝 같은 대안이 있어서 나이브 베이즈 모델을 쓰는 상황이 많지 않지만, 스팸 메일 필터와 같이 자연어 처리가 목적이고, 딥러닝보다 더 간단한 방법을 원하는 경우에는 나이브 베이즈 모델이 좋은 선택이 될 수 있습니다.

나이브 베이즈는 지도 학습에 사용되고, 문제 유형은 분류입니다. 적합한 데이터 유형은 독립변수의 종류가 매우 많은 경우입니다. 딥러닝을 제외하고 자연어 처리에 가장 적합한 알고리즘입니다.

나이브 베이즈

5. 결정 트리

결정 트리는 관측값과 목푯값을 연결시켜주는 예측 모델로서 트리 모양으로 데이터를 분류하는 모델이며, 수많은 트리 기반 모델의 기본 모델이 되는 중요한 모델입니다.

트리 기반의 모델은 선형 모델과는 전혀 다른 특징을 가지는데, 선형 모델이 각 변수에 대한 기울기값들을 최적화하여 모델을 만들어나간다면, 트리 모델에서는 각 변수의 특정 지점을 기준으로 데이터를 분류하며 예측 모델을 만듭니다.

즉, 남자/여자로 나눠 각 목푯값 평균치를 나누거나, 나이를 30세 이상 또는 30세 미만인 두 부류로 나눠 평균치를 계산하는 방식으로 데이터를 무수하게 쪼개고, 각 그룹에 대한 예측치를 만들어냅니다.

결정 트리는 지도 학습에 사용되고, 문제 유형은 회귀/분류입니다. 적합한 데이터 유형은 일반적인 데이터입니다. 하지만 예측력과 성능으로는 다소 부족한 모델이며, 시각화가 매우 뛰어나다는 것이 유일한 장점이라고 할 수 있습니다. 그렇지만 다른 트리 기반의 모델을 설명하기 위한 기본 모델인 만큼, 꼭 알아둬야 할 보델이기도 합니다.

결정 트리

6. 랜덤 포레스트

랜덤 포레스트 모델은 결정 트리의 단점인 오버피팅 문제를 완화시켜주는 발전된 형태의 트리 모델로, 랜덤으로 생성된 무수히 많은 트리를 이용하여 예측을 하기 때문에 랜덤 포레스트라고 합니다. 이렇게 여러 모델을 활용하여 하나의 모델을 만드는 기법을 앙상블이라고 부릅니다.

랜덤 포레스트는 지도 학습에 사용되고, 문제 유형은 회귀/분류입니다. 적합한 데이터 유형은 일반적인 데이터입니다. 랜덤 포레스트는 앙상블 기법을 사용한 트리 기반 모델 중에서 가장 보편적인 모델이지만, 다음 단계인 부스팅 모델을 이해하기 위해서는 꼭 알아야 할 필수 알고리즘입니다.

랜덤 포레스트

7. XG부스트

랜덤 포레스트는 각 트리를 독립적으로 만드는 알고리즘인 반면 부스팅은 순차적으로 트리를 만들어 이전 트리로부터 더 나은 트리를 만들어내는 알고리즘입니다. 부스팅 알고리즘은 트리 모델을 기반으로 한 최신 알고리즘 중 하나로, 랜덤 포레스트보다 훨씬 빠른 속도와 더 좋은 예측 능력을 보여줍니다. 여기에 속하는 대표적인 알고리즘은 XG부스트, 라이트GBM, 캣부스트 등이 있습니다. 이 중 XGBoost가 가장 먼저 개발되고, 가장 널리 활용되는 모델입니다.

XG부스트는 지도 학습에 사용되고, 문제 유형은 회귀/분류입니다. 적합한 데이터 유형은 일반적인 데이터입니다. XG부스트는 캐글 컴피티션 우승자가 많이 사용하는 성능이 검증된 부스팅 모델로, 구글 검색을 통해 수많은 참고 자료를 찾을 수 있습니다.

XG부스트

8. 라이트GBM

라이트GBM은 XGBoost 이후로 나온 최신 부스팅 모델로 캐글 컴피티션에서도 좋은 퍼포먼스를 많이 보여주어서 그 성능을 인정받고 있습니다.

라이트GB은 리프 중심의 트리 분할 방식을 사용하며, 지도 학습에 사용됩니다. 문제 유형은 회귀/분류이고, 적합한 데이터 유형은 일반적인 데이터입니다.

라이트GBM

9. K-평균 군집화

K-평균 군집화는 비지도 학습의 대표적인 알고리즘으로 목표 변수가 없는 상태에서 데이터를 비슷한 유형끼리 묶어내는 머신러닝 기법입니다. KNN 알고리즘과 비슷하게 거리 기반으로 작동하며, 적절한 K값을 사용자가 지정해야 합니다.

K-평균 군집화는 비지도 학습에 사용되는데, 수많은 데이터를 가지고 있을 때, 데이터를 하나하나 직접 살펴보기에는 시각적인 한계가 따르는 만큼, 클러스터링은 이러한 상황에서 데이터를 적절한 수의 그룹으로 나누고 그 특징을 살펴볼 수 있는 장점을 제공합니다. 여러 클러스터링 기법 중에서도 K-평균 군집화는 가장 보편적이고 무난하게 사용되는 모델입니다.

k-평균 군집화

10. 주성분 분석

PCA는 지금까지 알아 본 알고리즘과는 전혀 다른 방식의 알고리즘으로, 비지도 학습에 속하기 때문에 종속 변수가 존재하지 않고, 어떤 것을 예측하거나 분류하지도 않습니다.

PCA의 목적은 데이터의 차원을 축소하는데 있으며, 차원 축소를 간단히 말하면 변수의 개수를 줄이되, 가능한 그 특성을 보존시키는 기법이라고 할 수 있습니다. PCA는 기존 변수들의 정보를 모두 반영하는 새로운 변수들을 만드는 방식으로 차원 축소를 합니다.

PCA는 비지도 학습에 사용되는데, 차원 축소 방법 중 가장 인기있고, 구현하기 쉬운 편에 속하는 알고리즘입니다. 프로젝트의 특성에 따라 차원 축소가 필요하지 않은 경우도 많지만, 차원 축소를 시도하여 시각화 또는 모델링의 효율성을 개선할 수도 있습니다. 따라서 알아두면 유용하게 쓰일 수 있는 알고리즘입니다.

주성분 분석

요즘IT, “확실히 알아두면 만사가 편해지는 머신러닝의 10가지 알고리즘”

답글 남기기