ClickHouse/docs/fa/guides/apply_catboost_model.md
2020-04-04 12:15:31 +03:00

8.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 41 استفاده از مدل های ادم کودن و احمق

استفاده از مدل ادم کودن و احمق در فاحشه خانه

مانتو یک کتابخانه تقویت شیب رایگان و منبع باز توسعه یافته در یاندکس برای یادگیری ماشین.

با استفاده از این دستورالعمل یاد خواهید گرفت که با اجرای مدل استنتاج از میدان از مدل های پیش روت شده در خانه استفاده کنید.

برای اعمال یک مدل ادم کودن و احمق در خانه کلیک کنید:

  1. ایجاد یک جدول.
  2. درج داده به جدول.
  3. ادغام کاتبوست به کلیک (مرحله اختیاری).
  4. اجرای مدل استنتاج از گذاشتن.

برای کسب اطلاعات بیشتر در مورد اموزش مدل های کاتبوست مراجعه کنید اموزش و مدل سازی.

پیش نیازها

اگر شما لازم نیست که کارگر بارانداز هنوز, نصب کنید.

!!! note "یادداشت" کارگر بارانداز یک پلت فرم نرم افزار است که اجازه می دهد تا به شما برای ایجاد ظروف که منزوی CatBoost و ClickHouse نصب و راه اندازی از بقیه سیستم.

قبل از استفاده از مدل ادم کودن و احمق:

1. بکش تصویر کارگر بارانداز از رجیستری:

$ docker pull yandex/tutorial-catboost-clickhouse

این docker تصویر شامل همه چیز شما نیاز به اجرای catboost و clickhouse: کد در زمان اجرا کتابخانه های محیط متغیر و فایل های پیکربندی.

2. اطمینان حاصل کنید که تصویر کارگر بارانداز شده است با موفقیت کشیده:

$ docker image ls
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
yandex/tutorial-catboost-clickhouse   latest              622e4d17945b        22 hours ago        1.37GB

3. شروع یک ظرف کارگر بارانداز بر اساس این تصویر:

$ docker run -it -p 8888:8888 yandex/tutorial-catboost-clickhouse

1. ایجاد یک جدول

برای ایجاد یک میز کلیک برای نمونه تمرین:

1. شروع مشتری کنسول کلیک در حالت تعاملی:

$ clickhouse client

!!! note "یادداشت" سرور کلیک در حال حاضر در داخل ظرف کارگر بارانداز در حال اجرا.

2. ایجاد جدول با استفاده از دستور:

:) 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

3. خروج از مشتری کنسول کلیک کنید:

:) exit

2. درج داده به جدول

برای وارد کردن داده ها:

1. دستور زیر را اجرا کنید:

$ clickhouse client --host 127.0.0.1 --query 'INSERT INTO amazon_train FORMAT CSVWithNames' < ~/amazon/train.csv

2. شروع مشتری کنسول کلیک در حالت تعاملی:

$ clickhouse client

3. اطمینان حاصل کنید که داده ها ارسال شده است:

:) SELECT count() FROM amazon_train

SELECT count()
FROM amazon_train

+-count()-+
|   65538 |
+-------+

3. ادغام کاتبوست به کلیک

!!! note "یادداشت" گام اختیاری. این Docker تصویر شامل همه چیز شما نیاز به اجرای CatBoost و ClickHouse.

برای ادغام کاتبوست به کلیک:

1. ساخت کتابخانه ارزیابی.

سریعترین راه برای ارزیابی مدل ادم کودن و احمق کامپایل است libcatboostmodel.<so|dll|dylib> کتابخونه. برای کسب اطلاعات بیشتر در مورد چگونگی ساخت کتابخانه, دیدن مستندات غلطیاب.

2. ایجاد یک دایرکتوری جدید در هر کجا و با هر نام, مثلا, data و کتابخونه درستشون رو توش بذار. تصویر کارگر بارانداز در حال حاضر شامل کتابخانه data/libcatboostmodel.so.

3. ایجاد یک دایرکتوری جدید برای مدل پیکربندی در هر کجا و با هر نام, مثلا, models.

4. برای مثال یک فایل پیکربندی مدل با هر نام ایجاد کنید, models/amazon_model.xml.

5. توصیف پیکربندی مدل:

<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>

6. اضافه کردن مسیر به CatBoost و مدل پیکربندی به پیکربندی ClickHouse:

<!-- 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>

4. اجرای مدل استنتاج از گذاشتن

برای مدل تست اجرای مشتری کلیک $ clickhouse client.

بیایید اطمینان حاصل کنیم که مدل کار می کند:

:) 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

!!! note "یادداشت" تابع مدلووات را برمی گرداند تاپل با پیش بینی های خام در هر کلاس برای مدل های چند طبقه.

بیایید احتمال را پیش بینی کنیم:

:) 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

!!! note "یادداشت" اطلاعات بیشتر در مورد خروج() تابع.

بیایید محاسبه لگ در نمونه:

:) 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
)

!!! note "یادداشت" اطلاعات بیشتر در مورد میانگین() و ثبت() توابع.

مقاله اصلی