[Python] ML-Voting & Stacking
1. 왜 등장했는가 Random Forest나 XGBoost는 같은 종류의 모델(트리) 을 여러 개 묶은 앙상블입니다. 하지만 Logistic Regression, KNN, SVM, 트리 모델은 각자 데이터를 보는 방식이 완전히 달라서 틀리는 지점도 서로 다릅니다. Voting과 Stacking은 이렇게 서로 다른 종류의 모델을 묶어, 한 모델의 약...
1. 왜 등장했는가 Random Forest나 XGBoost는 같은 종류의 모델(트리) 을 여러 개 묶은 앙상블입니다. 하지만 Logistic Regression, KNN, SVM, 트리 모델은 각자 데이터를 보는 방식이 완전히 달라서 틀리는 지점도 서로 다릅니다. Voting과 Stacking은 이렇게 서로 다른 종류의 모델을 묶어, 한 모델의 약...
1. 왜 등장했는가 LDA는 “모든 클래스의 데이터가 같은 모양(공분산) 으로 퍼져 있다”고 가정하기 때문에 결정 경계가 항상 직선(초평면) 입니다. 하지만 실제로는 한 클래스는 넓게 퍼져 있고 다른 클래스는 좁게 모여 있는 경우가 흔합니다. QDA(Quadratic Discriminant Analysis)는 클래스마다 공분산을 따로 추정해, 곡선(...
1. 왜 등장했는가 특성이 수십 ~ 수천 개가 되면 학습이 느려지고, 거리 기반 모델(KNN, K-Means)은 차원의 저주로 성능이 떨어지며, 사람이 데이터를 눈으로 확인할 수도 없습니다. 게다가 많은 특성은 서로 강하게 상관되어 같은 정보를 중복해서 담고 있는 경우가 많습니다. PCA(Principal Component Analysis, 주성분 ...
1. 왜 등장했는가 “면적이 넓을수록 집값이 비싸다”처럼 두 값 사이의 관계를 하나의 직선(수식) 으로 표현하고 싶을 때가 많습니다. Linear Regression은 데이터를 가장 잘 설명하는 직선(또는 평면)을 찾아 연속적인 값을 예측하는 가장 기본적인 회귀 모델입니다. 최소제곱법(Least Squares)은 1800년대 초 Legendre와 G...
1. 왜 등장했는가 지금까지의 모델(KNN, Random Forest, SVM …)은 모두 정답(레이블)이 있는 데이터로 학습하는 지도학습이었습니다. 하지만 실무 데이터의 대부분은 정답이 없습니다. “우리 고객은 어떤 유형으로 나뉘는가?”처럼 데이터 스스로 비슷한 것끼리 묶는 방법이 필요합니다. K-Means는 데이터를 K개의 그룹(군집) 으로 나누...
1. 왜 등장했는가 K-Means는 K를 미리 정해야 하고, 결과는 “K개의 군집” 한 가지뿐입니다. 하지만 생물 분류(종 → 속 → 과 → 목)나 조직도처럼 군집 안에 더 작은 군집이 들어 있는 계층 구조를 알고 싶을 때가 많습니다. 계층적 군집(Hierarchical Clustering)은 데이터를 가까운 것부터 차례로 합쳐 나무 구조(덴드로그램...
1. 왜 등장했는가 K-Means는 각 점을 딱 하나의 군집에만 배정(Hard Clustering)하고, 모든 군집이 같은 크기의 원형이라고 가정합니다. 하지만 실제 데이터는 길쭉하거나 기울어진 타원 모양의 군집이 많고, 두 군집 경계에 있는 점은 “A일 확률 60%, B일 확률 40%”처럼 애매하게 표현하는 것이 더 자연스러운 경우가 많습니다. G...
1. 왜 등장했는가 Random Forest는 Bootstrap 샘플링과 특성 무작위 선택으로 트리들을 다양하게 만들어 과적합을 줄였습니다. 하지만 각 노드에서는 여전히 모든 임계값을 하나하나 비교해 최적의 분할점을 찾기 때문에, 트리들이 비슷해지고 학습 시간도 오래 걸립니다. Extra Trees(Extremely Randomized Trees)는...
1. 왜 등장했는가 Lasso는 불필요한 특성을 0으로 잘라내지만, 서로 비슷한 특성이 여러 개 있으면 그중 하나만 남기고 나머지를 버리는 문제가 있습니다. Ridge는 상관된 특성을 고르게 다루지만 특성 선택을 하지 못합니다. ElasticNet은 손실 함수에 L1(Lasso)과 L2(Ridge) 패널티를 함께 넣어 두 장점을 모두 취합니다. (Z...
1. 왜 등장했는가 K-Means는 군집 수 K를 미리 정해야 하고, 군집이 둥근 덩어리라고 가정하기 때문에 초승달·고리처럼 휘어진 군집을 찾지 못합니다. 또 모든 점을 반드시 어느 군집에 넣기 때문에 이상치도 억지로 군집에 포함시킵니다. DBSCAN(Density-Based Spatial Clustering of Applications with N...