2020-04-03 13:23:32 +00:00
---
2020-04-04 09:15:31 +00:00
machine_translated: true
machine_translated_rev: d734a8e46ddd7465886ba4133bff743c55190626
toc_priority: 41
toc_title: "\u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 \u0645\u062F\u0644\
\ \u0647\u0627\u06CC \u0627\u062F\u0645 \u06A9\u0648\u062F\u0646 \u0648 \u0627\u062D\
\u0645\u0642"
2020-04-03 13:23:32 +00:00
---
2020-04-04 09:15:31 +00:00
# استفاده از مدل ادم کودن و احمق در فاحشه خانه {#applying-catboost-model-in-clickhouse}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
[مانتو ](https://catboost.ai ) یک کتابخانه تقویت شیب رایگان و منبع باز توسعه یافته در [یاندکس ](https://yandex.com/company/ ) برای یادگیری ماشین.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
با استفاده از این دستورالعمل یاد خواهید گرفت که با اجرای مدل استنتاج از میدان از مدل های پیش روت شده در خانه استفاده کنید.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای اعمال یک مدل ادم کودن و احمق در خانه کلیک کنید:
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
1. [ایجاد یک جدول ](#create-table ).
2. [درج داده به جدول ](#insert-data-to-table ).
3. [ادغام کاتبوست به کلیک ](#integrate-catboost-into-clickhouse ) (مرحله اختیاری).
4. [اجرای مدل استنتاج از گذاشتن ](#run-model-inference ).
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای کسب اطلاعات بیشتر در مورد اموزش مدل های کاتبوست مراجعه کنید [اموزش و مدل سازی ](https://catboost.ai/docs/features/training.html#training ).
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
## پیش نیازها {#prerequisites}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
اگر شما لازم نیست که [کارگر بارانداز ](https://docs.docker.com/install/ ) هنوز, نصب کنید.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
[کارگر بارانداز ](https://www.docker.com ) یک پلت فرم نرم افزار است که اجازه می دهد تا به شما برای ایجاد ظروف که منزوی CatBoost و ClickHouse نصب و راه اندازی از بقیه سیستم.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
قبل از استفاده از مدل ادم کودن و احمق:
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**1.** بکش [تصویر کارگر بارانداز ](https://hub.docker.com/r/yandex/tutorial-catboost-clickhouse ) از رجیستری:
2020-04-03 13:23:32 +00:00
``` bash
$ docker pull yandex/tutorial-catboost-clickhouse
```
2020-04-04 09:15:31 +00:00
این docker تصویر شامل همه چیز شما نیاز به اجرای catboost و clickhouse: کد در زمان اجرا کتابخانه های محیط متغیر و فایل های پیکربندی.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**2.** اطمینان حاصل کنید که تصویر کارگر بارانداز شده است با موفقیت کشیده:
2020-04-03 13:23:32 +00:00
``` bash
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
yandex/tutorial-catboost-clickhouse latest 622e4d17945b 22 hours ago 1.37GB
```
2020-04-04 09:15:31 +00:00
**3.** شروع یک ظرف کارگر بارانداز بر اساس این تصویر:
2020-04-03 13:23:32 +00:00
``` bash
$ docker run -it -p 8888:8888 yandex/tutorial-catboost-clickhouse
```
2020-04-04 09:15:31 +00:00
## 1. ایجاد یک جدول {#create-table}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای ایجاد یک میز کلیک برای نمونه تمرین:
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**1.** شروع مشتری کنسول کلیک در حالت تعاملی:
2020-04-03 13:23:32 +00:00
``` bash
$ clickhouse client
```
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
سرور کلیک در حال حاضر در داخل ظرف کارگر بارانداز در حال اجرا.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**2.** ایجاد جدول با استفاده از دستور:
2020-04-03 13:23:32 +00:00
``` sql
:) CREATE TABLE amazon_train
(
date Date MATERIALIZED today(),
ACTION UInt8,
RESOURCE UInt32,
MGR_ID UInt32,
ROLE_ROLLUP_1 UInt32,
ROLE_ROLLUP_2 UInt32,
ROLE_DEPTNAME UInt32,
ROLE_TITLE UInt32,
ROLE_FAMILY_DESC UInt32,
ROLE_FAMILY UInt32,
ROLE_CODE UInt32
)
ENGINE = MergeTree ORDER BY date
```
2020-04-04 09:15:31 +00:00
**3.** خروج از مشتری کنسول کلیک کنید:
2020-04-03 13:23:32 +00:00
``` sql
:) exit
```
2020-04-04 09:15:31 +00:00
## 2. درج داده به جدول {#insert-data-to-table}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای وارد کردن داده ه ا :
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**1.** دستور زیر را اجرا کنید:
2020-04-03 13:23:32 +00:00
``` bash
$ clickhouse client --host 127.0.0.1 --query 'INSERT INTO amazon_train FORMAT CSVWithNames' < ~/amazon/train.csv
```
2020-04-04 09:15:31 +00:00
**2.** شروع مشتری کنسول کلیک در حالت تعاملی:
2020-04-03 13:23:32 +00:00
``` bash
$ clickhouse client
```
2020-04-04 09:15:31 +00:00
**3.** اطمینان حاصل کنید که داده ه ا ارسال شده است:
2020-04-03 13:23:32 +00:00
``` sql
:) SELECT count() FROM amazon_train
SELECT count()
FROM amazon_train
+-count()-+
| 65538 |
2020-04-04 09:15:31 +00:00
+-------+
2020-04-03 13:23:32 +00:00
```
2020-04-04 09:15:31 +00:00
## 3. ادغام کاتبوست به کلیک {#integrate-catboost-into-clickhouse}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
**گام اختیاری.** این Docker تصویر شامل همه چیز شما نیاز به اجرای CatBoost و ClickHouse.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای ادغام کاتبوست به کلیک:
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**1.** ساخت کتابخانه ارزیابی.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
سریعترین راه برای ارزیابی مدل ادم کودن و احمق کامپایل است `libcatboostmodel.<so|dll|dylib>` کتابخونه. برای کسب اطلاعات بیشتر در مورد چگونگی ساخت کتابخانه, دیدن [مستندات غلطیاب ](https://catboost.ai/docs/concepts/c-plus-plus-api_dynamic-c-pluplus-wrapper.html ).
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**2.** ایجاد یک دایرکتوری جدید در هر کجا و با هر نام, مثلا, `data` و کتابخونه درستشون رو توش بذار. تصویر کارگر بارانداز در حال حاضر شامل کتابخانه `data/libcatboostmodel.so` .
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**3.** ایجاد یک دایرکتوری جدید برای مدل پیکربندی در هر کجا و با هر نام, مثلا, `models` .
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**4.** برای مثال یک فایل پیکربندی مدل با هر نام ایجاد کنید, `models/amazon_model.xml` .
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
**5.** توصیف پیکربندی مدل:
2020-04-03 13:23:32 +00:00
``` xml
< models >
< model >
<!-- Model type. Now catboost only. -->
< type > catboost< / type >
<!-- Model name. -->
< name > amazon< / name >
<!-- Path to trained model. -->
< path > /home/catboost/tutorial/catboost_model.bin< / path >
<!-- Update interval. -->
< lifetime > 0< / lifetime >
< / model >
< / models >
```
2020-04-04 09:15:31 +00:00
**6.** اضافه کردن مسیر به CatBoost و مدل پیکربندی به پیکربندی ClickHouse:
2020-04-03 13:23:32 +00:00
``` xml
<!-- File etc/clickhouse - server/config.d/models_config.xml. -->
< catboost_dynamic_library_path > /home/catboost/data/libcatboostmodel.so< / catboost_dynamic_library_path >
< models_config > /home/catboost/models/*_model.xml< / models_config >
```
2020-04-04 09:15:31 +00:00
## 4. اجرای مدل استنتاج از گذاشتن {#run-model-inference}
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
برای مدل تست اجرای مشتری کلیک `$ clickhouse client` .
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
بیایید اطمینان حاصل کنیم که مدل کار می کند:
2020-04-03 13:23:32 +00:00
``` sql
:) SELECT
modelEvaluate('amazon',
RESOURCE,
MGR_ID,
ROLE_ROLLUP_1,
ROLE_ROLLUP_2,
ROLE_DEPTNAME,
ROLE_TITLE,
ROLE_FAMILY_DESC,
ROLE_FAMILY,
ROLE_CODE) > 0 AS prediction,
ACTION AS target
FROM amazon_train
LIMIT 10
```
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
2020-04-30 18:19:18 +00:00
تابع [مدلووات ](../sql-reference/functions/other-functions.md#function-modelevaluate ) را برمی گرداند تاپل با پیش بینی های خام در هر کلاس برای مدل های چند طبقه.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
بیایید احتمال را پیش بینی کنیم:
2020-04-03 13:23:32 +00:00
``` sql
:) SELECT
modelEvaluate('amazon',
RESOURCE,
MGR_ID,
ROLE_ROLLUP_1,
ROLE_ROLLUP_2,
ROLE_DEPTNAME,
ROLE_TITLE,
ROLE_FAMILY_DESC,
ROLE_FAMILY,
ROLE_CODE) AS prediction,
1. / (1 + exp(-prediction)) AS probability,
ACTION AS target
FROM amazon_train
LIMIT 10
```
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
2020-04-30 18:19:18 +00:00
اطلاعات بیشتر در مورد [خروج() ](../sql-reference/functions/math-functions.md ) تابع.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
بیایید محاسبه لگ در نمونه:
2020-04-03 13:23:32 +00:00
``` sql
:) SELECT -avg(tg * log(prob) + (1 - tg) * log(1 - prob)) AS logloss
FROM
(
SELECT
modelEvaluate('amazon',
RESOURCE,
MGR_ID,
ROLE_ROLLUP_1,
ROLE_ROLLUP_2,
ROLE_DEPTNAME,
ROLE_TITLE,
ROLE_FAMILY_DESC,
ROLE_FAMILY,
ROLE_CODE) AS prediction,
1. / (1. + exp(-prediction)) AS prob,
ACTION AS tg
FROM amazon_train
)
```
2020-04-04 09:15:31 +00:00
!!! note "یادداشت"
2020-04-30 18:19:18 +00:00
اطلاعات بیشتر در مورد [میانگین() ](../sql-reference/aggregate-functions/reference.md#agg_function-avg ) و [ثبت() ](../sql-reference/functions/math-functions.md ) توابع.
2020-04-03 13:23:32 +00:00
2020-04-04 09:15:31 +00:00
[مقاله اصلی ](https://clickhouse.tech/docs/en/guides/apply_catboost_model/ ) <!--hide-->