ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2장] ISL with R : KNN 알고리즘 실습해보기
    기초지식/ISL with R(통계학) 2021. 1. 2. 00:01
    반응형

    1, 들어가며 

      ISL with R 2장에서는 Statistical Learning 상의 주요 개념 및 특징 그리고 주요 방법론을 설명해 준다. 우리는 우리가 가진 자료로 f 라는 관계를 추정하게 되고 이를 바탕으로 Y 라는 결과를 추정하게 된다. 추정이 들어갔다고 이 관계식에 각각 "^" 이라는 모자가 붙었다.  

    식1:관계식

      중요한 것은 이 f 라는 관계를 추정하는 다양한 방법들이 데이터 적합도, 해석 가능한 정도 등에 따라서 다양한 성격을 가진다는 것이다. 이하에서는 이 장에서 맛보기로 소개한 다양한 방법 중 KNN 알고리즘(최근접 이웃 알고리즘)으로 삼성전자 주가의 방향성을 맞춰보겠다. 

    2. KNN 알고리즘으로 삼성전자 주가 분석 

    1) 기초자료: 트레이닝 데이터 설정

      먼저 올해 9 월 ~ 12월까지 중 임의로 6개의 날짜를 찍어서 원달러 환율, 코스피 지수, 국고채 3년 수익률 그리고 삼성전자 주가를 정리해 보았다. 

    201227_KNN기초데이터.xls
    0.03MB
    표1: 기초데이터

      데이터가 표 1과 같이 정리할 수 있다. 이하에서 실습해 볼 것은 환율, 코스피, 국고채 3년 금리가 모두 변화가 없을 때, 삼성전자 주식이 과연 전일대비 상승이냐? 하락이냐? 동일할 것이냐? 를 판단하는 것이다.

    2) 대상의 설정과 유클리드 거리: 테스트 데이터 설정

      우리가 KNN 알고리즘을 써서 구하고 싶은 것은 USD/KRW 환율, 코스피지수, 국고채 3년 수익률의 전일 대비 변화율이 0 일 때 삼성의 주가는 어떻게 되는지이다. 즉, 위 표를 바탕으로 생각해 보면, 아래 그림과 같이 0%, 0%, 0% 일 때,

    표2: 테스트 대상 추가

    삼성전자의 주가는 상승, 하락, 동일 중 무엇일까? 가 KNN 알고리즘을 통해서 얻고자 하는 결과가 된다. KNN 알고리즘에서는 이를 테스트 대상이 되는 0%, 0%, 0% 라는 지점과 가장 가까운 지점 ( 2020-09-29 ~ 2020-12-18까지 제시된 6개 의 데이터 중에서 )을 찾아서 그 지점에서 삼성이 상승인지, 하락인지, 동일한지 를 보고 0%, 0%, 0% 라는 지점도 이 지점과 똑같은 ( 혹은 근사한) 결과를 가질 것이라고 판단한다. 이때 K=1이라면 가장 가까운 하나의 점만 고려할 것이고 K=2 라면 가장 가까운 점, 두 번째  가까운 점까지 고려할 것이다. 

      그럼 이 가깝고 멀고는 어떻게 판단하는가? 이 거리의 개념이 유클리드 거리이다. 좌표 (a1, a2, a3,... )과 좌표 (b1, b2, b3,... )의 거리를 구할 때 유클리드 거리를 구하면 아래와 같은데, 자세한 내용은 다른 글에서 다루도록 하겠다. 

    식2: 유클리드 거리

      이제 위 공식을 이용해서 USD/KRW 환율, 코스피지수, 국고채 3년 수익률 이 0%, 0%, 0% 인 좌표와 6개의 기초자료( 2020-09-29 ~ 2020-12-18 ) 와의 거리를 각각 구해보면 아래와 같다.

    표3: (0%, 0%, 0%) 좌표와 각 데이터간의 거리 도출

    결국 테스트 대상이 되는 점과 가장 가까운 점은 2020-09-29 일자 "동일"이라는 결과를 가진 점이다.   

    3) KNN 분석 결과 도출: K값을 무엇으로 잡느냐? 

      KNN 알고리즘에서 제일 중요한 값이 K 값이다. 대상이 되는 ( 위에서 0%, 0%, 0% 인 좌표) 지점과 몇 번째로 가까운 지점 까지를 판단 근거로 삼겠다는 의미이다. 위 표에서 K = 1 이면 가장 가까운 점인 2020-09-29 일자 데이터인 "동일"만 반영되어 "USD/KRW 환율, 코스피지수, 국고채 3년 수익률이 어제와 변화가 없다면 삼성전자 주식도 변화가 없을 것이다."는 결론을 낼 수 있을 것이다. 반면 K = 5 정도로 잡으면 5번째 가까운 데이터까지 고려한다는 의미가 된다. 즉, 위 표 3에서 가장 먼 값인 2020-12-18 일 데이터만 제외하고 나머지를 전부 고려하게 되면 삼성전자 주식은 상승할 것이라는 예측이 나온다.(상승이 4개, 동일 1개 임을 고려함)

    다음 글인 " [2장] ISL with R : KNN 알고리즘 실습해보기 in R" 에서는 위 과정을 R로 구현해 보도록 하겠다. 

     

    결론: 이과생이면 이 책 잼날 듯

    반응형
Designed by Tistory.