rforest
랜덤 포레스트 모델(Random Forest, 여러 개의 결정 트리를 임의로 학습하는 앙상블 방식)을 사용하여 입력 데이터의 분류값을 예측합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 분석 노드에서 실행 (reducer) |
문법
사전에 학습된 모델을 사용하여 예측하려면
서브쿼리로 학습 데이터를 조회한 후 예측하려면
옵션
size=INT- 포레스트를 구성하는 결정 트리 수 (기본값:
100) model=STR- 랜덤 포레스트 모델의 이름. 소나 웹 콘솔 또는 로그프레소 셸을 통하여 머신러닝 모델을 생성하고 학습할 수 있습니다.
target=STR- 타겟 필드 이름. 랜덤 포레스트 분류에서 예측 대상으로 사용할 필드를 지정합니다.
timeout=INT{s|m|h|d}- 서브쿼리 실행 제한 시간. 지정한 시간 내에 서브쿼리가 완료되지 않으면 서브쿼리를 취소합니다.
대상
FIELD, ...- 랜덤 포레스트 분석에 사용할 특성(feature) 필드 목록. 쉼표(
,)로 구분하여 여러 필드를 지정할 수 있습니다. 필드 값으로 숫자, 날짜, IP 주소, 문자열을 사용할 수 있습니다. 문자열 값은 내부적으로 인코딩하여 처리합니다. [ SUBQUERY ]- 학습 데이터를 조회하는 서브쿼리. 서브쿼리 결과를 사용하여 랜덤 포레스트 모델을 구성한 후, 입력 레코드에 대해 예측을 수행합니다.
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| _guess | 문자열 | 예측된 타겟 필드의 분류값 |
| _rforest_error | 문자열 | 서브쿼리 모드에서 오류가 발생한 경우 오류 메시지를 할당합니다. |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 40804 | 머신러닝 라이선스가 필요합니다. | 머신러닝 라이선스가 없는 경우 |
| 41100 | 머신러닝 모델을 입력해 주세요. | model 옵션의 값이 비어 있는 경우 |
| 41101 | 머신러닝 모델을 찾을 수 없습니다. | 지정한 이름의 모델이 존재하지 않는 경우 |
| 41102 | 머신러닝 모델 핸들러를 찾을 수 없습니다. | 모델 핸들러를 찾을 수 없는 경우 |
| 90204 | '['가 짝이 맞지 않습니다. | 서브쿼리 대괄호가 짝이 맞지 않는 경우 |
| 90206 | 서브 쿼리가 없습니다. | model 옵션 없이 서브쿼리를 지정하지 않은 경우 |
런타임 오류
해당 사항 없음
설명
rforest 명령어는 랜덤 포레스트 알고리즘을 사용하여 입력 레코드의 타겟 필드 값을 예측합니다. 랜덤 포레스트는 여러 개의 결정 트리를 임의로 구성하고, 각 트리의 예측 결과를 종합하여 최종 분류를 수행하는 앙상블 학습 방법입니다.
두 가지 방식으로 사용할 수 있습니다:
- 사전 학습 모델:
model옵션으로 사전에 학습된 모델을 지정하면, 입력 레코드를 바로 모델에 전달하여 예측 결과를_guess필드에 할당합니다. - 서브쿼리 학습:
target옵션과 서브쿼리를 지정하면, 서브쿼리 결과로 먼저 랜덤 포레스트 모델을 학습한 후, 입력 레코드에 대해 예측을 수행합니다.
특성 필드 값이 null인 경우 해당 필드를 결측값으로 처리합니다. 문자열 값은 내부적으로 정수로 인코딩하여 학습 및 예측에 사용합니다.
분산 환경에서는 분석 노드에서 모델 학습과 예측을 수행합니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
사전 학습 모델을 사용한 예측
table WEB_APACHE_SAMPLE | rforest model=web_rforest | fields _time, src_ip, method, status, bytes, _guess사전에 학습된
web_rforest모델을 사용하여 입력 데이터의 분류값을 예측합니다. -
트리 수를 지정한 사전 학습 모델 예측
table WEB_APACHE_SAMPLE | rforest size=200 model=web_rforest | fields _time, src_ip, method, status, bytes, _guess200개의 결정 트리로 구성된 모델을 사용하여 예측합니다.
-
서브쿼리를 사용한 학습 및 예측
table WEB_APACHE_SAMPLE | eval bytes = long(bytes) | rforest target=method bytes, status [ table WEB_APACHE_SAMPLE | eval bytes = long(bytes) ] | fields _time, src_ip, method, bytes, status, _guessWEB_APACHE_SAMPLE데이터를 학습 데이터로 사용하여 모델을 학습한 후,method필드의 값을 예측합니다. -
타임아웃을 지정한 서브쿼리 학습
table WEB_APACHE_SAMPLE | eval bytes = long(bytes) | rforest timeout=30s target=method bytes, status [ table WEB_APACHE_SAMPLE | eval bytes = long(bytes) ] | fields _time, src_ip, method, bytes, status, _guess서브쿼리 실행 시간을 30초로 제한하여 학습 데이터를 조회하고,
method필드의 값을 예측합니다.
호환성
rforest 명령어는 소나 4.0 이전 버전부터 제공되었습니다.