일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 구현
- AI Tech
- 백엔드
- 서버
- 웹 프로그래밍
- Customer service 구현
- 서블릿
- 레벨2
- AI Tech 4기
- QNA 봇
- BOJ
- 대회
- cs50
- 프로그래머스
- 2021 Dev-matching 웹 백엔드 개발자
- sts
- 백준
- 네이버
- P Stage
- 부스트캠프
- 파이썬
- Naver boostcamp
- 4기
- 프로그래밍
- 장고
- Django
- Naver boostcourse
- 풀스택
- boostcourse
- 웹
- Today
- Total
daniel7481의 개발일지
2022년 NH투자증권 빅데이터 경진대회 | 데이터, 문화가 되다 본문
https://aifactory.space/competition/detail/2126
2022년 NH투자증권 빅데이터 경진대회 | 데이터, 문화가 되다
aifactory.space
AI Tech을 진행하면서 같은 팀원과 경진대회를 준비했다. Data 쪽 처음 프로젝트인지라 부담도 되고 걱정도 많이 되었다. 결론적으로 말하자면 대회에 참가할 수는 없었다. 우리가 옳다고 믿는 가설이 결국에는 참이 아니었기에, 다시 가설을 세우고 증명할 시간적 여유가 되지 않아 참여할 수는 없었다. 그러나 작성해놓지 않으면 그냥 사라지는 것이기 때문에 실패한 이유와 개선할 점 등을 정리 해보려고 한다.
준비
먼저 데이터에 대해서 자세히는 말해줄 수는 없지만 고객 정보/해외 국내 주식 거래내역/ 계좌 정보 등이 있었다. 정제되어 있지는 않은 데이터여서 전처리에 시간이 상당량 쓰였다. 우리 팀이 집중한 포인트는 주식의 시장민감도 Beta였다. 모든 종목에 대하여 시장민감도를 계산한 후, 각 고객이 거래 내역을 토대로 그 사람의 투자 성향을 알아낼 수 있다고 믿었고, 이 투자 성향을 바탕으로 연령대 / 투자 수익 / 자산 규모 등의 피처를 통해 이 사람의 투자 성향을 예측할 수 있다고 믿었다.
역활
먼저 준비 단계에서 다양한 가설들을 찾아보았다. 무작정 가설을 세울 수 없었기에 이미 선행 연구가 되어 입증된 가설들을 들고 오는 것이 내 역활이었다. 이를 위해 다양한 기관의 논문들을 읽어봤는데, 주로 참고한 곳이 자본시장연구원이었다. https://www.kcmi.re.kr/
자본시장연구원
최고의 자본시장 Think Tank 자본시장연구원 홈페이지를 방문해주신 것을 환영합니다. 보고서, 정기간행물, 세미나 · 영상자료 등을 제공합니다.
www.kcmi.re.kr
그 중 코로나19 국면의 개인투자자: 투자행태와 투자성과를 많이 참고하였다. 노션에 따로 정리해둔 곳이 있다.
https://flame-catfish-71e.notion.site/_-12214065d7ce4372944cf4a0596ac112
자료조사 _ 손용찬
코로나19를 기점으로, 인구 구성비를 감안할 때 주식 직접 투자는 30~40대가 가장 활발하다.
flame-catfish-71e.notion.site
이를 통해 알아낸 것은 다음과 같다.
30대, 남성, 소액투자자가 60대 이상, 여성, 고액 투자자보다 더 투기적인 성격을 띈다.
최초계좌개설일에 따라 투자 경험이 부족한 투자자를 나누고, 이들이 친숙한 주식(대형주)를 살 가능성이 높다라는 가정을 세울 수 있다
연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 보유 종목 수가 적고, 이를 통해 위험성이 높은 투자를 하는 경향이 있다는 가설을 세울 수 있다.
연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 거래회전율이 높다 == 보유기간이 적다, 자주 거래를 함으로써 거래 수수료가 많이 발생된다.
연령대가 낮을수록, 남성일수록, 투자자산 규모가 작을수록 일중거래 비중이 높다.
투자 자산이 클수록 높은 수익률을 보이는 경향이 있고, 연령대가 높을수록 거래비용 차감 전 수익률은 낮으나, 연령대가 높을수록 단기 매매를 하는 경향이 있어 거래 비용 차감 후 수익률은 20대가 가장 적다.
etc..
무엇보다 각 고객의 위험성향을 알아내야 하는데, 이 지표를 beta를 통해 표현하려고 하였다. beta란 시장민감률로, 이 종목이 시장 대비 변동률을 나타낼 수 있다. 1은 시장과 동일하고, 1보다 큰 값은 시장 대비 변동률이 크며, 0보다 작을 시에는 시장을 역행하는 종목(인버스)이다.
이를 위해 KOSPI, KOSDAQ, S&P500 등의 변동률을 가져오고, 국내 주식/ 미국 주식 종목 별 수익률을 가져온 다음 pd.cov로 베타를 구하였다. 이 과정에서 전처리하는 데에 시간을 많이 빼앗겼던 것 같다. 처음인지라 스킬도 부족했고, 많이 헤멨다.
이제 각 고객별 위험성향을 구입한 종목에 대하여 (종목을 구입한 양)/(전체 거래 내역량) * (종목의 베타값)해준 후 더해줘서 이 사람의 투자 성향을 알아냈다.
여기서 문제가 발생하는데, 우리가 예상하지 못한 점은 종목의 수익률이 대부분 1로 수렴한다는 사실이었다. 몇 개의 이상치를 제외하고는 전부 0, 1에 근사했다. 이러한 베타 값으로는 고객별 차이점을 알아낼 수 없었다. 연령대, 자산 규모 별로 시각화를 하여도 전부 비슷한 값을 출력하게 되었다. Beta라는 데이터에 대한 성질을 고려하지 못한 결과였다.
AI Tech을 진행하면서 준비한 거라 다 엎고 처음부터 할 여유는 없었다. 이렇게 프로젝트가 끝나게 되는데, 그 전에 모두 모여서 무엇이 문제였는지, 어떻게 개선할 수 있는지를 공유하였다.
프로젝트를 마무리할 수 없었다는 점이 너무나 아쉽지만 남는 것이 없지 않다. 이 실패가 앞으로의 여정에 도움이 될 거라고 믿어 의심치 않는다.
'Project' 카테고리의 다른 글
STS를 활용한 간단한 QNA봇 만들기 (1) | 2022.11.09 |
---|---|
[AI Tech P Stage] Semantic Text Similarity 대회 (0) | 2022.11.03 |