본문 바로가기
Study (Data Science)/DL

비지도학습 / K-means, DBSCAN / PCA, T-SNE

by 콜라찡 2023. 1. 30.

비지도학습

지도학습과 달리 training data로 정답(label)이 없는 데이터가 주어지는 학습방법.

주어진 데이터가 어떻게 구성되어 있는지 스스로 알아내는 방법

지도학습이 회귀, 분류라면, 비지도학습은 분류!

 

종류

  • 군집화 (clustering) :  K-means, DBSCAN (주로 Classification)
  • 차원축소 (dimensionality reduction) :PCA(Principal Component Analysis), T-SNE
  • 생성모델 (generative model)

군집화 (clustering) 

1. K-means

  • 정답 label 도 없고, 분류기준이 되는 클래스나 카테고리도 없는 데이터를 가까운, 유사한 것들끼리 묶어주는 것.
  • 묶을 기준이 없기 때문에 k개의 기준점을 중심으로 k개 그룹으로 임의적으로 뭉쳐보며 학습이 시작됨.
  • k개의 중심점 = 새로운 label의 역할을 하게됨.
  • 유클리드거리  (Euclidian distance/ L2 Distance) : 두 좌표의 거리를 피타고라스 정리를 응용하여 구한 거리
  • iteration마다 k 중심을 그 전 k 집합의 평균으로 이동하며 유클리드 거리를 기준으로 다시 군집화하고 이를 반복
  • 단점
    • 원형, 달형, 대각선형 데이터는 군집이 잘 나눠지지 않음
    • 군집의 갯수 k값을 미리 알기 어려울 경우에는 사용하기 어려움
    • 분포에 따라 유클리드 거리가 멀지만 밀접한 연관이 있는 데이터의 경우, 군집화가 바람직하게 되지 않음.
    • 그래서 군집갯수를 정하지 않고, 밀도를 기반으로 군집화하는 DBSCAN이 나왔음

2. DBSCAN (Density Based Spatial Clustering of Applications with Noise) 

  • 밀도 (Density) 기반으로 군집화함.
  • 이상값을 노이즈로 식별해낼 수 있음 (Y-hat이 -1인 친구들)
  • 원, 달 등 임의 모양의 클러스터를 매우 잘 찾을 수 있음 (스마일 ai 기억하기)
  • k를 정해줄 필요는 없지만, epsilon 과 minPts 값을 미리 정해줘야 함.
  • 데이터의 분포를 신경 써야 하는 K-means 알고리즘에 비해 훨씬 유연한 사용이 가능하기 때문에 DBSCAN은 굉장히 보편적으로 사용되는 군집화 알고리즘이다.
  • 용어정리
    • epsilon: 클러스터의 반경
    • minPts: 클러스터를 이루는 개체의 최솟값
    • core point: 반경 epsilon 내에 minPts 개 이상의 점이 존재하는 중심점
    • border point: 군집의 중심이 되지는 못하지만, 군집에 속하는 점
    • noise point: 군집에 포함되지 못하는 점 (이상치)
  • 순서
  1. 임의의 점 p를 설정하고, p를 포함하여 주어진 클러스터의 반경(elipson) 안에 포함되어 있는 점들의 개수를 세요.
  2. 만일 해당 원에 minPts 개 이상의 점이 포함되어 있으면, 해당 점 p를 core point로 간주하고 원에 포함된 점들을 하나의 클러스터로 묶어요.
  3. 해당 원에 minPts 개 미만의 점이 포함되어 있으면, 일단 pass 합시다.
  4. 모든 점에 대하여 돌아가면서 1~3 번의 과정을 반복하는데, 만일 새로운 점 p'가 core point가 되고 이 점이 기존의 클러스터(p를 core point로 하는)에 속한다면, 두 개의 클러스터는 연결되어 있다고 하며 하나의 클러스터로 묶어줘요.
  5. 모든 점에 대하여 클러스터링 과정을 끝냈는데, 어떤 점을 중심으로 하더라도 클러스터에 속하지 못하는 점이 있으면 이를 noise point로 간주해요. 또한, 특정 군집에는 속하지만 core point가 아닌 점들을 border point라고 칭해요.
  • 단점
    • 데이터수가 많을 때, K-means보다 수행시간이 급격히 늘어남
    • epsilon과 mnPts의 값을 지정해줘야함.

