우선 AI를 설계하기 전에 하고자하는 일(프로젝트, 연구 기타 등)의 목적에 맞는 방법론을 선택해야 삽질을 덜 할 수 있다. 위의 표에서 간단하게 요약한 것처럼 데이터가 범주형의 자료(라벨링)인가 혹은 수치형(관계분석)인가에 따라 분류와 수치예측으로 구분이 된다. 그러면 이제 위의 표를 기준으로 하나씩 순차적으로 살펴보자.
자, 우선 분류의 문제를 예로 들어보면 어떤 기업이 디폴트(채무불이행)할 것인가 아닌가를 분류를 하기 위해서는 모든 기업들의 디폴트한 기업 그렇지 않고 잘 버티는 기업에 대한 라벨링이 된 데이터와 이들 기업들 개별에 대한 부채비율, 유동비율, 순이익률, 매출성장률 등의 재무비율 속성 데이터가 필요하다.
반드시 그렇다고 볼 순 없지만 부채비율은 높고 유동비율은 낮은 기업들은 디폴트 그룹에 속할 확률이 높게 되고 그렇지 않은 기업들은 정상 기업에 속할 확률이 높을 것이다. 이러한 속성치들을 머신에게 학습을 수행시키게 되면 전혀 새로운 기업 즉 아직 디폴트인지 아닌지 알 수 없는 기업에 대한 정보를 입력했을 때 어느 그룹에 속할 것인가에 대한 기대치를 제공하게 된다.
수치예측을 위한 모형 및 서포트벡터 모델은 지난 포스트(2020/09/10 - [데이터마이닝 with R/인과관계분석 with R] - 신경망분석(Neural Net) with R - 이론편)에서 다루었으니 내용을 참고하면 된다. 수치예측이라는 것은 뭐 간단하게 말해서 삼성전자의 주가가 내일 어떠한 추세를 가지는지 혹은 몇 %가 변동할 것인가를 예측한다고 생각하면 쉽다.
자 여기까지는 지도학습(Supervised)에 관한 내용이다. 즉 분류를 위해서는 라벨링된 선행 데이터를 통해 학습을 수행하였고 수치예측에 있어서는 결과를 위한 원인변수에 대한 정의가 필요했었다. 하지만 이와는 정 반대로 순수하게 귀납적 추론을 통해서 데이터로부터 원칙을 찾아내는 방법이 비지도(Unsupervised)학습 방법이다.
비지도 학습법 중 강화학습을 제외하고는 R로도 구현이 용이하다. 강화학습은 주어진 환경으로부터 보상을 최대화 혹은 비용을 최소화하는 방법인데 마르코프 프로세스를 기반으로 한 환경에서 최적해를 도출하기 위해 적합한 방법이다. 강화학습에 관한 내용은 머신러닝 with Python에서 다루어보기로 하고 넘어가자. 여기서 강화학습법을 제외한 방법을 서술형 모델이라고도 한다. 이렇게 표현하는 이유는 객관식 정답지 처럼 하나의 정답만을 허용하는 것이 아니라 주어진 데이터 속에서 특정한 패턴을 발견한다든가 쌍을 이루는 데이터가 있다든가 하는 주관식에 가까운 학습법이기 때문이다. 특히나 목적이 분명한 지도학습과는 다르게 비지도학습법을 선택한 경우라면 학습의 결과에 대한 해석이 다소 난해하고 그 결과에 대한 신뢰 역시 경험적으로 얻어진 것이라 신뢰하기도 애매하다. 자주 사용되는 분야로는 쇼핑몰에서 함께 본 상품 등으로 추천되는 경우인데 이걸...주식분석에 적용하는건...딱히 떠오르지 않지만 차차 고민해보자.
그리고 마지막으로 앙상블 분석이다. 우리가 어떠한 문제에 대한 의사결정이 필요할 때 가장 먼저 하는 것은 해당 분야의 전문가에게 조언을 구하곤 한다. 이때 특정 전문가 1명의 의견만 참고하는 것보다는 여러 명의 의견을 종합해서 결정을 내리는 것이 때로는 유용할 때가 많다. 이러한 방법을 분석기법에 적용한 것을 바로 앙상블 기법이라고 하고 이 방법은 카오스의 영역에서 그 효과가 극대화되는 경향이 있다. 혼돈...그렇다. 주식시장이 카오스의 대표적인 사례인데 이건 우리의 분석 목적상 여러모로 쓸모있는 경우가 많으니 추후 좀 더 상세하게 다루어보자.
위 그림에서 정의된 모든 분석기법은 파이썬으로도 구현이 가능하고 원리는 거의 비슷하다. 다만 이번 챕터에서는 R을 이용해서 구현해볼 예정이므로 그에 걸맞는 무기를 하나 장착해보자. RWeka 를 이용해 볼건데 자바로 개발된 Weka 소프트웨어의 머신러닝 알고리즘을 R에서 접근하기 용이하게 개발된 패키지이다. 패키지 개발자 및 조금 더 어드밴스한 내용을 확인하고 싶으면 링크를 따라가 보고 우선 설치부터 해보자.
R콘솔 혹은 R-studio 에 아래의 명령어를 입력해준다.
install.packages("RWeka")
아주 쉽게 끝났다.
이제 다음 포스트부터는 R을 이용한 다양한 머신러닝을 구현해보고 이것을 주식시장에 어떻게 적용할 지 고민해보자.
'실전머신러닝' 카테고리의 다른 글
의사결정나무를 이용해서 HTS 조건검색식 만들어보기 (0) | 2020.11.12 |
---|---|
KNN, 나이브베이즈 분류를 이용해서 종목분석하기 (0) | 2020.11.10 |
Keras 를 이용한 텍스트마이닝으로 뉴스예측하기 with Python (0) | 2020.09.17 |
신경망분석(Neural Net) with R - 실전편 (0) | 2020.09.10 |
신경망분석(Neural Net) with R - 이론편 (0) | 2020.09.10 |
댓글