비지도학습(Unsupervised Learning)이란 지난 번 포스팅했던 지도학습과 마찬가지로 머신러닝 기법을 적용할 때 이용되는 학습 방법 중 하나이다. 지도학습을 활용하는 알고리즘에 학습시키는 데이터에는 '정답', 즉 target이 포함되어 있지만 비지도학습을 적용하는 알고리즘에서는 대체로 target이 포함되어 있지 않다는 것이 특징이다. 그래서 학습 방법의 이름에서 알 수 있듯이 지도학습은 'target이 이것이니 이렇게 지도해줄게'라고 친절하게 학습시키는 반면, 비지도학습은 정답이 존재하지 않아 주어진 데이터 셋으로부터 무엇을 할지 알기가 어렵다. 단지 주어진 데이터 셋으로부터 어떠한 구조(structure)를 찾을 수 있을까 알고리즘에게 물어볼 뿐이다.
아무것도 모를 당시에는 '정답이 주어지는 지도학습이 여러모로 더 좋아 보이는데 굳이 왜 비지도학습을 써야 해?' 라고 생각했는데, 정말 멍청한 생각이었다. 현실 속에서는 정답이 주어지지 않는다는 것을 간과한 것이다. 나의 본전공이 경영학이니까 간단하게 마케팅과 관련된 예시를 들어보며 비지도학습을 활용하는 클러스터링 알고리즘을 겉핥기해보자.
A 기업은 소셜커머스 서비스를 제공하고 있고 고객들의 각기 다른 니즈를 고려하여 App의 첫 화면에는 해당 고객이 원할 만한 상품을 보여주고자 한다고 가정하자. 해당 기업의 데이터베이스에는 고객들의 나이나 성별 거주지 등의 기본 정보와 구매 이력이나 구매 패턴 등이 저장되어 있을 것이다. A기업은 해당 정보들을 활용하여 특정 고객들을 군집화(clustering)하고, 군집화한 것을 기반으로 하여 맞춤형 UI를 제공해야 할 것이다. 경영학에서는 이러한 군집화를 STP전략 중 시장세분화(Segmentation)라고 부르며, 성공의 기초가 되는 핵심적인 마케팅 전략 중 하나이다. 최적의 세분화가 이루어질 경우, 고객들의 구매율을 증가시킬 수 있기 때문이다!
하지만 어느 고객을 어느 군집으로 포함시키느냐는 아주 어려운 문제이다. 1차원적으로 성별이나 거주지 별로 묶어 군집화하는 방법부터 해당 고객들이 주로 구매하는 시간대나 요일 등을 고려하는 방법, 구매하는 물품의 가격대나 카테고리를 고려하여 군집화하는 방법도 있을 것이다. 혹은 고객 집단을 더욱 수준 높은 방식으로 세분화하기 위해 위에 언급한 모든 변수들과 그 외의 추가적인 변수들까지 함께 고려할 수도 있다. 마케팅 담당자는 이러한 고민을 떠안고 R이나 SPSS나 SAS 등의 통계 프로그램을 활용하여 데이터베이스 내 데이터를 이리 만져보고 저리 만져보며 최적의 클러스터링을 시도할 것이다. 만약 마케팅 담당자가 머신러닝을 공부했다면 비지도학습을 활용하는 클러스터링 알고리즘을 활용하여 보다 간단하지만 효율적이고, 심지어는 인간이 고려하지 못했을 법한 변수들의 중요성까지 체크하여 클러스터링에 도움을 얻을 수 있다. 비단 머신러닝뿐만 아니고 딥러닝도 마찬가지다. (하지만 결코 AI를 맹목적으로 믿어서는 안 된다.)
위 사례에서는 고객 1부터 고객 n까지 각 고객의 데이터가 있을 뿐, 그 고객이 어느 집단에 속해질 것이라는 target은 존재하지 않는다. 클러스터링 알고리즘은
'고객 2와 고객 4, 고객 7, 고객 16은 30대 초반의 남성이며 주로 주말 새벽에 전자기기를 구매하네. 평일에는 일을 하다가 스트레스를 충동구매로 해결하는 편일 수도 있겠어. 오, 그리고 앱 내에서 검색한 로그를 보니 새롭게 출시되는 전자기기들을 위주로 보고, 구매하는 물품들의 가격이 들쑥날쑥한 것을 보니 가격은 크게 고려하지 않는 편이군. 이 고객들을 '가격은 크게 고려하지 않는 주말 충동 구매형 얼리어답터 고객군'으로 포함시켜야겠다.'
라고 판단하며 군집을 임의로 형성하여 비슷한 특성을 가진 사람들을 묶게 되는 것이다. (예시는 너무나도 개인적인 생각일 뿐, 이 글을 보는 분들은 알고리즘의 컨셉만 느꼈으면 한다.)
위에서 언급한 클러스터링 알고리즘은 다양한 클러스터링 알고리즘 중 하나의 예시일 뿐이다. 클러스터링 알고리즘은 데이터 특성과 클러스터링의 목적에 따라 다양하게 존재한다. 또한 비지도학습은 클러스터링에만 쓰이지 않고 너무 많은 차원이나 요인들을 공통된 성질로 묶는 요인분석(Factor Analysis)에도 자주 쓰인다. 클러스터링과 상당히 비슷해 보이지만 column을 공통된 성질로 묶는 요인분석과 row를 공통된 성질로 묶는 군집분석에는 큰 차이점이 존재한다. TMI지만 실제로 지난 학기 <데이터애널리틱스> 강의 기말고사를 준비하며 가장 애를 먹었던 것이 요인분석 중 주성분분석(PCA, Principal Component Analysis)과 군집분석(Clustering Analysis)이었다. 공통된 성질의 요인이라고 묶인 것들이 대체 어떤 공통점을 가지고 있고, 공통된 특성을 가진 군집들이라고 해서 봤더니 공통된 특성을 끼워 맞춰야 하는 곤욕을 치렀다. 그건 결코 내가 원했던 '근거 있는 의사결정'이 아니었다.
올해 통계학과 선형대수학, 그리고 머신러닝과 딥러닝에 대해 학습하고 기본 실력을 키워 힘들어했던 부분을 해결해나가고 싶다, 꼭!
source :
1. Andrew Ng <Machine Learning> - Introduction - "Unsupervised Learning", Coursera
2. 한국외국어대학교 2019년도 2학기 경영학과 강의 中 박만웅 강사님의 <데이터애널리틱스> 강의 교안
'DS > Coursera' 카테고리의 다른 글
비용함수(Cost Function) #1 (0) | 2020.02.14 |
---|---|
지도학습(Supervised Learning)에 대한 이해 (0) | 2020.02.11 |
머신러닝에 대한 정의 (Maching Learning Definition) (0) | 2020.02.10 |