상세 컨텐츠

본문 제목

In-DB 머신러닝

Db2 for LUW

by 파란디비 2023. 2. 10. 16:27

본문

기계학습은 복잡한 문제를 해결하는 강력한 솔루션입니다. 강력하고 정확한 예측 모델을 생성하려면 방대한 양의 데이터가 필요한 경우가 많습니다. Db2 용 기계 학습을 통해 사용자는 Db2 에서 데이터를 이동하지 않고도 기계 학습 모델을 생성할 수 있습니다 . 데이터가 보안 데이터베이스에서 언제든지 이동되지 않으므로 보안이 강화됩니다. 그리고 데이터 전송 비용이 없기 때문에 속도도 향상됩니다. 이번에는  Db2에서 저장된 데이터를 기계학습을 통해 통계 모델을 손쉽게 만들기 위한 환경 구성 방법에 대해 살펴보겠습니다. 


일반적으로 기계 학습은 세 가지 범주로 구분됩니다.

  • 감독(Supervised) 학습  : 출력 값이 무엇인지에 대한 사전 지식이 있는 "실측 정보"를 사용하여 수행됩니다. 이러한 실측 값을 "레이블" 또는 "대상"이라고 합니다. 예를 들어, 신용 카드 사기를 예측하려고 시도할 때 학습 데이터에는 확실히 사기인 과거 거래(대상)가 포함됩니다.
  • 강화(Enforcement) 학습 : 강화 학습을 통해 기계 또는 "에이전트"는 환경을 관찰하고, "작업"을 수행하고, "보상"을 받고, 최대 "보상"을 얻을 수 있는 작업을 기반으로 수행할 추가 작업을 결정합니다. 강화 학습은 특정 "행동"과 관련된 "보상" 개념에 대한 사전 지식이 있기 때문에 지도 학습과 다릅니다. 또한 이 방법은 레이블이 지정된 데이터에 의존하지 않습니다.
  • 비지도(Unsupervised) 학습 : 학습 데이터에 레이블이 포함되지 않습니다. 레이블이 지정된 출력이 없으므로 모델은 데이터 포인트가 공통적으로 갖는 자연스러운 구조를 추론해야 합니다. 따라서 비지도 학습 작업에는 일반적으로 명확하지 않을 수 있는 데이터의 기본 구조 또는 패턴을 찾는 작업이 포함됩니다.

일반적인 기계 학습 작업에는 다음이 포함됩니다.

  • 분류 : 인스턴스를 여러 범주 중 하나로 분류합니다. 예를 들어 이메일을 "스팸" 또는 "스팸 아님"으로 분류합니다.
  • 회귀 : 목표 수치를 예측합니다. 예를 들어 집값을 추정합니다.
  • 클러스터링 : 데이터 내에서 그룹을 감지합니다. 예를 들어 웹사이트에 유사한 방문자 그룹을 감지합니다.

Db2 기계학습 환경 설정

사용가능한 시스템 환경은 Linux x86(Intel x86), PPCLE (Power Linux), zLinux 입니다. 단 zLinux에서 IDAX.LINEAR_REGRESSION, IDAX.MAE, IDAX.MSE는 지원되지 않습니다. 

 신규 DB에서 기계학습 사용하기

1) db2set DB2_ENABLE_ML_PROCEDURES=YES 

2) 16k 페이지 DB 생성

db2 "create db mydb using codeset UTF-8 territory KR PAGESIZE 16384"
3) IDAX 프로시저용 사용자 테이블공간 생성

db2 "connect to mydb"

db2 "create tablespace  IDAX_TBS"

db2 "call sysinstallobjects('IDAX', 'C', 'IDAX_TBS', null)"

db2 "grant use of tablespace IDAX_TBS to idaxuser"

기존 DB에서 기계학습 사용하기

1) db2set DB2_ENABLE_ML_PROCEDURES=YES
2) 기계학습 기능 Enable

 db2updv115 -a -d mydb

3) IDAX 프로시저용 16k 임시 테이블 공간 생성

db2 "connect to mydb"
db2 "create bufferpool test16k immediate size 1000 pagesize 16k"
db2 "create system temporary tablespace tmp_tbsp pagesize 16k managed by automatic storage bufferpool test16k"
db2 "drop tablespace idax_usertempspace"
db2 "create user temporary tablespace idax_usertempspace pagesize 16k bufferpool test16k"
db2 "grant use of tablespace idax_usertempspace to public"
db2 "terminate"

4) IDAX 프로시저용 사용자 테이블공간 준비 (IDAX_TBS : IDAX 프로시저용 테이블 공간,idax_user: idax프로시저 호출 사용자ID)

db2 "connect to mydb"
db2 "create tablespace IDAX_TBS"
db2 "call sysinstallobjects('IDAX', 'C', 'IDAX_TBS', null)"
db2 "grant use of tablespace IDAX_TBS to  idaxuser"

 

추가로 원활한 성능을 위해 아래 변수의 크기를 증가하는게 좋습니다.  

  • stmtheap
  • logfilsiz
  • applheapsz
  • SYSCATSPACE size

제공되는 머신 러닝 저장 프로시저를 사용하여 Db2 데이터베이스에서 SQL 쿼리를 실행하여 데이터 변환, 데이터 처리, 모델 구축 및 모델 평가와 같은 일반적인 머신 러닝 작업을 수행합니다. 이러한 저장 프로시저를 사용하면  Db2 에서 다른 시스템 으로 데이터를 전송하지 않고 Db2 내에서 전체 기계 학습 파이프라인(데이터 탐색, 데이터 변환, 모델 선택, 모델 교육, 모델 평가 및 모델 배포)을 빌드할 수 있습니다 . 또한 분류 및 회귀 모델을 구축할 수 있습니다. 이상으로 Db2에서 기계학습 프로시저를 활용하기 위한 환경 구성 방법에 대해 알아보았습니다. 

'Db2 for LUW' 카테고리의 다른 글

Db2U - 컨테이너형 Db2  (0) 2023.05.20
스마트하게 워크로드 관리하기  (0) 2023.03.12
데이터 가상화  (0) 2023.01.16
dbsummary로 Db2 성능 문제 원인 찾기  (0) 2022.12.20
Db2 OLTP 아키텍처 구성  (0) 2022.12.05

관련글 더보기

댓글 영역