"숫자를 언어로 번역하다"
지난 글에서 K-Means를 통해 500개의 주식을 8개의 그룹(0~7번)으로 군집화하는 데 성공했습니다.
하지만 여기서 프로젝트는 끝나지 않습니다. 오히려 가장 어려운 문제가 남았죠.
"그래서 0번 그룹이 뭔데?"
AI는 그저 수학적으로 거리가 가까운 종목들을 묶었을 뿐, 이 그룹이 가치주인지 성장주인지 설명하지 못합니다. 이번 글에서는 AI가 던져준 차가운 숫자 덩어리에, 인간이 어떻게 의미(Context)를 부여했는지 그 과정을 다룹니다.
AI는 "비슷하다"고만 했다
train_model.py가 수행한 일은 명확합니다. PER, PBR, ROE, 부채비율 등 정량적 지표를 보고 "이 주식들은 서로 성향이 비슷해"라고 묶어준 것입니다.

결과적으로 8개의 군집이 생겼습니다.
하지만 AI에게 "이게 왜 0번 그룹이야?"라고 물으면 대답하지 못합니다.
AI 입장에서는 그저 벡터 공간에서의 좌표가 가까웠을 뿐이니까요.
여기서부터는 인간의 영역입니다.
라벨링(Labeling)인가, 태깅(Tagging)인가
이 단계에서 고민이 생겼습니다. 이 작업을 뭐라고 불러야 할까요?
엄밀히 말하면 이 과정은 비지도 학습(Unsupervised Learning) 결과인 군집(Cluster)에 정답 이름표를 붙여주는 것이니 클러스터 라벨링(Cluster Labeling)이 학술적으로 정확한 표현입니다.
하지만 Stockit 서비스 관점에서는 조금 달랐습니다. 사용자에게 "너는 1번 그룹이야"라고 하는 것보다, "너는 #가치주 #고배당 태그가 어울려"라고 보여주는 것이 훨씬 직관적이기 때문입니다.
그래서 저는 개발 코드명을 group_tagging.py로 정하고, 이 과정을 태깅(Tagging)이라고 부르기로 했습니다. AI가 나눈 그룹에, 사용자가 이해하기 쉬운 '네임택'을 달아주는 작업인 셈이죠.
숫자를 언어로 번역하다
저는 각 그룹의 평균 재무 지표를 뜯어보고 다음과 같이 해석했습니다.
PER과 PBR이 낮고 부채비율도 낮다면? -> 싸고 안전하다 -> [초저평가 가치주]
ROE가 높고 영업이익률이 좋다면? -> 돈을 잘 번다 -> [고효율 우량주]
PER은 높지만 매출 성장률이 압도적이라면? -> 비싸지만 기대된다 -> [고성장 기대주]

이 과정을 통해 AI의 숫자(Group 6의 정보)가 사람의 언어(초저평가 가치주)로 번역되었습니다.

더 나아가, 주식을 처음 접하는 사용자(주린이)들에게 시가총액, PER 같은 용어는 여전히 어렵습니다.
그래서 더 직관적인 해석을 덧붙였습니다.

[대박 아니면 쪽박 주식], [숨겨진 보물 우량주] 같은 표현이라면 누구나 쉽게 이해할 수 있을 테니까요.
설명의 마지막 형태 ‘페르소나’
이렇게 해서 AI가 만든 숫자 덩어리는 사람이 이해할 수 있는 언어가 되었습니다.
하지만 아직 한 단계가 더 남아 있습니다.
주식쌤은 AI가 만든 판단을 누구든 이해할 수 있게 설명해주는 서비스입니다.
그래서 우리는 ‘가치주 성향입니다’라는 문장 대신, 하나의 인물로 설명하기로 했습니다.
숫자도 아니고, 지표도 아닌, 사람의 언어로 된 투자 성향.
그것이 바로 ‘페르소나(Persona)’ 였습니다.

다음글에서는 "투자 성향을 캐릭터로 만들다: 페르소나 매칭 설계"에 대해 다뤄보겠습니다.
'모의투자' 카테고리의 다른 글
| ~세상의 모든 주식을 분석하다 : 조회에서 예측으로~ 스톡잇! 개발기 #7 (0) | 2025.12.26 |
|---|---|
| ~투자 성향을 캐릭터로 만들다: 페르소나 매칭 설계~ 스톡잇! 개발기 #6 (0) | 2025.12.26 |
| ~숫자만 보고 주식을 나누다: K-means 클러스터링 과정~ 스톡잇! 개발기 #4 (0) | 2025.12.25 |
| ~학습에 적합한 형태로 변환하다 : 전처리 과정~ 스톡잇! 개발기 #3 (0) | 2025.12.18 |
| ~정답이 없는 주식 분류 문제, 왜 클러스터링을 선택했을까?~ 스톡잇! 개발기 #2 (0) | 2025.12.18 |