본문 바로가기
머신러닝

Unsupervised Learning (비지도 학습) 이란?

by 데싸루나 2023. 1. 28.

Unsupervised Learning(비지도 학습)이란? 

title image
title

Unsupervised learning(비지도학습)은 라벨링 되지 않은 데이터를 통해 학습하는 머신러닝 방법입니다. 라벨링 되지 않은 데이터를 사용한다는 점에서 Unsupervised라는 용어를 사용합니다. Unsupervised Learning(비지도학습)은 Supervised Learning(지도학습)과는 다르게 특정 타겟 값을 예측하는 것을 목표로 하는 것이 아니라, 학습데이터 안에서 특정 구조나 관계를 찾아내는 일을 합니다. 주요 쓰이는 곳은 Clustering, Dimensionality Reduction, Anomaly Detection 등이 있습니다. 

 

 

Unsupervised Learning(비지도 학습)의 쓰임새

Unsupervised Learning은 학습 데이터에서 패턴이나 관계를 찾는데 사용됩니다. 그래서 여러가지 작업들을 수행할 수 있습니다. 아래에 각각의 작업들을 세분화하여 설명해 보겠습니다.

Clustering

Clustering은 데이터를 군집(Cluster) 별로 묶는 작업입니다. 예를 들어, 고객들을 구매 패턴에 따라 그룹핑하거나,이미지에서 유사한 이미지를 하나의 그룹으로 묶는 것입니다. K-means, Hierarchical clustering, DBSCAN 등이 일반적으로 사용되는 Clustering 알고리즘입니다.

 

Dimensionality Reduction

Dimensionality Reduction은 데이터의 차원(Dimension)을 축소하는 것입니다. 일반적으로 데이터의 차원이 많을 경우 알고리즘의 성능이 저하되므로, 차원을 축소하여 계산량을 줄이거나, 데이터를 이해하는데 도움을 줍니다. PCA(Principal Component Analysis), LLE(Locally Linear Embedding), t-SNE 등이 일반적으로 사용되는 Dimensionality Reduction 알고리즘입니다.

 

 

Anomaly Detection

Anomaly Detection은 비정상적인 값이나 행동을 탐지하는 작업입니다. 이를 통해 이상치(Outlier)나 위험성이 있는 데이터를 찾을 수 있습니다. 이러한 작업들은 보안, 통계, 금융 분야에서 많이 사용됩니다. 일반적으로 분포를 기반으로 하는 방법들이 사용되며, 특정 기준을 기반으로 탐지하거나, 이상치를 분류하는 방법들이 있습니다.

 

Unsupervised Learning(비지도 학습)의 실제 활용 사례

  • 데이터 압축: 대용량 데이터를 압축하는 데 사용됩니다. 예를 들면 이미지 또는 영상처리에서 매우 유용합니다.
  • 클러스터링(Clustering): 데이터를 유사한 그룹으로 나누는 것을 도와줍니다. 예를 들면 사용자 행동 분석, 마케팅 분석, 고객 세그먼테이션 등에서 사용됩니다.
  • 차원 축소(Dimensionality Reduction): 데이터를 더 적은 차원으로 축소하는 것을 도와줍니다. 예를 들면 시각화, 데이터 시각화, 기계 학습 모델 성능 향상 등에서 사용됩니다.
  • 자연어 처리(Natural Language Processing): 자연어 처리에서도 사용됩니다. 이는 예를 들면 텍스트 문서의 주제 분석, 텍스트 요약, 텍스트 자동 이용 등에서 사용됩니다.
  • 추천 시스템(Recommendation System): 사용자의 행동, 취향, 선호도 등을 학습하여 추천 시스템을 구축하는 데 사용됩니다. 예를 들면 쇼핑몰이나 OTT 서비스에서 내가 좋아할 것 같은 상품이나 영화를 추천해 주는 경우가 있습니다.

Unsupervised Learning(비지도 학습)의 대표적인 알고리즘

  1. K-means: 주어진 데이터를 선택된 개수의 클러스터로 구분하는 방법 중 가장 널리 사용되는 알고리즘 중 하나입니다.
  2. DBSCAN: 밀도 기반 Clustering(군집화) 알고리즘으로, 군집의 크기와 밀도를 고려하여 데이터를 군집화 합니다.
  3. PCA: 주성분 분석(PCA)은 차원 축소 방법 중 하나로, 데이터의 주요 특징을 찾아내는 데 사용됩니다.
  4. t-SNE: t-SNE는 데이터의 군집을 더 잘 분리할 수 있는 고차원 공간에서의 군집을 2차원 또는 3차원 공간으로 시각화할 수 있는 알고리즘입니다.

Unsupervised Learning(비지도 학습)의 한계점

Unsupervised Learning(비지도 학습)은 레이블이나 정답이 없는 데이터를 학습하는 것입니다. 그래서 다음과 같은 문제점들을 가질 수 있습니다. 

  • 인식 가능한 패턴의 부족: 레이블이나 정답이 없는 데이터를 학습하기 때문에, 인식 가능한 패턴이 없는 경우 학습이 어렵다는 문제가 있습니다.
  • 학습 결과의 미해석: 레이블이나 정답이 없기 때문에, 학습 결과를 해석하기 어렵다는 문제가 있습니다.
  • 데이터 양의 문제: 비지도 학습은 데이터 양이 많을수록 좋은 결과를 낼 수 있지만, 데이터 양이 적을 경우 학습이 어렵다는 문제가 있습니다.

 

 

파이썬 Scikit Learn 패키지를 활용한 Unsupervised Learning 간단한 예제

파이썬에서 제공하는 Scikit Learn 패키지를 활용하면 머신러닝 코딩을 간편하게 할 수 있습니다. 아래 예제는 K-Means 알고리즘을 활용하여 iris 데이터를 Clustering 해보는 아주 간단한 예제입니다. 

from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

#iris 데이터 로드하기
iris = datasets.load_iris()
X = iris.data

#classifier는 K-Means 알고리즘으로 세팅하기
kmeans = KMeans(n_clusters=3)
#학습시키기
kmeans.fit(X)

#클래스가 어떻게 분류되었는지 plot 그려보기
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.show()

 

 

이번 포스팅에서는 Unsupervised Learning(비지도 학습)이 무엇인지, 쓰임새, 활용사례, 한계점, 간단한 예제에 대해 알아보았습니다. 다음에는 Reinforcement Learning(강화학습)에 대해 포스팅해보겠습니다. ^^ 

댓글