비지도학습
지도학습과 달리 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: 군집에 포함되지 못하는 점 (이상치)
- 순서
- 임의의 점 p를 설정하고, p를 포함하여 주어진 클러스터의 반경(elipson) 안에 포함되어 있는 점들의 개수를 세요.
- 만일 해당 원에 minPts 개 이상의 점이 포함되어 있으면, 해당 점 p를 core point로 간주하고 원에 포함된 점들을 하나의 클러스터로 묶어요.
- 해당 원에 minPts 개 미만의 점이 포함되어 있으면, 일단 pass 합시다.
- 모든 점에 대하여 돌아가면서 1~3 번의 과정을 반복하는데, 만일 새로운 점 p'가 core point가 되고 이 점이 기존의 클러스터(p를 core point로 하는)에 속한다면, 두 개의 클러스터는 연결되어 있다고 하며 하나의 클러스터로 묶어줘요.
- 모든 점에 대하여 클러스터링 과정을 끝냈는데, 어떤 점을 중심으로 하더라도 클러스터에 속하지 못하는 점이 있으면 이를 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처럼 원래의 데이터로 복구는 어렵고 다만 시각화에만 유리.
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 |
댓글