본문 바로가기
혼자공부

패스트캠퍼스) 빅데이터 분석 첫걸음 시작하기 : 데이터사이언스 기초_Machine Learning Workflow_학습일지 2주차

by 쁑쁑쓰 2022. 8. 13.
728x90
반응형
빅데이터 분석 첫걸음 시작하기_2주차_데이터사이언스 기초_Machine Learning Workflow(1)

 

CH03-00. Machine Learning Workflow

Machine Learning Workflow ?

머신러닝 알고리즘을 이용하여 문제를 해결하는 방법론이며, 머신러닝 프로젝트 수행 방법이다.

 

https://wikidocs.net/31947

 

분석 문제 정의 -> 데이터 수집 -> 탐색적 데이터 분석 -> 피쳐 엔지니어링 -> 예측 모델 개발 -> 서비스 적응 순서로 진행

 

분석을 하기 전에 어떻게 문제를 해결할 것인지 잘 생각해보아야한다.

 

 

CH03-01. Machine Learning Workflow - 분석 문제 정의

분석 문제 정의 ?

어떤 문제를 머신러닝 방법론을 이용해서 해결할 것인지 머신러닝 방법론을 기준으로 문제를 정의하는 것

 

데이터 분석 문제 정의

이슈 파악 및 문제 도출 -> 분석 데이터 정의 -> 머신러닝 문제 정의 -> 베이스라인 선정

 

 

CH03-02. Machine Learning Workflow - 데이터 수집

데이터 수집 ?

정의한 데이터를 실제로 가져와서 Data Mart를 구축하는 작업이다.

 

분석 데이터 정의에 맞는 데이터를 직접 수집을 한다. 직접 수집을 해야하는 경우에는 web crawling을 사용한다.

Data Warehouse에 없는 경우에는 Data engineer에게 요청가능하다.

그리고 어떤 데이터를 가져오냐에 따라 품질이 달라진다.

 

데이터 수집 및 정제

데이터 마트 생성 - 데이터 정합성 평가 - 데이터 취합 - 데이터 포맷 통일

 

1. 데이터 마트 생성

   - 필요하다고 생각되는 데이터들을 모두 가져온다.

 

2. 데이터 정합성 평가 : 데이터가 원하는 형태로 합쳐지는지 테스트하는 것

   - 데이터를 합칠 때 생기는 이슈들을 체크하는 과정이다.

 

3. 데이터 취합

   - 정합성 평가를 통과했다면, 원하는 데이터를 합칩니다.

 

4. 데이터 포맷 통일

   - 취합한 결과가 table(in DBMS)인데, 분석할 때에는 csv file이 필요한 경우에는 변경해준다.

 

 

CH03-03 - Machine Learning Workflow - EDA

EDA(Exploratroy Data Analysis) : 데이터에서 분석에 필요한 여러가지 통계량을 계산하고,

                                                       시각화를 통해서 확인하는 작업. 즉, 데이터와 친해지는 과정이다.

                                                       분석을 하면서 데이터에서 확인하고 싶은 정보들을

                                                        확인하는 과정이기도 하다.

                                                       어떤 데이터를 사용하는에 따라 다양한 방법론이 있다.

 

탐색적 데이터 분석

데이터 크기 확인 - 데이터 분포 확인 - 데이터 시각화 - 통계량 분석

 

 

CH03-04 - Machine Learning Workflow - 피처 엔지니어링

피처 엔지니어링

차원의 저주 - 상관관계 분석 - 피처 추출 - 범주형 변수 인코딩

 

input vector를 머신러닝 모델에 사용할 feature vector로 바꾸는 작업이 feature engineering이다.

(input vector? 데이터 마트까지 구성된 데이터를 의미한다. 즉, row 단위, 정형화된 수치들)

 

feature engineering에 따라 머신러닝 모델의 성능이 바뀔 가능성이 높다. 그리고 체크해야하는 사항들을

중점적으로 확인을 해야한다.

 

 

CH03-05 - Machine Learning Workflow - 머신러닝 모델링

머신러닝 모델링 ?

주어진 학습 데이터로 얻은 정보로 학습하지 않은 데이터에 대해서 예측을 할 수 있는 시스템.

 

예측 모델 개발 및 적용

예측 모델 학습 - 모델 성능 개선 - 성능 평가 - 최종 모델 배포

 

머신러닝 모델링 과정에서 feature vector을 이용하여 학습을 진행한다.

