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

> تنفّذ هذه الدالة الانحدار اللوجستي العشوائي. ويمكن استخدامها في مسائل التصنيف الثنائي، كما تدعم المعلمات المخصصة نفسها التي تدعمها stochasticLinearRegression وتعمل بالطريقة نفسها.

# stochasticLogisticRegression

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

أُضيفت في: v20.1.0

تُنفِّذ هذه الدالة الانحدار اللوجستي العشوائي.
يمكن استخدامها في مسائل التصنيف الثنائي، وتدعم المعلمات المخصّصة نفسها مثل [`stochasticLinearRegression`](/ar/reference/functions/aggregate-functions/stochasticLinearRegression) وتعمل بالطريقة نفسها.

**الاستخدام**

تُستخدم هذه الدالة على خطوتين:

1. التدريب

للتدريب، يمكن استخدام استعلام مثل هذا:

```sql theme={null}
CREATE TABLE IF NOT EXISTS train_data
(
    param1 Float64,
    param2 Float64,
    target Float64
) ENGINE = Memory;

CREATE TABLE your_model ENGINE = Memory AS SELECT
stochasticLogisticRegression(0.1, 0.0, 5, 'SGD')(target, x1, x2)
AS state FROM train_data;
```

هنا، نحتاج أيضًا إلى إدراج البيانات في جدول `train_data`.
عدد المعاملات غير ثابت، إذ يعتمد فقط على عدد الوسيطات المُمرَّرة إلى `logisticRegressionState`.
ويجب أن تكون جميعها قيمًا رقمية.
لاحظ أن العمود الذي يحتوي على القيمة المستهدفة (التي نريد أن يتعلم النموذج التنبؤ بها) يُدرَج باعتباره الوسيطة الأولى.

يجب أن تكون التسميات المتوقعة ضمن المجال \[-1, 1].

2. التنبؤ

باستخدام الحالة المحفوظة، يمكننا التنبؤ باحتمال أن يحمل كائنٌ ما التسمية `1`.

```sql theme={null}
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) FROM test_data
```

سيُرجع الاستعلام عمودًا من الاحتمالات.
لاحظ أن الوسيط الأول للدالة `evalMLMethod` هو كائن `AggregateFunctionState`، تليه أعمدة السمات.

يمكننا أيضًا تعيين حدٍّ للاحتمال، مما يُصنِّف العناصر ضمن فئات مختلفة.

```sql theme={null}
SELECT result < 1.1 AND result > 0.5 FROM
(WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, param1, param2) AS result FROM test_data)
```

حينئذٍ ستكون النتيجة هي التسميات.

`test_data` هو جدول مثل `train_data`، لكنه قد لا يحتوي على القيمة المستهدفة.

**الصيغة**

```sql theme={null}
stochasticLogisticRegression([learning_rate, l2_regularization_coef, mini_batch_size, method])(target, x1, x2, ...)
```

**المعاملات**

* `learning_rate` — المعامل المرتبط بطول الخطوة عند تنفيذ خطوة الانحدار المتدرج. قد يؤدي معدل تعلّم كبير جدًا إلى أوزان لا نهائية للنموذج. القيمة الافتراضية هي `0.00001`. [`Float64`](/ar/reference/data-types/float)
* `l2_regularization_coef` — معامل الانتظام L2، وقد يساعد في منع فرط التكيّف. القيمة الافتراضية هي `0.1`. [`Float64`](/ar/reference/data-types/float)
* `mini_batch_size` — يحدّد عدد العناصر التي تُحسب تدرجاتها وتُجمع لتنفيذ خطوة واحدة من الانحدار المتدرج. يستخدم الانحدار العشوائي البحت عنصرًا واحدًا، لكن استخدام دفعات صغيرة (حوالي 10 عناصر) يجعل خطوات التدرج أكثر استقرارًا. القيمة الافتراضية هي `15`. [`UInt64`](/ar/reference/data-types/int-uint)
* `method` — طريقة تحديث الأوزان: `Adam` (افتراضيًا)، `SGD`، `Momentum`، `Nesterov`. يتطلب `Momentum` و`Nesterov` قدرًا أكبر قليلًا من العمليات الحسابية والذاكرة، لكنهما مفيدان من حيث سرعة التقارب واستقرار أساليب الانحدار المتدرج العشوائي. [`String`](/ar/reference/data-types/string)
* `target` — تسميات التصنيف الثنائي المستهدفة. يجب أن تكون ضمن المجال \[-1, 1]. [`Float`](/ar/reference/data-types/float)
* `x1, x2, ...` — قيم السمات (المتغيرات المستقلة). يجب أن تكون جميعها عددية. [`Float`](/ar/reference/data-types/float)

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

تعيد أوزان نموذج الانحدار اللوجستي المدرَّب. استخدم `evalMLMethod` لإجراء التنبؤات، إذ يعيد احتمالات انتماء الكائن إلى الفئة ذات التسمية `1`. [`Array(Float64)`](/ar/reference/data-types/array)

**أمثلة**

**تدريب نموذج**

```sql title=Query theme={null}
CREATE TABLE your_model
ENGINE = MergeTree
ORDER BY tuple()
AS SELECT
stochasticLogisticRegressionState(1.0, 1.0, 10, 'SGD')(target, x1, x2)
AS state FROM train_data
```

```response title=Response theme={null}
Saves trained model state to table
```

**إجراء التنبؤات**

```sql title=Query theme={null}
WITH (SELECT state FROM your_model) AS model
SELECT
evalMLMethod(model, x1, x2)
FROM test_data
```

```response title=Response theme={null}
Returns probability values for test data
```

**التصنيف بالعتبة**

```sql title=Query theme={null}
SELECT result < 1.1 AND result > 0.5
FROM (
WITH (SELECT state FROM your_model) AS model SELECT
evalMLMethod(model, x1, x2) AS result FROM test_data)
```

```response title=Response theme={null}
Returns binary classification labels using probability threshold
```

**انظر أيضًا**

* [stochasticLinearRegression](/ar/reference/functions/aggregate-functions/stochasticLogisticRegression)
* [الفرق بين الانحدار الخطي والانحدار اللوجستي.](https://stackoverflow.com/questions/12146914/what-is-the-difference-between-linear-regression-and-logistic-regression)
