-
[책 리뷰] 금융 전략을 위한 머신러닝BOOK 2022. 2. 23. 20:29반응형
Data-powered enterprise가 될 수 있는 가능성이 높은 산업군은 어디일까? IT기반 회사, 유통 회사 등 여러 산업군이 있겠지만 나는 그 중에서도 금융권을 주목하고 싶다. 금융업계는 예전부터 data가 전산화 되어 왔고, 시장 예측이나 이상 거래 탐지 등 data를 기반으로 한 task가 필요하며 숫자/통계 없이 커뮤니케이션 할 수 없는 업계이기 때문이다.
이번 달 부터 한빛미디어 서포터즈를 통해서 1달에 1권 씩 책을 제공받아 리뷰를 쓰게 되었는데, 이 책이 그 첫번째가 되었다! 무튼, 그 전부터 나는 여의도, 월스트리트의 도시적이고 바쁜 분위기를 연상케 하는 금융권에 대한 왠지 모를 경외심과 최근 마이데이터 사업 등과 같이 Big Data/AI를 누구보다 요구하며 기술을 활용할 수 있는 양질의 data를 가지고 있는 이 산업군에 머신러닝을 적용하는 것에 대한 관심을 가져 왔었다.
이 책은 3명의 금융권 ML 연구원들에 의해 쓰여졌고, 뉴요커 금융맨들이 소개해 주는 19가지 사례를 통해 머신 러닝에 대한 전반적인 개념부터 실전 예제까지 체험해 볼 수 있다. 다만, AI분야를 한 번도 훑지 않은 사람이라면 어려울 수 있다.
예제 코드는 여기에서 다운받을 수 있다. 본 포스팅에서는 여러 사례 중 머신러닝 분류 기반 모델을 이용한 이상 거래 탐지를 소개하려고 한다.
이상 거래 탐지 문제
문제 정의
이상 거래 탐지는 금융기관에서 중대한 문제이다. 머신러닝은 태생적으로 금융 거래 사기를 방지하는 데 이상적이다. 머신러닝 시스템은 막대한 양의 data를 읽고 이상 행동을 탐지해 바로 알려 주기 때문이다. 보안을 뚫을 수 있는 수많은 방법이 있음을 생각해 볼 때 조만간 진정한 머신러닝 시스템의 활용은 절대적으로 필요해질 것이다.
이상 거래 탐지는 분류 기반 모델을 사용하는데, 해당 거래가 정상적인 지불인지 / 아닌지 (binary classification) 를 판별하는 작업을 한다. 즉 사기인 경우 1, 그렇지 않은 경우 0을 도출하는 task 이다.
Dataset
Dataset은 kaggle을 사용한다. 해당 dataset에는 2013년 9월 이틀 동안 발생한 거래 내역이 있으며 거래 284,807건 중 492건의 사기가 발생했다고 한다. 개인정보 식별화를 위해 column명이 특정되어 있지 않다.
https://www.kaggle.com/mlg-ulb/creditcardfraud
Modeling
# Load libraries import numpy as np import pandas as pd from matplotlib import pyplot import seaborn as sns from sklearn.model_selection import train_test_split, KFold, cross_val_score, GridSearchCV from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC from sklearn.neural_network import MLPClassifier from sklearn.pipeline import Pipeline from sklearn.ensemble import AdaBoostClassifier, GradientBoostingClassifier, RandomForestClassifier, ExtraTreesClassifier from sklearn.metrics import classification_report, confusion_matrix, accuracy_score #Libraries for Deep Learning Models from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.wrappers.scikit_learn import KerasClassifier from tensorflow.keras.optimizers import SGD
import 부분에서 keras가 tensorflow v2.0부터는 tensorflow 안에 있는데, 코드에 반영되지 않아서 변경한 후 import 해 주었다.
Scikit-learn, keras의 여러 분류 알고리즘을 테스팅한 결과와 box plot 그래프를 얻을 수 있다.
모델 튜닝을 별도로 진행하지 않은 상태에서는 false negative (predicted 1 but actual 0) 와 false positive (predicted 0 but actual 1) 가 아직 많이 나온다.
파라미터 튜닝을 거친 후 false negative가 눈에 띄게 줄어든 것을 확인할 수 있다.
목차
PART 1 프레임워크
CHAPTER 1 금융머신러닝
1.1 현재와미래의금융머신러닝활용
1.2 인공지능, 머신러닝, 딥러닝, 데이터과학
1.3 머신러닝의다양한유형
1.4 자연어처리
1.5 맺음말
CHAPTER 2 머신러닝모델개발
2.1 왜파이썬인가?
2.2 머신러닝을위한파이썬패키지
2.3 모델개발단계
2.4 맺음말
CHAPTER 3 인공신경망
3.1 구조, 학습, 하이퍼파라미터
3.2 인공신경망모델생성
3.3 맺음말
PART 2 지도학습
CHAPTER 4 지도학습: 모델및개념
4.1 지도학습모델: 개념
4.2 모델성능
4.3 모델선택
4.4 맺음말
CHAPTER 5 지도학습: 회귀(시계열모델)
5.1 시계열모델
5.2 실전문제 1: 주가예측
5.3 실전문제 2: 파생상품가격책정
5.4 실전문제 3: 투자자위험감수및로보어드바이저
5.5 실전문제 4: 수익률곡선예측
5.6 맺음말
5.7 연습문제
CHAPTER 6 지도학습: 분류
6.1 실전문제 1: 사기탐지
6.2 실전문제 2: 채무불이행확률
6.3 실전문제 3: 비트코인거래전략
6.4 맺음말
6.5 연습문제
PART 3 비지도학습
CHAPTER 7 비지도학습: 차원축소
7.1 차원축소기술
7.2 실전문제 1: 포트폴리오관리(고유포트폴리오찾기)
7.3 실전문제 2: 수익률곡선구축및이자율모델링
7.4 실전문제 3: 비트코인거래(속도와정확성향상)
7.5 맺음말
7.6 연습문제
CHAPTER 8 비지도학습: 군집화
8.1 군집화기술
8.2 실전문제 1: 쌍거래를위한군집화
8.3 실전문제 2: 포트폴리오관리(투자자군집화)
8.4 실전문제 3: 계층적위험패리티
8.5 맺음말
8.6 연습문제
PART 4 강화학습과자연어처리
CHAPTER 9 강화학습
9.1 강화학습: 이론및개념
9.2 실전문제 1: 강화학습기반거래전략
9.3 실전문제 2: 파생상품헤징
9.4 실전문제 3: 포트폴리오배분
9.5 맺음말
9.6 연습문제
CHAPTER 10 자연어처리
10.1 자연어처리: 파이썬패키지
10.2 자연어처리: 이론및개념
10.3 실전문제 1: NLP 및감정분석기반거래전략
10.4 실전문제 2: 챗봇-디지털어시스턴트
10.5 실전문제 3: 문서요약
10.6 맺음말
10.7 연습문제반응형'BOOK' 카테고리의 다른 글
[책 리뷰] 핸즈온 데이터 시각화 (Hands-On Data Visualization) (0) 2022.07.10 [책 리뷰] 구글 BERT의 정석 (0) 2022.06.26 [책 리뷰] 케라스로 구현하는 딥러닝 / 양자인공지능(QAI) 예제 (0) 2022.04.24 [책 리뷰] 브레이킹 루틴 / 천인우 (0) 2022.01.24 조금 일하지만, 제대로 인정받고 있습니다 (0) 2021.06.28