[머신러닝] Advance day1 (이재원 강사님)
AI 머신러닝 딥러닝이 다르다?? → AI안에 머신러닝 그 안에 딥러닝이 있는것입니다.
딥러닝은 머신러닝의 알고리즘 중 하나입니다. (MLP, Logistic regression, 등)
Representation learning→ 우리가 추구해야 할 방향성 중 하나입니다.
- 무언가를 대표하는 학습을 하겠다.
- 우리가 가지고 있는 데이터를 어떻게 대표할 것인지
편의상 머신러닝과 딥러닝을 나눠서 표현하겠습니다.
신경망 네트워크가 무엇인지에 대해서는 다루지 않겠지만 신경망 네트워크처럼 생긴게 딥러닝입니다.
우리가 머신러닝을 배워야 하는 이유
새로운 알고리즘이라서 새롭게 배워야 하는것이 아니라
이미 예전부터 쓰이던 알고리즘들이 요즘들어 각광받는것입니다.
머신러닝 발전배경
-
데이터의 폭발적인 생산
최근 데이터의 생산량이 지수적으로 늘어나고 온라인 기반 활동이 늘어나 데이터의 생산 및 누적이 쉬워졌습니다.
-
컴퓨터 환경의 발전
CPU와 GPU에 기반한 연산속도가 증가하였고 데이터 처리 기술과 python 등 오픈소스 기반 프로그래밍 언어가 대중화되었습니다.
-
알고리즘의 발전
기존의 통계 기반 알고리즘 뿐 아니라 연산량 감소를 위한 데이터 분석 및 자료구조 알고리즘이 발전하였습니다.
비정형의 데이터를 다루기 위한 딥러닝 알고리즘 또한 발전하였습니다.
딥러닝은 충분히 많이 발전되었고 실제 서비스에도 많이 사용되고 있는것은 맞지만
실제 서비스 측면에서 생각해보면 아직까지 가야할 길이 멉니다.
머신러닝 딥러닝 다양한 알고리즘을 알고있는 상태에서
내가 처한 상황에 맞는 것을 쓸 수 있습니다.
용어정리
알고리즘(algorithm) : 모델, 혹은 머신러닝 기법을 실행하기 위한 특정 절차
특징(feature) : 입력값으로 사용되는 변수들 속성, 입력변수, 독립변수, X라고도 부름
샘플(sample) : 데이터의 기본 단위, 하나의 사건 혹은 시점. 레코드, 인스턴스로 부름
레이블(label) : 한 샘플에 대한 정답 값, 클래스, 정답, 종속변수, y라고 부름
머신러닝이 학습이 된다 → 실제 결과물과 학습한 내용의 차이를 줄여가는 과정
피처를 알고리즘에 넣고 모델에 넣어서 특징을 찾고 y라는 새로운 예측값을 만들어내는데
정답 y와 찾아낸 y와의 차이를 계속해서 줄여가는 것이 머신러닝입니다.
머신러닝의 기본컨셉
$y = f(x)$
- $y$ : 해결해야 하는 문제 (종속변수, target data)
- $f()$ : 머신러닝 알고리즘 (모델)
- $x$ : 훈련데이터 (설명변수, train data)
머신러닝 프로젝트의 기획은 결국 y를 어떻게 풀어낼지에 대한 기획
데이터셋을 가져왔을 때 X를 만드는 방법, 주의사항 등
어떤 데이터에 어떤 라이브러리를 쓰면 되는지는 정답이 정해져있지 않음
머신러닝의 구분
지도학습
y값의 존재 유무에 따라 지도학습과 비지도학습으로 구분
supervised learning : 지도학습( $y$값이 존재)
해결 가능한 $y$값의 데이터에 따른 분류
- 예측, 회귀 (prediction, regression) : 종속변수가 연속형 데이터
- 연속형 데이터 - 매출데이터, 온도, 시간 등
- RMSE 값은 작을수록 좋음
- 자연수 0과 1사이에는 무수히 많은 실수가 존재하고 그 무한한 값의 범위를 갖는 데이터를 연속형 데이터라 한다.
- 분류 (classifier) : 종속변수가 범주형 데이터
- 범주형 데이터 - 성별, 등급, 브랜드, 기차역 등
- 남성 혹은 여성 구분처럼 이진형 구분(0 혹은 1), 데이터가 특정 범위내에 모두 속한 데이터의 경우 범주형 데이터 혹은 카테고리 데이터라고 한다.
정답을 알려주고 컴퓨터가 이 정답을 맞출 수 있도로고 학습하는 방법으로
객관적 평가가 가능합니다.
예측의 경우 무조건 과거의 데이터가 있어야합니다.
unsupervised learning : 비지도학습( $y$값이 존재하지 않음)
해결 가능한 $y$값의 데이터에 따른 분류
- 군집화(clustering) : 종속변수가 범주형인 데이터
- 정답이 없는 데이터를 모델에 따라 비슷한 샘플끼리 묶어주는 머신러닝 알고리즘
- 데이터에 숨겨진 특징이나 구조를 발견하여 같은 특징에 따라 구분
- 연관규칙분석(association rule analysis) : 종속변수가 스코어 혹은 샘플
- 보통 추천시스템이라 부르며 매출 및 유저의 구매기록에 기반한 규칙을 갖는 알고리즘
- 아이템 혹은 유저를 기준으로 비슷한 아이템 및 유저를 찾아 비슷한 데이터를 찾습니다.
- 준지도학습(semi-supervised learning) : 비지도학습 + 지도학습
- 지도학습을 사용하려면 레이블이 있어야 하지만 이를 비지도 학습으로 해결합니다.
- 종속변수에 레이블이 있는 데이터와 없는 데이터를 같이 사용합니다.
- 군집화와 지도학습을 순차적으로 적용하는 방법입니다.
객관적 평가가 불가능합니다.
self-supervised learning
- 모델이 학습하면서 레이블을 만드는 학습 방법
프로세스
-
문제정의
통계적인 배경지식이 중요합니다. (업무 base)
1개의 데이터셋에서 1개의 문제를 해결하는 것을 기본으로 합니다.(복잡한 문제를 해결해야 할 경우 이대로 하면 혼동이 덜 합니다.)
ex) 기존고객 개인정보를 바탕으로 한 신규고객 고객군 분류
- 종속변수 : 신규고객 고객군 분류
- 설명변수 : 기존고객 개인정보(성별, 나이, 지역, 소득, 신용정보, 가입정보 등등)
- 모델 : 분류문제를 해결하기 위한 classification
-
데이터수집
분석에 필요한 설명변수, 종속변수에 따라 데이터 수집
- 사내 데이터 활용
- 데이터셋 활용
- 크롤링
- API
실제 수집이 불가능한 데이터가 있을 수 있습니다.
-
데이터탐색
pandas, 시각화 등 다양한 EDA 방법을 통해 수집 데이터를 살펴보는 과정
수집된 데이터가 문제에 적합하지 않거나 사용이 불가할 수 있습니다.
- 기술통계
- 결측치, 이상치 탐색
- 공분산 탐색
-
데이터전처리
수집된 데이터를 모델링이 가능한 형태로 가공
- 데이터 병합
- 데이터 형변환
- 더미화
- 클래스불균형 해결
- 차원축소
- 재샘플링
-
모델링
실제로 가장 쉬운 과정
문제해결에 맞는 모델을 탐색하고 최적의 모델을 선정
하드웨어 스펙에 따라 작업시간 결정
- 모델 선택
- 모수추정
- 모델 학습
- 파라미터 서칭
-
모델평가
고객군 분류가 되어있지 않은 신규고객데이터를 모델에 적용하여
기존분류 고객과의 차이를 여러가지 방법으로 산출하여 평가합니다.
- 예측, 분류/오분류 평가
- 설명력 평가
-
결과보고서 작성
문제정의부터 모델평가까지 데이터분석 프로젝트 저 과정에 대한 진행과정, 결과, 문제점, 해결방안 기술
- 시각화
- 활용방안
- 운영방안
어떤 문제를 풀 수 있는지 → 이 세상의 모든 문제는 데이터로 풀 수 있다고 생각합니다.
Pandas
- 데이터 분석을 위한 오픈소스 python 라이브러리로, 사용이 쉽고 성능이 좋다
- Series : index, value로 이루어진 데이터 타입
- DataFrame : index, column, value로 이루어진 데이터 타입
댓글남기기