본문 바로가기

[오라클 레퍼런스 함수] PREDICTION_COST - 예측 비용(Cost) 결과 반환

by ㅇㅍㅍ 2023. 8. 13.
[오라클 레퍼런스 함수] PREDICTION_COST - 예측 비용(Cost) 결과 반환
728x90

 

 

 

PREDICTION_COST

 

집계 구문

PREDICTION_COST ( [ schema . ] model [ , class ] cost_matrix_clause mining_attribute_clause )

 

분석 구문

PREDICTION_COST ( ( OF ANOMALY | FOR expr ) [ , class ]
                  cost_matrix_clause mining_attribute_clause )
                OVER (mining_analytic_clause)

 

cost_matrix_clause::=

COST
  { MODEL [AUTO]
  | ( class_value [, class_value]... )
        VALUES ( ( cost_value [, cost_value]...) 
                 [ , (cost_value [, cost_value]... ) ]...
               )
  }

 

mining_attribute_clause::=

USING
{ * 
| { [ schema . ] table . * 
  | expr [ AS alias ]
  }
    [, { [ schema . ] table . * 
       | expr [ AS alias ]
       }
    ]...
}

 

mining_analytic_clause::=

[ query_partition_clause ] [ order_by_clause ]

 

참고:

mining_analytic_clause에 대한 구문, 의미, 그리고 제한 사항에 대한 정보는 Analytic Functions에 대한 내용을 참조하세요.

 

목적

PREDICTION_COST 함수는 선택된 각 행에 대해 비용을 반환합니다. 이 비용은 가장 낮은 비용 class 또는 지정된 class를 나타냅니다. 비용은 BINARY_DOUBLE 형식으로 반환됩니다.

PREDICTION_COST 함수는 분류(classification) 또는 이상 감지(anomaly detection) 작업을 수행할 수 있습니다. 분류의 경우 반환된 비용은 예측된 대상 클래스를 나타냅니다. 이상 감지의 경우 반환된 비용은 1(일반적인 행) 또는 0(이상한 행)의 분류를 나타냅니다.

PREDICTION_COST 함수는 PREDICTION 함수와 함께 사용하여 예측과 해당 예측의 비용을 얻을 수 있습니다.

 

cost_matrix_clause

비용(costs)은 가장 유해한 종류의 잘못된 분류를 최소화하기 위한 편향 요소입니다. 예를 들어, 거짓 양성(false positives)은 거짓 음성(false negatives)보다 더 비용이 크다고 간주될 수 있습니다. 비용은 모델과 연관된 비용 행렬에 지정되거나 VALUES 절에서 인라인으로 정의될 수 있습니다. 모든 분류 알고리즘은 스코어링에 영향을 미치기 위해 비용을 사용할 수 있습니다.

의사 결정 트리(Decision Tree)는 모델 빌드에 비용을 영향을 미치기 위해 사용할 수 있는 유일한 알고리즘입니다. 의사 결정 트리 모델을 빌드하는 데 사용된 비용 행렬은 또한 모델의 기본 스코어링 비용 행렬입니다.

다음 비용 행렬 테이블은 1의 잘못된 분류가 0의 잘못된 분류보다 5배 더 비용이 크다는 것을 지정합니다.

ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE       COST
------------------- ---------------------- ----------
                  0                      0          0
                  0                      1          1
                  1                      0          5
                  1                      1          0

 

cost_matrix_clause:

  • COST MODEL은 모델과 연관된 스코어링 비용 행렬을 고려하여 스코어링을 수행해야 함을 나타냅니다. 비용 행렬이 존재하지 않는 경우 함수는 오류를 반환합니다.
  • COST MODEL AUTO는 비용 행렬의 존재 여부를 알 수 없음을 나타냅니다. 비용 행렬이 존재하는 경우 함수는 최소 비용 예측을 반환하기 위해 이를 사용합니다. 그렇지 않은 경우 함수는 최고 확률 예측을 반환합니다.
  • VALUES 절은 class_value에 대한 인라인 비용 행렬을 지정합니다. 예를 들어, 다음과 같이 1의 잘못된 분류가 0의 잘못된 분류보다 5배 더 비용이 크다고 지정할 수 있습니다:
   PREDICTION (nb_model COST (0,1) VALUES ((0, 1),(1, 5)) USING *)

만약 스코어링 비용 행렬을 가진 모델이 인라인 비용 행렬과 함께 호출된다면, 인라인 비용이 사용됩니다.

 

참고:

비용 민감한 예측(cost-sensitive prediction)에 대한 더 많은 정보는 Oracle Data Mining User's Guide를 참조하십시오.

 

구문 선택(Syntax Choice)

PREDICTION_COST은 데이터를 스코어링하는 두 가지 방법 중 하나를 적용할 수 있습니다: 데이터에 데이터 마이닝 모델 객체를 적용하거나, 분석 절을 실행하여 하나 이상의 일시적인 데이터 마이닝 모델을 구축하고 적용할 수 있습니다. 구문 또는 분석 구문 선택:

  • 구문: 사전 정의된 모델로 데이터를 스코어링하는 데에 이 구문을 사용합니다. 분류(Classification), 이상 탐지(Anomaly Detection)를 수행하는 모델의 이름을 제공합니다.
  • 분석 구문: 사전 정의된 모델 없이 데이터를 스코어링하는 데에 분석 구문을 사용합니다. 분석 구문은 mining_analytic_clause를 사용하며, 이는 데이터가 여러 모델 빌드를 위해 파티션화되어야 하는지를 지정합니다. mining_analytic_clausequery_partition_clauseorder_by_clause를 지원합니다. (참조: "analytic_clause::=")
    º 분류(Classification)의 경우, FOR expr을 지정하여 대상 열을 식별합니다. 여기서 expr은 character 데이터 유형을 갖는 대상 열입니다.
    º 이상 탐지(Anomaly Detection)의 경우, OF ANOMALY 키워드를 지정합니다.

PREDICTION_COST 함수의 구문은 파티션된 모델을 스코어링할 때 선택적인 GROUPING 힌트를 사용할 수 있습니다. GROUPING Hint를 참조하세요.

 

mining_attribute_clause

mining_attribute_clause는 스코어링에 사용할 열 속성을 식별합니다. 함수가 분석 구문과 함께 호출될 때 이러한 예측 변수는 일시적인 모델을 구축하는 데에도 사용됩니다. mining_attribute_clausePREDICTION 함수에 설명된대로 작동합니다. ("mining_attribute_clause::=" 참조)

 

참고:

 

노트: 다음 예제는 데이터 마이닝 샘플 프로그램에서 발췌되었습니다. 샘플 프로그램에 대한 자세한 정보는 Oracle Data Mining User's Guide의 별첨 A를 참조하십시오.

 

예제

다음 예제는 (제휴 카드를 제안하는) 가장 저렴한 영업 캠페인에 응답할 이탈리아의 열 명의 고객을 예측합니다.

SELECT cust_id 
FROM (SELECT cust_id,rank()
       OVER (ORDER BY PREDICTION_COST(DT_SH_Clas_sample, 1 COST MODEL USING *)
            ASC, cust_id) rnk
        FROM mining_data_apply_v
        WHERE country_name = 'Italy')
  WHERE rnk <= 10
  ORDER BY rnk;
 
   CUST_ID
----------
    100081
    100179
    100185
    100324
    100344
    100554
    100662
    100733
    101250
    101306

 


출처: 오라클 레퍼런스

원문 링크: Oracle PREDICTION_COST 함수 문서

 

반응형

댓글