rforest

랜덤 포레스트 모델(Random Forest, 여러 개의 결정 트리를 임의로 학습하는 앙상블 방식)을 사용하여 입력 데이터의 분류값을 예측합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행미지원
분산 실행분석 노드에서 실행 (reducer)

문법

사전에 학습된 모델을 사용하여 예측하려면

rforest [size=INT] model=STR

서브쿼리로 학습 데이터를 조회한 후 예측하려면

rforest [size=INT] [timeout=INT{s|m|h|d}] target=STR FIELD, ... [ SUBQUERY ]

옵션

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 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 사전 학습 모델을 사용한 예측

    table WEB_APACHE_SAMPLE
    | rforest model=web_rforest
    | fields _time, src_ip, method, status, bytes, _guess
    

    사전에 학습된 web_rforest 모델을 사용하여 입력 데이터의 분류값을 예측합니다.

  2. 트리 수를 지정한 사전 학습 모델 예측

    table WEB_APACHE_SAMPLE
    | rforest size=200 model=web_rforest
    | fields _time, src_ip, method, status, bytes, _guess
    

    200개의 결정 트리로 구성된 모델을 사용하여 예측합니다.

  3. 서브쿼리를 사용한 학습 및 예측

    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, _guess
    

    WEB_APACHE_SAMPLE 데이터를 학습 데이터로 사용하여 모델을 학습한 후, method 필드의 값을 예측합니다.

  4. 타임아웃을 지정한 서브쿼리 학습

    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 이전 버전부터 제공되었습니다.