Data

머신러닝 10가지 알고리즘

H.Hoper 2023. 3. 17. 12:49

머신러닝을 공부하면서 늘 헤깔리는 것중에 하나가 알고리즘 부문인 거 같습니다. 마침, 이 알고리즘을 깔끔하게 정리한 글이 있어 공유해 봅니다. 

데이터 영역에 관심있는 분들 뿐만 아니라 머신러닝이나 AI에 관심있는 분들은 원문을 꼭 일독하시길 강추(!)합니다~^^
📜 지도학습
👉 선형회귀, 로지스틱 회귀, K-최근접 이웃, 나이브 베이즈, 결정 트리, 랜덤 포레스트, XG부스트, 라이트GBM, 
📜 비지도학습
👉 K-평균 군집화, 주성분 분석(PCA)

🔔 선형 회귀(Linear Regression)
🚩 문제 유형 : 회귀
🚩 적합한 데이터 유형 : 종속변수와 독립변수가 선형 관계에 있는 데이터
🚩 장점: 모델이 간단하기 때문에 구현과 해석 용이, 짧은 모델링 시간
🚩 단점:  최신 알고리즘에 비해 예측력이 떨어진다.
🚩 유용한 곳: 연속된 변수 예측, 예를 들어 BMI(체질량지수), 매출액, 전력 사용량과 같은 변수 사용시

🔔 로지스틱 회귀(Logistic Regression)
🚩 문제 유형 : 분류
🚩 적합한 데이터 유형 : 종속변수와 독립변수가 선형 관계에 있는 데이터
🚩 장점: 구현 용이, 계수(기울기)를 사용해 각 변수의 중요성 파악 용이
🚩 단점: 선형 회귀 분석을 기본으로 하기 때문에, 선형 관계가 아닌 데이터에 대한 낮은 예측력
🚩 유용한 곳: Yes/No, True/False와 같은 두 가지 범주로 나뉜 값을 예측하거나 /분류 문제에 있어서 기준선 Baseline으로 활용

🔔 K-최근접 이웃(KNN)
🚩 문제 유형 : 회귀/분류
🚩 적합한 데이터 유형 : 아웃라이어가 적은 데이터
🚩 장점: 직관적이고 간단함. 선형모델과 다르게 별도의 가정 불필요
🚩 단점: 데이터가 커질수록 속도 및 성능 저하 가능성. 아웃라이어에 취약함
🚩 유용한 곳: 주로 분류(Classification)에서 사용되며, 로지스틱 회귀로 해결할 수 없는 3개 이상의 목표 변수들도 분류 가능, 작은 데이터셋에 적합

🔔 나이브 베이즈(Naive Bayes)
🚩 문제 유형 : 분류
🚩 적합한 데이터 유형 : 독립변수의 종류가 매우 많은 경우
🚩 장점: 비교적 간단한 알고리즘으로 빠른 속도와 작은 훈련셋으로도 예측 가능
🚩 단점:  모든 독립변수가 각각 독립적임을 전제로 함. 숫자형 변수가 많은 때는 부적합
🚩 유용한 곳: 각 독립변수들이 모두 독립적이고 그 중요도가 비슷할 때 유용 / 자연어 처리(NLP)에서 간단하지만 좋은 성능 / 범주 형태의 변수가 많을 때 적합

🔔 결정 트리(Decision Tree)
🚩 문제 유형 : 회귀/분류
🚩 적합한 데이터 유형 : 일반적인 데이터
🚩 장점: 데이터에 대한 가정이 없기에 어디에나 자유롭게 적용 가능한 모델(Non-parametric) / 아웃라이어에 거의 영향 받지 않음 / 결정트리 그래프 통해서 직관적인 이해와 설명 가능 / 시각화
🚩 단점:  트리가 무한정 깊어지면 오버피팅 문제 야기 / 다른 트리기반 모델에 비하면 상대적으로 낮은 예측력
🚩 유용한 곳: 종속변수가 연속형 데이터와 범주형 데이터인 경우 모두 사용 가능 / 모델링 결과를 시각화해야 하는 경우 / 아웃라이어가 많은 경우

🔔 랜덤 포레스트(Random Forest)
🚩 문제 유형 : 회귀/분류
🚩 적합한 데이터 유형 : 일반적인 데이터
🚩 장점: 아웃라이어에 거의 영향 받지 않음 / 선형,비선형 데이터에 상관없이 잘 작동
🚩 단점: 상대적으로 느린 학습 속도 /  수많은 트리를 동원하기 때문에 모델 해석이 어려움 / 부스팅 모델에 비하면 예측력이나 속도 부족 / 시각화 부분에서는 결정 트리에  비해 미흡
🚩 유용한 곳: 앙상블 기법을 사용한 트리 기반 모델 중 가장 보편적인 방법으로 부스팅 모델을 이해하려면 꼭 알아야 할 필수 알고리즘

🔔  XG부스트(XGBoost)
🚩 문제 유형 : 회귀/분류
🚩 적합한 데이터 유형 : 일반적인 데이터
🚩 장점: 빠른 예측 속도와 예측력 / 변수 종류가 많고 데이터가 클수록 뛰어난 성능
🚩 단점: 복잡한 모델로 해석의 어려움 / 더 나은 성능을 위한 까다로운 하이퍼파라미터 튜닝
🚩 유용한 곳: 캐글 컴피티션의 우승자가 많이 사용하 성능이 검증된 그래서 가장 인기 있는 부스팅 모델

🔔  라이트GBM(LightGBM)
🚩 문제 유형 : 회귀/분류
🚩 적합한 데이터 유형 : 일반적인 데이터
🚩 장점: XGBoost보다도 빠르고 높은 정확도 / 예측에 영향을 미친 변수의 중요도 확인 가능 /
변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능
🚩 단점: 복잡한 모델로 해석의 어려움 / 더 나은 성능을 위한 까다로운 하이퍼파라미터 튜닝
🚩 유용한 곳:  표로 정리된 데이터(tabular data)에서 캣부스트, XGBoost와 함께 가장 좋은 성능을 보여주는 알고리즘

🔔  K-평균 군집화(K Means Clustering)
🚩 장점: 비교적 간단한 구현 / 쉽게 해석 가능한 클러스터링 결과 /수 많은 데이터를 가지고 있는 경우 클러스터링을 통해 데이터를 적절한 수의 그룹으로 나누고 그 특징을 살펴볼 수 있는 장점
🚩 단점: 사용자가 직접 선택해야 하는 최적의 K값 / 거리 기반 알고리즘이기 때문에, 변수의 스케일에 따라 다른 결과 가능성 
🚩 유용한 곳: 여러 클러스터링 기법 중에서도 가장 보편적이고 무난함

🔔  주성분 분석(PCA)
🚩 장점: 다차원을 2차원에 적합하도록 차원 축소하여 시각화 유용 /  변수 간의 높은 상관관계 문제 해결
🚩 단점: 기존 변수가 아닌 새로운 변수사용한 해석이 어려움 / 차원이 축소됨에 따라 정보 손실 가능성
🚩 유용한 곳: 다차원 변수들을 2차원 그래프로 표현 필요시 / 변수가 너무 많아 모델 학습에 시간이 너무 오래 걸릴 때 /오버피팅을 방지 용도

 

출처: 확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