[AI] 가우스 혼합 모델(Gaussian mixture model)
·
AI/Machine Learning
들어가며이번 글에서는 가우스 혼합 기반 군집화 알고리즘에 대해 공부할 예정이다가우스 분포로에서 생성된 샘플들은 타원형 클러스터를 이룬다고 하며타원형 데이터의 군집을 잘 잡아내는 알고리즘으로 유명하다 가우스 혼합 모델은 샘플들이 파라미터가 알려지지 않은여러 개의 혼합된 가우스 분포에서 생성되었다고 가정하는 확률 모델이다즉 하나의 가우스 분포에서 생성된 샘플들은 하나의 클러스터를 형성하고전체 데이터에서 각 가우스 분포별로 클러스터가 형성되어 나타난다이 때의 클러스터 모양이 타원형이라고 하며 밑에서 자세히 알아보겠다 가우스 혼합 모델일반적인 데이터(단일 분포 모델)는 모든 샘플들이 동일한 확률 분포를 따르지만가우스 혼합 모델에서는 전체 데이터는 하나의 확률분포가 아닌여러 분포의 혼합이라고 말하며 같은 클러스터..
[AI] DBSCAN(density-based spatial clustering of applications with noise)
·
AI/Machine Learning
들어가며이번 글에서는 군집 알고리즘들 중 k-평균과 함께 인기있는 알고리즘인 DBSCAN에 대해 알아보겠다이름만 들었을 때는 뭘 의미하는지 감도 안잡혔는데density-based spatial clustering of applications with noise의 약어라는 것을 알고밀도를 고려해서 클러스터를 찾는 것이라는 느낌 정도만 왔다밑에서 자세히 알아보도록 하겠다 DBSCANDBSCAN은 밀집해 있는 연속된 지역을 클러스터로 정의한다핵심 아이디어는 아래와 같다1. 알고리즘이 각 샘플에서 거리가 ε 내에 샘플이 몇 개 있는 지 세고 이 지역을 샘플의 ε-이웃이라고 정의한다2. ε-이웃 내에 적어도 min_samples개의 샘플이 있다면 이 샘플을 핵심 샘플로 지정한다3. 핵심 샘플의 이웃 샘플들은 모두..
[AI] k-평균 알고리즘
·
AI/Machine Learning
들어가며오늘은 비지도 학습에 해당하는 군집 알고리즘을 사용하는 k-평균에 대해 알아볼 것이다분류와 군집에 대한 개념은 많이 헷갈려 하는 개념이다간단히 설명하자면 분류는 레이블이 있는 지도 학습이고군집은 레이블이 없이 훈련시키는 비지도 학습이다 군집 알고리즘은 비슷한 샘플들을 클러스터라고 부르는 그룹으로 모으고샘플이 들어왔을 때 샘플의 특성을 보고 하나의 클러스터에 할당하도록 동작한다아래에서 유명한 군집 알고리즘인 k-평균과 DBSCAN 중 우선 k-평균에 대해 알아볼 것이다 K-평균k-평균 알고리즘은 우선 각 클러스터의 중심을 세팅하고샘플이 들어오면 그 중심에 가장 가까운 클러스터로 샘플을 할당하는 방식으로 동작한다 사이킷런에서 KMeans() 클래스를 통해 k-평균을 사용할 수 있다kmeans = KM..
[AI] 존슨-린덴스트라우스 정리를 통한 랜덤 투영, 지역 선형 임베딩(LLE)
·
AI/Machine Learning
들어가며저번 글에서는 PCA에 대해 알아보았는데매우 고차원의 데이터셋의 경우 PCA는 시간적으로 너무 느려져 효율이 떨어진다대신 이 경우 사용 가능한 방법으로는 랜덤 투영이 있다오늘은 랜덤 투영에 대해 알아볼 것이다추가로 PCA와 랜덤 투영과 달리 투영 방식에 의존하지 않는 매니폴드 학습 방식을 사용하는지역 선형 임베딩(LLE)에 대해서도 알아볼 것이다 랜덤 투영이름만 들었을 때는 랜덤한 차원으로 투영하는건지 데이터를 랜덤으로 선택해서특정 차원으로 투영시키는건지 쉽게 이해가 가지 않을 수 있다랜덤 투영은 데이터에 랜덤한 행렬을 곱해서 낮은 차원으로 투영시킨다이 방식의 핵심 아이디어는 고차원에서는 대부분의 데이터가 차원을 줄여도 거리 구조가 망가지지 않으며특정한 최적의 방향으로 투영하지 않고 랜덤한 방향으..
[AI] 주성분 분석(PCA)
·
AI/Machine Learning
들어가며차원 축소 알고리즘에는 주성분 분석(PCA), 랜덤 투영, 지역 선형 임베딩(LLE) 등이 있다오늘은 이들 중 주성분 분석(PCA)에 대해 알아볼 것이다이름만 들었을 때 의미를 유추해보자면 데이터에서 무언가 중요한 성분들을 찾고이들의 분석을 통해 얻은 정보들로 차원을 축소시키는 느낌 정도로 생각해볼 수 있다자세한건 아래에서 알아보도록 하겠다 주성분 분석(PCA)PCA는 데이터 세트의 핵심 정보 중 하나인 분산이 최대로 보존되도록 하는 축(주성분)을 찾아이들이 생성하는 부분공간에 데이터를 투영시켜 고차원의 데이터 세트를 저차원으로 줄이는 차원 축소 알고리즘이다 왼쪽 그림은 2차원의 데이터셋과 세 개의 축이 각각 실선, 파선, 점선으로 표현되어 있다오른쪽은 세 개의 축이 데이터의 정보를 얼마나 포함하..
[AI] AdaBoost, 그레이디언트 부스팅(Gradient Boosting)
·
AI/Machine Learning
들어가며AdaBoost와 그레이디언트 부스팅을 알아보기 전에 우선 부스팅이라는 개념에 대해 알아야한다부스팅은 약한 학습기(랜덤 추측보다 조금 더 높은 성능을 내는 학습기)를 여러 개 연결해서강한 학습기를 만드는 앙상블 기법을 말한다이 기법을 활용하여 가장 많이 쓰이는 방법이 AdaBoost와 그레이디언트 부스팅인 것이다 AdaBoostAdaBoost는 이전 모델이 과소적합했던(오차가 크거나 오분류된) 훈련 샘플의 가중치를 더 높여서이전 예측기를 보완하는 새로운 예측기를 만드는 방법을 사용한다이러면 새로운 예측기는 학습하기 어려운 샘플에 점점 맞춰지게 되며이런식으로 계속 가중치를 업데이트하는 방식으로 예측기를 만들어 나간다 그림에서 볼 수 있듯이매 스텝마다 잘못 분류된 샘플에 집중해서 이 샘플들을 더 잘 ..
[AI] 스태킹(Stacking)
·
AI/Machine Learning
들어가며이번 글에서는 여러가지 앙상블 모델들 중 하나인 스태킹에 대하여 알아볼 것이다앙상블 기법을 사용하는 여러 모델들을 알아보고있는데각각의 모델마다 특징이 있으며 모델들을 하나 둘 씩 배울 때마다 그 차이를 잘 인지해야할 것 같다또한 상황에 맞는 모델을 잘 선택해야될 것 같다고 느꼈다 스태킹스태킹은 stacked generalization의 줄임말로stack이라는 말은 알고리즘 공부를 해본 사람이라면 알만한 의미로 "쌓다'라는 의미이다즉 여기서 스태킹 모델은 예측기에 예측기를 쌓는다는 개념이다더 구체적으로 말하자면 예측기의 출력을 또 다른 예측기의 입력으로 쌓는다는 말이다 그림으로 보면 이해가 더 쉬울 것이다가장 아래의 세 예측기에서 각기 다른 예측값을 내놓는 것을 확인할 수 있다이후 이 예측값들을 입..
[AI] 랜덤 패치, 랜덤 서브스페이스, 랜덤 포레스트
·
AI/Machine Learning
들어가며지난번 글에서 사이킷런의 BaggingClassifier에 대하여 알아보았는데이 클래스는 훈련 샘플에 대한 샘플링뿐만 아니라 특성에 대한 샘플링도 지원한다특성에 대한 샘플링을 이용한 기법인 랜덤 패치와 랜덤 서브스페이스에 대해 다뤄볼 것이고지금까지 다뤄본 기법들을 활용한 앙상블 모델인 랜덤 포레스트에 대해 알아볼 것이다 랜덤 패치와 랜덤 서브스페이스앞서 말했듯이 BaggingClassifier은 특성에 대한 샘플링도 지원한다이 때 샘플링은 max_features, bootstrap_features 두 매개변수로 조절된다 랜덤 패치 방식은 훈련 샘플과 특성 모두 랜덤하게 샘플링하는 방식을 말한다모든 훈련 샘플과 특성이 사용되지 않을 수 있으며 일부만 골라져 학습되는 방식이다 반면 랜덤 서브스페이스 ..
[AI] 앙상블 알고리즘(투표 기반 분류기, 배깅과 페이스팅)
·
AI/Machine Learning
들어가며저번 글에서 알아본 결정 트리는 데이터에 민감해서 분산이 상당히 크며 과대적합되기 쉽다는 문제가 있었다이 문제를 해결하기 위해 여러 모델을 결합하는 앙상블 기법이 제시되었으며앙상블 기법을 활용한 대표적인 알고리즘으로는 투표 기반 분류기, 배깅과 페이스팅, 랜덤 포레스트, 부스팅, 스태킹 등이 있다오늘은 이 중 투표 기반 분류기와 배깅,페이스팅에 대하여 알아볼 것이다 투표 기반 분류기투표 기반 분류기는 이름만 보고 직관적으로 이해 할 수 있듯이여러 모델의 예측을 집계하여 가장 많은 표를 얻은 클래스가 앙상블의 예측이되는 가장 기본적인 형태의 앙상블 기법이다 이렇게 다수결 투표로 정해지는 분류기를 직접 투표 분류기라고한다간접 투표 방식도 뒤에서 다루도록하겠다데이터가 들어왔을 때 각 분류기를 가친 후 ..
[AI] 결정 트리(Decision Tree)
·
AI/Machine Learning
들어가며결정 트리는 분류, 회귀, 다중 출력 작업까지 모두 가능한 다목적 머신러닝 모델이다데이터 구조가 매우 복잡한 데이터셋도 학습할 수 있으며최근 자주 사용되는 랜덤 포레스트 모델의 기본 구성 요소로도 쓰이는 유용한 알고리즘이다 이번 글에서는 이 결정트리가 어떤 식으로 예측을 하는 지 구조와 함께어떤 방식으로 훈련을 하는 지 알아볼 것이다 결정 트리결정 트리가 어떤 식으로 동작 하는지 파악하기 위해서는우선 결정트리를 시각화 시켜서 보는 것이 편하다from sklearn.tree import DecisionTreeClassifieriris = load_iris(as_frame=True)X_iris = iris.data[["petal length (cm)", "petal width (cm)"]].value..