학습(learning)의 과정은 모델마다 달라지고, 문제 정의에 따라 모델도 달라진다.

대부분의 머신러닝 문제가 예측 모델(predictive model)을 사용한다.

 

즉, 머신러닝 모델링은 주어진 문제를 잘 해결하는 시스템을 구축하는 것을 말한다!!

 

 

CH03-06 - Machine Learining Workflow - 서비스 적용 및 배포

서비스 적용 및 배포 : 학습이 완료된 모델을 실제 서비스에 적용하는 단계

 

학습이 완료된 모델을 실제 사용 프로그램(application)에 적용하기 위해서는 해당 모델을 서비스가

만들어진 프로그램에 넣어야한다.

 

1. 기존 어플리케이션이 작동되고 있는 framework에 맞추어 코드를 짠다.

2. 직접 코드를 짜지 않고, 서로 정보만 API(Application Programming Interface)를 통해 주고 받는다.

3. 머신러닝 모델 객체를 저장하고 상용 프로그램에서 이를 불러와 사용한다.

 

=> 이것을 모델 배포(Model Deployment)라고 한다.

 

물론 모델 배포를 하고 서비스에 넣는다고 끝난 것이 아니다!

 

머신러닝은 학습(training) 단계를 포함하고 있기 때문에, 지속적인 모니터링을 하면서

계속해서 예측 대상인 데이터에 패턴이 바뀌는지 체크를 해야한다.

만약 데이터의 패턴이 바뀌면, 학습했던 모델의 성능이 떨어지므로 재학습이 필요하다.

 

즉, 학습 완료된 머신러닝 모델은 어플리케이션에 적용되어 처음에 정의했던 문제를

해결할 수 있는지 체크한다. 그리고 배포된 모델이 제대로 작동하지 않으면 문제를

확인하고 다시 업데이트한다. 이 모든 과정을 MLOps(Machine Learning Operations)라고 한다!

 

CH04-01 - 파이썬 프로그래밍이란?

프로그래밍 : 컴퓨터에게 일련의 명령을 수행하는 프로그램을 만드는 과정을 의미한다.

                     즉, 컴퓨터에게 일을 시키는 방법이다. 이 과정 전반을 프로그래밍 or 코딩(coding)이라고 한다.

 

프로그래밍의 구성 요소

1. 코드 - 특정 프로그래밍 언어로 기술되는 텍스트이다.

              언어이기 때문에 문법과 의미론을 가진다.

               컴퓨터에게 일을 잘 시키기 위해서는 컴퓨터를 잘 이해해야하며,

               문법을 잘 작성해야 실행된다.

 

2. 컴퓨터(computer) - 코드를 수행하는 기계

                                   컴퓨터는 CPU, Memory, Input/output devices로 구성되어있다.

                                    작성한 프로그램은 모두 메모리 안에 상주하며, 프로그램 입장에서 모든 처리는

                                   메모리를 기준으로 이루어진다.

 

CH04-02 - Python 소개

 

 

Python ? 데이터 분석, 프로토타입 개발 등에 쓰이는 인기 있는 인터프리터 기반 프로그래밍 언어이다.

 

파이썬에 대한 소개는 아래 홈페이지에서 확인할 수 있다.

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

파이썬 특징

1. 파이썬에서 변수에 값을 주면, 자동으로 data type이 결정된다.

2. 파이썬에서 들여쓰기를 이용해서 code block을 구분한다.

3. 파이썬은 문자열을 편하게 사용할 수 있다. (문자열(Str)이라는 data type이 따로 존재한다.)

4. 파이썬인 line by line로 실행이 가능하다.

5. 파이썬은 PyPi라는 저장소를 운영하고 있는데 이 곳에 수 만 가지의 파이썬 패키지가 저장되어 있어

   오픈소스 라이브러리를 사용할 수 있다. 확장성이 매우 뛰어나다.

 

 

CH04-03 - Data Type

Data type ? 프로그래밍 언어가 이해하는 사용자의 데이터 사용의도를 정의한 것.

데이터 타입은 우리가 사용하는 데이터를 컴퓨터가 이해할 수 있게 규격화한 것 이다.

 

Data type

int - 정수

float - 실수(소수)

str - 문자영(character sequence)

list - 자유롭게 변경이 가능한 여러 개의 데이터 묶음

tuple - 생성 후에 변경이 불가능한 여러 개의 데이터 묶음

set - 집합

dic - key, value store 방식을 가지고 자료를 저장하는 구조

 

728x90
반응형