{ "cells": [ { "cell_type": "markdown", "id": "8a4a74dc-5958-4c8c-abdb-784135994d35", "metadata": {}, "source": [ "\"Header\"" ] }, { "cell_type": "markdown", "id": "571b7f4d-d7d6-4a80-8288-b6eb5d76901c", "metadata": {}, "source": [ "## Assessment: Enhancing Data Science Outcomes With Efficient Workflow ##\n", "In this notebook, you will utilize what you've learned in this workshop to complete an assessment. The assessment has been divided into a couple of steps to guide your development. You will be graded based on the performance of your classification model. Note that this coding portion does not give partial credit - it shows up as either 0 or 60 points. \n", "
Step Points
0. Setting Up
1. Data Loading
2. Feature Engineering
3. Model Development
4. Model Persistence 60
" ] }, { "cell_type": "markdown", "id": "559c1a85-e36c-4396-93fb-524048c66684", "metadata": {}, "source": [ "

" ] }, { "cell_type": "markdown", "id": "43e4be02-6163-4282-ad82-892dee6d17a0", "metadata": {}, "source": [ "### Step 0: Setting Up ###\n", "For the assessment we are asking you to create a classification model over a similar dataset as the workshop. You'll need to leverage distributed computing with a Dask cluster of GPU workers. Your task is to prepare and train a classifier that accurately predicts a binary outcome. \n", "\n", "**Instructions**:
\n", "0.1 Modify the `` only and execute the below cell to create a CUDA cluster.
\n", "0.2 Modify the `` only and execute the cell below to instantiate a Dask client that connects to the CUDA cluster.
\n", "0.3 Execute the cell below to import the other dependencies. " ] }, { "cell_type": "code", "execution_count": 1, "id": "7c1a3928-8802-4df6-a384-a1e29f78e48c", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-11-08 14:31:46,707 - distributed.preloading - INFO - Creating preload: dask_cuda.initialize\n", "2025-11-08 14:31:46,707 - distributed.preloading - INFO - Import preload module: dask_cuda.initialize\n", "2025-11-08 14:31:46,748 - distributed.preloading - INFO - Creating preload: dask_cuda.initialize\n", "2025-11-08 14:31:46,748 - distributed.preloading - INFO - Import preload module: dask_cuda.initialize\n", "2025-11-08 14:31:46,753 - distributed.preloading - INFO - Creating preload: dask_cuda.initialize\n", "2025-11-08 14:31:46,753 - distributed.preloading - INFO - Import preload module: dask_cuda.initialize\n", "2025-11-08 14:31:46,777 - distributed.preloading - INFO - Creating preload: dask_cuda.initialize\n", "2025-11-08 14:31:46,777 - distributed.preloading - INFO - Import preload module: dask_cuda.initialize\n" ] } ], "source": [ "# 0.1\n", "# import dependencies\n", "from dask_cuda import LocalCUDACluster\n", "\n", "# instantiate a Client\n", "cluster=LocalCUDACluster()" ] }, { "cell_type": "code", "execution_count": 2, "id": "ed7b74c9-2679-4aad-851d-664d6b0c68b0", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 0.2\n", "# import dependencies\n", "from dask.distributed import Client, wait\n", "client=Client(cluster)" ] }, { "cell_type": "code", "execution_count": 3, "id": "0353dff8-1d06-4107-9fb6-3ffdb5c99f39", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 0.3\n", "# DO NOT CHANGE THIS CELL\n", "# import dependencies\n", "from dask_ml.model_selection import train_test_split\n", "import xgboost\n", "\n", "import dask_cudf\n", "import cudf\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "ac27c9b9-b8f9-4331-b6dd-f3a1c7da2058", "metadata": {}, "source": [ "### Step 1: Data Preparation ###\n", "The first step is to prepare the data. \n", "\n", "**Instructions**:
\n", "1.1 Modify the `` only and execute the below cell to import data from the given parquet files.
\n", "1.2 Execute the cell below to persist the data in memory and preview the `dask_cudf.DataFrame`.
\n", "1.3 Modify the `` only and execute the cell below to check for null values.
" ] }, { "cell_type": "code", "execution_count": 4, "id": "5967661e-849b-44ed-935e-372f9aba336a", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total of 2461697 records split across 4 partitions. \n" ] } ], "source": [ "# 1.1\n", "data_dir='data'\n", "ddf=dask_cudf.read_parquet(data_dir)\n", "\n", "print(f'Total of {len(ddf)} records split across {ddf.npartitions} partitions. ')" ] }, { "cell_type": "code", "execution_count": 5, "id": "36adc611-4dde-420f-839b-b8c2a4c729f5", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Columns: Index(['brand', 'cat_0', 'cat_1', 'cat_2', 'cat_3', 'price', 'ts_hour',\n", " 'ts_minute', 'ts_weekday', 'brand_target_sum', 'brand_count',\n", " 'cat_0_target_sum', 'cat_0_count', 'cat_1_target_sum', 'cat_1_count',\n", " 'cat_2_target_sum', 'cat_2_count', 'cat_3_target_sum', 'cat_3_count',\n", " 'TE_cat_0_target', 'TE_cat_1_target', 'TE_cat_2_target',\n", " 'TE_cat_3_target', 'relative_price_product', 'relative_price_category',\n", " 'target'],\n", " dtype='object')\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
brandcat_0cat_1cat_2cat_3pricets_hourts_minutets_weekdaybrand_target_sum...cat_2_countcat_3_target_sumcat_3_countTE_cat_0_targetTE_cat_1_targetTE_cat_2_targetTE_cat_3_targetrelative_price_productrelative_price_categorytarget
0234322154.02999915146347...751352100943224604050.2981270.2981270.3399660.410503-2.364262e-01-0.5577991
121111870.27002014193187853...898095100943224604050.4822800.4817710.4879520.409943-3.739005e-020.8890451
226521166.6700134321187853...751352100943224604050.3824380.3966450.3397090.4099432.697176e-020.3838941
3202741295.989990134125828...84166100943224604050.3911970.4165530.4209940.410366-4.706145e-02-0.1919931
427322143.240002174312815...751352100943224604050.2985640.2985640.3397090.4099431.764430e-07-0.6461081
\n", "

5 rows × 26 columns

\n", "
" ], "text/plain": [ " brand cat_0 cat_1 cat_2 cat_3 price ts_hour ts_minute \\\n", "0 234 3 2 2 1 54.029999 15 14 \n", "1 2 1 1 1 1 870.270020 14 19 \n", "2 2 6 5 2 1 166.670013 4 32 \n", "3 20 2 7 4 1 295.989990 13 41 \n", "4 27 3 2 2 1 43.240002 17 43 \n", "\n", " ts_weekday brand_target_sum ... cat_2_count cat_3_target_sum \\\n", "0 6 347 ... 751352 1009432 \n", "1 3 187853 ... 898095 1009432 \n", "2 1 187853 ... 751352 1009432 \n", "3 2 5828 ... 84166 1009432 \n", "4 1 2815 ... 751352 1009432 \n", "\n", " cat_3_count TE_cat_0_target TE_cat_1_target TE_cat_2_target \\\n", "0 2460405 0.298127 0.298127 0.339966 \n", "1 2460405 0.482280 0.481771 0.487952 \n", "2 2460405 0.382438 0.396645 0.339709 \n", "3 2460405 0.391197 0.416553 0.420994 \n", "4 2460405 0.298564 0.298564 0.339709 \n", "\n", " TE_cat_3_target relative_price_product relative_price_category target \n", "0 0.410503 -2.364262e-01 -0.557799 1 \n", "1 0.409943 -3.739005e-02 0.889045 1 \n", "2 0.409943 2.697176e-02 0.383894 1 \n", "3 0.410366 -4.706145e-02 -0.191993 1 \n", "4 0.409943 1.764430e-07 -0.646108 1 \n", "\n", "[5 rows x 26 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1.2\n", "# DO NOT CHANGE THIS CELL\n", "# persist data\n", "ddf=ddf.persist()\n", "wait(ddf)\n", "\n", "print(f'Columns: {ddf.columns}')\n", "\n", "ddf.head()" ] }, { "cell_type": "code", "execution_count": 9, "id": "f6ace495-9b14-487c-8bf6-177907958f5e", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "brand 0\n", "cat_0 0\n", "cat_1 0\n", "cat_2 0\n", "cat_3 0\n", "price 0\n", "ts_hour 0\n", "ts_minute 0\n", "ts_weekday 0\n", "brand_target_sum 0\n", "brand_count 0\n", "cat_0_target_sum 0\n", "cat_0_count 0\n", "cat_1_target_sum 0\n", "cat_1_count 0\n", "cat_2_target_sum 0\n", "cat_2_count 0\n", "cat_3_target_sum 0\n", "cat_3_count 0\n", "TE_cat_0_target 0\n", "TE_cat_1_target 0\n", "TE_cat_2_target 0\n", "TE_cat_3_target 0\n", "relative_price_product 0\n", "relative_price_category 0\n", "target 0\n", "dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1.3\n", "ddf.isnull().sum().compute()" ] }, { "cell_type": "markdown", "id": "c569654d-7fe0-4af4-b8ea-d2326bb684a2", "metadata": {}, "source": [ "### Step 2: Feature Engineering ###\n", "Next, we will perform some feature engineering. \n", "\n", "**Instructions**:
\n", "2.1 Modify the ``s only and execute the below cell to `target_encode` the `brand` feature.
\n", "2.2 Modify the ``s only and execute the cell below to create a `relative_price_brand` feature. In case a price is small or 0, please introduce an `epsilon` to avoid division by zero.
\n", "2.3 Execute the cell below to persist the data in memory. " ] }, { "cell_type": "code", "execution_count": 10, "id": "a350a853-d613-474b-8ed5-d99d271fe51b", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
brandcat_0cat_1cat_2cat_3pricets_hourts_minutets_weekdaybrand_target_sum...cat_3_target_sumcat_3_countTE_cat_0_targetTE_cat_1_targetTE_cat_2_targetTE_cat_3_targetrelative_price_productrelative_price_categorytargetbrand_TE
0234322154.02999915146347...100943224604050.2981270.2981270.3399660.410503-2.364262e-01-0.55779910.475995
121111870.27002014193187853...100943224604050.4822800.4817710.4879520.409943-3.739005e-020.88904510.481383
226521166.6700134321187853...100943224604050.3824380.3966450.3397090.4099432.697176e-020.38389410.481383
3202741295.989990134125828...100943224604050.3911970.4165530.4209940.410366-4.706145e-02-0.19199310.463939
427322143.240002174312815...100943224604050.2985640.2985640.3397090.4099431.764430e-07-0.64610810.247647
\n", "

5 rows × 27 columns

\n", "
" ], "text/plain": [ " brand cat_0 cat_1 cat_2 cat_3 price ts_hour ts_minute \\\n", "0 234 3 2 2 1 54.029999 15 14 \n", "1 2 1 1 1 1 870.270020 14 19 \n", "2 2 6 5 2 1 166.670013 4 32 \n", "3 20 2 7 4 1 295.989990 13 41 \n", "4 27 3 2 2 1 43.240002 17 43 \n", "\n", " ts_weekday brand_target_sum ... cat_3_target_sum cat_3_count \\\n", "0 6 347 ... 1009432 2460405 \n", "1 3 187853 ... 1009432 2460405 \n", "2 1 187853 ... 1009432 2460405 \n", "3 2 5828 ... 1009432 2460405 \n", "4 1 2815 ... 1009432 2460405 \n", "\n", " TE_cat_0_target TE_cat_1_target TE_cat_2_target TE_cat_3_target \\\n", "0 0.298127 0.298127 0.339966 0.410503 \n", "1 0.482280 0.481771 0.487952 0.409943 \n", "2 0.382438 0.396645 0.339709 0.409943 \n", "3 0.391197 0.416553 0.420994 0.410366 \n", "4 0.298564 0.298564 0.339709 0.409943 \n", "\n", " relative_price_product relative_price_category target brand_TE \n", "0 -2.364262e-01 -0.557799 1 0.475995 \n", "1 -3.739005e-02 0.889045 1 0.481383 \n", "2 2.697176e-02 0.383894 1 0.481383 \n", "3 -4.706145e-02 -0.191993 1 0.463939 \n", "4 1.764430e-07 -0.646108 1 0.247647 \n", "\n", "[5 rows x 27 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2.1\n", "def target_encoding(df, cat): \n", " te_df=df.groupby(cat)['target'].mean().reset_index()\n", " te_df.columns=[cat, cat+'_TE']\n", " df=df.merge(te_df, on=cat)\n", " return df\n", "\n", "ddf=target_encoding(ddf, 'brand')\n", "ddf.head()" ] }, { "cell_type": "code", "execution_count": 16, "id": "f9c69922-bd7b-47ad-afb0-d475072cbbca", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
brandcat_0cat_1cat_2cat_3pricets_hourts_minutets_weekdaybrand_target_sum...cat_3_countTE_cat_0_targetTE_cat_1_targetTE_cat_2_targetTE_cat_3_targetrelative_price_productrelative_price_categorytargetbrand_TErelative_price_brand
021111870.27002015153187853...24604050.4822800.4817710.4879520.409943-3.739005e-020.88904510.4813831.177483
14652179.23999843168194...24604050.3854910.4001920.3404530.4103661.565067e-01-0.34205510.3814770.453809
282371385.849976815212586...24604050.3915050.3671030.4033830.409943-3.966478e-030.28542810.3996700.850307
3623141529.309998658617987...24604050.3927930.3686150.5087620.410503-8.071749e-070.40543310.5016171.956347
4681181210.820007741317987...24604050.4044430.4596850.4731500.410366-2.895130e-070.14374010.5016170.779197
\n", "

5 rows × 28 columns

\n", "
" ], "text/plain": [ " brand cat_0 cat_1 cat_2 cat_3 price ts_hour ts_minute \\\n", "0 2 1 1 1 1 870.270020 15 15 \n", "1 4 6 5 2 1 79.239998 4 3 \n", "2 8 2 3 7 1 385.849976 8 15 \n", "3 6 2 3 14 1 529.309998 6 58 \n", "4 6 8 11 8 1 210.820007 7 41 \n", "\n", " ts_weekday brand_target_sum ... cat_3_count TE_cat_0_target \\\n", "0 3 187853 ... 2460405 0.482280 \n", "1 1 68194 ... 2460405 0.385491 \n", "2 2 12586 ... 2460405 0.391505 \n", "3 6 17987 ... 2460405 0.392793 \n", "4 3 17987 ... 2460405 0.404443 \n", "\n", " TE_cat_1_target TE_cat_2_target TE_cat_3_target relative_price_product \\\n", "0 0.481771 0.487952 0.409943 -3.739005e-02 \n", "1 0.400192 0.340453 0.410366 1.565067e-01 \n", "2 0.367103 0.403383 0.409943 -3.966478e-03 \n", "3 0.368615 0.508762 0.410503 -8.071749e-07 \n", "4 0.459685 0.473150 0.410366 -2.895130e-07 \n", "\n", " relative_price_category target brand_TE relative_price_brand \n", "0 0.889045 1 0.481383 1.177483 \n", "1 -0.342055 1 0.381477 0.453809 \n", "2 0.285428 1 0.399670 0.850307 \n", "3 0.405433 1 0.501617 1.956347 \n", "4 0.143740 1 0.501617 0.779197 \n", "\n", "[5 rows x 28 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2.2\n", "def relative_price(df, cat): \n", " epsilon=1e-5\n", " avg_price_df=df.groupby(cat)['price'].mean().reset_index()\n", " avg_price_df.columns=[cat, 'avg_price_'+cat]\n", " df=df.merge(avg_price_df, on=cat)\n", " df['relative_price_'+cat]=df['price']/(df['avg_price_'+cat] + epsilon)\n", " df=df.drop(columns=['avg_price_'+cat])\n", " return df\n", "\n", "ddf=relative_price(ddf, 'brand')\n", "ddf.head()" ] }, { "cell_type": "code", "execution_count": 17, "id": "baee112d-90bb-49ae-8b31-2e688e05f2ae", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Columns: Index(['brand', 'cat_0', 'cat_1', 'cat_2', 'cat_3', 'price', 'ts_hour',\n", " 'ts_minute', 'ts_weekday', 'brand_target_sum', 'brand_count',\n", " 'cat_0_target_sum', 'cat_0_count', 'cat_1_target_sum', 'cat_1_count',\n", " 'cat_2_target_sum', 'cat_2_count', 'cat_3_target_sum', 'cat_3_count',\n", " 'TE_cat_0_target', 'TE_cat_1_target', 'TE_cat_2_target',\n", " 'TE_cat_3_target', 'relative_price_product', 'relative_price_category',\n", " 'target', 'brand_TE', 'relative_price_brand'],\n", " dtype='object')\n" ] } ], "source": [ "# 2.3\n", "# DO NOT CHANGE THIS CELL\n", "# persist data\n", "ddf=ddf.persist()\n", "wait(ddf)\n", "\n", "print(f'Columns: {ddf.columns}')" ] }, { "cell_type": "markdown", "id": "455daecb-fbd1-4e1e-a831-68b4672f10ed", "metadata": {}, "source": [ "### Step 3: Model Training ###\n", "The next step is to train an `xgboost.dask.XGBoostClassifier`. \n", "\n", "**Instructions**:
\n", "3.1 Execute the below cell to select desired features for training and set as `X`.
\n", "3.2 Modify the `` only and execute the cell below to set `target` as `y`.
\n", "3.3 Modify the `` only and execute the cell below to split the dataset into `X_train`, `X_test`, `y_train`, and `y_test`.
\n", "3.4 Execute the cell below to create `xgb.dask.DaskDMatrix` objects for training and testing as `dtrain` and `dtest`.
\n", "3.5 Modify the ``s only and execute the cell below to set the XGBoost parameters. For this assessment, please use the `auc` evaluation metric.
\n", "3.6 Modify the ``s only and execute the cell below to initiate training.
\n", "3.7 Execute the cell below to view the training and validation history. " ] }, { "cell_type": "code", "execution_count": 18, "id": "89e51eeb-b3d2-4e19-928d-cab0c57a5e2a", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 3.1\n", "# DO NOT CHANGE THIS CELL\n", "X=ddf.drop(columns=['target']).astype('float32')" ] }, { "cell_type": "code", "execution_count": 19, "id": "fcf59460-0837-40db-9f08-328754ea9b8d", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 3.2\n", "y=ddf['target'].astype('float32')" ] }, { "cell_type": "code", "execution_count": 20, "id": "1ff5840d-45e3-40cf-86af-82defd2b5842", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/envs/rapids/lib/python3.9/site-packages/dask_ml/model_selection/_split.py:462: FutureWarning: The default value for 'shuffle' must be specified when splitting DataFrames. In the future DataFrames will automatically be shuffled within blocks prior to splitting. Specify 'shuffle=True' to adopt the future behavior now, or 'shuffle=False' to retain the previous behavior.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "DoneAndNotDoneFutures(done={, , , , , , , , , , , , , , , }, not_done=set())" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 3.3\n", "X_train, X_test, y_train, y_test=train_test_split(X, y, random_state=42)\n", "X_train, X_test, y_train, y_test=client.persist([X_train, X_test, y_train, y_test])\n", "wait([X_train, X_test, y_train, y_test])" ] }, { "cell_type": "code", "execution_count": 21, "id": "5446ffdd-2471-4577-ad78-0ac27dd3d9c2", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 3.4\n", "# DO NOT CHANGE THIS CELL\n", "dtrain=xgboost.dask.DaskDMatrix(client, X_train, y_train)\n", "dtest=xgboost.dask.DaskDMatrix(client, X_test, y_test)" ] }, { "cell_type": "code", "execution_count": 23, "id": "184416f6-2b5a-41f4-a2eb-be6c888534e5", "metadata": { "scrolled": true, "tags": [] }, "outputs": [], "source": [ "# 3.5\n", "xgb_params={ \n", " 'eval_metric': ['auc'], \n", " 'objective': 'binary:logistic',\n", " 'tree_method': 'gpu_hist'\n", "}" ] }, { "cell_type": "code", "execution_count": 25, "id": "121437f1-4ec9-4056-90c2-595c8a116345", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:distributed.worker:Run out-of-band function '_start_tracker'\n", "[14:46:37] task [xgboost.dask-0]:tcp://127.0.0.1:37937 got new rank 0\n", "[14:46:37] task [xgboost.dask-1]:tcp://127.0.0.1:42015 got new rank 1\n", "[14:46:37] task [xgboost.dask-2]:tcp://127.0.0.1:40413 got new rank 2\n", "[14:46:37] task [xgboost.dask-3]:tcp://127.0.0.1:37709 got new rank 3\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[0]\ttrain-auc:0.60997\tvalid-auc:0.61033\n", "[1]\ttrain-auc:0.61210\tvalid-auc:0.61210\n", "[2]\ttrain-auc:0.61293\tvalid-auc:0.61274\n", "[3]\ttrain-auc:0.61370\tvalid-auc:0.61353\n", "[4]\ttrain-auc:0.61431\tvalid-auc:0.61426\n", "[5]\ttrain-auc:0.61492\tvalid-auc:0.61477\n", "[6]\ttrain-auc:0.61526\tvalid-auc:0.61501\n", "[7]\ttrain-auc:0.61586\tvalid-auc:0.61549\n", "[8]\ttrain-auc:0.61632\tvalid-auc:0.61602\n", "[9]\ttrain-auc:0.61704\tvalid-auc:0.61668\n", "[10]\ttrain-auc:0.61768\tvalid-auc:0.61723\n", "[11]\ttrain-auc:0.61799\tvalid-auc:0.61753\n", "[12]\ttrain-auc:0.61826\tvalid-auc:0.61772\n", "[13]\ttrain-auc:0.61868\tvalid-auc:0.61800\n", "[14]\ttrain-auc:0.61913\tvalid-auc:0.61847\n", "[15]\ttrain-auc:0.61984\tvalid-auc:0.61916\n", "[16]\ttrain-auc:0.61993\tvalid-auc:0.61923\n", "[17]\ttrain-auc:0.62045\tvalid-auc:0.61957\n", "[18]\ttrain-auc:0.62071\tvalid-auc:0.61971\n", "[19]\ttrain-auc:0.62089\tvalid-auc:0.61984\n", "[20]\ttrain-auc:0.62100\tvalid-auc:0.61990\n", "[21]\ttrain-auc:0.62122\tvalid-auc:0.62004\n", "[22]\ttrain-auc:0.62166\tvalid-auc:0.62038\n", "[23]\ttrain-auc:0.62223\tvalid-auc:0.62080\n", "[24]\ttrain-auc:0.62236\tvalid-auc:0.62089\n", "[25]\ttrain-auc:0.62260\tvalid-auc:0.62101\n", "[26]\ttrain-auc:0.62268\tvalid-auc:0.62104\n", "[27]\ttrain-auc:0.62289\tvalid-auc:0.62123\n", "[28]\ttrain-auc:0.62329\tvalid-auc:0.62147\n", "[29]\ttrain-auc:0.62376\tvalid-auc:0.62190\n", "[30]\ttrain-auc:0.62397\tvalid-auc:0.62198\n", "[31]\ttrain-auc:0.62402\tvalid-auc:0.62202\n", "[32]\ttrain-auc:0.62412\tvalid-auc:0.62204\n", "[33]\ttrain-auc:0.62451\tvalid-auc:0.62225\n", "[34]\ttrain-auc:0.62486\tvalid-auc:0.62251\n", "[35]\ttrain-auc:0.62497\tvalid-auc:0.62257\n", "[36]\ttrain-auc:0.62529\tvalid-auc:0.62270\n", "[37]\ttrain-auc:0.62554\tvalid-auc:0.62280\n", "[38]\ttrain-auc:0.62581\tvalid-auc:0.62301\n", "[39]\ttrain-auc:0.62613\tvalid-auc:0.62324\n", "[40]\ttrain-auc:0.62640\tvalid-auc:0.62347\n", "[41]\ttrain-auc:0.62664\tvalid-auc:0.62359\n", "[42]\ttrain-auc:0.62673\tvalid-auc:0.62367\n", "[43]\ttrain-auc:0.62691\tvalid-auc:0.62383\n", "[44]\ttrain-auc:0.62707\tvalid-auc:0.62387\n", "[45]\ttrain-auc:0.62733\tvalid-auc:0.62403\n", "[46]\ttrain-auc:0.62749\tvalid-auc:0.62405\n", "[47]\ttrain-auc:0.62769\tvalid-auc:0.62418\n", "[48]\ttrain-auc:0.62797\tvalid-auc:0.62435\n", "[49]\ttrain-auc:0.62811\tvalid-auc:0.62443\n", "[50]\ttrain-auc:0.62821\tvalid-auc:0.62453\n", "[51]\ttrain-auc:0.62845\tvalid-auc:0.62465\n", "[52]\ttrain-auc:0.62859\tvalid-auc:0.62466\n", "[53]\ttrain-auc:0.62874\tvalid-auc:0.62475\n", "[54]\ttrain-auc:0.62881\tvalid-auc:0.62478\n", "[55]\ttrain-auc:0.62896\tvalid-auc:0.62487\n", "[56]\ttrain-auc:0.62920\tvalid-auc:0.62496\n", "[57]\ttrain-auc:0.62943\tvalid-auc:0.62502\n", "[58]\ttrain-auc:0.62969\tvalid-auc:0.62515\n", "[59]\ttrain-auc:0.62983\tvalid-auc:0.62519\n", "[60]\ttrain-auc:0.63000\tvalid-auc:0.62523\n", "[61]\ttrain-auc:0.63025\tvalid-auc:0.62538\n", "[62]\ttrain-auc:0.63037\tvalid-auc:0.62541\n", "[63]\ttrain-auc:0.63047\tvalid-auc:0.62541\n", "[64]\ttrain-auc:0.63060\tvalid-auc:0.62547\n", "[65]\ttrain-auc:0.63081\tvalid-auc:0.62560\n", "[66]\ttrain-auc:0.63101\tvalid-auc:0.62567\n", "[67]\ttrain-auc:0.63124\tvalid-auc:0.62580\n", "[68]\ttrain-auc:0.63146\tvalid-auc:0.62590\n", "[69]\ttrain-auc:0.63157\tvalid-auc:0.62595\n", "[70]\ttrain-auc:0.63178\tvalid-auc:0.62598\n", "[71]\ttrain-auc:0.63189\tvalid-auc:0.62601\n", "[72]\ttrain-auc:0.63203\tvalid-auc:0.62606\n", "[73]\ttrain-auc:0.63223\tvalid-auc:0.62621\n", "[74]\ttrain-auc:0.63237\tvalid-auc:0.62624\n", "[75]\ttrain-auc:0.63254\tvalid-auc:0.62633\n", "[76]\ttrain-auc:0.63265\tvalid-auc:0.62635\n", "[77]\ttrain-auc:0.63268\tvalid-auc:0.62634\n", "[78]\ttrain-auc:0.63273\tvalid-auc:0.62631\n", "[79]\ttrain-auc:0.63282\tvalid-auc:0.62636\n", "[80]\ttrain-auc:0.63301\tvalid-auc:0.62647\n", "[81]\ttrain-auc:0.63324\tvalid-auc:0.62661\n", "[82]\ttrain-auc:0.63341\tvalid-auc:0.62668\n", "[83]\ttrain-auc:0.63354\tvalid-auc:0.62669\n", "[84]\ttrain-auc:0.63370\tvalid-auc:0.62677\n", "[85]\ttrain-auc:0.63377\tvalid-auc:0.62679\n", "[86]\ttrain-auc:0.63381\tvalid-auc:0.62679\n", "[87]\ttrain-auc:0.63399\tvalid-auc:0.62692\n", "[88]\ttrain-auc:0.63413\tvalid-auc:0.62696\n", "[89]\ttrain-auc:0.63431\tvalid-auc:0.62704\n", "[90]\ttrain-auc:0.63447\tvalid-auc:0.62717\n", "[91]\ttrain-auc:0.63471\tvalid-auc:0.62730\n", "[92]\ttrain-auc:0.63489\tvalid-auc:0.62737\n", "[93]\ttrain-auc:0.63502\tvalid-auc:0.62742\n", "[94]\ttrain-auc:0.63515\tvalid-auc:0.62746\n", "[95]\ttrain-auc:0.63526\tvalid-auc:0.62758\n", "[96]\ttrain-auc:0.63538\tvalid-auc:0.62762\n", "[97]\ttrain-auc:0.63544\tvalid-auc:0.62764\n", "[98]\ttrain-auc:0.63563\tvalid-auc:0.62774\n", "[99]\ttrain-auc:0.63573\tvalid-auc:0.62780\n", "[100]\ttrain-auc:0.63588\tvalid-auc:0.62787\n", "[101]\ttrain-auc:0.63598\tvalid-auc:0.62788\n", "[102]\ttrain-auc:0.63613\tvalid-auc:0.62794\n", "[103]\ttrain-auc:0.63632\tvalid-auc:0.62802\n", "[104]\ttrain-auc:0.63647\tvalid-auc:0.62809\n", "[105]\ttrain-auc:0.63660\tvalid-auc:0.62815\n", "[106]\ttrain-auc:0.63673\tvalid-auc:0.62820\n", "[107]\ttrain-auc:0.63683\tvalid-auc:0.62820\n", "[108]\ttrain-auc:0.63694\tvalid-auc:0.62822\n", "[109]\ttrain-auc:0.63704\tvalid-auc:0.62825\n", "[110]\ttrain-auc:0.63710\tvalid-auc:0.62826\n", "[111]\ttrain-auc:0.63721\tvalid-auc:0.62829\n", "[112]\ttrain-auc:0.63737\tvalid-auc:0.62837\n", "[113]\ttrain-auc:0.63751\tvalid-auc:0.62845\n", "[114]\ttrain-auc:0.63765\tvalid-auc:0.62849\n", "[115]\ttrain-auc:0.63781\tvalid-auc:0.62857\n", "[116]\ttrain-auc:0.63791\tvalid-auc:0.62863\n", "[117]\ttrain-auc:0.63797\tvalid-auc:0.62864\n", "[118]\ttrain-auc:0.63807\tvalid-auc:0.62868\n", "[119]\ttrain-auc:0.63819\tvalid-auc:0.62872\n", "[120]\ttrain-auc:0.63825\tvalid-auc:0.62871\n", "[121]\ttrain-auc:0.63832\tvalid-auc:0.62874\n", "[122]\ttrain-auc:0.63846\tvalid-auc:0.62881\n", "[123]\ttrain-auc:0.63857\tvalid-auc:0.62887\n", "[124]\ttrain-auc:0.63871\tvalid-auc:0.62891\n", "[125]\ttrain-auc:0.63890\tvalid-auc:0.62900\n", "[126]\ttrain-auc:0.63899\tvalid-auc:0.62901\n", "[127]\ttrain-auc:0.63912\tvalid-auc:0.62905\n", "[128]\ttrain-auc:0.63921\tvalid-auc:0.62909\n", "[129]\ttrain-auc:0.63931\tvalid-auc:0.62910\n", "[130]\ttrain-auc:0.63935\tvalid-auc:0.62907\n", "[131]\ttrain-auc:0.63950\tvalid-auc:0.62914\n", "[132]\ttrain-auc:0.63964\tvalid-auc:0.62918\n", "[133]\ttrain-auc:0.63975\tvalid-auc:0.62922\n", "[134]\ttrain-auc:0.63988\tvalid-auc:0.62929\n", "[135]\ttrain-auc:0.63994\tvalid-auc:0.62931\n", "[136]\ttrain-auc:0.64006\tvalid-auc:0.62936\n", "[137]\ttrain-auc:0.64022\tvalid-auc:0.62944\n", "[138]\ttrain-auc:0.64034\tvalid-auc:0.62953\n", "[139]\ttrain-auc:0.64048\tvalid-auc:0.62958\n", "[140]\ttrain-auc:0.64065\tvalid-auc:0.62967\n", "[141]\ttrain-auc:0.64081\tvalid-auc:0.62963\n", "[142]\ttrain-auc:0.64092\tvalid-auc:0.62967\n", "[143]\ttrain-auc:0.64102\tvalid-auc:0.62970\n", "[144]\ttrain-auc:0.64108\tvalid-auc:0.62973\n", "[145]\ttrain-auc:0.64121\tvalid-auc:0.62982\n", "[146]\ttrain-auc:0.64126\tvalid-auc:0.62979\n", "[147]\ttrain-auc:0.64134\tvalid-auc:0.62983\n", "[148]\ttrain-auc:0.64146\tvalid-auc:0.62987\n", "[149]\ttrain-auc:0.64158\tvalid-auc:0.62994\n", "[150]\ttrain-auc:0.64173\tvalid-auc:0.62998\n", "[151]\ttrain-auc:0.64177\tvalid-auc:0.63001\n", "[152]\ttrain-auc:0.64186\tvalid-auc:0.63000\n", "[153]\ttrain-auc:0.64194\tvalid-auc:0.63001\n", "[154]\ttrain-auc:0.64204\tvalid-auc:0.63003\n", "[155]\ttrain-auc:0.64216\tvalid-auc:0.63009\n", "[156]\ttrain-auc:0.64233\tvalid-auc:0.63016\n", "[157]\ttrain-auc:0.64248\tvalid-auc:0.63024\n", "[158]\ttrain-auc:0.64259\tvalid-auc:0.63026\n", "[159]\ttrain-auc:0.64270\tvalid-auc:0.63033\n", "[160]\ttrain-auc:0.64282\tvalid-auc:0.63035\n", "[161]\ttrain-auc:0.64290\tvalid-auc:0.63038\n", "[162]\ttrain-auc:0.64298\tvalid-auc:0.63042\n", "[163]\ttrain-auc:0.64312\tvalid-auc:0.63045\n", "[164]\ttrain-auc:0.64324\tvalid-auc:0.63052\n", "[165]\ttrain-auc:0.64334\tvalid-auc:0.63051\n", "[166]\ttrain-auc:0.64342\tvalid-auc:0.63055\n", "[167]\ttrain-auc:0.64348\tvalid-auc:0.63056\n", "[168]\ttrain-auc:0.64355\tvalid-auc:0.63058\n", "[169]\ttrain-auc:0.64358\tvalid-auc:0.63058\n", "[170]\ttrain-auc:0.64368\tvalid-auc:0.63060\n", "[171]\ttrain-auc:0.64381\tvalid-auc:0.63068\n", "[172]\ttrain-auc:0.64391\tvalid-auc:0.63069\n", "[173]\ttrain-auc:0.64401\tvalid-auc:0.63070\n", "[174]\ttrain-auc:0.64408\tvalid-auc:0.63072\n", "[175]\ttrain-auc:0.64420\tvalid-auc:0.63076\n", "[176]\ttrain-auc:0.64433\tvalid-auc:0.63078\n", "[177]\ttrain-auc:0.64447\tvalid-auc:0.63080\n", "[178]\ttrain-auc:0.64455\tvalid-auc:0.63082\n", "[179]\ttrain-auc:0.64468\tvalid-auc:0.63089\n", "[180]\ttrain-auc:0.64478\tvalid-auc:0.63090\n", "[181]\ttrain-auc:0.64486\tvalid-auc:0.63091\n", "[182]\ttrain-auc:0.64500\tvalid-auc:0.63092\n", "[183]\ttrain-auc:0.64509\tvalid-auc:0.63093\n", "[184]\ttrain-auc:0.64513\tvalid-auc:0.63095\n", "[185]\ttrain-auc:0.64522\tvalid-auc:0.63100\n", "[186]\ttrain-auc:0.64536\tvalid-auc:0.63105\n", "[187]\ttrain-auc:0.64549\tvalid-auc:0.63106\n", "[188]\ttrain-auc:0.64561\tvalid-auc:0.63111\n", "[189]\ttrain-auc:0.64569\tvalid-auc:0.63113\n", "[190]\ttrain-auc:0.64573\tvalid-auc:0.63113\n", "[191]\ttrain-auc:0.64578\tvalid-auc:0.63112\n", "[192]\ttrain-auc:0.64591\tvalid-auc:0.63115\n", "[193]\ttrain-auc:0.64607\tvalid-auc:0.63119\n", "[194]\ttrain-auc:0.64613\tvalid-auc:0.63120\n", "[195]\ttrain-auc:0.64624\tvalid-auc:0.63127\n", "[196]\ttrain-auc:0.64633\tvalid-auc:0.63127\n", "[197]\ttrain-auc:0.64640\tvalid-auc:0.63129\n", "[198]\ttrain-auc:0.64648\tvalid-auc:0.63132\n", "[199]\ttrain-auc:0.64654\tvalid-auc:0.63130\n", "[200]\ttrain-auc:0.64658\tvalid-auc:0.63130\n", "[201]\ttrain-auc:0.64669\tvalid-auc:0.63134\n", "[202]\ttrain-auc:0.64676\tvalid-auc:0.63133\n", "[203]\ttrain-auc:0.64686\tvalid-auc:0.63137\n", "[204]\ttrain-auc:0.64691\tvalid-auc:0.63135\n", "[205]\ttrain-auc:0.64696\tvalid-auc:0.63135\n", "[206]\ttrain-auc:0.64698\tvalid-auc:0.63136\n", "[207]\ttrain-auc:0.64702\tvalid-auc:0.63136\n", "[208]\ttrain-auc:0.64712\tvalid-auc:0.63142\n", "[209]\ttrain-auc:0.64720\tvalid-auc:0.63143\n", "[210]\ttrain-auc:0.64733\tvalid-auc:0.63153\n", "[211]\ttrain-auc:0.64743\tvalid-auc:0.63157\n", "[212]\ttrain-auc:0.64753\tvalid-auc:0.63158\n", "[213]\ttrain-auc:0.64767\tvalid-auc:0.63166\n", "[214]\ttrain-auc:0.64773\tvalid-auc:0.63165\n", "[215]\ttrain-auc:0.64778\tvalid-auc:0.63166\n", "[216]\ttrain-auc:0.64786\tvalid-auc:0.63167\n", "[217]\ttrain-auc:0.64795\tvalid-auc:0.63166\n", "[218]\ttrain-auc:0.64806\tvalid-auc:0.63169\n", "[219]\ttrain-auc:0.64815\tvalid-auc:0.63174\n", "[220]\ttrain-auc:0.64823\tvalid-auc:0.63176\n", "[221]\ttrain-auc:0.64834\tvalid-auc:0.63183\n", "[222]\ttrain-auc:0.64845\tvalid-auc:0.63184\n", "[223]\ttrain-auc:0.64854\tvalid-auc:0.63186\n", "[224]\ttrain-auc:0.64863\tvalid-auc:0.63185\n", "[225]\ttrain-auc:0.64873\tvalid-auc:0.63187\n", "[226]\ttrain-auc:0.64878\tvalid-auc:0.63187\n", "[227]\ttrain-auc:0.64891\tvalid-auc:0.63190\n", "[228]\ttrain-auc:0.64901\tvalid-auc:0.63194\n", "[229]\ttrain-auc:0.64912\tvalid-auc:0.63196\n", "[230]\ttrain-auc:0.64923\tvalid-auc:0.63198\n", "[231]\ttrain-auc:0.64936\tvalid-auc:0.63201\n", "[232]\ttrain-auc:0.64950\tvalid-auc:0.63206\n", "[233]\ttrain-auc:0.64958\tvalid-auc:0.63209\n", "[234]\ttrain-auc:0.64970\tvalid-auc:0.63219\n", "[235]\ttrain-auc:0.64980\tvalid-auc:0.63225\n", "[236]\ttrain-auc:0.64989\tvalid-auc:0.63227\n", "[237]\ttrain-auc:0.64998\tvalid-auc:0.63229\n", "[238]\ttrain-auc:0.65003\tvalid-auc:0.63229\n", "[239]\ttrain-auc:0.65013\tvalid-auc:0.63232\n", "[240]\ttrain-auc:0.65017\tvalid-auc:0.63232\n", "[241]\ttrain-auc:0.65027\tvalid-auc:0.63233\n", "[242]\ttrain-auc:0.65037\tvalid-auc:0.63233\n", "[243]\ttrain-auc:0.65044\tvalid-auc:0.63233\n", "[244]\ttrain-auc:0.65049\tvalid-auc:0.63235\n", "[245]\ttrain-auc:0.65058\tvalid-auc:0.63237\n", "[246]\ttrain-auc:0.65066\tvalid-auc:0.63238\n", "[247]\ttrain-auc:0.65074\tvalid-auc:0.63237\n", "[248]\ttrain-auc:0.65081\tvalid-auc:0.63238\n", "[249]\ttrain-auc:0.65088\tvalid-auc:0.63241\n", "[250]\ttrain-auc:0.65094\tvalid-auc:0.63243\n", "[251]\ttrain-auc:0.65100\tvalid-auc:0.63246\n", "[252]\ttrain-auc:0.65109\tvalid-auc:0.63247\n", "[253]\ttrain-auc:0.65123\tvalid-auc:0.63250\n", "[254]\ttrain-auc:0.65132\tvalid-auc:0.63251\n", "[255]\ttrain-auc:0.65138\tvalid-auc:0.63253\n", "[256]\ttrain-auc:0.65150\tvalid-auc:0.63256\n", "[257]\ttrain-auc:0.65155\tvalid-auc:0.63258\n", "[258]\ttrain-auc:0.65166\tvalid-auc:0.63261\n", "[259]\ttrain-auc:0.65182\tvalid-auc:0.63265\n", "[260]\ttrain-auc:0.65186\tvalid-auc:0.63265\n", "[261]\ttrain-auc:0.65198\tvalid-auc:0.63275\n", "[262]\ttrain-auc:0.65207\tvalid-auc:0.63274\n", "[263]\ttrain-auc:0.65212\tvalid-auc:0.63273\n", "[264]\ttrain-auc:0.65228\tvalid-auc:0.63286\n", "[265]\ttrain-auc:0.65239\tvalid-auc:0.63288\n", "[266]\ttrain-auc:0.65247\tvalid-auc:0.63292\n", "[267]\ttrain-auc:0.65251\tvalid-auc:0.63292\n", "[268]\ttrain-auc:0.65260\tvalid-auc:0.63294\n", "[269]\ttrain-auc:0.65265\tvalid-auc:0.63296\n", "[270]\ttrain-auc:0.65269\tvalid-auc:0.63297\n", "[271]\ttrain-auc:0.65277\tvalid-auc:0.63299\n", "[272]\ttrain-auc:0.65281\tvalid-auc:0.63300\n", "[273]\ttrain-auc:0.65288\tvalid-auc:0.63301\n", "[274]\ttrain-auc:0.65301\tvalid-auc:0.63304\n", "[275]\ttrain-auc:0.65312\tvalid-auc:0.63311\n", "[276]\ttrain-auc:0.65323\tvalid-auc:0.63314\n", "[277]\ttrain-auc:0.65335\tvalid-auc:0.63316\n", "[278]\ttrain-auc:0.65344\tvalid-auc:0.63318\n", "[279]\ttrain-auc:0.65355\tvalid-auc:0.63317\n", "[280]\ttrain-auc:0.65362\tvalid-auc:0.63319\n", "[281]\ttrain-auc:0.65370\tvalid-auc:0.63319\n", "[282]\ttrain-auc:0.65378\tvalid-auc:0.63316\n", "[283]\ttrain-auc:0.65387\tvalid-auc:0.63317\n", "[284]\ttrain-auc:0.65398\tvalid-auc:0.63320\n", "[285]\ttrain-auc:0.65405\tvalid-auc:0.63322\n", "[286]\ttrain-auc:0.65417\tvalid-auc:0.63326\n", "[287]\ttrain-auc:0.65423\tvalid-auc:0.63329\n", "[288]\ttrain-auc:0.65434\tvalid-auc:0.63333\n", "[289]\ttrain-auc:0.65448\tvalid-auc:0.63339\n", "[290]\ttrain-auc:0.65457\tvalid-auc:0.63342\n", "[291]\ttrain-auc:0.65468\tvalid-auc:0.63344\n", "[292]\ttrain-auc:0.65477\tvalid-auc:0.63346\n", "[293]\ttrain-auc:0.65490\tvalid-auc:0.63350\n", "[294]\ttrain-auc:0.65497\tvalid-auc:0.63352\n", "[295]\ttrain-auc:0.65509\tvalid-auc:0.63356\n", "[296]\ttrain-auc:0.65516\tvalid-auc:0.63358\n", "[297]\ttrain-auc:0.65524\tvalid-auc:0.63359\n", "[298]\ttrain-auc:0.65530\tvalid-auc:0.63363\n", "[299]\ttrain-auc:0.65538\tvalid-auc:0.63364\n", "[300]\ttrain-auc:0.65547\tvalid-auc:0.63369\n", "[301]\ttrain-auc:0.65555\tvalid-auc:0.63368\n", "[302]\ttrain-auc:0.65566\tvalid-auc:0.63375\n", "[303]\ttrain-auc:0.65575\tvalid-auc:0.63377\n", "[304]\ttrain-auc:0.65585\tvalid-auc:0.63380\n", "[305]\ttrain-auc:0.65599\tvalid-auc:0.63389\n", "[306]\ttrain-auc:0.65608\tvalid-auc:0.63392\n", "[307]\ttrain-auc:0.65620\tvalid-auc:0.63398\n", "[308]\ttrain-auc:0.65630\tvalid-auc:0.63403\n", "[309]\ttrain-auc:0.65640\tvalid-auc:0.63406\n", "[310]\ttrain-auc:0.65645\tvalid-auc:0.63406\n", "[311]\ttrain-auc:0.65656\tvalid-auc:0.63410\n", "[312]\ttrain-auc:0.65669\tvalid-auc:0.63420\n", "[313]\ttrain-auc:0.65673\tvalid-auc:0.63422\n", "[314]\ttrain-auc:0.65679\tvalid-auc:0.63424\n", "[315]\ttrain-auc:0.65684\tvalid-auc:0.63426\n", "[316]\ttrain-auc:0.65696\tvalid-auc:0.63426\n", "[317]\ttrain-auc:0.65707\tvalid-auc:0.63425\n", "[318]\ttrain-auc:0.65711\tvalid-auc:0.63425\n", "[319]\ttrain-auc:0.65721\tvalid-auc:0.63427\n", "[320]\ttrain-auc:0.65731\tvalid-auc:0.63430\n", "[321]\ttrain-auc:0.65739\tvalid-auc:0.63437\n", "[322]\ttrain-auc:0.65749\tvalid-auc:0.63440\n", "[323]\ttrain-auc:0.65758\tvalid-auc:0.63438\n", "[324]\ttrain-auc:0.65764\tvalid-auc:0.63438\n", "[325]\ttrain-auc:0.65774\tvalid-auc:0.63442\n", "[326]\ttrain-auc:0.65780\tvalid-auc:0.63443\n", "[327]\ttrain-auc:0.65789\tvalid-auc:0.63444\n", "[328]\ttrain-auc:0.65796\tvalid-auc:0.63444\n", "[329]\ttrain-auc:0.65811\tvalid-auc:0.63448\n", "[330]\ttrain-auc:0.65821\tvalid-auc:0.63449\n", "[331]\ttrain-auc:0.65830\tvalid-auc:0.63451\n", "[332]\ttrain-auc:0.65836\tvalid-auc:0.63457\n", "[333]\ttrain-auc:0.65842\tvalid-auc:0.63458\n", "[334]\ttrain-auc:0.65855\tvalid-auc:0.63461\n", "[335]\ttrain-auc:0.65865\tvalid-auc:0.63464\n", "[336]\ttrain-auc:0.65876\tvalid-auc:0.63468\n", "[337]\ttrain-auc:0.65883\tvalid-auc:0.63471\n", "[338]\ttrain-auc:0.65895\tvalid-auc:0.63479\n", "[339]\ttrain-auc:0.65898\tvalid-auc:0.63479\n", "[340]\ttrain-auc:0.65910\tvalid-auc:0.63484\n", "[341]\ttrain-auc:0.65918\tvalid-auc:0.63484\n", "[342]\ttrain-auc:0.65924\tvalid-auc:0.63487\n", "[343]\ttrain-auc:0.65934\tvalid-auc:0.63489\n", "[344]\ttrain-auc:0.65942\tvalid-auc:0.63492\n", "[345]\ttrain-auc:0.65951\tvalid-auc:0.63493\n", "[346]\ttrain-auc:0.65960\tvalid-auc:0.63494\n", "[347]\ttrain-auc:0.65964\tvalid-auc:0.63496\n", "[348]\ttrain-auc:0.65974\tvalid-auc:0.63496\n", "[349]\ttrain-auc:0.65981\tvalid-auc:0.63497\n", "[350]\ttrain-auc:0.65989\tvalid-auc:0.63499\n", "[351]\ttrain-auc:0.65997\tvalid-auc:0.63498\n", "[352]\ttrain-auc:0.66004\tvalid-auc:0.63499\n", "[353]\ttrain-auc:0.66008\tvalid-auc:0.63499\n", "[354]\ttrain-auc:0.66016\tvalid-auc:0.63503\n", "[355]\ttrain-auc:0.66024\tvalid-auc:0.63502\n", "[356]\ttrain-auc:0.66031\tvalid-auc:0.63503\n", "[357]\ttrain-auc:0.66040\tvalid-auc:0.63505\n", "[358]\ttrain-auc:0.66046\tvalid-auc:0.63504\n", "[359]\ttrain-auc:0.66055\tvalid-auc:0.63505\n", "[360]\ttrain-auc:0.66062\tvalid-auc:0.63510\n", "[361]\ttrain-auc:0.66068\tvalid-auc:0.63508\n", "[362]\ttrain-auc:0.66078\tvalid-auc:0.63513\n", "[363]\ttrain-auc:0.66085\tvalid-auc:0.63514\n", "[364]\ttrain-auc:0.66092\tvalid-auc:0.63520\n", "[365]\ttrain-auc:0.66096\tvalid-auc:0.63518\n", "[366]\ttrain-auc:0.66100\tvalid-auc:0.63517\n", "[367]\ttrain-auc:0.66110\tvalid-auc:0.63518\n", "[368]\ttrain-auc:0.66117\tvalid-auc:0.63521\n", "[369]\ttrain-auc:0.66120\tvalid-auc:0.63519\n", "[370]\ttrain-auc:0.66129\tvalid-auc:0.63521\n", "[371]\ttrain-auc:0.66133\tvalid-auc:0.63522\n", "[372]\ttrain-auc:0.66142\tvalid-auc:0.63524\n", "[373]\ttrain-auc:0.66145\tvalid-auc:0.63525\n", "[374]\ttrain-auc:0.66148\tvalid-auc:0.63525\n", "[375]\ttrain-auc:0.66152\tvalid-auc:0.63526\n", "[376]\ttrain-auc:0.66162\tvalid-auc:0.63531\n", "[377]\ttrain-auc:0.66171\tvalid-auc:0.63532\n", "[378]\ttrain-auc:0.66176\tvalid-auc:0.63530\n", "[379]\ttrain-auc:0.66182\tvalid-auc:0.63530\n", "[380]\ttrain-auc:0.66193\tvalid-auc:0.63532\n", "[381]\ttrain-auc:0.66199\tvalid-auc:0.63534\n", "[382]\ttrain-auc:0.66205\tvalid-auc:0.63536\n", "[383]\ttrain-auc:0.66210\tvalid-auc:0.63535\n", "[384]\ttrain-auc:0.66220\tvalid-auc:0.63540\n", "[385]\ttrain-auc:0.66228\tvalid-auc:0.63537\n", "[386]\ttrain-auc:0.66238\tvalid-auc:0.63539\n", "[387]\ttrain-auc:0.66245\tvalid-auc:0.63542\n", "[388]\ttrain-auc:0.66251\tvalid-auc:0.63543\n", "[389]\ttrain-auc:0.66258\tvalid-auc:0.63545\n", "[390]\ttrain-auc:0.66267\tvalid-auc:0.63549\n", "[391]\ttrain-auc:0.66273\tvalid-auc:0.63550\n", "[392]\ttrain-auc:0.66279\tvalid-auc:0.63553\n", "[393]\ttrain-auc:0.66287\tvalid-auc:0.63551\n", "[394]\ttrain-auc:0.66290\tvalid-auc:0.63552\n", "[395]\ttrain-auc:0.66295\tvalid-auc:0.63551\n", "[396]\ttrain-auc:0.66300\tvalid-auc:0.63552\n", "[397]\ttrain-auc:0.66308\tvalid-auc:0.63553\n", "[398]\ttrain-auc:0.66316\tvalid-auc:0.63551\n", "[399]\ttrain-auc:0.66320\tvalid-auc:0.63552\n", "[400]\ttrain-auc:0.66326\tvalid-auc:0.63555\n", "[401]\ttrain-auc:0.66333\tvalid-auc:0.63554\n", "[402]\ttrain-auc:0.66340\tvalid-auc:0.63558\n", "[403]\ttrain-auc:0.66349\tvalid-auc:0.63558\n", "[404]\ttrain-auc:0.66356\tvalid-auc:0.63560\n", "[405]\ttrain-auc:0.66363\tvalid-auc:0.63562\n", "[406]\ttrain-auc:0.66369\tvalid-auc:0.63563\n", "[407]\ttrain-auc:0.66373\tvalid-auc:0.63564\n", "[408]\ttrain-auc:0.66379\tvalid-auc:0.63568\n", "[409]\ttrain-auc:0.66388\tvalid-auc:0.63571\n", "[410]\ttrain-auc:0.66397\tvalid-auc:0.63577\n", "[411]\ttrain-auc:0.66409\tvalid-auc:0.63579\n", "[412]\ttrain-auc:0.66414\tvalid-auc:0.63580\n", "[413]\ttrain-auc:0.66425\tvalid-auc:0.63585\n", "[414]\ttrain-auc:0.66433\tvalid-auc:0.63589\n", "[415]\ttrain-auc:0.66441\tvalid-auc:0.63592\n", "[416]\ttrain-auc:0.66446\tvalid-auc:0.63595\n", "[417]\ttrain-auc:0.66454\tvalid-auc:0.63597\n", "[418]\ttrain-auc:0.66459\tvalid-auc:0.63599\n", "[419]\ttrain-auc:0.66467\tvalid-auc:0.63601\n", "[420]\ttrain-auc:0.66475\tvalid-auc:0.63603\n", "[421]\ttrain-auc:0.66482\tvalid-auc:0.63602\n", "[422]\ttrain-auc:0.66487\tvalid-auc:0.63604\n", "[423]\ttrain-auc:0.66493\tvalid-auc:0.63606\n", "[424]\ttrain-auc:0.66501\tvalid-auc:0.63607\n", "[425]\ttrain-auc:0.66509\tvalid-auc:0.63607\n", "[426]\ttrain-auc:0.66515\tvalid-auc:0.63606\n", "[427]\ttrain-auc:0.66525\tvalid-auc:0.63606\n", "[428]\ttrain-auc:0.66527\tvalid-auc:0.63606\n", "[429]\ttrain-auc:0.66531\tvalid-auc:0.63609\n", "[430]\ttrain-auc:0.66533\tvalid-auc:0.63611\n", "[431]\ttrain-auc:0.66543\tvalid-auc:0.63613\n", "[432]\ttrain-auc:0.66549\tvalid-auc:0.63617\n", "[433]\ttrain-auc:0.66559\tvalid-auc:0.63621\n", "[434]\ttrain-auc:0.66565\tvalid-auc:0.63626\n", "[435]\ttrain-auc:0.66571\tvalid-auc:0.63626\n", "[436]\ttrain-auc:0.66577\tvalid-auc:0.63628\n", "[437]\ttrain-auc:0.66586\tvalid-auc:0.63629\n", "[438]\ttrain-auc:0.66592\tvalid-auc:0.63630\n", "[439]\ttrain-auc:0.66601\tvalid-auc:0.63632\n", "[440]\ttrain-auc:0.66605\tvalid-auc:0.63633\n", "[441]\ttrain-auc:0.66610\tvalid-auc:0.63633\n", "[442]\ttrain-auc:0.66616\tvalid-auc:0.63634\n", "[443]\ttrain-auc:0.66619\tvalid-auc:0.63634\n", "[444]\ttrain-auc:0.66630\tvalid-auc:0.63641\n", "[445]\ttrain-auc:0.66637\tvalid-auc:0.63643\n", "[446]\ttrain-auc:0.66644\tvalid-auc:0.63644\n", "[447]\ttrain-auc:0.66649\tvalid-auc:0.63646\n", "[448]\ttrain-auc:0.66659\tvalid-auc:0.63650\n", "[449]\ttrain-auc:0.66664\tvalid-auc:0.63651\n", "[450]\ttrain-auc:0.66668\tvalid-auc:0.63650\n", "[451]\ttrain-auc:0.66671\tvalid-auc:0.63652\n", "[452]\ttrain-auc:0.66674\tvalid-auc:0.63651\n", "[453]\ttrain-auc:0.66679\tvalid-auc:0.63653\n", "[454]\ttrain-auc:0.66685\tvalid-auc:0.63657\n", "[455]\ttrain-auc:0.66692\tvalid-auc:0.63656\n", "[456]\ttrain-auc:0.66695\tvalid-auc:0.63658\n", "[457]\ttrain-auc:0.66701\tvalid-auc:0.63659\n", "[458]\ttrain-auc:0.66707\tvalid-auc:0.63661\n", "[459]\ttrain-auc:0.66714\tvalid-auc:0.63662\n", "[460]\ttrain-auc:0.66728\tvalid-auc:0.63667\n", "[461]\ttrain-auc:0.66733\tvalid-auc:0.63669\n", "[462]\ttrain-auc:0.66738\tvalid-auc:0.63669\n", "[463]\ttrain-auc:0.66744\tvalid-auc:0.63669\n", "[464]\ttrain-auc:0.66747\tvalid-auc:0.63668\n", "[465]\ttrain-auc:0.66751\tvalid-auc:0.63670\n", "[466]\ttrain-auc:0.66760\tvalid-auc:0.63672\n", "[467]\ttrain-auc:0.66768\tvalid-auc:0.63673\n", "[468]\ttrain-auc:0.66777\tvalid-auc:0.63676\n", "[469]\ttrain-auc:0.66781\tvalid-auc:0.63677\n", "[470]\ttrain-auc:0.66790\tvalid-auc:0.63678\n", "[471]\ttrain-auc:0.66795\tvalid-auc:0.63678\n", "[472]\ttrain-auc:0.66800\tvalid-auc:0.63680\n", "[473]\ttrain-auc:0.66807\tvalid-auc:0.63679\n", "[474]\ttrain-auc:0.66811\tvalid-auc:0.63679\n", "[475]\ttrain-auc:0.66818\tvalid-auc:0.63680\n", "[476]\ttrain-auc:0.66825\tvalid-auc:0.63683\n", "[477]\ttrain-auc:0.66834\tvalid-auc:0.63687\n", "[478]\ttrain-auc:0.66838\tvalid-auc:0.63687\n", "[479]\ttrain-auc:0.66846\tvalid-auc:0.63688\n", "[480]\ttrain-auc:0.66852\tvalid-auc:0.63689\n", "[481]\ttrain-auc:0.66858\tvalid-auc:0.63691\n", "[482]\ttrain-auc:0.66869\tvalid-auc:0.63691\n", "[483]\ttrain-auc:0.66872\tvalid-auc:0.63689\n", "[484]\ttrain-auc:0.66876\tvalid-auc:0.63687\n", "[485]\ttrain-auc:0.66878\tvalid-auc:0.63688\n", "[486]\ttrain-auc:0.66882\tvalid-auc:0.63688\n", "[487]\ttrain-auc:0.66883\tvalid-auc:0.63689\n", "[488]\ttrain-auc:0.66887\tvalid-auc:0.63691\n", "[489]\ttrain-auc:0.66895\tvalid-auc:0.63691\n", "[490]\ttrain-auc:0.66899\tvalid-auc:0.63691\n", "[491]\ttrain-auc:0.66905\tvalid-auc:0.63693\n", "[492]\ttrain-auc:0.66912\tvalid-auc:0.63691\n", "[493]\ttrain-auc:0.66919\tvalid-auc:0.63692\n", "[494]\ttrain-auc:0.66927\tvalid-auc:0.63691\n", "[495]\ttrain-auc:0.66932\tvalid-auc:0.63690\n", "[496]\ttrain-auc:0.66940\tvalid-auc:0.63693\n", "[497]\ttrain-auc:0.66946\tvalid-auc:0.63695\n", "[498]\ttrain-auc:0.66957\tvalid-auc:0.63697\n", "[499]\ttrain-auc:0.66961\tvalid-auc:0.63695\n", "[500]\ttrain-auc:0.66967\tvalid-auc:0.63698\n", "[501]\ttrain-auc:0.66977\tvalid-auc:0.63701\n", "[502]\ttrain-auc:0.66983\tvalid-auc:0.63704\n", "[503]\ttrain-auc:0.66993\tvalid-auc:0.63701\n", "[504]\ttrain-auc:0.67000\tvalid-auc:0.63705\n", "[505]\ttrain-auc:0.67003\tvalid-auc:0.63704\n", "[506]\ttrain-auc:0.67006\tvalid-auc:0.63704\n", "[507]\ttrain-auc:0.67012\tvalid-auc:0.63705\n", "[508]\ttrain-auc:0.67022\tvalid-auc:0.63709\n", "[509]\ttrain-auc:0.67032\tvalid-auc:0.63711\n", "[510]\ttrain-auc:0.67039\tvalid-auc:0.63712\n", "[511]\ttrain-auc:0.67046\tvalid-auc:0.63716\n", "[512]\ttrain-auc:0.67053\tvalid-auc:0.63716\n", "[513]\ttrain-auc:0.67056\tvalid-auc:0.63717\n", "[514]\ttrain-auc:0.67063\tvalid-auc:0.63716\n", "[515]\ttrain-auc:0.67067\tvalid-auc:0.63717\n", "[516]\ttrain-auc:0.67074\tvalid-auc:0.63716\n", "[517]\ttrain-auc:0.67080\tvalid-auc:0.63717\n", "[518]\ttrain-auc:0.67083\tvalid-auc:0.63718\n", "[519]\ttrain-auc:0.67089\tvalid-auc:0.63717\n", "[520]\ttrain-auc:0.67095\tvalid-auc:0.63719\n", "[521]\ttrain-auc:0.67101\tvalid-auc:0.63718\n", "[522]\ttrain-auc:0.67105\tvalid-auc:0.63719\n", "[523]\ttrain-auc:0.67111\tvalid-auc:0.63720\n", "[524]\ttrain-auc:0.67120\tvalid-auc:0.63723\n", "[525]\ttrain-auc:0.67125\tvalid-auc:0.63725\n", "[526]\ttrain-auc:0.67127\tvalid-auc:0.63726\n", "[527]\ttrain-auc:0.67128\tvalid-auc:0.63725\n", "[528]\ttrain-auc:0.67134\tvalid-auc:0.63730\n", "[529]\ttrain-auc:0.67142\tvalid-auc:0.63729\n", "[530]\ttrain-auc:0.67148\tvalid-auc:0.63729\n", "[531]\ttrain-auc:0.67153\tvalid-auc:0.63731\n", "[532]\ttrain-auc:0.67160\tvalid-auc:0.63730\n", "[533]\ttrain-auc:0.67165\tvalid-auc:0.63734\n", "[534]\ttrain-auc:0.67171\tvalid-auc:0.63734\n", "[535]\ttrain-auc:0.67181\tvalid-auc:0.63737\n", "[536]\ttrain-auc:0.67184\tvalid-auc:0.63737\n", "[537]\ttrain-auc:0.67189\tvalid-auc:0.63737\n", "[538]\ttrain-auc:0.67195\tvalid-auc:0.63739\n", "[539]\ttrain-auc:0.67198\tvalid-auc:0.63740\n", "[540]\ttrain-auc:0.67202\tvalid-auc:0.63742\n", "[541]\ttrain-auc:0.67209\tvalid-auc:0.63744\n", "[542]\ttrain-auc:0.67216\tvalid-auc:0.63748\n", "[543]\ttrain-auc:0.67222\tvalid-auc:0.63749\n", "[544]\ttrain-auc:0.67229\tvalid-auc:0.63752\n", "[545]\ttrain-auc:0.67234\tvalid-auc:0.63752\n", "[546]\ttrain-auc:0.67243\tvalid-auc:0.63754\n", "[547]\ttrain-auc:0.67252\tvalid-auc:0.63759\n", "[548]\ttrain-auc:0.67255\tvalid-auc:0.63757\n", "[549]\ttrain-auc:0.67261\tvalid-auc:0.63759\n", "[550]\ttrain-auc:0.67267\tvalid-auc:0.63759\n", "[551]\ttrain-auc:0.67273\tvalid-auc:0.63762\n", "[552]\ttrain-auc:0.67284\tvalid-auc:0.63765\n", "[553]\ttrain-auc:0.67289\tvalid-auc:0.63765\n", "[554]\ttrain-auc:0.67296\tvalid-auc:0.63767\n", "[555]\ttrain-auc:0.67308\tvalid-auc:0.63770\n", "[556]\ttrain-auc:0.67312\tvalid-auc:0.63772\n", "[557]\ttrain-auc:0.67321\tvalid-auc:0.63772\n", "[558]\ttrain-auc:0.67326\tvalid-auc:0.63773\n", "[559]\ttrain-auc:0.67336\tvalid-auc:0.63774\n", "[560]\ttrain-auc:0.67341\tvalid-auc:0.63773\n", "[561]\ttrain-auc:0.67346\tvalid-auc:0.63771\n", "[562]\ttrain-auc:0.67349\tvalid-auc:0.63771\n", "[563]\ttrain-auc:0.67355\tvalid-auc:0.63771\n", "[564]\ttrain-auc:0.67364\tvalid-auc:0.63773\n", "[565]\ttrain-auc:0.67370\tvalid-auc:0.63775\n", "[566]\ttrain-auc:0.67375\tvalid-auc:0.63776\n", "[567]\ttrain-auc:0.67382\tvalid-auc:0.63778\n", "[568]\ttrain-auc:0.67391\tvalid-auc:0.63780\n", "[569]\ttrain-auc:0.67396\tvalid-auc:0.63782\n", "[570]\ttrain-auc:0.67404\tvalid-auc:0.63782\n", "[571]\ttrain-auc:0.67409\tvalid-auc:0.63785\n", "[572]\ttrain-auc:0.67416\tvalid-auc:0.63791\n", "[573]\ttrain-auc:0.67424\tvalid-auc:0.63792\n", "[574]\ttrain-auc:0.67425\tvalid-auc:0.63791\n", "[575]\ttrain-auc:0.67431\tvalid-auc:0.63791\n", "[576]\ttrain-auc:0.67438\tvalid-auc:0.63791\n", "[577]\ttrain-auc:0.67445\tvalid-auc:0.63793\n", "[578]\ttrain-auc:0.67449\tvalid-auc:0.63792\n", "[579]\ttrain-auc:0.67453\tvalid-auc:0.63792\n", "[580]\ttrain-auc:0.67459\tvalid-auc:0.63793\n", "[581]\ttrain-auc:0.67467\tvalid-auc:0.63796\n", "[582]\ttrain-auc:0.67472\tvalid-auc:0.63796\n", "[583]\ttrain-auc:0.67479\tvalid-auc:0.63796\n", "[584]\ttrain-auc:0.67484\tvalid-auc:0.63797\n", "[585]\ttrain-auc:0.67489\tvalid-auc:0.63794\n", "[586]\ttrain-auc:0.67490\tvalid-auc:0.63794\n", "[587]\ttrain-auc:0.67497\tvalid-auc:0.63794\n", "[588]\ttrain-auc:0.67502\tvalid-auc:0.63792\n", "[589]\ttrain-auc:0.67507\tvalid-auc:0.63792\n", "[590]\ttrain-auc:0.67509\tvalid-auc:0.63792\n", "[591]\ttrain-auc:0.67512\tvalid-auc:0.63793\n", "[592]\ttrain-auc:0.67517\tvalid-auc:0.63793\n", "[593]\ttrain-auc:0.67523\tvalid-auc:0.63792\n", "[594]\ttrain-auc:0.67528\tvalid-auc:0.63795\n" ] } ], "source": [ "# 3.6\n", "# train the model\n", "xgb_dask_clf=xgboost.dask.train(client=client, \n", " params=xgb_params, \n", " dtrain=dtrain,\n", " evals=[(dtrain, 'train'), (dtest, 'valid')],\n", " num_boost_round=3500,\n", " early_stopping_rounds=10, \n", " verbose_eval=True\n", " )" ] }, { "cell_type": "code", "execution_count": 26, "id": "179c11e5-208f-44f8-bc6d-d0bd844a944c", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 3.6\n", "# DO NOT CHANGE THIS CELL\n", "# plot history\n", "history=xgb_dask_clf['history']\n", "\n", "plt.plot(history['train']['auc'], label='Train Score (AUC)')\n", "plt.plot(history['valid']['auc'], label='Test Score (AUC)')\n", "\n", "plt.xlabel('Iteration')\n", "plt.ylabel('Model Performance')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "96d92840-c3cd-4b9a-b025-c47d1bbb2f32", "metadata": {}, "source": [ "### Step 4: Model Persistence ###\n", "The last step for the assessment is to save the model for grading. You should improve the model until the AUC ROC is above 60%. Once completed, you should submit the model for grading. \n", "\n", "**Instructions**:
\n", "4.1 Execute the cell below to save the model in JSON format.
" ] }, { "cell_type": "code", "execution_count": 27, "id": "633db8ab-7c6c-48fa-ba2c-5c2ff325dd58", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 4.1\n", "# DO NOT CHANGE THIS CELL\n", "# save model\n", "xgb_dask_clf['booster'].save_model('my_assessment/model.json')" ] }, { "cell_type": "markdown", "id": "aab7921b-734c-4cb1-8b91-7ab1b00892cb", "metadata": {}, "source": [ "### Grade Your Code ###\n", "If you have trained the model and completed model evaluation successfully, save changes to the notebook and revisit the webpage where you launched this interactive environment. Click on the \"**ASSESS TASK**\" button as shown in the screenshot below. Doing so will give you credit for this part of the lab that counts towards earning a certificate of competency for the entire course.\n", "\n", "

" ] }, { "cell_type": "markdown", "id": "e9e13c81-abd4-43a2-bfe8-774116b3257f", "metadata": {}, "source": [ "\"Header\"" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" } }, "nbformat": 4, "nbformat_minor": 5 }