기본 콘텐츠로 건너뛰기

머신러닝 학습과정 with [개발자를 위한 머신러닝] (2/2)

머신 러닝 학습 과정 (2/2)

5. 모델 정의

사용할 모델을 선택하는 작업
수행하려는 작업 유형과 입력 데이터 유형에 따라 모델을 선택
이 과정에서 올바른 모델 정의란 없음, 하지만 어느정도의 가이드 라인은 있다

  • 특성을 기반으로 정보를 그룹화 하여 데이터의 특징을 파악하려 하는가? 비 지도학습 기반의 클러스터링 ( k-means ,   k-medoids, DBSCAN , ...)
    • 데이터가 순차적이거나 순서를 고려해야하는가? 순환신경망 사용
  • 변수에 대해 결과를 예측하거나, 데이터에 태그를 저장하기 위해 그룹으로 분류 하려 하는가? 지도학습 기반의 분류 및 회귀 ( KNN, SVM, 나이브베이즈 분류, 의사결정 나무, 로지스틱 , ...)
  • 데이터 또는 패턴이 공간적으로 발견되는가? 합성곱 신경망 사용
  • 많은 차원이 있는 데이터 인가? 덜 중요한 특징은 제외하고 가장 유용한 특징들을 추출하기 원하는가? 차원축소기법을 사용 (주성분분석등 )
  • 목표에 도달하는 일련의 단계를 만드는 전략? 강화학습 분야

  위에서 정의한 가이드라인이 정답은 아니다. 더 좋은 모델과 그렇지 않은 모델만 있을 뿐이다.

6. 손실 함수( Loss Function) 정의

머신러닝 에서 손실 함수를 정의하는 작업은 중요하다.
손실 함수란 모델의 예상 값에서 실제 예상 값 까지의 거리를 측정하는 함수
손실 함수의 결과값을 가장 작게 만드는것이 머신러닝의 학습 목표
기본적으로 평균제곱오차(Mean Squared Error, MSE) , 교차 엔트로피 오차(Cross Entroypy Error , CEE) 가 사용됨
최근 머신러닝이 발전함에 따라 경사하강법(Gradient descent)을 사용

7. 모델 피팅 및 평가

모델과 데이터가 필요하며, 모델을 훈련하고 검증하는 단계

데이터셋 분할

일반적으로 n-fold cross validation 을 사용
데이터셋에서 Training Data와 Test Data를 나누어 n회 교차 검증하는 방법

5-fold cross validation

머신러닝 용어

Iteration(반복) : 기울기 오차를 계산하고 모델 파라미터를 조정하는 하나의 과정
Batch(배치) : 데이터 샘플 그룹, 일반적으로 전체 데이터셋을 사용
Batch size(배치 크기) : 배치당 샘플 수
Epoch(세대) : 전체 데이터셋을 모델에 한번 전달하는 것

모델 구현 및 결과 해석

훈련 및 테스트 데이터 세트에서 확인된 모델은 해당 데이터 세트에 있지 않은 데이터에서 구현해 확인해 봐야 함

  • 회귀 메트릭 : 평균 절대 오차(Mean Absolute Error), 중앙값 절대 오차, 평균 제곱 오차(Mean Squared Error)
  • 분류 메트릭 : 정확도(Accuracy), 정밀도(Precision Score), 재현율(recall), F-측정, 혼동행렬(Confusion Matrix) 

예제 코드 : [예제코드 출판사 문의중]

  • 클러스터링 품질 측정 : 실루엣 계수, 동질성(Homogeneity), 완전성(Completeness), V-측정

참고










댓글

이 블로그의 인기 게시물

블록체인 거래소 모니터링시스템 구축이야기(2/?) - 서버 아키텍처

  코인 거래소 모니터링시스템 구축이야기(2/?) 코인 거래소 모니터링 시스템 구축 (가칭 : 김프멈춰) 서버 구성 사용자가 확인할 서비스 페이지, 데이터 저장소에 대한 서버는 NAS 서버로 운영 일일 Data 크롤링 서버는 Cloud 서버 이용하여 운영 - 서비스페이지 및 데이터 저장소 (Nas 서버) : Docker container ubuntu 20.04 - 일일 크롤링 서버 (Cloud at Cost Cloud 서버) : CentOS 7 서버 아키텍처 서버 아키텍처 레퍼런스 빗썸 : https://apidocs.bithumb.com/ 업비트 : https://docs.upbit.com/ 홍콩 Bitfinex : https://docs.bitfinex.com/docs 몽고 DB 설치 : https://coterie.tistory.com/20 1. 개요 :  https://limdh3325.blogspot.com/2021/04/1.html 2. 서버 아키텍처 :  https://limdh3325.blogspot.com/2021/04/2.html 3. MongoDB 설치 :  https://limdh3325.blogspot.com/2021/04/3.html 4. 데이터 모델링 :  https://limdh3325.blogspot.com/2021/05/4.html 5. MongoDB 저장 :  https://limdh3325.blogspot.com/2021/06/5.html