> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> تحسب قيمة `(P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0)))` لكل فئة.

# categoricalInformationValue

<div id="categoricalInformationValue">
  ## categoricalInformationValue
</div>

أُضيف في: 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`.

**الصيغة**

```sql theme={null}
categoricalInformationValue(category1[, category2, ...,]tag)
```

**الوسائط**

* `category1, category2, ...` — سمة فئوية واحدة أو أكثر لتحليلها. يجب أن تحتوي كل فئة على قيم منفصلة. [`UInt8`](/ar/reference/data-types/int-uint)
* `tag` — متغير هدف ثنائي للتنبؤ. يجب أن يحتوي على القيمتين 0 و1. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُرجِع مصفوفة من قيم Float64 تمثل قيمة المعلومات لكل توليفة فريدة من الفئات. وتشير كل قيمة إلى القوة التنبؤية لتلك التوليفة من الفئات بالنسبة إلى متغير الهدف. [`Array(Float64)`](/ar/reference/data-types/array)

**أمثلة**

**الاستخدام الأساسي لتحليل الفئات العمرية مقابل استخدام الهاتف المحمول**

```sql title=Query theme={null}
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 title=Response theme={null}
┌─────iv─┐
│ 0.8318 │
└────────┘
```

**سمات فئوية متعددة مع البيانات الديموغرافية للمستخدمين**

```sql title=Query theme={null}
-- 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 title=Response theme={null}
┌─iv─────────┐
│ [0.8318,0] │
└────────────┘
```
