본문 바로가기

취업준비/인공지능

[AI Tech] 1주차 1-1차시 정형 데이터란?

1차시: 정형 데이터 소개 및 개발환경 준비하기

1-1. 정형 데이터란?

정의

- 엑셀 파일 형식이나 관계형 데이터베이스의 테이블에 담을 수 있는 데이터로 행(row)과 열(column)으로 표현 가능한 데이터.

- 하나의 행은 하나의 데이터 인스턴스를 나타내고, 각 열은 데이터의 피처를 나타냄

 

 

비정형 데이터

- 이미지, 비디오, 음성, 자연어 등의 정제되지 않은 데이터

 

 

정형 데이터의 중요성

떠오르는 비정형 데이터

1. 이미지: 자율주행자동차, 사물 인식 등

2. 음성: 음성 검색 서비스, 시리, 빅스비 등

3. 자연어: 번역, 이메일 필터 등 => 떠오르는 AI, 다양한 가치 창출

 

< 그럼에도 왜 정형 데이터가 필요할까? >

 

정형 데이터 필요성

1. 범용적인 데이터

- 사람, 기업, 현상, 사회의 많은 부분들이 정형 데이터로 기록되기 때문

→ 가장 기본적인 데이터 → 분야를 막론하고 많은 데이터가 정형데이터로 존재

2. 필수적인 데이터

 

정형 데이터 분석 능력

- 데이터에 대한 상상력

- 데이터에 대한 통찰력

- 다양한 경험을 통해 데이터에 국한되지 않고 범용적으로 쓰일 수 있는 능력

 

 

데이터 및 문제 이해

강의에서 사용할 데이터는 2009년 12월부터 2011년 11월까지 온라인 상점의 거래 데이터

데이터 행수는 780,520개, 칼럼은 9개의 칼럼으로 구성

 

문제 정의

X: 고객 5914명의 2009년 12월 ~ 2011년 11월까지의 구매기록

Y: 5914명의 2011년 12월 총 구매액 300 초과 여부 (Binary Search)

타깃 마케팅, 고객 추천 → 우량 고객들을 예측, 혜택의 개인화

 

문제 이해

- Aggregation? Time Series? 또는 Aggregation + Time Series를 모두 합쳐서 구할 수도 있다.

- 어떤 데이터로 Train, Valid, Test?

 

 

평가지표 이해

분류, 회귀 평가지표 소개

1. 분류(Classification) [v]

- 예측해야 할 대상의 개수가 정해져 있는 문제

- 예) 이미지에서 개, 고양이 분류, 신용카드 거래가 사기 거래인지 정상 거래인지 분류 등

 

2. 회귀(Regression)
- 예측해야 할 대상이 연속적인 숫자인 문제

- 예) 일기 예보에서 내일의 기온 예측, 주어진 데이터에서 집값 예측

 

3. 평가지표(Evolution Metric)
- 분류, 회귀 머신러닝 문제의 성능을 평가할 지표

 

Confusion Matrix

1. 분류 문제

1) Accuracy: (TP + TN + FP + FN)

2) Precision: TP / (TP + FP)

- Importance: Negative > Positive

- 예) 스팸 메일 분류

3) Recall: TP / (TP + FN)

- Importance: Positive > Negative

- 예) 악성 종양을 음성 종양으로 분류할 경우

 

2. ROC(Receiver Operating Characteristic)

1) True Positive Ratio(TPR): TP / (TP + FN)

2) False Positive Ratio(FPR): FP / (FP + TN)

→ Cutoff Value

 

3. AUC(Area Under Curve)

 

 

정형데이터 분류 베이스라인 모델 1

베이스라인 모델이란?

- 모델의 성능을 비교하는 참조 지점으로 사용되는 단순한 모델 또는 휴리스틱

- 머신러닝 모델이 의미 있기 위해 넘어야 하는 최소한의 성능을 제공하는 모델

 

베이스라인 모델 특징

- 첫 번째 베이스라인 모델은 머신러닝 모델을 사용하지 않고 이전 월 고객 구매액을 계산한 수에 이를 예측값으로 사용해서 베이스라인 모델을 구현

- 이전 월 고객 총구매액이 300을 넘을 경우 확률을 1, 300 이하일 경우 고객 총구매액을 300으로 나눈 값을 예측 확률로 사용

- 2011년 12월 데이터가 없기 때문에 2011년 10월을 train 데이터, 2011년 11월을 validation 데이터로 해서 베이스라인 모델의 validation 성능 측정

 

소스코드

Import 부분

# Suppress warnings
import warnings
warnings.filterwarnings('ignore')

import os, sys, go, warnings, random

import datetime
import dateutil.relativedelta

# Data manipulation
import pandas as pd
import numpy as np

# Visualization
import matplotlib.pyplot as plt
import seaborn as sns

# Machine Learning
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from sklearn.impute import SimpleImputer
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, precision_recall_curve, roc_curve
from sklearn.model_selection import train_test_split, cross_val_score, KFold, StratifiedKFold, GroupKFold
from sklearn.ensemble import RandomForestClassifier

import lightgbm as lgb

from tqdm.notebook import range, tqdm
from IPython.display import display

%matplotlib inline

pd.options.display.max_rows = 10000
pd.options.display.max_columns = 1000
pd.options.display.max_colwidth = 1000

 

레이블 생성 함수 정의

- 레이블 생성 함수는 연월을 인자로 받아서 고객 아이디별로 총구매액이 인자로 받는 구매액 임계값을 넘는지 여부를 바이너리 레이블로 생성하는 함수

 

 

 

 

 

© NAVER Connect Foundation. All Rights Reserved