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
'취업준비 > 인공지능' 카테고리의 다른 글
[AI Tech] 1주차 2-2차시 탐색적 자료 분석 (2) (0) | 2024.01.20 |
---|---|
[AI Tech] 1주차 2-1차시 탐색적 자료 분석 (1) (0) | 2024.01.20 |
[AI Tech] 1주차 1-4차시 프로젝트 1 (1) | 2024.01.19 |
[AI Tech] 1주차 1-3차시 파이썬 프로그래밍 연습 (0) | 2024.01.19 |
[AI Tech] 1주차 1-2차시 개발환경 설정 연습 (0) | 2024.01.18 |