회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
실무에서 원활히 머신러닝으로 데이터를 분석하는 데 얼마나 많은 알고리즘을 알고 있어야 할까요?
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
실무에서 원활히 머신러닝으로 데이터를 분석하는 데 얼마나 많은 알고리즘을 알고 있어야 할까요?
선형, 군집, 트리 같은 기본 개념을 알고 XGBoost와 LightGBM 같은 최신 알고리즘을 알면 우선 현업에 필요한 기본적인 도구로써의 알고리즘은 갖춘 겁니다. 추가 공부는 지속적으로 발표되는 논문 등을 이용해 학습하면 됩니다. 그래서 제 책에서는 10가지 머신러닝 알고리즘을 다룹니다.
어떤 알고리즘은 성능면에서 매우 뛰어나서, 어떤 알고리즘은 꼭 이해할 필요가 있어서 선택했습니다. 8가지 알고리즘은 지도 학습, 나머지 2가지 알고리즘은 비지도 학습에 포함됩니다. 정형 데이터라면, 이 10가지 알고리즘만으로 현업과 캐글 컴피티션에서 충분히 좋은 성과를 낼 수 있습니다.
이제부터 10가지 알고리즘을 소개합니다.
선형 회귀는 가장 기초적인 머신러닝 모델입니다. 여러 가지 데이터를 활용하여 연속형 변수인 목표 변수를 예측해 내는 것이 목적입니다. 예를 들어 몸무게, 나이, BMI, 성별 등을 데이터로 활용하여 키와 같은 연속형 변수를 예측하는 겁니다. 연속형 변수는 165.5cm, 172.3cm, 182.9cm와 같이 연속적으로 이어질 수 있는 변수를 의미합니다. 반면 남성/여성으로 구분되는 성별은 연속형 변수가 아닙니다. 선형 회귀 모델에서는 예측할 종속변수만 연속형 변수면 족합니다. 예측하는 데 사용되는 그외 변수들은 연속형일 필요는 없습니다.
머신러닝 기초 알고리즘입니다. 복잡한 알고리즘에 비해서는 예측력이 떨어지지만 데이터 특성이 복잡하지 않을 때는 쉽고 빠른 예측이 가능하기 때문에 많이 사용됩니다. 다른 모델과의성능을 비교하는 베이스라인으로 사용하기도 합니다.
로지스틱 회귀 또한 선형 회귀처럼 기본 분석 모델입니다. 로지스틱 회귀 분석은 알고리즘의 근간을 선형 회귀 분석에 두고 있어서 선형 회귀 분석과 상당히 유사하지만 다루는 문제가 다릅니다. 선형 회귀 분석은 연속된 변수를 예측하는 반면, 로지스틱 회귀 분석은 Yes/No처럼 두 가지로 나뉘는 분류 문제를 다룹니다.
선형 회귀 분석과 마찬가지로, 너무나도 기본 알고리즘이라서 꼭 알고 있어야 합니다. 실제 이진분류가 필요한 상황이 많기 때문에 두 가지 범주를 구분하는 간단한 예측에 유용하며 딥러닝에서도 기본 지식입니다.
K-최근접 이웃은 거리 기반 모델입니다. 지금까지 다룬 알고리즘들과 달리 선형 관계를 전제로 하지 않습니다. 즉 각 데이터 간의 거리를 활용해서 새로운 데이터를 예측하는 모델입니다. 이때 가까이에 있는 데이터를 고려하여 예측값이 결정됩니다. K Nearest Neighbors라는 이름은 이를 잘 반영하고 있는데, K개의 가장 가까운 이웃 데이터에 의해 예측된다는 의미입니다.
다중분류 문제에 가장 간편히 적용할 수 있는 알고리즘입니다. 물론 최신 알고리즘들도 다중분류 문제에 사용하나, 데이터가 크지 않고 예측이 까다롭지 않은 상황에서 KNN을 사용하면 신속하고 쉽게 예측 모델을 구현할 수 있습니다. 그래서 베이스라인 모델로도 사용합니다.
나이브 베이즈는 베이즈 정리를 적용한 조건부 확률 기반의 분류 모델입니다. 여기서 조건부 확률은 A가 일어났을 때 B가 일어날 확률을 의미합니다. 예를 들어 ‘무료라는 단어가 들어 있을 때 해당 메일이 스팸일 확률’ 같은 겁니다. 이러한 특징으로 스팸 필터링을 위한 대표적인 모델로 꼽힙니다. 최근에는 딥러닝 같은 대안이 있어서 나이브 베이즈 모델을 쓰고자 하는 상황이 많지는 않습니다만, 그래도 스팸 메일 필터처럼 자연어 처리가 목적일 때는 여전히 나이브 베이즈 모델이 좋은 선택이 될 수 있습니다(딥러닝이 자연어 처리에 더 탁월한 모습을 보여주지만, 딥러닝보다 간단한 방법으로 자연어 처리를 원할 때).
범용성이 높지는 않지만 독립변수들이 모두 독립적이라면 충분히 경쟁력이 있는 알고리즘입니다. 특히나 딥러닝을 제외하고 자연어 처리에 가장 적합한 알고리즘입니다. 일반적인 데이터보다는 특수 상황을 고려해 배워두길 바랍니다.
결정 트리는 관측값과 목푯값을 연결시켜주는 예측 모델로서 나무 모양으로 데이터를 분류합니다. 수많은 트리 기반 모델의 기본 모델이 되는 중요 모델입니다. 트리 기반의 모델은 선형 모델과는 전혀 다른 특징을 가지는데, 선형 모델이 각 변수에 대한 기울기값들을 최적화하여 모델을 만들어나갔다면, 트리 모델에서는 각 변수의 특정 지점을 기준으로 데이터를 분류해가며 예측 모델을 만듭니다. 예를 들어 남자/여자로 나눠서 각 목푯값 평균치를 나눈다거나, 나이를 30세 이상/미만인 두 부류로 나눠서 평균치를 계산하는 방식으로 데이터를 무수하게 쪼개어나가고, 각 그룹에 대한 예측치를 만들어냅니다.
예측력과 성능으로만 따지면 결정 트리 모델을 사용할 일은 없습니다. 시각화가 매우 뛰어나다는 유일한 장점이 있을 뿐입니다. 하지만 앞으로 배울 다른 트리 기반 모델을 설명하려면 결정 트리를 알아야 합니다. 트리 기반 모델은 딥러닝을 제외하고는 현재 가장 유용하고 많이 쓰이는 트렌드이기 때문에 트리 모델을 필수로 알아둬야 합니다.
랜덤 포레스트 모델은 결정 트리의 단점인 오버피팅 문제를 완화시켜주는 발전된 형태의 트리 모델입니다. 랜덤으로 생성된 무수히 많은 트리를 이용하여 예측을 하기 때문에 랜덤 포레스트라 불립니다. 이렇게 여러 모델(여기서는 결정 트리)을 활용하여 하나의 모델을 이루는 기법을 앙상블이라 부릅니다.
앙상블 기법을 사용한 트리 기반 모델 중 가장 보편적인 방법입니다. 이후에 다루게 될 부스팅 모델에 비하면 예측력이나 속도에서 부족한 부분이 있고, 시각화에서는 결정 트리에 못미치나, 다음 단계인 부스팅 모델을 이해하려면 꼭 알아야 할 필수 알고리즘입니다.
랜덤 포레스트는 각 트리를 독립적으로 만드는 알고리즘입니다. 반면 부스팅은 순차적으로 트리를 만들어 이전 트리로부터 더 나은 트리를 만들어내는 알고리즘입니다. 부스팅 알고리즘은 트리 모델을 기반으로 한 최신 알고리즘 중 하나로, 랜덤 포레스트보다 훨씬 빠른 속도와 더 좋은 예측 능력을 보여줍니다. 이에 속하는 대표적인 알고리즘으로 XG부스트, 라이트GBM(LightGBM), 캣부스트(CatBoost) 등이 있습니다. 그중 XGBoost(eXtra Gradient Boost)가 가장 먼저 개발되기도 했고, 가장 널리 활용됩니다. XGBoost는 손실함수뿐만 아니라 모형 복잡도까지 고려합니다.
캐글 컴피티션 우승자가 많이 사용하는 성능이 검증된 부스팅 모델입니다. XGBoost 이후로도 다양한 부스팅 모델이 소개되었지만, 가장 인기 있는 모델이기 때문에 구글 검색에서 수많은 참고 자료(활용 예시, 다양한 하이퍼파라미터 튜닝)를 쉽게 접할 수 있습니다.
캐글 컴피티션의 우승자가 많이 사용하는 성능이 검증된 부스팅 모델입니다. XGBoost 이후로도 다양한 부스팅 모델들이 소개되었지만, 가장 인기있는 모델이기 때문에 구글 검색에서 수많은 참고 자료(활용 예시, 다양한 하이퍼파라미터 튜닝)들을 쉽게 접할 수 있습니다.
XGBoost 이후로 나온 최신 부스팅 모델입니다. LightGBM이 등장하기 전까지는 XGBoost가 가장 인기있는 부스팅 모델이였지만, 점점 LightGBM이 XGBoost와 비슷한 수준 혹은 그 이상으로 활용되는 추세입니다. 캐글 컴피티션에서도 좋은 퍼포먼스를 많이 보여주어서 그 성능을 인정받았습니다. 리프 중심 트리 분할 방식을 사용합니다.
표로 정리된 데이터(tabular data)에서 Catboost, XGBoost와 함께 가장 좋은 성능을 보여주는 알고리즘입니다. 성능을 비교하는 자료를 보면 대체로 LightGBM과 Catboost가 XGBoost보다 나은 성능을 보여주며, LightGBM과 Catboost는 상황에 따라 다른 결과를 보여주어 우열을 가리기 어렵습니다. 다만, 사람들에게 활용/언급되는 빈도는 아직까지는 LightGBM이 우위를 보입니다.
표로 정리된 데이터(tabular data)에서 캣부스트, XGBoost와 함께 가장 좋은 성능을 보여주는 알고리즘입니다. 성능을 비교하는 자료를 보면 대체로 LightGBM와 캣부스트가 XGBoost보다 나은 성능을 보여주며, LightGBM과 캣부스트는 상황에 따라 다른 결과를 보여주어 우열을 가리기 어렵습니다. 다만, 사람들에게 활용/언급되는 빈도는 아직까지는 LightGBM이 우위를 보입니다.
K-평균 군집화는 비지도 학습의 대표적인 알고리즘 중으로 목표 변수가 없는 상태에서 데이터를 비슷한 유형끼리 묶어내는 머신러닝 기법입니다.K-최근접 이웃 알고리즘과 비슷하게 거리 기반으로 작동하며 적절한 K값을 사용자가 지정해야 합니다. 거리 기반으로 작동하기 때문에 데이터 위치가 가까운 데이터끼리 한 그룹으로 묶습니다. 이때 전체 그룹의 수는 사용자가 지정한 K개입니다.
수많은 데이터를 가지고 있을 때, 데이터를 하나하나 직접 살펴보기에는 시간적인 한계가 따릅니다. 그렇다고 단순하게 통계적 정보만 살펴보는 것은 데이터를 너무 단순화하는 경향이 있습니다. 클러스터링은 이러한 상황에서 데이터를 적절한 수의 그룹으로 나누고 그 특징을 살펴볼 수 있는 장점을 제공합니다. 여러 클러스터링 기법 중에서도 K-평균 군집화는 가장 보편적이고 무난하게 사용됩니다.
PCA는 Principal Component Analysis의 약자로, 주성분 분석이라고도 부릅니다. PCA는 지금까지 배운 알고리즘과는 전혀 다른 방식의 알고리즘입니다. 비지도 학습에 속하기 때문에 당연히 종속 변수는 존재하지 않고, 어떤 것을 예측하지도 분류하지도 않습니다. PCA의 목적은 데이터의 차원을 축소하는 데 있습니다. 차원 축소를 간단히 말하면 변수의 개수를 줄이되, 가능한 그 특성을 보존해내는 기법입니다. PCA는 기존의 변수 중 일부를 그대로 선택하는 방식이 아니라, 기존 변수들의 정보를 모두 반영하는 새로운 변수들을 만드는 방식으로 차원 축소를 합니다.
PCA는 차원 축소 방법 중 가장 인기 있으며 구현하기 또한 쉬운 편입니다. 프로젝트 특성에 따라서 차원 축소가 필요하지 않은 경우도 많지만, 차원 축소를 시도해봄으로써 시각화 내지 모델링 효율성을 개선할 여지는 항상 있습니다. 따라서 알아두면 언젠가 유용하게 쓰게 될 알고리즘입니다.
이상으로 10가지 머신러닝 알고리즘을 알아보았습니다. 책에서는 각 알고리즘에 대한 더 자세한 내용과 데이터 분석 활용 예제를 확인하실 수 있습니다. 특히 데이터를 가공해서 더 나은 성능을 내도록 피처 엔지니어링에 중점을 두었습니다. 성능을 확인하기까지 과정이 짧지 않기 때문에 학습 마무리에서 [되짚어보기], [용어요약], [연습문제] 등을 제시합니다. 도움이 되길 빕니다.
<원문>
확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.