2024 NH 투자증권 빅데이터 경진대회

빅데이터 | NH | 분석 | AI | ETF | Microsoft | Tableau | 시각화 | 아이디어

  • moneyIcon 상금 : 6,300만원
  • 885명 마감

 

너의 ETF를 찾아서!

공동작성자

stroke
2024.10.10 23:02 490 조회 language

[공통된 전처리]
테이블 병합: 주식 티커코드와 etf 티커코드가 섞여 있는 테이블(df2, df4, df6, df8)은 '주식종목정보(df7)'테이블의 '주식etf구분코드'컬럼을 이용하여 etf행과 주식 데이터를 분리 후 분석을 진행하였다.
날짜 컬럼 처리: 날짜 데이터가 포함된 컬럼은 데이터타입을 datetime으로 변경하였다.

[군집화 알고리즘을 이용하여 유사한 특성을 가진 etf분류 ]
ETF 점수 정보(df3), 종목 평균/평단가 분포(df6), 일자별 종목 시세(df8) 테이블을 병합하여, 수치들에 대한 상관관계를 확인하였다. 상관관계가 높은 컬럼들을 모아, 크게 4개의 그룹을 만들고 그룹의 특성을 아우르는 용어(대중성, 안정성, 변동성, 수익성)를 선정하였다. 각 그룹에서 다른 컬럼들과 상관관계가 매우 높은 컬럼은 제거하여, 그룹당 3개의 컬럼을 선정하였다. ETF 배당 내역(df2)에서 배당주기를 기준으로 etf들을 2종류(배당주기: 월/4분기)로 구분하였고, 각각에 대해 군집화를 하였다. 군집화된 etf들이 평균적으로 어떤 특성(대중성, 안정성, 변동성, 수익성)을 보이는지 파악하였다.

[추천시스템을 기반으로 유사한 섹터 또는 산업의 etf추천]
ETF구성종목(df1)과 주식종목정보(df7) 테이블을 병합하여 특정 etf에 포함된 주식들의 정보를 파악하였다. 특정 etf에 포함된 주식들의 '보유종목비중', '섹터분류명', '산업명' 등의 정보를 리스트의 형태로 바꾸어 하나의 행으로 만들어주었다. '보유종목비중' 컬럼의 값을 기반으로 하여, 특정 etf에서 보유비중이 높은 주식에 가중치를 주었다.
CountVectorizer를 통해 특정 etf에 특정 섹터명 또는 산업명이 포함된 빈도수를 구하였다. 단어 빈도 행렬을 기반으로, 코사인 유사도를 측정하였다. 이를 통해 코사인 유사도가 높은, 즉 사용자가 입력한 etf와 유사한 섹터 또는 산업군의 etf를 추천하는 시스템을 구축하였다.

코드