categoricalInformationValue

categoricalInformationValue

이진 목표 변수에 대한 범주형 피처의 정보값(Information Value, IV)을 계산하는 집계 함수예요. 예측 모델링에서 범주형 피처가 이진 목표와 얼마나 강하게 연관되는지 측정하는 데 써요.

출처: 문서

본문

v20.1.0에서 도입됐어요.

이진 목표 변수에 대한 범주형 피처의 정보값(IV)을 계산해요.

각 범주에 대해 이 함수는 다음을 계산해요:

(P(tag = 1) - P(tag = 0)) × (log(P(tag = 1)) - log(P(tag = 0)))

여기서:

  • P(tag = 1)은 주어진 범주에 대해 목표가 1일 확률
  • P(tag = 0)은 주어진 범주에 대해 목표가 0일 확률

정보값은 예측 모델링에서 범주형 피처와 이진 목표 변수의 관계 강도를 측정하는 데 쓰이는 통계량이에요. 절댓값이 클수록 예측력이 더 강함을 나타내요.

결과는 각 개별(범주형) 피처 [category1, category2, ...]tag 값을 예측하는 학습 모델에 얼마나 기여하는지를 나타내요.

구문 (Syntax)

categoricalInformationValue(category1[, category2, ...,]tag)

인자 (Arguments)

  • category1, category2, ... — 분석할 하나 이상의 범주형 피처. 각 범주는 이산 값을 포함해야 해요. UInt8
  • tag — 예측 대상인 이진 목표 변수. 01 값을 가져야 해요. UInt8

반환 값 (Returned value)

각 고유한 범주 조합에 대한 정보값을 나타내는 Float64 값들의 배열을 반환해요. 각 값은 해당 범주 조합이 목표 변수에 대해 갖는 예측 강도를 나타내요. Array(Float64)

예시 (Examples)

연령대 대 모바일 사용량을 분석하는 기본 예시:

Query

CREATE TABLE visits (is_young UInt8, is_female UInt8, is_mobile UInt8) ENGINE = Memory;

-- 80 of the 100 young visitors browse on a mobile device, and only 20 of the 100 older ones do,
-- while the sex of a visitor says nothing about the device.
INSERT INTO visits SELECT 1, number % 2, number < 80 FROM numbers(100);
INSERT INTO visits SELECT 0, number % 2, number < 20 FROM numbers(100);

SELECT round(categoricalInformationValue(is_young, is_mobile)[1], 4) AS iv FROM visits;

Response

┌─────iv─┐
│ 0.8318 │
└────────┘

여러 범주형 피처와 사용자 인구 통계:

Query

-- The age of a visitor predicts the device, the sex of a visitor does not.
SELECT arrayMap(x -> round(x, 4), categoricalInformationValue(is_young, is_female, is_mobile)) AS iv
FROM visits;

Response

┌─iv─────────┐
│ [0.8318,0] │
└────────────┘

더 알아보기 (Learn more)