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

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

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

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

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

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

پیش نیازها 

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

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

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

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. ادغام کاتبوست به کلیک 

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

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

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

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

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

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

درجهبندی: 2.8 - 12 رای

این مطالب مفید بود?
★★★☆☆