-
[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기초데이터.xls0.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로 구현해 보도록 하겠다.
결론: 이과생이면 이 책 잼날 듯
반응형'기초지식 > ISL with R(통계학)' 카테고리의 다른 글
[3장]ISL with R : 단순선형회귀 실습 in R(환율을 통한 주가예측) (0) 2022.10.21 [3장]ISL with R : 선형 회귀계수 계산 (0) 2022.08.15 [3장]ISL with R : 선형 회귀분석 기초 (0) 2022.08.14 [2장] ISL with R : KNN 알고리즘 실습해보기 in R (0) 2021.01.02 [1장] ISL with R 소개 (0) 2020.08.28