머신러닝 개요, 비지도 학습(Unsupervised Learning)
비지도 학습(Unsupervised Learning)이란?
기계 학습의 일종으로, 컴퓨터가 입력값만 있는 훈련 데이터를 이용하여 입력치들의 규칙성을 찾는 학습 방법입니다. 비지도 학습에서 우리(인간)는 아무것도 예측하려고 하지 않습니다 대신 데이터를 클러스터링(군집화)하여 환경에 대한 이해도를 높이는 것이 일차적인 목표입니다
clustering customers(결합 또는 군집화 고객)
당신이 은행이고 수십만 명의 고객과 각각의 특징을 설명하는 100개의 특징을 가지고 있다고 가정해 보겠습니다. 은행은 비지도 학습 알고리즘을 사용하여 고객의 요구를 예측하고 고객과 보다 효과적으로 소통할 수 있습니다. 결국 군집화는 데이터 집합의 분포 특성을 분석하여 서로 교차하지 않는 복수 개의 부분집합(군집)으로 나누는 문제 입니다.
- 클래스 레이블 없이 주어진 데이터에 대하여 데이터 간의 유사도를 기준으로 몇 개의 그룹으로 나누는 것
- 바람직한 출력값에 대한 정보가 없으므로 비지도학습을 수행함
- 데이터에 대한 클래스 레이블을 주지 않는 경우나 각 데이터에 대한 클래스 레이블링에 비용이 많이 들때 유용함
Feature Scaling 형상 축적
많은 ML 알고리즘(비지도 학습용 알고리즘 포함)을 사용하기 전에 특징 값을 비교할 수 있도록 확장하는 것이 중요합니다.
Z-score 스케일링은 트레이닝 세트로부터의 각각의 피처들의 값들로부터 평균과 SD를 계산하는 것을 포함합니다. 그리고 나서 모든 데이터 세트들에 대한 스케일링된 피처 값들은 평균을 빼고 SD로 나눔으로써 생성됩니다. 스케일링된 피처 값들은 평균이 0이고 SD가 1입니다.
최소-최대 스케일링은 트레이닝 세트로부터 각각의 피처들의 최대값과 최소값을 계산하는 것을 포함합니다. 그리고 나서 모든 데이터 세트들에 대한 스케일링된 피처 값들은 최소값을 빼고 최대값과 최소값의 차이로 나누어서 생성됩니다. 스케일링된 피처 값들은 0과 1 사이에 위치합니다.
거리측정
클러스터링을 위해서는 거리 측정이 필요합니다.가장 간단한 거리 측정은 유클리드 거리 측정입니다.
거리=
k-means algorithm to find k clusters (K-평균 군집화)
K-평균 군집화 알고리즘은 데이터 집합을 K개의 그룹으로 묶는 알고리즘 입니다. 이것의 수행단계는 다음 그림과 같이 4단계를 거쳐 수행하게 됩니다.
- 첫째, 시작단계: 데이터 집합으로 부터 임의로 K개의 벡터를 선택하여 K개의 초기 대표 벡터집합을 생성합니다.
- 둘째, 데이터 그룹핑 단계로서, 각 데이터에 대해 K개의 대표 벡터들과의 거리를 계산합니다. 만약 데이터가 대표 벡터에 가장 가깝다면 이 데이터를 클러스터에 속하도록 레이블링 합니다. 이 과정을 통해 데이터 집합을 K개의 클러스터로 나눕니다.
- 세째, 대표 벡터의 수정 단계입니다. 두번째 단계에서 구한 새로운 클러스터에서 각각의 대표 벡터를 갱신합니다.
- 네째, 반복 여부 결정 단계입니다. 수정 전의 대표 벡터와 수정 후의 대표 벡터의 차이를 계산하여 그 값에 변화가 없거나 설정된 반복 횟수에 도달할 2~4단계를 반복합니다.
Inertia
임의의 주어진 k에 대해 목표는 관성을 최소화하는 것이며, 이는 제곱의 클러스터 내 합으로 정의됩니다:
여기서 di는 클러스터 중심으로부터 관측 거리 i입니다
실제로 우리는 k-means 알고리즘을 여러 개의 다른 시작점과 함께 사용하고 관성이 가장 작은 결과를 선택합니다