[아티클 스터디] 확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘
아티클 링크
https://yozm.wishket.com/magazine/detail/1931/
1. 선형 회귀(Linear Regression)
- TOP 10 선정 이유
- 머신러닝 기초 알고리즘으로 복잡한 알고리즘에 비해 예측력을 떨어지나 쉽고 빠른 예측이 가능하며, 다른 모델과의 성능을 비교하는 베이스라인으로도 활용 가능
- 장점 : 구현과 해석이 쉬움, 모델링 소요 시간 ↓
- 단점 : 최신 알고리즘에 비해 예측력 부족
독립변수와 예측변수의 선형 관계를 전제로 하기 때문에 그 이외의 상황에서 성능 ↓
- 유용한 곳 : 연속된 변수를 예측하는데 활용
2. 로지스틱 회귀(Logistic Regression)
- TOP 10 선정 이유
- 기본 알고리즘으로 필수 개념 숙지, 이진분류가 필요한 상황이 많기 때문에 간단한 예측에 유용한 딥러닝에서도 기본 지식
- 장점 : 구현과 해석이 쉬움, 계수(기울기)를 사용해 각 변수의 중요성을 쉽게 파악
- 단점 : 선형 관계를 전제로 하기 때문에 그 이외의 상황에서 성능 ↓
- 유용한 곳 : 두 가지 범주로 나뉜 값을 예측하는데 사용, 분류 문제에 있어 타 모델과 비교목적의 베이스 라인으로도 자주 활용
3. K-최근접 이웃(KNN)
- TOP 10 선정 이유
- 다중분류 문제에 가장 간편히 적용할 수 있는 알고리즘으로 데이터가 크지 않고 예측이 까다롭지 않은 상황에서 KNN을 사용하면 신속하고 쉽게 예측 모델을 구현 + 베이스 라인으로도 활용
- 장점 : 수식에 대한 설명이 필요 없을 만큼 직관적이고 간단, 선형 모델과 다르게 별도의 가정이 없음
- 단점 : 데이터가 커질수록 느려짐 가능성 ↑, 아웃라이어(이상치)에 취약
- 유용한 곳 : 주로 분류에서 사용되며, 로지스틱 회귀로 해결할 수 없는 3개 이상의 목표 변수들로 분류 가능, 작은 데이터셋에 적합
4. 나이브 베이즈(Naive Bayes)
- TOP 10 선정 이유
- 범용성이 높지는 않지만 독립변수들이 모두 독립적이라면 충분히 경쟁력이 있는 알고리즘.
특히, 딥러닝을 제외하고 자연어 처리에 가장 적합한 알고리즘으로 일반적인 상황보다 특수 상황에서 유용
- 장점 : 비교적 간단한 알고리즘으로 속도 또한 빠름. 작은 훈련셋으로도 좋은 예측력
- 단점 : 모든 독립변수가 각각 독립적임을 전제로하는데 장점이나 단점으로 작용. 실제로 독립변수들이 모두 독립적이라면 다른 알고리즘보다 우수하지만 실제 데이터에서는 그런 경우가 많지 않기 때문에 단점으로도 작용
- 유용한 곳 : 각 독립변수들이 모두 독립적이고 그 중요도가 비슷할 때 유용
자연여 처리(NLP)에서 간단하지만 좋은 성능, 범주 형태의 변수가 많을 때 적합하며, 숫자형 변수가 많을 때는 부적합
5. 결정 트리(Decision Tree)
- TOP 10 선정 이유
- 예측력과 성능으로만 따지면 결정 트리 모델을 사용할 일은 없지만 시각화가 매우 뛰어나다는 유일한 장점이 있음. + 앞으로 배울 다른 트리 기반 모델을 위한 선행 조건 + 딥러닝을 제외하고는 현재 가장 유용하고 많이 쓰이기 때문에 필수로 숙지
- 장점 : 데이터에 대한 가정이 업슨 모델, 아웃라이어(이상치)에 영향을 거의 받지 않음, 직관적으로 이해하고 설명할 수 있으며 시각화에 탁월
- 단점 : 트리가 무한정 깊어지만 오버피팅(과적화) 문제를 야기, 발전된 트리 기반 모델들에 비해 예측력이 떨어짐
- 유용한 곳 : 종속 변수가 연속형 데이터와 범주형 데이터 모두에 사용 가능, 모델링 결과를 시각화할 목적으로 가장 유용, 아웃라이어(이상치)가 문제될 정도로 많을 때 선형 모델모다 좋은 선택지
6. 랜덤 포레스트(Random Forest)
- TOP 10 선정 이유
- 앙상블 기법을 사용한 트리 기반 모델 중 가장 보편적인 방법, 부스팅 모델에 비하면 예측력이나 속도에서 부족하고, 시각화에서는 결정 트리보다 못하나 부스팅 모델을 이해하기 위한 선행 조건
- 장점 : 아웃라이어(이상치)에 거의 영향을 받지 않음, 선형/비선형 데이터에 상관없이 잘 작동
- 단점 : 학습 속도가 상대적으로 느린 편, 모델에 대한 해석이 어려움
- 유용한 곳 : 앙상블 기법을 사용한 트리 기반 모델 중 가장 보편적인 방법이지만 부스팅 모델을 위한 선행 조건으로 필수로 숙지해야하는 알고리즘
7. XG부스트(XGBoost)
- TOP 10 선정 이유
- 캐글 컴피티션 우승자가 많이 사용하는 성능이 검증된 부스팅 모델로 많고 다양한 참고자료를 쉽게 접하고 활용할 수 있음
- 장점 : 예측 속도가 빠르고 예측력도 좋음, 변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능
- 단점 : 복잡한 모델인 만큼 해석이 어려움, 더 나은 성능을 위한 하이퍼파라미터 튜닝이 까다로움
- 유용한 곳 : 캐글 컴피티션의 우승자가 많이 사용하는 만큼 성능면에서 검증되어 있으며 다양한 참고자료를 쉽게 접하고 활용할 수 있음
8. 라이트GBM(LightGBM)
- TOP 10 선정 이유
- 표로 정리된 데이터에서 Catboost, XGBoost와 함께 가장 좋은 성능을 보여주는 알고리즘
- 장점 : XGBoost보다도 빠르고 높은 정확도를 보여주는 경우가 많음, 예측에 영향을 미치는 변수의 중요도를 확인 가능, 변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능을 보여줌
- 단점 : 해석이 어렵고, 성능을 올리는 하이퍼파라미터 튜닝이 까다로움
9. K-평균 군집화(K Means Clustering)
- TOP 10 선정 이유
여러 클러스터링 기법 중에서도 K-평균 군집화는 가장 보편적이고 무난하게 사용
- 장점 : 구현이 비교적 간단, 클러스터링 결과를 쉽게 해석 가능
- 단점 : 최적의 K값을 자동으로 찾지 못하고, 사용자가 직접 선택, 거리 기반 알고리즘으로 변수의 스케일에 따라 다른 결과가 나타날 수 있음
10. 주성분 분석(PCA)
- TOP 10 선정 이유
- 차원 축소 방법 중 가장 인기 있으며 구현하기 또한 쉬운 편으로 차원 축소가 필요하거나 차원 축소를 통해 모델링 효율성 개선 또는 시각화 개선을 위해 활용가능
- 장점 : 다차원을 2차원에 적합하도록 차원을 축소하여 시각화에 유용, 변수 간의 높은 상관관계 문제를 해결
- 단점 : 기존 변수가 아닌 새로운 변수를 사용하여 해석하는데 어려움, 차원이 축소됨에 따라 정보 손실이 불가피
- 유용한 곳 : 다차원 변수들을 2차원 그래프로 표현하는데 사용, 변수가 너무 많아 모델 학습에 시간이 너무 오래 걸릴 때 유용, 오버피팅(과적합) 방지 용도로도 사용