차원 축소 (dimensionality reduction)

  • 수많은 정보 속에서 우리에게 더 중요한 요소가 무엇인지를 알게 해주는 방법
  • 비지도학습에서는 데이터를 나타내는 여러 특징(feature)들 중에서 어떤 특징이 가장 그 데이터를 잘 표현(represent) 하는지 알게 해주는 특징 추출(feature extraction)의 용도로 사용됨

1. PCA  (주성분분석 ) 

  • 데이터들이 있을 때, 차원의 수는 줄이면서 데이터 분포의 분산을 최대한 유지하기 위해 가장 분산이 긴 축을 첫 기저로 잡고, 그 기저에 직교하는 축 중 가장 분산이 큰 값을 다음 기저로 잡음
  • 이 과정을 반복하게 되면 차원의 수를 최대로 줄이면서 데이터 분포의 분산을 그대로 유지하며 차원축소진행
  • 분산이 그대로라서 축소해도 정보의 손실을 최소화하여 데이터의 분포를 충분히 표현가능
  • x,y,z축이 있고, z축의 분산이 가장 작다면, ,z축을 사명(projection), 즉 무시하고 2차원으로 줄여도, z의 정보는 소실되겠지만 분산이 작아 상대적으로 중요하지 않았다고 볼 수 있음.
  • PCA는 차원축소를 하되 상기와 같이 좌표축 방향이 아니라 가장 분산이 길게 나오는 기저(basis)방향을 찾아서 그 방향의 기저만 남기는 방식으로 진행됨
  • 주성분(Principal Component)방향 = pc축 : 이렇게 찾은 가장 중요한 기저.
  • PCA는 각 feature 간 상관관계가 있고 이를 추릴 필요가 있을 때 유용하게 사용되는 비지도학습 방법
    • 유방암 데이터에서 주기저 2개(feature)로 놓고 SVM 돌린 것이, 전체 30개 features(columns) 사용한 것 보다 훨씬 결과가 좋았음. 30개 중 악/양성과 상관관계가 많이 없는 데이터들이 많았기 때문

2. T-SNE(T-Stochastic Neighbor Embedding)

  • 시각화에 많이 쓰이는 알고리즘
  • 고차원의 데이터를 우리의 현실세게에 맞게 1-3차원으로 축소시키는 것
  • PCA는 키, 몸무게 같은 선형 데이터에 적합(데이터손실이 적음)하지만, 방사형적, 비선형적 데이터는 주성분으로 잡을 선형적인 축을 잡기가 어렵기 때문에 PCA가 적합하지 않음.
  • PCA는 분산이 큰 기저방향이 기준이 되기 때문에 원형등의 데이터를 축소할 때, 거리가 멀었던 것이 차원이 줄면서 가까워질 수 있음. (데이터의 물리적 정보량 보존이 목적)
  • T-SNE는 기존 차원 공간에서 가까운 점들은, 차원축소 후에도  여전히 가깝게 유지됨을 목표로 함. (데이터간의 상데적 거리 보전이 목적)
  • Feature Extractor 모델이 카테고리 간 분류 경계선을 뚜렷하게 유지하고 있는지를 확인하는 용도로 자주 쓰임.
    • Mnist로 label을 지우고 PCA도 pc를 2개로해서 2차원으로 뽑고, T-SNE도 동일하게 했을 때, PCA는 0-9숫자가 명확하게 클러스터링 되지 않았지만, T-SNE는 정확하게 구분되었다.
  • 그렇다고 T-SNE각 우월한 것은 아님. T-SNE는 단순 거리만 유지했을 뿐, 분산 및 다른 물리적 의미는 없음. 거리외에는 정보의 손실이 큼. PCA처럼 원래의 데이터로 복구는 어렵고 다만 시각화에만 유리.

 

PCA
T-SNE
https://lms.aiffel.io/course/381/node/566/step/4067

 

728x90

'Study (Data Science) > DL' 카테고리의 다른 글

수렴되지 않는 이유..  (0) 2023.03.23
유사도 Similarity / 거리 Distance  (0) 2023.03.12
추천시스템 - ALS  (0) 2023.01.26
추천 시스템 알고리즘/ MF / CSR  (0) 2023.01.25
MLE, MAP / prior, posterior, likelihood  (0) 2023.01.18

댓글