{ "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": [ "2026-02-11 19:54:28,232 - distributed.preloading - INFO - Creating preload: dask_cuda.initialize\n", "2026-02-11 19:54:28,232 - 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(\n", " CUDA_VISIBLE_DEVICES=\"0\", # equivalent to integer value 1\n", " # rmm_pool_size=\"14GB\", # This GPU has 15GB of memory\n", " device_memory_limit=0.8, # this is the default value so doesn't need to be stated explicitly\n", " dashboard_address=':8787'\n", ")" ] }, { "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": 10, "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": 10, "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": 11, "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": 11, "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": 12, "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
0234322154.02999915146347...24604050.2981270.2981270.3399660.410503-2.364262e-01-0.55779910.4759950.891264
121111870.27002014193187853...24604050.4822800.4817710.4879520.409943-3.739005e-020.88904510.4813831.177482
226521166.6700134321187853...24604050.3824380.3966450.3397090.4099432.697176e-020.38389410.4813830.225506
3202741295.989990134125828...24604050.3911970.4165530.4209940.410366-4.706145e-02-0.19199310.4639393.040803
427322143.240002174312815...24604050.2985640.2985640.3397090.4099431.764430e-07-0.64610810.2476471.065219
\n", "

5 rows × 28 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_count TE_cat_0_target \\\n", "0 6 347 ... 2460405 0.298127 \n", "1 3 187853 ... 2460405 0.482280 \n", "2 1 187853 ... 2460405 0.382438 \n", "3 2 5828 ... 2460405 0.391197 \n", "4 1 2815 ... 2460405 0.298564 \n", "\n", " TE_cat_1_target TE_cat_2_target TE_cat_3_target relative_price_product \\\n", "0 0.298127 0.339966 0.410503 -2.364262e-01 \n", "1 0.481771 0.487952 0.409943 -3.739005e-02 \n", "2 0.396645 0.339709 0.409943 2.697176e-02 \n", "3 0.416553 0.420994 0.410366 -4.706145e-02 \n", "4 0.298564 0.339709 0.409943 1.764430e-07 \n", "\n", " relative_price_category target brand_TE relative_price_brand \n", "0 -0.557799 1 0.475995 0.891264 \n", "1 0.889045 1 0.481383 1.177482 \n", "2 0.383894 1 0.481383 0.225506 \n", "3 -0.191993 1 0.463939 3.040803 \n", "4 -0.646108 1 0.247647 1.065219 \n", "\n", "[5 rows x 28 columns]" ] }, "execution_count": 12, "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": 13, "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": 14, "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": 15, "id": "fcf59460-0837-40db-9f08-328754ea9b8d", "metadata": { "tags": [] }, "outputs": [], "source": [ "# 3.2\n", "y=ddf['target'].astype('float32')" ] }, { "cell_type": "code", "execution_count": 16, "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": 16, "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": 17, "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": 19, "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": 20, "id": "121437f1-4ec9-4056-90c2-595c8a116345", "metadata": { "scrolled": true, "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:distributed.scheduler:Receive client connection: Client-worker-99b4141c-0784-11f1-8105-0242ac120003\n", "INFO:distributed.core:Starting established connection to tcp://127.0.0.1:39890\n", "[20:02:32] task [xgboost.dask-0]:tcp://127.0.0.1:43047 got new rank 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[0]\ttrain-auc:0.60968\tvalid-auc:0.60903\n", "[1]\ttrain-auc:0.61119\tvalid-auc:0.61004\n", "[2]\ttrain-auc:0.61248\tvalid-auc:0.61133\n", "[3]\ttrain-auc:0.61345\tvalid-auc:0.61228\n", "[4]\ttrain-auc:0.61427\tvalid-auc:0.61298\n", "[5]\ttrain-auc:0.61465\tvalid-auc:0.61333\n", "[6]\ttrain-auc:0.61519\tvalid-auc:0.61383\n", "[7]\ttrain-auc:0.61589\tvalid-auc:0.61446\n", "[8]\ttrain-auc:0.61627\tvalid-auc:0.61477\n", "[9]\ttrain-auc:0.61679\tvalid-auc:0.61522\n", "[10]\ttrain-auc:0.61721\tvalid-auc:0.61564\n", "[11]\ttrain-auc:0.61750\tvalid-auc:0.61580\n", "[12]\ttrain-auc:0.61845\tvalid-auc:0.61663\n", "[13]\ttrain-auc:0.61884\tvalid-auc:0.61691\n", "[14]\ttrain-auc:0.61907\tvalid-auc:0.61702\n", "[15]\ttrain-auc:0.61922\tvalid-auc:0.61711\n", "[16]\ttrain-auc:0.61976\tvalid-auc:0.61757\n", "[17]\ttrain-auc:0.62012\tvalid-auc:0.61769\n", "[18]\ttrain-auc:0.62019\tvalid-auc:0.61773\n", "[19]\ttrain-auc:0.62059\tvalid-auc:0.61810\n", "[20]\ttrain-auc:0.62079\tvalid-auc:0.61826\n", "[21]\ttrain-auc:0.62102\tvalid-auc:0.61844\n", "[22]\ttrain-auc:0.62120\tvalid-auc:0.61856\n", "[23]\ttrain-auc:0.62130\tvalid-auc:0.61862\n", "[24]\ttrain-auc:0.62144\tvalid-auc:0.61871\n", "[25]\ttrain-auc:0.62168\tvalid-auc:0.61887\n", "[26]\ttrain-auc:0.62205\tvalid-auc:0.61907\n", "[27]\ttrain-auc:0.62239\tvalid-auc:0.61926\n", "[28]\ttrain-auc:0.62256\tvalid-auc:0.61938\n", "[29]\ttrain-auc:0.62300\tvalid-auc:0.61972\n", "[30]\ttrain-auc:0.62320\tvalid-auc:0.61982\n", "[31]\ttrain-auc:0.62332\tvalid-auc:0.61986\n", "[32]\ttrain-auc:0.62372\tvalid-auc:0.62023\n", "[33]\ttrain-auc:0.62421\tvalid-auc:0.62049\n", "[34]\ttrain-auc:0.62429\tvalid-auc:0.62049\n", "[35]\ttrain-auc:0.62459\tvalid-auc:0.62069\n", "[36]\ttrain-auc:0.62495\tvalid-auc:0.62087\n", "[37]\ttrain-auc:0.62526\tvalid-auc:0.62118\n", "[38]\ttrain-auc:0.62548\tvalid-auc:0.62133\n", "[39]\ttrain-auc:0.62557\tvalid-auc:0.62139\n", "[40]\ttrain-auc:0.62561\tvalid-auc:0.62138\n", "[41]\ttrain-auc:0.62571\tvalid-auc:0.62143\n", "[42]\ttrain-auc:0.62594\tvalid-auc:0.62153\n", "[43]\ttrain-auc:0.62628\tvalid-auc:0.62171\n", "[44]\ttrain-auc:0.62653\tvalid-auc:0.62181\n", "[45]\ttrain-auc:0.62670\tvalid-auc:0.62188\n", "[46]\ttrain-auc:0.62679\tvalid-auc:0.62189\n", "[47]\ttrain-auc:0.62695\tvalid-auc:0.62199\n", "[48]\ttrain-auc:0.62721\tvalid-auc:0.62217\n", "[49]\ttrain-auc:0.62753\tvalid-auc:0.62231\n", "[50]\ttrain-auc:0.62776\tvalid-auc:0.62252\n", "[51]\ttrain-auc:0.62801\tvalid-auc:0.62266\n", "[52]\ttrain-auc:0.62833\tvalid-auc:0.62286\n", "[53]\ttrain-auc:0.62858\tvalid-auc:0.62301\n", "[54]\ttrain-auc:0.62888\tvalid-auc:0.62323\n", "[55]\ttrain-auc:0.62894\tvalid-auc:0.62326\n", "[56]\ttrain-auc:0.62904\tvalid-auc:0.62330\n", "[57]\ttrain-auc:0.62928\tvalid-auc:0.62346\n", "[58]\ttrain-auc:0.62958\tvalid-auc:0.62369\n", "[59]\ttrain-auc:0.62967\tvalid-auc:0.62372\n", "[60]\ttrain-auc:0.62980\tvalid-auc:0.62372\n", "[61]\ttrain-auc:0.62986\tvalid-auc:0.62372\n", "[62]\ttrain-auc:0.63005\tvalid-auc:0.62380\n", "[63]\ttrain-auc:0.63017\tvalid-auc:0.62384\n", "[64]\ttrain-auc:0.63039\tvalid-auc:0.62395\n", "[65]\ttrain-auc:0.63058\tvalid-auc:0.62405\n", "[66]\ttrain-auc:0.63075\tvalid-auc:0.62417\n", "[67]\ttrain-auc:0.63095\tvalid-auc:0.62427\n", "[68]\ttrain-auc:0.63109\tvalid-auc:0.62440\n", "[69]\ttrain-auc:0.63131\tvalid-auc:0.62455\n", "[70]\ttrain-auc:0.63145\tvalid-auc:0.62462\n", "[71]\ttrain-auc:0.63150\tvalid-auc:0.62461\n", "[72]\ttrain-auc:0.63167\tvalid-auc:0.62465\n", "[73]\ttrain-auc:0.63171\tvalid-auc:0.62468\n", "[74]\ttrain-auc:0.63189\tvalid-auc:0.62479\n", "[75]\ttrain-auc:0.63213\tvalid-auc:0.62493\n", "[76]\ttrain-auc:0.63229\tvalid-auc:0.62500\n", "[77]\ttrain-auc:0.63247\tvalid-auc:0.62510\n", "[78]\ttrain-auc:0.63257\tvalid-auc:0.62516\n", "[79]\ttrain-auc:0.63272\tvalid-auc:0.62523\n", "[80]\ttrain-auc:0.63301\tvalid-auc:0.62546\n", "[81]\ttrain-auc:0.63314\tvalid-auc:0.62553\n", "[82]\ttrain-auc:0.63333\tvalid-auc:0.62562\n", "[83]\ttrain-auc:0.63350\tvalid-auc:0.62567\n", "[84]\ttrain-auc:0.63366\tvalid-auc:0.62565\n", "[85]\ttrain-auc:0.63369\tvalid-auc:0.62565\n", "[86]\ttrain-auc:0.63383\tvalid-auc:0.62570\n", "[87]\ttrain-auc:0.63405\tvalid-auc:0.62582\n", "[88]\ttrain-auc:0.63414\tvalid-auc:0.62584\n", "[89]\ttrain-auc:0.63419\tvalid-auc:0.62585\n", "[90]\ttrain-auc:0.63435\tvalid-auc:0.62595\n", "[91]\ttrain-auc:0.63444\tvalid-auc:0.62596\n", "[92]\ttrain-auc:0.63452\tvalid-auc:0.62599\n", "[93]\ttrain-auc:0.63469\tvalid-auc:0.62607\n", "[94]\ttrain-auc:0.63479\tvalid-auc:0.62611\n", "[95]\ttrain-auc:0.63484\tvalid-auc:0.62611\n", "[96]\ttrain-auc:0.63502\tvalid-auc:0.62619\n", "[97]\ttrain-auc:0.63508\tvalid-auc:0.62620\n", "[98]\ttrain-auc:0.63514\tvalid-auc:0.62621\n", "[99]\ttrain-auc:0.63525\tvalid-auc:0.62623\n", "[100]\ttrain-auc:0.63542\tvalid-auc:0.62634\n", "[101]\ttrain-auc:0.63548\tvalid-auc:0.62636\n", "[102]\ttrain-auc:0.63558\tvalid-auc:0.62638\n", "[103]\ttrain-auc:0.63576\tvalid-auc:0.62644\n", "[104]\ttrain-auc:0.63594\tvalid-auc:0.62652\n", "[105]\ttrain-auc:0.63605\tvalid-auc:0.62657\n", "[106]\ttrain-auc:0.63620\tvalid-auc:0.62668\n", "[107]\ttrain-auc:0.63638\tvalid-auc:0.62674\n", "[108]\ttrain-auc:0.63653\tvalid-auc:0.62677\n", "[109]\ttrain-auc:0.63673\tvalid-auc:0.62689\n", "[110]\ttrain-auc:0.63694\tvalid-auc:0.62706\n", "[111]\ttrain-auc:0.63702\tvalid-auc:0.62712\n", "[112]\ttrain-auc:0.63712\tvalid-auc:0.62715\n", "[113]\ttrain-auc:0.63730\tvalid-auc:0.62721\n", "[114]\ttrain-auc:0.63751\tvalid-auc:0.62734\n", "[115]\ttrain-auc:0.63762\tvalid-auc:0.62738\n", "[116]\ttrain-auc:0.63772\tvalid-auc:0.62741\n", "[117]\ttrain-auc:0.63788\tvalid-auc:0.62747\n", "[118]\ttrain-auc:0.63792\tvalid-auc:0.62750\n", "[119]\ttrain-auc:0.63808\tvalid-auc:0.62755\n", "[120]\ttrain-auc:0.63819\tvalid-auc:0.62759\n", "[121]\ttrain-auc:0.63822\tvalid-auc:0.62759\n", "[122]\ttrain-auc:0.63832\tvalid-auc:0.62761\n", "[123]\ttrain-auc:0.63841\tvalid-auc:0.62765\n", "[124]\ttrain-auc:0.63851\tvalid-auc:0.62766\n", "[125]\ttrain-auc:0.63860\tvalid-auc:0.62767\n", "[126]\ttrain-auc:0.63871\tvalid-auc:0.62771\n", "[127]\ttrain-auc:0.63877\tvalid-auc:0.62773\n", "[128]\ttrain-auc:0.63896\tvalid-auc:0.62779\n", "[129]\ttrain-auc:0.63904\tvalid-auc:0.62778\n", "[130]\ttrain-auc:0.63913\tvalid-auc:0.62780\n", "[131]\ttrain-auc:0.63927\tvalid-auc:0.62787\n", "[132]\ttrain-auc:0.63942\tvalid-auc:0.62795\n", "[133]\ttrain-auc:0.63957\tvalid-auc:0.62799\n", "[134]\ttrain-auc:0.63976\tvalid-auc:0.62809\n", "[135]\ttrain-auc:0.63983\tvalid-auc:0.62812\n", "[136]\ttrain-auc:0.63995\tvalid-auc:0.62816\n", "[137]\ttrain-auc:0.64004\tvalid-auc:0.62817\n", "[138]\ttrain-auc:0.64013\tvalid-auc:0.62820\n", "[139]\ttrain-auc:0.64025\tvalid-auc:0.62826\n", "[140]\ttrain-auc:0.64040\tvalid-auc:0.62836\n", "[141]\ttrain-auc:0.64047\tvalid-auc:0.62841\n", "[142]\ttrain-auc:0.64060\tvalid-auc:0.62844\n", "[143]\ttrain-auc:0.64065\tvalid-auc:0.62845\n", "[144]\ttrain-auc:0.64081\tvalid-auc:0.62848\n", "[145]\ttrain-auc:0.64087\tvalid-auc:0.62852\n", "[146]\ttrain-auc:0.64094\tvalid-auc:0.62856\n", "[147]\ttrain-auc:0.64104\tvalid-auc:0.62859\n", "[148]\ttrain-auc:0.64120\tvalid-auc:0.62868\n", "[149]\ttrain-auc:0.64128\tvalid-auc:0.62871\n", "[150]\ttrain-auc:0.64141\tvalid-auc:0.62874\n", "[151]\ttrain-auc:0.64159\tvalid-auc:0.62883\n", "[152]\ttrain-auc:0.64167\tvalid-auc:0.62883\n", "[153]\ttrain-auc:0.64174\tvalid-auc:0.62884\n", "[154]\ttrain-auc:0.64180\tvalid-auc:0.62886\n", "[155]\ttrain-auc:0.64191\tvalid-auc:0.62889\n", "[156]\ttrain-auc:0.64207\tvalid-auc:0.62899\n", "[157]\ttrain-auc:0.64216\tvalid-auc:0.62900\n", "[158]\ttrain-auc:0.64223\tvalid-auc:0.62901\n", "[159]\ttrain-auc:0.64229\tvalid-auc:0.62902\n", "[160]\ttrain-auc:0.64241\tvalid-auc:0.62906\n", "[161]\ttrain-auc:0.64261\tvalid-auc:0.62920\n", "[162]\ttrain-auc:0.64273\tvalid-auc:0.62923\n", "[163]\ttrain-auc:0.64288\tvalid-auc:0.62931\n", "[164]\ttrain-auc:0.64295\tvalid-auc:0.62933\n", "[165]\ttrain-auc:0.64307\tvalid-auc:0.62939\n", "[166]\ttrain-auc:0.64322\tvalid-auc:0.62949\n", "[167]\ttrain-auc:0.64333\tvalid-auc:0.62954\n", "[168]\ttrain-auc:0.64347\tvalid-auc:0.62960\n", "[169]\ttrain-auc:0.64359\tvalid-auc:0.62964\n", "[170]\ttrain-auc:0.64376\tvalid-auc:0.62972\n", "[171]\ttrain-auc:0.64383\tvalid-auc:0.62975\n", "[172]\ttrain-auc:0.64395\tvalid-auc:0.62981\n", "[173]\ttrain-auc:0.64406\tvalid-auc:0.62984\n", "[174]\ttrain-auc:0.64417\tvalid-auc:0.62986\n", "[175]\ttrain-auc:0.64425\tvalid-auc:0.62989\n", "[176]\ttrain-auc:0.64436\tvalid-auc:0.62990\n", "[177]\ttrain-auc:0.64450\tvalid-auc:0.62996\n", "[178]\ttrain-auc:0.64461\tvalid-auc:0.63000\n", "[179]\ttrain-auc:0.64468\tvalid-auc:0.63005\n", "[180]\ttrain-auc:0.64474\tvalid-auc:0.63005\n", "[181]\ttrain-auc:0.64485\tvalid-auc:0.63008\n", "[182]\ttrain-auc:0.64499\tvalid-auc:0.63016\n", "[183]\ttrain-auc:0.64510\tvalid-auc:0.63021\n", "[184]\ttrain-auc:0.64525\tvalid-auc:0.63029\n", "[185]\ttrain-auc:0.64532\tvalid-auc:0.63030\n", "[186]\ttrain-auc:0.64546\tvalid-auc:0.63037\n", "[187]\ttrain-auc:0.64558\tvalid-auc:0.63041\n", "[188]\ttrain-auc:0.64562\tvalid-auc:0.63041\n", "[189]\ttrain-auc:0.64573\tvalid-auc:0.63040\n", "[190]\ttrain-auc:0.64587\tvalid-auc:0.63050\n", "[191]\ttrain-auc:0.64598\tvalid-auc:0.63052\n", "[192]\ttrain-auc:0.64607\tvalid-auc:0.63053\n", "[193]\ttrain-auc:0.64611\tvalid-auc:0.63054\n", "[194]\ttrain-auc:0.64622\tvalid-auc:0.63061\n", "[195]\ttrain-auc:0.64635\tvalid-auc:0.63068\n", "[196]\ttrain-auc:0.64642\tvalid-auc:0.63069\n", "[197]\ttrain-auc:0.64645\tvalid-auc:0.63069\n", "[198]\ttrain-auc:0.64655\tvalid-auc:0.63075\n", "[199]\ttrain-auc:0.64663\tvalid-auc:0.63078\n", "[200]\ttrain-auc:0.64673\tvalid-auc:0.63080\n", "[201]\ttrain-auc:0.64676\tvalid-auc:0.63078\n", "[202]\ttrain-auc:0.64680\tvalid-auc:0.63077\n", "[203]\ttrain-auc:0.64689\tvalid-auc:0.63078\n", "[204]\ttrain-auc:0.64694\tvalid-auc:0.63078\n", "[205]\ttrain-auc:0.64708\tvalid-auc:0.63081\n", "[206]\ttrain-auc:0.64714\tvalid-auc:0.63083\n", "[207]\ttrain-auc:0.64720\tvalid-auc:0.63084\n", "[208]\ttrain-auc:0.64728\tvalid-auc:0.63084\n", "[209]\ttrain-auc:0.64733\tvalid-auc:0.63086\n", "[210]\ttrain-auc:0.64739\tvalid-auc:0.63084\n", "[211]\ttrain-auc:0.64750\tvalid-auc:0.63088\n", "[212]\ttrain-auc:0.64764\tvalid-auc:0.63090\n", "[213]\ttrain-auc:0.64769\tvalid-auc:0.63092\n", "[214]\ttrain-auc:0.64779\tvalid-auc:0.63094\n", "[215]\ttrain-auc:0.64792\tvalid-auc:0.63098\n", "[216]\ttrain-auc:0.64799\tvalid-auc:0.63098\n", "[217]\ttrain-auc:0.64809\tvalid-auc:0.63102\n", "[218]\ttrain-auc:0.64823\tvalid-auc:0.63114\n", "[219]\ttrain-auc:0.64838\tvalid-auc:0.63114\n", "[220]\ttrain-auc:0.64851\tvalid-auc:0.63120\n", "[221]\ttrain-auc:0.64864\tvalid-auc:0.63126\n", "[222]\ttrain-auc:0.64874\tvalid-auc:0.63127\n", "[223]\ttrain-auc:0.64889\tvalid-auc:0.63133\n", "[224]\ttrain-auc:0.64899\tvalid-auc:0.63131\n", "[225]\ttrain-auc:0.64905\tvalid-auc:0.63133\n", "[226]\ttrain-auc:0.64917\tvalid-auc:0.63134\n", "[227]\ttrain-auc:0.64928\tvalid-auc:0.63140\n", "[228]\ttrain-auc:0.64948\tvalid-auc:0.63149\n", "[229]\ttrain-auc:0.64960\tvalid-auc:0.63156\n", "[230]\ttrain-auc:0.64974\tvalid-auc:0.63160\n", "[231]\ttrain-auc:0.64983\tvalid-auc:0.63164\n", "[232]\ttrain-auc:0.64997\tvalid-auc:0.63170\n", "[233]\ttrain-auc:0.65006\tvalid-auc:0.63174\n", "[234]\ttrain-auc:0.65018\tvalid-auc:0.63177\n", "[235]\ttrain-auc:0.65025\tvalid-auc:0.63176\n", "[236]\ttrain-auc:0.65033\tvalid-auc:0.63177\n", "[237]\ttrain-auc:0.65047\tvalid-auc:0.63186\n", "[238]\ttrain-auc:0.65054\tvalid-auc:0.63185\n", "[239]\ttrain-auc:0.65058\tvalid-auc:0.63185\n", "[240]\ttrain-auc:0.65069\tvalid-auc:0.63186\n", "[241]\ttrain-auc:0.65073\tvalid-auc:0.63185\n", "[242]\ttrain-auc:0.65077\tvalid-auc:0.63185\n", "[243]\ttrain-auc:0.65088\tvalid-auc:0.63191\n", "[244]\ttrain-auc:0.65102\tvalid-auc:0.63194\n", "[245]\ttrain-auc:0.65110\tvalid-auc:0.63197\n", "[246]\ttrain-auc:0.65118\tvalid-auc:0.63195\n", "[247]\ttrain-auc:0.65129\tvalid-auc:0.63201\n", "[248]\ttrain-auc:0.65139\tvalid-auc:0.63205\n", "[249]\ttrain-auc:0.65147\tvalid-auc:0.63211\n", "[250]\ttrain-auc:0.65153\tvalid-auc:0.63214\n", "[251]\ttrain-auc:0.65162\tvalid-auc:0.63221\n", "[252]\ttrain-auc:0.65164\tvalid-auc:0.63221\n", "[253]\ttrain-auc:0.65174\tvalid-auc:0.63222\n", "[254]\ttrain-auc:0.65179\tvalid-auc:0.63225\n", "[255]\ttrain-auc:0.65188\tvalid-auc:0.63224\n", "[256]\ttrain-auc:0.65199\tvalid-auc:0.63230\n", "[257]\ttrain-auc:0.65205\tvalid-auc:0.63230\n", "[258]\ttrain-auc:0.65213\tvalid-auc:0.63233\n", "[259]\ttrain-auc:0.65224\tvalid-auc:0.63239\n", "[260]\ttrain-auc:0.65234\tvalid-auc:0.63240\n", "[261]\ttrain-auc:0.65239\tvalid-auc:0.63242\n", "[262]\ttrain-auc:0.65246\tvalid-auc:0.63241\n", "[263]\ttrain-auc:0.65252\tvalid-auc:0.63242\n", "[264]\ttrain-auc:0.65258\tvalid-auc:0.63241\n", "[265]\ttrain-auc:0.65265\tvalid-auc:0.63244\n", "[266]\ttrain-auc:0.65272\tvalid-auc:0.63244\n", "[267]\ttrain-auc:0.65277\tvalid-auc:0.63245\n", "[268]\ttrain-auc:0.65286\tvalid-auc:0.63246\n", "[269]\ttrain-auc:0.65295\tvalid-auc:0.63247\n", "[270]\ttrain-auc:0.65303\tvalid-auc:0.63251\n", "[271]\ttrain-auc:0.65309\tvalid-auc:0.63253\n", "[272]\ttrain-auc:0.65314\tvalid-auc:0.63254\n", "[273]\ttrain-auc:0.65325\tvalid-auc:0.63258\n", "[274]\ttrain-auc:0.65333\tvalid-auc:0.63260\n", "[275]\ttrain-auc:0.65343\tvalid-auc:0.63262\n", "[276]\ttrain-auc:0.65355\tvalid-auc:0.63265\n", "[277]\ttrain-auc:0.65362\tvalid-auc:0.63265\n", "[278]\ttrain-auc:0.65369\tvalid-auc:0.63266\n", "[279]\ttrain-auc:0.65372\tvalid-auc:0.63266\n", "[280]\ttrain-auc:0.65379\tvalid-auc:0.63267\n", "[281]\ttrain-auc:0.65389\tvalid-auc:0.63268\n", "[282]\ttrain-auc:0.65392\tvalid-auc:0.63270\n", "[283]\ttrain-auc:0.65395\tvalid-auc:0.63269\n", "[284]\ttrain-auc:0.65401\tvalid-auc:0.63269\n", "[285]\ttrain-auc:0.65406\tvalid-auc:0.63270\n", "[286]\ttrain-auc:0.65416\tvalid-auc:0.63275\n", "[287]\ttrain-auc:0.65428\tvalid-auc:0.63277\n", "[288]\ttrain-auc:0.65434\tvalid-auc:0.63277\n", "[289]\ttrain-auc:0.65439\tvalid-auc:0.63279\n", "[290]\ttrain-auc:0.65445\tvalid-auc:0.63279\n", "[291]\ttrain-auc:0.65451\tvalid-auc:0.63282\n", "[292]\ttrain-auc:0.65458\tvalid-auc:0.63283\n", "[293]\ttrain-auc:0.65468\tvalid-auc:0.63283\n", "[294]\ttrain-auc:0.65479\tvalid-auc:0.63282\n", "[295]\ttrain-auc:0.65484\tvalid-auc:0.63283\n", "[296]\ttrain-auc:0.65488\tvalid-auc:0.63284\n", "[297]\ttrain-auc:0.65494\tvalid-auc:0.63285\n", "[298]\ttrain-auc:0.65495\tvalid-auc:0.63286\n", "[299]\ttrain-auc:0.65499\tvalid-auc:0.63287\n", "[300]\ttrain-auc:0.65502\tvalid-auc:0.63288\n", "[301]\ttrain-auc:0.65509\tvalid-auc:0.63288\n", "[302]\ttrain-auc:0.65518\tvalid-auc:0.63294\n", "[303]\ttrain-auc:0.65528\tvalid-auc:0.63296\n", "[304]\ttrain-auc:0.65535\tvalid-auc:0.63298\n", "[305]\ttrain-auc:0.65537\tvalid-auc:0.63297\n", "[306]\ttrain-auc:0.65550\tvalid-auc:0.63298\n", "[307]\ttrain-auc:0.65559\tvalid-auc:0.63298\n", "[308]\ttrain-auc:0.65563\tvalid-auc:0.63298\n", "[309]\ttrain-auc:0.65574\tvalid-auc:0.63302\n", "[310]\ttrain-auc:0.65585\tvalid-auc:0.63305\n", "[311]\ttrain-auc:0.65597\tvalid-auc:0.63305\n", "[312]\ttrain-auc:0.65610\tvalid-auc:0.63310\n", "[313]\ttrain-auc:0.65613\tvalid-auc:0.63311\n", "[314]\ttrain-auc:0.65630\tvalid-auc:0.63319\n", "[315]\ttrain-auc:0.65637\tvalid-auc:0.63323\n", "[316]\ttrain-auc:0.65642\tvalid-auc:0.63324\n", "[317]\ttrain-auc:0.65651\tvalid-auc:0.63329\n", "[318]\ttrain-auc:0.65656\tvalid-auc:0.63329\n", "[319]\ttrain-auc:0.65662\tvalid-auc:0.63329\n", "[320]\ttrain-auc:0.65671\tvalid-auc:0.63327\n", "[321]\ttrain-auc:0.65677\tvalid-auc:0.63326\n", "[322]\ttrain-auc:0.65684\tvalid-auc:0.63328\n", "[323]\ttrain-auc:0.65697\tvalid-auc:0.63331\n", "[324]\ttrain-auc:0.65707\tvalid-auc:0.63333\n", "[325]\ttrain-auc:0.65714\tvalid-auc:0.63331\n", "[326]\ttrain-auc:0.65719\tvalid-auc:0.63333\n", "[327]\ttrain-auc:0.65724\tvalid-auc:0.63332\n", "[328]\ttrain-auc:0.65730\tvalid-auc:0.63333\n", "[329]\ttrain-auc:0.65731\tvalid-auc:0.63332\n", "[330]\ttrain-auc:0.65739\tvalid-auc:0.63335\n", "[331]\ttrain-auc:0.65749\tvalid-auc:0.63338\n", "[332]\ttrain-auc:0.65756\tvalid-auc:0.63341\n", "[333]\ttrain-auc:0.65763\tvalid-auc:0.63345\n", "[334]\ttrain-auc:0.65774\tvalid-auc:0.63350\n", "[335]\ttrain-auc:0.65784\tvalid-auc:0.63354\n", "[336]\ttrain-auc:0.65794\tvalid-auc:0.63356\n", "[337]\ttrain-auc:0.65804\tvalid-auc:0.63365\n", "[338]\ttrain-auc:0.65817\tvalid-auc:0.63370\n", "[339]\ttrain-auc:0.65829\tvalid-auc:0.63375\n", "[340]\ttrain-auc:0.65841\tvalid-auc:0.63380\n", "[341]\ttrain-auc:0.65849\tvalid-auc:0.63383\n", "[342]\ttrain-auc:0.65862\tvalid-auc:0.63386\n", "[343]\ttrain-auc:0.65874\tvalid-auc:0.63395\n", "[344]\ttrain-auc:0.65884\tvalid-auc:0.63400\n", "[345]\ttrain-auc:0.65891\tvalid-auc:0.63398\n", "[346]\ttrain-auc:0.65904\tvalid-auc:0.63403\n", "[347]\ttrain-auc:0.65912\tvalid-auc:0.63406\n", "[348]\ttrain-auc:0.65919\tvalid-auc:0.63408\n", "[349]\ttrain-auc:0.65922\tvalid-auc:0.63409\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=350,\n", " early_stopping_rounds=10, \n", " verbose_eval=True\n", " )" ] }, { "cell_type": "code", "execution_count": 21, "id": "179c11e5-208f-44f8-bc6d-d0bd844a944c", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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5WG1Wot9XRfNnj3b8PHxsT0/dOiQARjz5883unXrZri6uhqzZs0yUlJSjEGDBhnBwcGGu7u7ERUVZXz++ecFXqtbt27GI488YnseFhZmvPTSS8bw4cMNT09PIzQ01JgxY8YlYzl79qwBGMuXL79szGfPnjVGjhxp+Pv7G66urkazZs2M//3vf7btX3/9tdG0aVPDxcXFCAsLM15//fUCx4eFhRkTJ0407r77bsPb29sYOnSoYRiGsWbNGqNLly6Gm5ubERISYjz00EPGhQsXLhnHqVOnDIvFYuzcubPQtuXLlxvBwcFGTk6OUbdu3QKfZcMwjHHjxhktW7a85D1YtmyZYRiGsWHDBgMwpk6desl78edzuri4FPo/cFFRn1cRkfL065EzxvVTlhthT31ne9R/+jtjwPtrS/1cl/v+/iu7zwQ9evRoRo8eXeS2OXPmFCpr3LhxoWazv+rUqRPr168vjfCKJTM3n6bPLy238/1Z3IRe1HApnbfxqaee4o033mD27Nm4urqSlZVF27Zteeqpp/D29ub777/nrrvuIiIigg4dOlzydd544w0mTpzIv//9b77++mvuv/9+unbtSuPGjQvt6+npiaenJ4sWLaJjx464uroW2sdqtdK7d2/Onz/PZ599RoMGDYiLi7P189qyZQsDBgzghRdeYODAgaxdu5bRo0dTq1atAk17r732Gs899xz/+c9/ANixYwe9evVi4sSJzJw5k1OnTvHggw/y4IMPMnv27CKvbfXq1dSoUYMmTZoU2jZz5kwGDx6Ms7MzgwcPZubMmXTt2vWy97woc+fOxdPT85L/L3x9fW0/R0dHk5uby8aNG+nWrVuJzyUiUhYMw2DFvlN8tj6BX/acxGqAh4sjfVvW5fboEKKCfXB1su/cZHZPgKTiGDNmDLfeemuBsscff9z280MPPcSSJUv46quvLpsA9enTx/bl/dRTT/Hmm2+yfPnyIhMgJycn5syZw8iRI3n//fdp06YN3bp1Y9CgQbRo0QKAn376iY0bN7J7924aNWoEQEREhO01pkyZwnXXXcdzzz0HQKNGjYiLi+O1114rkABde+21Ba5n6NChDBkyxNaJu2HDhrz99tt069aN6dOn4+bmVijew4cPExAQUKj5Ky0tjW+++cY2h9Wdd95JTEwM77zzTok71e/fv5+IiAjbRJ6X4+Hhga+v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dqzdYhCRiikxNZM3Y/exeEcSF7LzbOURdTy4vkkAfZoH0TLU134BVmCVfyYjKRaLxXLZx9+tm3U54eHhTJ069W/327p1KzfddBP+/v64ubkRHh7OwIEDSUlJueJzl6VJkybRt2/fIpOfnj174ujoyPr16wtt6969O2PGjClUvmjRokJDSXNycpg8eTItW7akRo0a1K5dm5iYGGbPnk1ubi4Azz//PC+99BJpaWmlcl0iUvkdTknnmy3HuPndNXy5+RgXsvOo7elC/zYhfPfQ1fzyWHee6dNEyc9lqAaomkhMTLT9PH/+fJ5//nn27t1rK3N3dy/T8ycnJ9OjRw/69u3L0qVL8fX15dChQ3z77bdkZGSU2Xlzc3NxdnYu8XGZmZnMnDmTxYsXF9qWkJDAunXrePDBB5k5cyYdO3a8othycnLo1asX27dvZ+LEicTExODt7c369et5/fXXad26Na1ataJFixaEh4czd+5c7r///is6l4hUDVm5+bz7ywGmLT+A9fdWrqsCvJhwczPa1/erkvP1lBXVAJUGw4CcdPs8irmWbWBgoO3h4+ODxWIpULZy5Uratm2Lm5sbERERjB8/nry8P6pTX3jhBerVq4erqyt169bl4YcfBszajiNHjvDoo4/aapOKsnbtWtLS0vjoo49o3bo19evX59prr2Xq1KnUq1fPtt+uXbu48cYb8fb2xsvLiy5dunDw4EEArFYrEyZMICQkBFdXV1q1asWSJUtsxx4+fBiLxcKXX35J9+7dcXNz47PPPgNg9uzZNGnSBDc3Nxo3bsy0adMue79++OEHnJyc6NSpU6Fts2fP5qabbuL+++9n/vz5pKenF+s9+KupU6eycuVKfv75Zx544AFatWpFREQEQ4YMYcOGDTRs2NC2b79+/fjiiy+u6DwiUvkZhkFs3El6vrmSd5eZyU+rUF/uubo+X93fiQ4RtZT8lJBqgEpDbga8XNc+5/73CXDx+EcvsXTpUu68807efvttW8Jx3333ATBu3Di+/vpr3nzzTebNm0ezZs1ISkpi+/btACxYsICWLVty3333MXLkyEueIzAwkLy8PBYuXMhtt91W5H/U48eP07VrV7p3784vv/yCt7c3a9assSVib731Fm+88QYzZsygdevWzJo1i379+rFr164CycJTTz3FG2+8wezZs3F1deXDDz9k3Lhx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Kv89MAyDBx98kAULFvDLL79Qv379Aturw+fg7+5BUara5+CvDMMgOzu7Wrz/l3LxHhTFru9/qXaplkuaN2+e4ezsbMycOdOIi4szxowZY3h4eBiHDx+2d2hl4rHHHjOWL19uxMfHG+vXrzduuukmw8vLy3a9r7zyiuHj42MsWLDA2LFjhzF48GAjKCjISEtLs3PkV+b8+fPG1q1bja1btxqAMWXKFGPr1q3GkSNHDMMo3vWOGjXKCAkJMX766Sfj119/Na699lqjZcuWRl5enr0uq0Qudw/Onz9vPPbYY8batWuNQ4cOGcuWLTM6depkBAcHV5l7cP/99xs+Pj7G8uXLjcTERNsjIyPDtk9V/xz83T2o6p+DZ555xli5cqVx6NAh47fffjP+/e9/Gw4ODsaPP/5oGEbVf/8N4/L3oKK9/0qAytF7771nhIWFGS4uLkabNm0KDA2tagYOHGgEBQUZzs7ORt26dY1bb73V2LVrl2271Wo1xo0bZwQGBhqurq5G165djR07dtgx4n9m2bJlBlDocffddxuGUbzrzczMNB588EHDz8/PcHd3N2666SYjISHBDldzZS53DzIyMoyePXsaderUMZydnY169eoZd999d6Hrq8z3oKhrB4zZs2fb9qnqn4O/uwdV/XMwYsQI2+/4OnXqGNddd50t+TGMqv/+G8bl70FFe/8thmEYpVunJCIiIlKxqQ+QiIiIVDtKgERERKTaUQIkIiIi1Y4SIBEREal2lACJiIhItaMESERERKodJUAiIiJS7SgBEhERkWpHCZCISBHCw8OZOnWqvcMQkTKiBEhE7G7YsGHccsstAHTv3p0xY8aU27nnzJmDr69vofJNmzZx3333lVscIlK+nOwdgIhIWcjJycHFxeWKj69Tp04pRiMiFY1qgESkwhg2bBgrVqzgrbfewmKxYLFYOHz4MABxcXH06dMHT09PAgICuOuuu0hJSbEd2717dx588EHGjh1L7dq1uf766wGYMmUKzZs3x8PDg9DQUEaPHs2FCxcAWL58OcOHDyc1NdV2vhdeeAEo3ASWkJDAzTffjKenJ97e3gwYMICTJ0/atr/wwgu0atWKTz/9lPDwcHx8fBg0aBDnz58v25smIldECZCIVBhvvfUWnTp1YuTIkSQmJpKYmEhoaCiJiYl069aNVq1asXnzZpYsWcLJkycZMGBAgeM//vhjnJycWLNmDTNmzADAwcGBt99+m507d/Lxxx/zyy+/8OSTTwLQuXNnpk6dire3t+18jz/+eKG4DMPglltu4cyZM6xYsYLY2FgOHjzIwIEDC+x38OBBFi1axHfffcd3333HihUreOWVV8robonIP6EmMBGpMHx8fHBxcaFGjRoEBgbayqdPn06bNm14+eWXbWWzZs0iNDSUffv20ahRIwAiIyOZPHlygdf8c3+i+vXrM3HiRO6//36mTZuGi4sLPj4+WCyWAuf7q59++onffvuNQ4cOERoaCsCnn35Ks2bN2LRpE+3atQPAarUyZ84cvLy8ALjrrrv4+eefeemll/7ZjRGRUqcaIBGp8LZs2cKyZcvw9PS0PRo3bgyYtS4XRUdHFzp22bJlXH/99QQHB+Pl5cXQoUM5ffo06enpxT7/7t27CQ0NtSU/AE2bNsXX15fdu3fbysLDw23JD0BQUBDJycklulYRKR+qARKRCs9qtdK3b19effXVQtuCgoJsP3t4eBTYduTIEfr06cOoUaOYOHEifn5+rF69mnvuuYfc3Nxin98wDCwWy9+WOzs7F9husViwWq3FPo+IlB8lQCJSobi4uJCfn1+grE2bNnzzzTeEh4fj5FT8X1ubN28mLy+PN954AwcHs8L7yy+//Nvz/VXTpk1JSEjg6NGjtlqguLg4UlNTadKkSbHjEZGKQ01gIlKhhIeHs2HDBg4fPkxKSgpWq5UHHniAM2fOMHjwYDZu3Eh8fDw//vgjI0aMuGzy0qBBA/Ly8njnnXeIj4/n008/5f333y90vgsXLvDzzz+TkpJCRkZGodfp0aMHLVq04I477uDXX39l48aNDB06lG7duhXZ7CYiFZ8SIBGpUB5//HEcHR1p2rQpderUISEhgbp167JmzRry8/Pp1asXUVFRPPLII/j4+NhqdorSqlUrpkyZwquvvkpUVBRz585l0qRJBfbp3Lkzo0aNYuDAgdSpU6dQJ2owm7IWLVpEzZo16dq1Kz169CAiIoL58+eX+vWLSPmwGIZh2DsIERERkfKkGiARERGpdpQAiYiISLWjBEhERESqHSVAIiIiUu0oARIREZFqRwmQiIiIVDtKgERERKTaUQIkIiIi1Y4SIBEREal2lACJiIhItaMESERERKqd/wcO2FO4hk/wLwAAAABJRU5ErkJggg==\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": 22, "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 }