코딩 기록들

[ AI 기초 ] 07. Unsupervised Learning 비지도학습 본문

AI 기초

[ AI 기초 ] 07. Unsupervised Learning 비지도학습

코딩펭귄 2022. 11. 14. 19:53

  비지도학습  

- 자율학습, Unsupervised Learning

- 기계학습의 일종, 데이터가 어떻게 구성되었는지 알아내는 문제의 범주

- 통계의 밀도추정과 깊은연관 있음 (비지도학습=데이터의 주요특징 요약하고 설명할수있음)

- 입력값에대한 목표치(정답)가 주어지지 않음 (-> 클러스터링,, 차원축소및 이를 이용한 데이터시각화, 생성모델등 다양한  task 포괄하는 개념)

  - 클러스터링 대표 알고리즘 : K-means, DBSCAN 알고리즘, point assignment

  - 차원축소의 방법들 : PCA(Principal Component Analysus), T-SNE 

 

 

  Clustering  

- 크게 두가지방법으로 나뉨

1) Point assignment clustering -  각각의 점을 원소로 가지는 클러스터들로부터 전체를 포함하는 클러스터 하나를 만들때까지 반복적으로 두개의 '가까운' 클러스터 합치며 진행

2) 계층적 군집 - 모든클러스터가 하나의 원소 가질때까지 계속쪼개는 방법 - hierarchical clustering

 

k-Means Clustering

- k값이 주어졌을때 주어진 데이터들을 k개의 클러스터로 묶는 알고리즘(k개의 기준점을 중심으로 가장 가까운 데이터들을 뭉치는 방식)

- means = 각 클러스터의 중심과 데이터들의 평균거리를 의미

- 각 클러스터에 할당된 데이터포인트의 평균좌표를 이용해 중심점을 반복적으로 업데이터하며 클러스터 형성하는 알고리즘

- 진행단계 - 

1) 각 클러스터의 할당이 바뀌지 않을때까지 반복

2) 할당된 클러스터를 기반으로 새로운 중심점 계산( 중심점은 클러스터 내부 점들의 좌표 산술 평균)

3) 각 클러스터의 할당이 바뀌지 않을때까지 반복

 

 Hierarchical Clustering  (계층적 군집분석)

- k-means clustering 과 달리, 사전에 군집수 k를 설정할 필요가 없다

- 비슷한 군집끼리 묶어가며 최종적으로는 하나의 케이스 될때까지 군집을 묶음

- Dendrogram 그래프 통해 시각화

- 진행단계 -

1) 각 데이터 포인트를 클러스터로 할당 (n개의 클러스터)

2) 가까운 클러스터끼리 병합

3) 1개의 클러스터가 될떄까지 반복

 

 

 

비지도 학습의 평가 (silhouette)

Silhouette (실루엣)

- 실루엣값은 클러스터안의 데이터들이 다른 클러스터와 비교해서 얼마나 비슷한가를 나타냄

- 같은클러스터 내 점들끼리는 가깝고, 다른클러스터 간 거리는 멀수록 높은값

- 실루엣값이 1에근접 = 클러스터내 평균거리가 다른클러스터의 평균거리보다 가깝다는걸 의미

 

 

비지도학습 실습은 아래 링크 참고

https://github.com/SeungHyunKee/IoTClient/blob/master/Unsupervised_Learning.ipynb

 

GitHub - SeungHyunKee/IoTClient

Contribute to SeungHyunKee/IoTClient development by creating an account on GitHub.

github.com