머신러닝의 개요

Machine learning

머신러닝의 개념 - 01

Machine Learning으로 할 수 있는 것들

독립변수 반응변수 모형
고객들의 개인 정보 및 금융 관련 정보 대출 연체 여부 대출 연체자 예측 탐지 모델, 대출 연체 관련 주요 feature 추출
게임 유저들의 게임 내 활동 정보 게임 이탈 여부. 어뷰징 여부 이상 탐지 모델(anomaly detection model)
숫자 손 글씨 데이터 숫자 라벨(0~9) 숫자 이미지 분류 모델
상품 구매 고객 특성 정보 군집화를 통한 고객 특성에 따른 Segmentation Segmentation 모델
고객들의 상품 구매내역 매장내 상품 진열 위치 리뉴얼을 통한 매출 증대
쇼핑몰 페이지 검색 및 클릭 로그 기록 맞춤 상품 추천 시스템 recommendation system
SNS 데이터 및 뉴스 데이터 소셜 및 사회 이슈 파악

머신러닝의 개념 - 02

Supervised Learning VS Unspervised Learning

지도학습

비지도학습

강화학습

비교

데이터분석 기법의 전체적인 그림

  • 머신러닝과 딥러닝이 실무에서 사용되어지는 경우에 팀의 구분을 두고 회사에서 운영하는 경우가 많지만, 서로 구분해서 공부하거나 이해하진 않았으면 좋겠다는것이 필자의 바람이다. 물론, 최근에는 딥러닝의 유행으로 대부분의 분석직군에서 딥러닝을 위한 인원을 채용하고 있긴 하지만 머신러닝또한 중요하지 않은 것이 아니면, 아직도 많은 곳에서 머신러닝 엔지니어들을 뽑고 있다.

모형의 적합성 평가 및 실험 설계

  • 전체적인 머신러닝의 작업과정은 다음과 같다.
    모형의 적합성 평가 및 실험 설계

전처리

  • Raw 데이터를 모델링 할 수 있도록 데이터를 병합 및 파생 변수 생성
    전처리 예시

실험 설계

데이터 분할

데이터 분할 - 01

  • 위에서 실제로 우리가 모델을 적용을 한다는 것은 예를 들어 기업에서 상용화를 한다는 가정이라는 의미이다. test정보가 Train과 validation 데이터에 없어야 한다는 점은 쉽게 비유하면 시험을 보는데 우리가 이미 학습한 내용(training data)이 시험에 똑같이 나온다면 시험을 잘 볼 확률이 높아지기 때문이다. 우리가 data를 나누었던 이유는 training data를 통해 학습된 알고리즘 모형이 학습하지 않은 새로운 데이터에서도 잘 예측할 수 있도록 하기 위한 작업이었다는 것을 잊지 말아라! 또한, validation data는 parameter들을 조절하면서 최적의 모형을 선택하기 위한 데이터셋이라고 생각하면된다.

데이터 분할 검사

  • 데이터가 잘 나누어졌는지 어느 한 쪽으로 치우쳐져 있는지 확인하는 방법으로 위의 오른쪽 그래프처럼 확인 할 수도 있을 것 같다!

K-hold cross validation

LOOCV

실험 설계 예시 - 01

  • 무조건 위에서 언급했던 k-hold cross validation으로 training data set과 validation set을 나눠서 진행하는 것이 아니고 데이터의 성격에 따라 다르게 설계를 해야한다. 예를 들면 위의 반도체 두께를 예측하는 문제에 있어서는 반도체 두께가 각 개체가 만들어지는 순서에 의해 영향을 받는다. 즉 Y2는 Y1에 의해 영향을 받고 Y3는 Y1,Y2에 의해 영향을 받는다. 그러므로 이러한 데이터의 경우에는 무작정 k-hold cross validation으로 나누어주면 안된다. Y2를 예측하는데 Y3에 관한 정보를 사용하게 되기 때문이다.

실험 설계 예시 - 02

  • 또 다른 예로는 Imbalanced data에 대해 말할 수 있을 것이다. Imbalanced data는 target variable이 말 그대로 불균형한 데이터를 의미한다. 조금이라도 불균형하면 Imbalanced datas냐는 의문이 들겠지만 그런의미가 아니라 예를들면 보험회사의 보험사기라던지, 금융사기 같이 전체 데이터에서 target variable에 해당하는 데이터가 10% 정도로 희박하게 나타나는 데이터를 의미한다. 이런 데이터에서는 먼저 처음의 비율대로 train과 validation set으로 나누어준다. 그 다음 train data에서만 resampling을 하여 model을 학습시킨후에 추후에 validation data로 예측해보는 것이다. 그러므로 그냥 k-hold가 아닌 stratified k-Fold를 통해 데이터를 train과 validation set으로 나누어 주어야한다.

모형 학습 및 선택

모형 학습

모형 선택

과적합(Overfitting)

과적합

분산과 편향의 트레이드오프 관계

분산과 편향의 트레이드오프 관계 - 01

  • 위의 편향과 분산의 트레이드 오프 관계에 의해 우리는 둘 중 하나를 좀더 생각해야만하는 상황에 놓이게될 것이다. 그렇다면 위의 4가지 그래프 중 어떤 모형을 선택하는 것이 좋은 것인가? 나의 개인적인 생각은 모형의 분산은 적고 편향이 높은 모형 같은 경우는 치우쳐 있는 데이터에 대한 예측성능만 높고 여러 다양한 데이터에 대한 예측 성능은 낮아지기 때문에 궁극적으로 목표해야할 모형은 분산은 높지만 편향이 낮은 모형이다.