군집화
연관규칙학습
비지도 학습 정리
비지도 학습의 사례로는
‘군집화’와 ‘연관규칙’이라는 것이 있습니다.
어려워 보이지만 알고 보면 사실 별 것 아닙니다.
아래 그림을 5분만 유심히 살펴봅시다.
군집화 Clustering
군집화는 비슷한 것들을 찾아서 그룹을 만드는 것입니다.
분류와 혼동되죠?
비유를 들어봅시다.
여러분이 이사를 했습니다.
엄청나게 많은 물건들이 마구 어지럽혀져 있습니다.
이 상황에서 우리는 어떻게 행동할까요?
비슷한 것들끼리 모아서 적당한 그룹을 만들 것입니다.
이렇게 그룹을 만드는 것이 군집화입니다.
그룹을 만들고 난 후에는 각각의 물건을
적당한 그룹에 위치시키겠죠?
이것이 분류입니다.
정리하자면,
어떤 대상들을 구분해서 그룹을 만드는 것이 군집화라면,
분류는 어떤 대상이 어떤 그룹에 속하는지를
판단하는 것이라고 할 수 있습니다.
예를 들어 봅시다.
여러분은 배달 사업을 하고 있습니다.
여러분의 서비스를 이용하는 사용자가
전국적으로 1000만명이 있다고 해봅시다.
아래 표는 1000만명의 위치(위도, 경도)를
표시하고 있는 표입니다.
이런 고민을 하게 되었다고 상상해봅시다.
“100개의 배달본부를 오픈하려고 하는데
어디에 배치하면 좋을까?”
이 질문에 답 하기 위해서는 1000만명이
적절히 분포되어 있는 100개의 그룹을 만들어야 합니다.
이런 그룹을 한국어로는 군집,
영어로는 cluster라고 합니다.
군집을 만드는 것을 군집화,
영어로는 clustering이라고 합니다.
표의 숫자만 보고 군집화를 하는 것은 쉽지 않을 겁니다.
이때 우리를 구원해줄 도구가 위대한 좌표평면입니다.
그림으로 표현하니까 훨씬 보기 좋죠?
이제 가까운 것들끼리 묶으면 되겠죠?
이렇게 하면 됩니다.
그런데 표의 행(A,B,C,D,E,F)이 6개가 아니라
1000만개라면 어떨까요?
사람이 할 수 있는 일이 아니겠죠.
또 열이 2개(위도, 경도)가 아니라 100개라면
위 예제처럼 x, y 축으로 이루어진
2차원의 좌표평면에 표현하는 것이 불가능합니다.
심지어 행의 값이 계속해서 추가되고, 수정되고, 삭제 된다면?
그 곳이 지옥일 것입니다.
이런 데이터 지옥 속에서 우리를 구원해줄 도구가
바로 머신러닝, 그중에서 비지도 학습, 그중에서 군집화입니다.
군집화라는 도구에 1000만개의 관측치(행)를 입력하고
100개의 클러스터가 필요하다고 알려주면,
유사한 속성을 가진 관측치끼리 분류하여
총 100개의 클러스터를 만들어줍니다.
그림으로 나타내면 이렇습니다.
결과를 표로 나타내봅시다.
아래와 같습니다.
잘 생각해보면 군집화는
서로 가까운 관측치를 찾아주는
머신러닝의 기법이라는 것을 알 수 있습니다.
좌표상에서 가깝다는 것은 데이터가
서로 비슷하다는 의미와 같습니다.
기억합시다.
연관규칙학습 Association rule learning
연관규칙학습은 서로 연관된 특징을 찾아내는 것입니다.
일명 장바구니 분석이라고 불립니다.
상상해봅시다.
이제부터 여러분은 온라인 쇼핑몰의 사장입니다.
더 많은 상품을 판매하기 위해서 고민 중입니다.
고객의 장바구니에 담긴 상품을 바탕으로
관심을 가질만한 상품을 추천하면
더 많은 상품을 판매할 수 있겠다는 생각을 하게 되었습니다.
어떻게 하면 좋을까요?
이럴 때는 표를 봐야합니다.
아래는 지금까지 판매 내역입니다.
하나 이상 구매했다면 O, 구매하지 않았다면 X입니다.
유심히 보면,
라면을 구입한 사람은 계란을 구입할 확률이 높습니다.
즉, 라면과 계란은 서로 연관성(Association)이
높다는 것을 알 수 있습니다.
연관성을 파악할 수 있다면 고객이 미처 구입하지 못했지만,
구입할 가능성이 매우 높은 상품을 추천해줄 수 있습니다.
이 정도 양의 데이터라면 라면과 계란의 상관관계를
사람이 직접 찾을 수도 있습니다.
그런데 판매하는 제품의 종류가 1만개이고,
하루에 1000만 명이 여러분의 쇼핑몰을 이용한다고 상상해보세요.
제품들 간의 연관성을 사람이 찾아내는 것은
정말 어려운 일이겠죠?
이것을 기계가 대신해줄 수 있다면 얼마나 좋을까요?
이때 우리를 구원해줄 수 있는 도구가 바로 연관규칙입니다.
쇼핑 추천, 음악 추천, 영화 추천, 검색어 추천, 동영상 추천…..
추천이 이름 뒤에 붙은 것들은 거의 다 연관규칙을
이용한 것이라고 보면 됩니다.
정말 쓸 일이 많겠죠?
잘 생각해보면 연관규칙은 서로 관련이 있는 특성(열)을 찾아주는
머신러닝의 기법이라는 것을 알 수 있습니다.
기억합시다.
- 관측치(행)를 그룹핑 해주는 것 군집화
- 특성(열)을 그룹핑 해주는 것 연관규칙
비지도 학습이란?
지금까지 비지도 학습에 해당되는 방법론들을 살펴봤습니다.
비지도 학습과 지도 학습의 차이점을 비교해 봅시다.
비지도학습은 탐험적입니다.
탐험이 미지의 세계를 파악하는 것이듯,
데이터들의 성격을 파악하는 것이 목적입니다.
독립변수와 종속변수의 구분이 중요하지 않습니다.
데이터만 있으면 됩니다.
지도학습은 역사적입니다.
과거의 원인과 결과를 바탕으로 결과를
모르는 원인이 발생했을 때
그것은 어떤 결과를 초래할 것인가를
추측하는 것이 목적입니다.
그래서 원인인 독립변수와 결과인
종속변수가 꼭 필요합니다.
조금 엉뚱한 이야기입니다만,
‘나는 누구인가?’를 파악하는 좋은 방법이 있습니다.
바로 내가 하는 말들의 빈도수를 정리 정돈해서
조사해보는 것입니다.
긍정적인 단어를 많이 사용했다면
나는 긍정적인 사람일 가능성이 높습니다.
집안의 살림들을 정리 정돈 해보는 것도
나를 이해하는 좋은 방법입니다.
정리를 해보니까
컴퓨터 관련된 장비가 많이 나왔다면
컴퓨터를 많이 사용하는 사람이라는 것을
짐작할 수 있습니다.
또는 물건을 잘 못 버리는 사람이라는 것도
짐작할 수 있습니다.
이렇듯 정리정돈을 해보면 성질을 파악할 수 있습니다.
비지도 학습을 한마디로 정의하는 것은
어려운 일입니다.
다만, 군집화와 연관규칙만을 놓고 봤을 때
데이터의 성격을 파악하는 작업은
결국, 비슷한 것은 모으고 다른 것은 떨어뜨리는 것입니다.
즉, 그룹핑을 하는 것입니다.
비지도 학습은 데이터를 정리 정돈해서
그 표에 담긴 데이터의 성격을 파악하는 것이
중요한 목적이라고 할 수 있습니다.
변환은 무엇일까요?
다 알아버리면 아쉽잖아요.
탐욕스러운 수업이 되지 않기 위해서
여러분을 위한 까치밥으로 남겨두겠습니다.
축하합니다.
비지도학습까지 아는 사람이 되었네요.