HITL(Human-in-the-Loop)의 데이터 솔루션 기획 (2)
이번 글부터는 실제적인 데이터 분석 과정을 정리해보려고 합니다.
<비즈니스 문제 정의와 분석 목적> 도출을 위한 사전 탐색의 과정을 진행해보겠습니다.
그리고 시작할 때에는 예상하지 못했지만 이 과정은 생각보다 더 변동성이 컸습니다.
오르락 내리락 주가처럼 움직이는 내 서비스 정의...
먼저 이 과정을 '프로그래밍 도구'를 사용하지 않고
AI 툴을 사용해서, 개념에만 입각해
쉽게 할 수 있는 방향으로 진행하기로 했습니다.
AI 코워킹을 하면서 느끼는 건 시키는 건 참 쉽습니다.
그래서 수행Action은 빠르고 쉽게 진행되지만,
이 결과를 바탕으로 그 다음의 방향을 설정하는 사고Thinking는 그리 쉽지가 않습니다.
AI를 활용하게 되면 분석을 위해 R이나 파이썬 등의 통계 코딩을 수행하지 않아도 돼서
정말 일이 쉬워지기(더 정확히는 빨라지기) 때문에,
저는 앞으로의 실무에서도 이 방향이 대세가 될 것이라고 확신합니다.
+
후일담으로 덧붙이자면
AI와 코워킹하게 되면 양측의 방향에서 모두 편향을 줄이는 일이 핵심이 됩니다.
일단은 사람으로써 '내가 믿고 싶은 것'을 AI가 방지해줍니다.
더불어 AI가 내놓은 교묘한 할루시네이션을 요리조리 피해 재판단해야 합니다.
모델링을 하면서 결과적으로 종합해보면
AI와의 코워킹은 아슬아슬한 균형점을 찾아내는 것 같았습니다.
내가 '그럴 것이다'라고 믿고 있는 확신을 AI가 뒤집을 때,
그리고 AI가 자신있게 내놓는 그럴싸한 답변을 내가 뒤집어야 할 때
그 사이에서의 균형점을 찾는 것.
그것이 AI 활용 역량의 초점 같습니다.
그리고 이렇게 되면 결국은 '개념의 이해'와 '해석'에 초점을 두는 쪽으로
데이터 분석 역량이 완전히 재편될 것입니다.
이제 무겁고 어두운(?) 이야기를 벗어나서 조금 재밌는 톤으로 가볼까요?
이쯤에서는 제 프로젝트에 대한 설명이 안곁들여질 수가 없는데요,
일단 제가 알고 싶은 도메인 분야는 바로 '펫'입니다.
그 중에서도 '반려묘를 기르는 집사' 분들의 데이터를 분석하고자 합니다.
이 프로젝트는 제 실제 일상 경험으로부터 시작되었습니다.
저는 약 4년 전부터 고양이 주인님을 모시고 있습니다.
모든 반려동물이 그렇겠지만,
사실상 동물은 사람과 교감은 할 수 있지만 사람의 말로 소통할 수는 없다는 점에서,
어려움이 생겨납니다.
특히 고양이의 경우에는 매우 예측되지 않는 돌발 행동을 보일 때가 많습니다.
이를 테면 이런 겁니다.
평소와 동일하게 쓰다듬어주는데 과하게 화를 낸다거나
평소와 다름없는 회사의 사료를 먹이는데 구토를 한다거나 하는 일이 종종 발생합니다.
이럴 때 고양님에게 "왜그러시나요~?"하면 고양님은 "하악!"또는 "아아-옹" 정도로 대답하시기 때문에
집사는 갑자기 탐정이 되어 모든 촉을 발동하게 됩니다.
이럴 때 거의 모든 집사들이 다음 중 하나 또는 여러개의 방법을 택할 수 밖에 없습니다.
1) 평소의 생활 패턴이나 우리 고양이의 성격 등으로 추측해본다.
2) 웹 검색을 통해 가능성을 탐색한다.
3) 병원에 데려가본다.
1,2의 방법은 여전히 추측을 남길 뿐이고, 숙련된 집사는 이후 여러번 동일한 상황과 경험을 쌓아가면서
'아 그런 것도 같다'라는 확신을 갖게 되지만, 그것은 '사실'과는 동떨어져 있습니다.
개인적으로는 AI와의 모델링에서 내가 가지고 있었던 확신이 정답은 아닐 수 있다는
사실을 인정하기에 어려움이 있었습니다.
어쩌겠습니까? 데이터 결과가 그렇다는데...연구자가 과학을 믿어야...
반려동물의 경우에는 세부 종 종류부터, 개체별 성격 그리고 거주의 환경까지
정말 케이스 바이 케이스로 너무나도 다양하기 때문에,
다른 보호자들과 의견 교류를 해봐도 딱히 결론이 나지 않는 경우가 많습니다.
(제일 처음 이야기를 건낼 때부터 어? 우리 집은 안그런데 로 시작되기 십상)
병원에 데려가는 3의 방법은 보다 전문가를 찾기 위한 임시방편이지만
현실적인 어려움이 있는 것이
동물병원은 매우 '치료적' 행위에 초점을 맞추기 때문에 단순히 '궁금하다' 수준으로
찾아가게 되면 '이정도는 괜찮아요~'라는 답을 듣는 경우가 대다수 입니다.
그래서, 고양이 집사를 위한 맞춤형 지식인이 필요하다!
라는 것이 분석의 출발 아이디어가 되었습니다.
이제부터는 약간의 서비스 기획의 영역이 됩니다.
태초에.. 이런 서비스 구상이 있었습니다.
고양이 집사들의 궁금증을 풀어주는 데이터 분석 솔루션
: 우리 고양이와 관련된 정보를 트래킹(기록)하면 알고자 하는 문제(혹은 궁금증)에 대해
가장 높은 상관,연관의 요인을 분석해드리는 것입니다.
이제 이 아주 '큰' 문제 정의를 세밀하게 좁혀나가야 합니다.
현재 대략적인 이상점은 그려지지만
여전히 집사가 알고 싶은 '우리 고양이와 관련된 정보'는 무엇인가? 가
명확하게 머릿 속에 그려지진 않습니다.
우리 고양이와 관련된 정보로 집사가 알고 싶은 정보는 정말 다양하게 많습니다.
이 정보를 좁혀나가지 않으면 좋은 분석 모델이 수립되기 어렵습니다.
일단 저는 '고양이와 관련한 정보'라는 큰 팩터를
(1) 질병 정보 (2) 습관 정보, 이렇게 두 가지 속성으로 나눌 수 있다고 생각했습니다.
그리고 속성에 따라 서비스의 초점이 달라질 수 있습니다.
먼저, 질병에 대한 정보를 알려주는 데이터 분석 앱이라면 후속 지원으로써
병원 연계 또는 모델의 구축에 수의학과 관련한 전문 정보들이 필수적으로 요구됩니다.
수의학은 이미 밝혀진 선험적인 인과 결과를 기반으로 하기 때문에
모델에 있어서도 지도 학습 모델이 주효할 수 있습니다.
습관 정보를 알려주는 데이터 분석 앱이라면 어떤 문제를 명확하게 해결해준다기 보다는
집사의 편의성과 사용의 편리성, 언제든지 묻고 답하는 것이 쉽고 빠르게 가능한,
사용자 경험에 초점을 두는 것이 좋을 것이고,
모델의 구축에 있어서도, 비지도 학습 모델이 주효할 수 있습니다.
이처럼, 데이터 솔루션을 기획할 때에도
데이터 분석과 연결되어
목적이 무엇인가에 따라 어떤 모델을 사용할 것이며
어떤 결과를 도출해낼 것인가가 달라지기 때문에
목적의 세부 정의가 매우매우 중요합니다.
그렇다면, 이제
구체적으로 '어떤 지식'을 제공할 수 있을 것인가 그리고
그 지식을 '어떻게' 제공할 수 있을 것인가를 찾아보겠습니다.
이를 알아내기 위해 데이터 사전 분석을 하고자 하는 것입니다.
1-1. 데이터 수집의 방향 세우기
일단 집사가 알고 싶어하는 우리 고양이와 관련된 정보에는 어떤 것들이 있고,
어떤 것을 가장 궁금해하는지에 대한 정보를 찾아보았습니다.
집사들의 '날것의 궁금증(Needs)'과 '진짜 고민(Pain Points)'을 파악하려면,
정제되지 않은 현장의 목소리를 수집해야 합니다.
이를 위해 일단 저는 '텍스트 마이닝'으로 시작해보기로 하였습니다.
한국의 반려동물 문화는 대형 커뮤니티(카페)를 중심으로 형성되어 있습니다.
이곳의 게시글 제목은 살아있는 '질문 데이터'가 될 수 있습니다.
집사들이 자주 오가는 커뮤니티에서 '질문 관련' 글의 제목을 스크래핑하였습니다.
수집 방법은 크롬에서 확장 프로그램으로 제공되는 Listly 노코드 툴을 활용했습니다.
손실이나 오류, 편향을 고려하면 2~3천개 이상은 원천 추출해야 하지만,
이 탐색의 목표는 인사이트를 얻는 것이기 때문에
필요한 데이터의 양을 정제된 데이터로 최소 500개 이상으로 잡았습니다.
이에 따라 1차적으로 아주 적은 양만 가지고 데이터의 형태나 추출 가능한 데이터 셋을 확인했습니다.
1-2. 데이터 수집하기
데이터의 수집부터 데이터 분석의 시작이 됩니다.
먼저, 데이터를 눈으로 보며 질적 검토를 꼭 수행해야 합니다.
저는 처음에 잡은 커뮤니티 게시글이 대상 데이터 샘플로 적합하지 않다는 결론을 내렸습니다.
1) 제 분석의 목적인 '고양이를 기르면서 생기는 궁금증' 외에도 '입양 홍보' 관련 글이 함께 섞여 올라와
애초에 데이터가 될 수 없는 데이터들이 많았습니다.
2) 매우 많은 게시글이 동시다발적으로 올라와 시간 단위 글이 우선 순위에 많았기 때문에
일자별 정렬이 어려웠습니다.
3) 이모티콘 등 텍스트의 내용과는 무관한 정보들이 섞여있고, 중복 글도 다수입니다.
이 이유로 저는 커뮤니티 게시글이 아닌, 보다 목적에 적확한 데이터 출처를 다시 찾기로 했습니다.
대형 검색 포털의 지식 코너를 선정하였습니다.
원하는 데이터가 카테고리별로 분명하게 묶이면서 질문이 이뤄지는 곳으로
분석의 목적에 적합했기 때문입니다.
그리고 나서 1차적으로 수집된 데이터를
ai 툴 중에서도 제미나이에게 전달했습니다.
제미나이에게 전달하면 좋은 점은 바로
일종의 전처리와 함께, 구글 Docs Sheets로의 내보내기가 가능하다는 점입니다.
전처리를 위해서는 데이터 분석의 목적 등을 먼저 상세하게 밝히는 프롬프팅이 필요합니다.
(이 부분은 본 포스팅의 주 내용은 아니기 때문에 일단 생략합니다.)
이렇게 해서 간단하게, AI 가 정제해준 총 553개의, 11월 26일부터 12월 29일까지 약 한 달 동안의
깔끔한 데이터셋을 얻었습니다.
그리고
마찬가지로 제미나이에서 구글 Sheets가 연동되기에
구글 Sheets 에서도 제미나이 연동이 됩니다.
그러면 이 데이터셋을 통해서 탐색적 데이터 분석 (Exploratory Data Anlaysis)를 해보겠습니다.
EDA는 다음의 순서로 진행하였습니다.
1. 데이터의 형태와 척도가 분석에 알맞게 되어 있는지 확인한다.
2. 데이터의 평균, 분산, 분포, 패턴 등의 확인을 통해 데이터 특성을 파악한다.
3. 데이터의 결측값이나 이상치 파악 및 보완을 한다.
4. 변수 간의 관계성을 파악한다.
5. 분석 목적과 방향성을 점검 및 보정한다.
EDA의 결과는 다음의 포스팅에서 계속 다뤄보겠습니다.
이 포스팅의 바탕이 된 기본 개념
1. 데이터 분석의 3대 목적 (기획의 방향)
데이터를 다루는 목적은 결국 다음 세 가지 중 하나로 귀결되며
기획자는 분석을 시작하기 전, 우리가 어느 단계에 집중할지 결정해야 합니다.
기술통계 (Description): 수집된 데이터의 경향을 요약하여 현재 서비스 현황을 파악함.
관계분석 (Explanation): 관찰한 대상(사용자 행동)의 인과관계나 성질을 설명함.
예측분석 (Prediction): 수립된 방정식을 통해 새로 유입될 데이터나 미래 행동을 예측함.
2. 현실과 수학 세계의 가교: '확률 분포'
포착하고자 하는 현상(현실)을
기계학습이나 알고리즘(수학)에 태우기 위해서는 '모형화' 과정이 필수적입니다.
모집단 = 확률 분포: 우리가 알고 싶은 사용자 전체의 잠재적 성질.
표본 = 실현값: 현실 세계에서 데이터로 추출되어 우리 눈에 보이는 기록들.
의의: 현실을 수학적 확률 분포로 치환할 때 비로소 수학적 계량과 예측이 가능해집니다.
3. 추론 통계의 핵심: '샘플링(Sampling)'과 '오차'
전수조사가 불가능한 서비스 환경에서 우리가 보는 데이터는 결국 표본일 뿐입니다.
샘플링: 모집단의 성질을 추정하기 위해 표본을 추출하는 필수적인 실험 과정.
오차의 중요성: 표본은 모집단과 완벽히 일치할 수 없으므로, 데이터의 값 자체보다
'오차 범위'를 이해하는 것이 분석의 신뢰도를 결정합니다.
4. 데이터의 '퍼짐'을 읽는 도구 (EDA의 기초)
데이터의 평균값만으로는 서비스의 이면을 다 볼 수 없습니다.
데이터가 어떻게 흩어져 있는지를 평가해야 합니다.
분산과 표준편차: 각 데이터가 평균으로부터 얼마나 떨어져 있는지(이질성)를 측정하는 척도.
시각화의 필요성:
수치로만 보이지 않는 데이터의 분포 형태를 파악하기 위해 히스토그램, 바이올린 플롯, 스웜 플롯 등의
시각화 도구가 필요함.