컴퓨터/머신러닝, 딥러닝

머신러닝의 과정과 사용할 데이터 만들기

정석이 2022. 3. 29. 19:12

머신러닝의 기본 과정

 

머신러닝의 기본 과정에 대해 알아보자

 

 

 

 

 

1. 목표결정

- 머신러닝을 사용해 무엇을 할 것인지(목표)를 결정

 

 

2. 데이터 수집

- 목표를 기반으로 어떤 데이터를 수집해야 하는지, 어떤 방법을 사용할지 등을 검토한 뒤 데이터 수집

 

 

3. 데이터 가공

- 수집한 데이터는 대부분의 경우 특징을 추출하는 작업을 해야 한다(특징량 추출).

 그리고 데이터를 학습기가 원하는 형식으로 맞춤

 

 

4. 데이터 학습

- 실제로 데이터 학습시킴

 

 

4-1) 머신러닝 방법 선택

- 일단 어떤 방법(알고리즘)을 사용할지를 지정한다.

 

4-2) 매개변수 조정

- 데이터에 따라 매개변수를 지정

 

4-3) 데이터를 학습해 모델 구축

- 데이터를 학습기에 전달해 모델 구축

 

 

5. 모델 평가

- 테스트 데이터를 사용해 어느 정도의 정답률이 나오는지 확인.

- 정답률이 구리면 4로 돌아가 알고리즘과 매개변수를 수정하는 등 튜닝도 함

 

 

 


 

머신러닝에서 사용할 데이터 만드는 방법

 

데이터를 수집하는 방법

 

 일반적으로 일정량 이상의 데이터가 있어야 머신러닝을 할 수 있다.

 

 장기간에 걸쳐 수집한 회사 내 데이터가 있다면 그것을 활용해도 되고

 

 웹에서 데이터를 내려받아 사용하는 방법도 있다.

 

 예를 들어 검색 엔진을 사용해 데이터를 수집할 수도 있고, 여러 웹 사이트를 크롤링해 데이터를 수집할 수도 있다.

 

 최근에는 행정 데이터같은 중요한 통계 자료가 공개 데이터로 제공되는 경우도 있다.

 (ex-기상자료개방포털 : https://data.kma.go.kr/cmmn/main.do)

 

 

 

 

 

수집한 데이터를 저장하는 형식

 

추출한 데이터는 쉼표로 구분된 데이터를 나타내는 CSV 형식, 구조화된 데이터인 JSON/XML/YAML 등 다양한 데이터 형식을 사용할 수 있다.

 

 

머신러닝에 많이 사용되는 데이터 형식

  • CSV 형식
  • INI 파일 형식
  • XML
  • JSON
  • YAML

 

 

위의 텍스트 기반의 범용 데이터 형식은 하나의 파일에 저장할 수 있는 데이터 양에 제한이 있다.

 

 

그래서 더 큰 규모의 데이터셋을 사용한다면 데이터베이스에 데이터를 저장하고 사용해야 한다.

(MySQL, PostgreSQL, SQLite, SQLServer, Oracle, ODBC 등)

 

+ 범용성이 거의 없긴 하지만 Python에서만 써도 괜찮다면 pickle 모듈 또는 과학 연산 모듈인 NumPy의 저장 형식(확장자 '.npy')을 사용해도 된다.

 

 

 

 

 

데이터 정규화

 

데이터는 머신러닝에 전달하기 전에 정규화해야 한다.

 

'정규화(normalization)'란 데이터를 일정한 규칙을 기반으로 가공해서 사용하기 쉽게 만드는 것이다.

 

 

예를 들어 데이터의 최솟값과 최댓값을 확인한 뒤

 

데이터의 중심을 0에 두고 -1.0 ~ 1.0 사이의 범위로 데이터를 가공하는 것이 대표적인 정규화이다.

 

 

정규화 식

 

 

위 그림이 정규화 식인데.. 일단은 걍 그렇구나 하고 넘어가면 된다.

 

 

scikit-learn을 사용하면 수식 계산을 자동으로 해주므로 정규화 작업을 따로 해줄 필요는 없다.

 

그래도 "내부적으로 이런 처리가 일어난다"는 것은 알아두면 좋을 것이다.

 

 

 

 

 

 

 

 

 

 

출처 : 파이썬을 이용한 머신러닝, 딥러닝 실전 앱 개발