Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aicrowd-bot/f19363a1e26c4e6a7ebe0cac647679d2 to your computer and use it in GitHub Desktop.
Save aicrowd-bot/f19363a1e26c4e6a7ebe0cac647679d2 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "91ae59ca",
"metadata": {},
"source": [
"# FastAI Tabular Starter Notebook by @johnowhitaker\n",
"<table style=\"margin: 0px auto;\"><tr>\n",
"<td> \n",
"<img src=\"https://gitlab.aicrowd.com/aicrowd/assets/-/raw/master/challenges/clock-decomposition/notebook-banner.jpg?inline=false\" alt=\"Drawing\" width='250px'/> \n",
"</td>\n",
"</tr></table>\n"
]
},
{
"cell_type": "markdown",
"id": "16fd2f34",
"metadata": {
"heading_collapsed": "true",
"tags": []
},
"source": [
"# What is the notebook about?\n",
"\n",
"The challenge is to use the features extracted from the Clock Drawing Test to build an automated and algorithm to predict whether each participant is one of three phases:\n",
"\n",
"1) Pre-Alzheimerโ€™s (Early Warning)\n",
"2) Post-Alzheimerโ€™s (Detection)\n",
"3) Normal (Not an Alzheimerโ€™s patient)\n",
"\n",
"In this starter notebook we will solve this task using fastai. Make sure you don't edit out the section headings as AICROWD uses these to split this notebook up for submission. All code that is needed for both train and test goes in the preprocessing section, for example. I've tried to highlight where I've added code that isn't in the original template.\n",
"\n",
"- **Installing packages**. Please use the [Install packages ๐Ÿ—ƒ](#install-packages-) section to install the packages\n",
"- **Training your models**. All the code within the [Training phase โš™๏ธ](#training-phase-) section will be skipped during evaluation. **Please make sure to save your model weights in the assets directory and load them in the predictions phase section** "
]
},
{
"cell_type": "markdown",
"id": "bb297fdf",
"metadata": {
"tags": []
},
"source": [
"# Setup AIcrowd Utilities ๐Ÿ› \n",
"\n",
"We use this to bundle the files for submission and create a submission on AIcrowd. Do not edit this block."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "0d93edc7",
"metadata": {},
"outputs": [],
"source": [
"!pip install -q -U aicrowd-cli"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c23bb402",
"metadata": {},
"outputs": [],
"source": [
"%load_ext aicrowd.magic"
]
},
{
"cell_type": "markdown",
"id": "06b1b538",
"metadata": {
"tags": []
},
"source": [
"# AIcrowd Runtime Configuration ๐Ÿงท\n",
"\n",
"Define configuration parameters. Please include any files needed for the notebook to run under `ASSETS_DIR`. We will copy the contents of this directory to your final submission file ๐Ÿ™‚\n",
"\n",
"The dataset is available under `/ds_shared_drive` on the workspace."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "74bfef2c",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"# Please use the absolute for the location of the dataset.\n",
"# Or you can use relative path with `os.getcwd() + \"test_data/validation.csv\"`\n",
"AICROWD_DATASET_PATH = os.getenv(\"DATASET_PATH\", \"/ds_shared_drive/validation.csv\")\n",
"AICROWD_PREDICTIONS_PATH = os.getenv(\"PREDICTIONS_PATH\", \"predictions.csv\")\n",
"AICROWD_ASSETS_DIR = \"assets\"\n",
"AICROWD_API_KEY = \"\" # Get your key from https://www.aicrowd.com/participants/me"
]
},
{
"cell_type": "markdown",
"id": "66613016",
"metadata": {
"tags": []
},
"source": [
"# Install packages ๐Ÿ—ƒ\n",
"\n",
"Please add all pacakage installations in this section"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "86c7ccc6",
"metadata": {},
"outputs": [],
"source": [
"!pip install -q numpy pandas scikit-learn\n",
"!pip install -q -U fastcore fastai # Need -U otherwise we're stuck with an old version on their docker"
]
},
{
"cell_type": "markdown",
"id": "5599297f",
"metadata": {
"tags": []
},
"source": [
"# Define preprocessing code ๐Ÿ’ป\n",
"\n",
"The code that is common between the training and the prediction sections should be defined here. During evaluation, we completely skip the training section. Please make sure to add any common logic between the training and prediction sections here."
]
},
{
"cell_type": "markdown",
"id": "5c8d41fc",
"metadata": {},
"source": [
"### Import common packages\n",
"\n",
"Please import packages that are common for training and prediction phases here."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d227172c",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from sklearn.metrics import f1_score, log_loss\n",
"from fastai.tabular.all import *"
]
},
{
"cell_type": "markdown",
"id": "efd4130e",
"metadata": {
"tags": []
},
"source": [
"# Training phase โš™๏ธ\n",
"\n",
"You can define your training code here. This sections will be skipped during evaluation."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "dd96c866",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(32777, 122)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>row_id</th>\n",
" <th>number_of_digits</th>\n",
" <th>missing_digit_1</th>\n",
" <th>missing_digit_2</th>\n",
" <th>missing_digit_3</th>\n",
" <th>missing_digit_4</th>\n",
" <th>missing_digit_5</th>\n",
" <th>missing_digit_6</th>\n",
" <th>missing_digit_7</th>\n",
" <th>missing_digit_8</th>\n",
" <th>...</th>\n",
" <th>bottom_area_perc</th>\n",
" <th>left_area_perc</th>\n",
" <th>right_area_perc</th>\n",
" <th>hor_count</th>\n",
" <th>vert_count</th>\n",
" <th>eleven_ten_error</th>\n",
" <th>other_error</th>\n",
" <th>time_diff</th>\n",
" <th>centre_dot_detect</th>\n",
" <th>diagnosis</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>S0CIXBKIUEOUBNURP</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.526170</td>\n",
" <td>0.524975</td>\n",
" <td>0.474667</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>-105.0</td>\n",
" <td>0.0</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>IW1Z4Z3H720OPW8LL</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.000810</td>\n",
" <td>0.516212</td>\n",
" <td>0.483330</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>PVUGU14JRSU44ZADT</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.488109</td>\n",
" <td>0.550606</td>\n",
" <td>0.449042</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>RW5UTGMB9H67LWJHX</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>W0IM2V6F6UP5LYS3E</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.512818</td>\n",
" <td>0.511865</td>\n",
" <td>0.487791</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows ร— 122 columns</p>\n",
"</div>"
],
"text/plain": [
" row_id number_of_digits missing_digit_1 missing_digit_2 \\\n",
"0 S0CIXBKIUEOUBNURP 12.0 0.0 0.0 \n",
"1 IW1Z4Z3H720OPW8LL 12.0 0.0 0.0 \n",
"2 PVUGU14JRSU44ZADT 12.0 0.0 0.0 \n",
"3 RW5UTGMB9H67LWJHX 7.0 0.0 0.0 \n",
"4 W0IM2V6F6UP5LYS3E 12.0 0.0 0.0 \n",
"\n",
" missing_digit_3 missing_digit_4 missing_digit_5 missing_digit_6 \\\n",
"0 0.0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 0.0 \n",
"2 0.0 0.0 0.0 0.0 \n",
"3 0.0 1.0 0.0 0.0 \n",
"4 0.0 0.0 0.0 0.0 \n",
"\n",
" missing_digit_7 missing_digit_8 ... bottom_area_perc left_area_perc \\\n",
"0 0.0 0.0 ... 0.526170 0.524975 \n",
"1 0.0 0.0 ... 0.000810 0.516212 \n",
"2 0.0 0.0 ... 0.488109 0.550606 \n",
"3 1.0 1.0 ... NaN NaN \n",
"4 0.0 0.0 ... 0.512818 0.511865 \n",
"\n",
" right_area_perc hor_count vert_count eleven_ten_error other_error \\\n",
"0 0.474667 0 0 0 1 \n",
"1 0.483330 0 1 0 1 \n",
"2 0.449042 0 0 0 0 \n",
"3 NaN 1 0 0 1 \n",
"4 0.487791 0 1 0 0 \n",
"\n",
" time_diff centre_dot_detect diagnosis \n",
"0 -105.0 0.0 normal \n",
"1 NaN NaN normal \n",
"2 0.0 0.0 normal \n",
"3 NaN NaN normal \n",
"4 0.0 1.0 normal \n",
"\n",
"[5 rows x 122 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Loading the training data\n",
"df = pd.read_csv(os.getenv(\"DATASET_PATH\", \"/ds_shared_drive/train.csv\"))\n",
"print(df.shape)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"id": "b1ad5163",
"metadata": {},
"source": [
"Following the example in the fastai docs, we construct our dataloaders:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1f367bde",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>intersection_pos_rel_centre</th>\n",
" <th>number_of_digits</th>\n",
" <th>missing_digit_1</th>\n",
" <th>missing_digit_2</th>\n",
" <th>missing_digit_3</th>\n",
" <th>missing_digit_4</th>\n",
" <th>missing_digit_5</th>\n",
" <th>missing_digit_6</th>\n",
" <th>missing_digit_7</th>\n",
" <th>missing_digit_8</th>\n",
" <th>missing_digit_9</th>\n",
" <th>missing_digit_10</th>\n",
" <th>missing_digit_11</th>\n",
" <th>missing_digit_12</th>\n",
" <th>1 dist from cen</th>\n",
" <th>10 dist from cen</th>\n",
" <th>11 dist from cen</th>\n",
" <th>12 dist from cen</th>\n",
" <th>2 dist from cen</th>\n",
" <th>3 dist from cen</th>\n",
" <th>4 dist from cen</th>\n",
" <th>5 dist from cen</th>\n",
" <th>6 dist from cen</th>\n",
" <th>7 dist from cen</th>\n",
" <th>8 dist from cen</th>\n",
" <th>9 dist from cen</th>\n",
" <th>euc_dist_digit_1</th>\n",
" <th>euc_dist_digit_2</th>\n",
" <th>euc_dist_digit_3</th>\n",
" <th>euc_dist_digit_4</th>\n",
" <th>euc_dist_digit_5</th>\n",
" <th>euc_dist_digit_6</th>\n",
" <th>euc_dist_digit_7</th>\n",
" <th>euc_dist_digit_8</th>\n",
" <th>euc_dist_digit_9</th>\n",
" <th>euc_dist_digit_10</th>\n",
" <th>euc_dist_digit_11</th>\n",
" <th>euc_dist_digit_12</th>\n",
" <th>area_digit_1</th>\n",
" <th>area_digit_2</th>\n",
" <th>area_digit_3</th>\n",
" <th>area_digit_4</th>\n",
" <th>area_digit_5</th>\n",
" <th>area_digit_6</th>\n",
" <th>area_digit_7</th>\n",
" <th>area_digit_8</th>\n",
" <th>area_digit_9</th>\n",
" <th>area_digit_10</th>\n",
" <th>area_digit_11</th>\n",
" <th>area_digit_12</th>\n",
" <th>height_digit_1</th>\n",
" <th>height_digit_2</th>\n",
" <th>height_digit_3</th>\n",
" <th>height_digit_4</th>\n",
" <th>height_digit_5</th>\n",
" <th>height_digit_6</th>\n",
" <th>height_digit_7</th>\n",
" <th>height_digit_8</th>\n",
" <th>height_digit_9</th>\n",
" <th>height_digit_10</th>\n",
" <th>height_digit_11</th>\n",
" <th>height_digit_12</th>\n",
" <th>width_digit_1</th>\n",
" <th>width_digit_2</th>\n",
" <th>width_digit_3</th>\n",
" <th>width_digit_4</th>\n",
" <th>width_digit_5</th>\n",
" <th>width_digit_6</th>\n",
" <th>width_digit_7</th>\n",
" <th>width_digit_8</th>\n",
" <th>width_digit_9</th>\n",
" <th>width_digit_10</th>\n",
" <th>width_digit_11</th>\n",
" <th>width_digit_12</th>\n",
" <th>variance_width</th>\n",
" <th>variance_height</th>\n",
" <th>variance_area</th>\n",
" <th>deviation_dist_from_mid_axis</th>\n",
" <th>between_axis_digits_angle_sum</th>\n",
" <th>between_axis_digits_angle_var</th>\n",
" <th>between_digits_angle_cw_sum</th>\n",
" <th>between_digits_angle_cw_var</th>\n",
" <th>between_digits_angle_ccw_sum</th>\n",
" <th>between_digits_angle_ccw_var</th>\n",
" <th>sequence_flag_cw</th>\n",
" <th>sequence_flag_ccw</th>\n",
" <th>number_of_hands</th>\n",
" <th>hand_count_dummy</th>\n",
" <th>hour_hand_length</th>\n",
" <th>minute_hand_length</th>\n",
" <th>single_hand_length</th>\n",
" <th>clockhand_ratio</th>\n",
" <th>clockhand_diff</th>\n",
" <th>angle_between_hands</th>\n",
" <th>deviation_from_centre</th>\n",
" <th>hour_proximity_from_11</th>\n",
" <th>minute_proximity_from_2</th>\n",
" <th>hour_pointing_digit</th>\n",
" <th>actual_hour_digit</th>\n",
" <th>minute_pointing_digit</th>\n",
" <th>actual_minute_digit</th>\n",
" <th>final_rotation_angle</th>\n",
" <th>ellipse_circle_ratio</th>\n",
" <th>count_defects</th>\n",
" <th>percentage_inside_ellipse</th>\n",
" <th>pred_tremor</th>\n",
" <th>double_major</th>\n",
" <th>double_minor</th>\n",
" <th>vertical_dist</th>\n",
" <th>horizontal_dist</th>\n",
" <th>top_area_perc</th>\n",
" <th>bottom_area_perc</th>\n",
" <th>left_area_perc</th>\n",
" <th>right_area_perc</th>\n",
" <th>hor_count</th>\n",
" <th>vert_count</th>\n",
" <th>eleven_ten_error</th>\n",
" <th>other_error</th>\n",
" <th>time_diff</th>\n",
" <th>centre_dot_detect</th>\n",
" <th>diagnosis</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>TR</td>\n",
" <td>7.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>388.067654</td>\n",
" <td>-0.000016</td>\n",
" <td>336.513367</td>\n",
" <td>392.532807</td>\n",
" <td>-0.000012</td>\n",
" <td>-0.000008</td>\n",
" <td>356.753756</td>\n",
" <td>0.000007</td>\n",
" <td>0.000009</td>\n",
" <td>402.937039</td>\n",
" <td>0.000011</td>\n",
" <td>0.000009</td>\n",
" <td>3.816375e+01</td>\n",
" <td>-1.623396e-07</td>\n",
" <td>-8.599167e-07</td>\n",
" <td>1.217065e+01</td>\n",
" <td>7.745677e-07</td>\n",
" <td>-9.010474e-07</td>\n",
" <td>9.147690e+01</td>\n",
" <td>8.965976e-07</td>\n",
" <td>-2.088769e-07</td>\n",
" <td>2.309995e-07</td>\n",
" <td>8.345723e+01</td>\n",
" <td>2.041000e+01</td>\n",
" <td>2079.000003</td>\n",
" <td>0.000033</td>\n",
" <td>0.000025</td>\n",
" <td>3400.000017</td>\n",
" <td>-0.000129</td>\n",
" <td>-0.000133</td>\n",
" <td>7049.999927</td>\n",
" <td>0.000148</td>\n",
" <td>0.000050</td>\n",
" <td>-0.000185</td>\n",
" <td>7476.000001</td>\n",
" <td>6119.999999</td>\n",
" <td>77.000001</td>\n",
" <td>0.000002</td>\n",
" <td>0.000003</td>\n",
" <td>68.000000</td>\n",
" <td>0.000001</td>\n",
" <td>-0.000002</td>\n",
" <td>94.000000</td>\n",
" <td>0.000003</td>\n",
" <td>0.000002</td>\n",
" <td>-8.663088e-08</td>\n",
" <td>84.000000</td>\n",
" <td>72.000000</td>\n",
" <td>2.700000e+01</td>\n",
" <td>0.000001</td>\n",
" <td>9.035186e-07</td>\n",
" <td>5.000000e+01</td>\n",
" <td>-0.000001</td>\n",
" <td>-4.953110e-07</td>\n",
" <td>7.500000e+01</td>\n",
" <td>-0.000002</td>\n",
" <td>-0.000001</td>\n",
" <td>9.289842e-07</td>\n",
" <td>8.900000e+01</td>\n",
" <td>8.500000e+01</td>\n",
" <td>560.809516</td>\n",
" <td>91.285717</td>\n",
" <td>4.405781e+06</td>\n",
" <td>20.410000</td>\n",
" <td>-0.000007</td>\n",
" <td>0.000034</td>\n",
" <td>0.000006</td>\n",
" <td>20069.337550</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>13897.909912</td>\n",
" <td>-2.372236e-08</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>71.517014</td>\n",
" <td>79.516227</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.111850e+00</td>\n",
" <td>7.999214e+00</td>\n",
" <td>82.841530</td>\n",
" <td>1.889435e+01</td>\n",
" <td>1.343731e+02</td>\n",
" <td>6.161664e-07</td>\n",
" <td>4.000000e+00</td>\n",
" <td>11.0</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.0</td>\n",
" <td>330.000007</td>\n",
" <td>84.504089</td>\n",
" <td>120.999999</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>123.237007</td>\n",
" <td>111.294937</td>\n",
" <td>114.269546</td>\n",
" <td>119.529099</td>\n",
" <td>0.487391</td>\n",
" <td>0.512270</td>\n",
" <td>0.489199</td>\n",
" <td>0.510444</td>\n",
" <td>-3.986990e-08</td>\n",
" <td>1.101867e-08</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>424.999997</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>TL</td>\n",
" <td>12.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>382.205448</td>\n",
" <td>376.367186</td>\n",
" <td>357.268097</td>\n",
" <td>367.848146</td>\n",
" <td>373.159824</td>\n",
" <td>355.035918</td>\n",
" <td>354.864043</td>\n",
" <td>345.231808</td>\n",
" <td>362.810210</td>\n",
" <td>370.113830</td>\n",
" <td>362.865326</td>\n",
" <td>377.641357</td>\n",
" <td>9.922331e+01</td>\n",
" <td>9.702140e+01</td>\n",
" <td>9.217000e+01</td>\n",
" <td>9.209540e+01</td>\n",
" <td>8.975448e+01</td>\n",
" <td>9.425000e+01</td>\n",
" <td>9.620657e+01</td>\n",
" <td>9.434489e+01</td>\n",
" <td>9.802000e+01</td>\n",
" <td>9.767731e+01</td>\n",
" <td>9.284990e+01</td>\n",
" <td>9.555000e+01</td>\n",
" <td>1611.999999</td>\n",
" <td>3419.999988</td>\n",
" <td>4819.000001</td>\n",
" <td>4696.999995</td>\n",
" <td>4679.999940</td>\n",
" <td>5655.999996</td>\n",
" <td>5580.000025</td>\n",
" <td>7101.999999</td>\n",
" <td>5076.000013</td>\n",
" <td>5111.999997</td>\n",
" <td>4306.999996</td>\n",
" <td>5628.000021</td>\n",
" <td>25.999999</td>\n",
" <td>57.000000</td>\n",
" <td>61.000000</td>\n",
" <td>61.000000</td>\n",
" <td>60.000000</td>\n",
" <td>56.000001</td>\n",
" <td>60.000001</td>\n",
" <td>67.000000</td>\n",
" <td>54.000000</td>\n",
" <td>7.200000e+01</td>\n",
" <td>59.000000</td>\n",
" <td>84.000000</td>\n",
" <td>6.200000e+01</td>\n",
" <td>60.000000</td>\n",
" <td>7.900000e+01</td>\n",
" <td>7.700000e+01</td>\n",
" <td>78.000000</td>\n",
" <td>1.010000e+02</td>\n",
" <td>9.300000e+01</td>\n",
" <td>106.000000</td>\n",
" <td>93.999999</td>\n",
" <td>7.100000e+01</td>\n",
" <td>7.300000e+01</td>\n",
" <td>6.700000e+01</td>\n",
" <td>228.992430</td>\n",
" <td>180.749999</td>\n",
" <td>1.803177e+06</td>\n",
" <td>94.997497</td>\n",
" <td>359.999999</td>\n",
" <td>21.914959</td>\n",
" <td>360.000005</td>\n",
" <td>4.436348</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>4.436361</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>81.792212</td>\n",
" <td>82.660781</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.010619e+00</td>\n",
" <td>8.685693e-01</td>\n",
" <td>77.467835</td>\n",
" <td>5.365383e+00</td>\n",
" <td>8.299478e+01</td>\n",
" <td>8.330142e+01</td>\n",
" <td>2.000000e+00</td>\n",
" <td>11.0</td>\n",
" <td>1.100000e+01</td>\n",
" <td>2.0</td>\n",
" <td>89.999999</td>\n",
" <td>86.778656</td>\n",
" <td>141.999999</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>118.552757</td>\n",
" <td>112.114525</td>\n",
" <td>112.218727</td>\n",
" <td>118.429917</td>\n",
" <td>0.487843</td>\n",
" <td>0.511814</td>\n",
" <td>0.522952</td>\n",
" <td>0.476689</td>\n",
" <td>2.000000e+00</td>\n",
" <td>2.000000e+00</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>495.000002</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>TL</td>\n",
" <td>11.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>372.349972</td>\n",
" <td>-0.000016</td>\n",
" <td>414.007845</td>\n",
" <td>369.914858</td>\n",
" <td>387.847897</td>\n",
" <td>356.508756</td>\n",
" <td>371.209167</td>\n",
" <td>373.471558</td>\n",
" <td>386.805174</td>\n",
" <td>369.943909</td>\n",
" <td>361.686674</td>\n",
" <td>364.888001</td>\n",
" <td>6.842238e+00</td>\n",
" <td>8.477510e+00</td>\n",
" <td>6.500003e-01</td>\n",
" <td>1.779404e+00</td>\n",
" <td>8.193443e-01</td>\n",
" <td>1.209000e+01</td>\n",
" <td>3.641623e+01</td>\n",
" <td>2.758651e+01</td>\n",
" <td>2.769000e+01</td>\n",
" <td>2.309995e-07</td>\n",
" <td>2.568404e+00</td>\n",
" <td>6.760001e+00</td>\n",
" <td>2775.000005</td>\n",
" <td>5220.000028</td>\n",
" <td>5480.999988</td>\n",
" <td>3249.999997</td>\n",
" <td>4080.000051</td>\n",
" <td>8215.999935</td>\n",
" <td>4424.999998</td>\n",
" <td>5165.999997</td>\n",
" <td>6665.999934</td>\n",
" <td>-0.000185</td>\n",
" <td>3402.999958</td>\n",
" <td>5952.000002</td>\n",
" <td>75.000000</td>\n",
" <td>58.000000</td>\n",
" <td>63.000000</td>\n",
" <td>65.000000</td>\n",
" <td>60.000000</td>\n",
" <td>103.999999</td>\n",
" <td>75.000000</td>\n",
" <td>82.000000</td>\n",
" <td>100.999999</td>\n",
" <td>-8.663088e-08</td>\n",
" <td>41.000001</td>\n",
" <td>62.000000</td>\n",
" <td>3.700000e+01</td>\n",
" <td>90.000000</td>\n",
" <td>8.700000e+01</td>\n",
" <td>5.000000e+01</td>\n",
" <td>68.000000</td>\n",
" <td>7.900000e+01</td>\n",
" <td>5.900000e+01</td>\n",
" <td>63.000000</td>\n",
" <td>66.000000</td>\n",
" <td>9.289842e-07</td>\n",
" <td>8.300000e+01</td>\n",
" <td>9.600000e+01</td>\n",
" <td>328.818177</td>\n",
" <td>351.072724</td>\n",
" <td>2.606021e+06</td>\n",
" <td>11.797500</td>\n",
" <td>359.999999</td>\n",
" <td>202.959712</td>\n",
" <td>360.000005</td>\n",
" <td>46.053321</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>46.053309</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>69.542587</td>\n",
" <td>95.625228</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.375060e+00</td>\n",
" <td>2.608264e+01</td>\n",
" <td>89.895163</td>\n",
" <td>1.358143e+01</td>\n",
" <td>2.421688e+00</td>\n",
" <td>2.082647e+00</td>\n",
" <td>1.100000e+01</td>\n",
" <td>11.0</td>\n",
" <td>2.000000e+00</td>\n",
" <td>2.0</td>\n",
" <td>-0.000002</td>\n",
" <td>89.308403</td>\n",
" <td>124.999999</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>124.454651</td>\n",
" <td>115.522758</td>\n",
" <td>116.380135</td>\n",
" <td>123.407807</td>\n",
" <td>0.498257</td>\n",
" <td>0.501413</td>\n",
" <td>0.541189</td>\n",
" <td>0.458472</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.101867e-08</td>\n",
" <td>8.023168e-10</td>\n",
" <td>-2.590800e-08</td>\n",
" <td>0.000003</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>BR</td>\n",
" <td>12.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>329.013671</td>\n",
" <td>362.246460</td>\n",
" <td>342.791842</td>\n",
" <td>354.779144</td>\n",
" <td>290.594635</td>\n",
" <td>282.800293</td>\n",
" <td>297.578979</td>\n",
" <td>324.600127</td>\n",
" <td>333.061553</td>\n",
" <td>367.848480</td>\n",
" <td>386.099092</td>\n",
" <td>387.632875</td>\n",
" <td>1.472617e+01</td>\n",
" <td>2.299582e+01</td>\n",
" <td>1.820000e+01</td>\n",
" <td>1.296526e+01</td>\n",
" <td>1.017249e+01</td>\n",
" <td>9.620000e+00</td>\n",
" <td>6.600593e+00</td>\n",
" <td>1.753890e+01</td>\n",
" <td>2.743000e+01</td>\n",
" <td>2.496226e+01</td>\n",
" <td>2.012399e+01</td>\n",
" <td>6.110000e+00</td>\n",
" <td>2880.000024</td>\n",
" <td>7614.000142</td>\n",
" <td>6448.000054</td>\n",
" <td>6425.999976</td>\n",
" <td>4697.999973</td>\n",
" <td>7616.000014</td>\n",
" <td>4946.999995</td>\n",
" <td>6405.000033</td>\n",
" <td>6509.999947</td>\n",
" <td>10355.000189</td>\n",
" <td>7703.999912</td>\n",
" <td>10349.999833</td>\n",
" <td>90.000000</td>\n",
" <td>94.000001</td>\n",
" <td>104.000000</td>\n",
" <td>118.999999</td>\n",
" <td>86.999999</td>\n",
" <td>112.000001</td>\n",
" <td>97.000000</td>\n",
" <td>105.000000</td>\n",
" <td>92.999999</td>\n",
" <td>1.090000e+02</td>\n",
" <td>107.000000</td>\n",
" <td>90.000001</td>\n",
" <td>3.200000e+01</td>\n",
" <td>81.000000</td>\n",
" <td>6.200000e+01</td>\n",
" <td>5.400000e+01</td>\n",
" <td>54.000000</td>\n",
" <td>6.800000e+01</td>\n",
" <td>5.100000e+01</td>\n",
" <td>61.000000</td>\n",
" <td>70.000000</td>\n",
" <td>9.500000e+01</td>\n",
" <td>7.200000e+01</td>\n",
" <td>1.150000e+02</td>\n",
" <td>471.719700</td>\n",
" <td>103.174246</td>\n",
" <td>4.645284e+06</td>\n",
" <td>15.340000</td>\n",
" <td>359.999999</td>\n",
" <td>135.573334</td>\n",
" <td>360.000005</td>\n",
" <td>27.872966</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>27.873213</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>56.809258</td>\n",
" <td>76.744056</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.350908e+00</td>\n",
" <td>1.993480e+01</td>\n",
" <td>83.996803</td>\n",
" <td>4.906938e+00</td>\n",
" <td>3.900712e+00</td>\n",
" <td>3.396935e-01</td>\n",
" <td>1.100000e+01</td>\n",
" <td>11.0</td>\n",
" <td>2.000000e+00</td>\n",
" <td>2.0</td>\n",
" <td>-0.000002</td>\n",
" <td>86.682136</td>\n",
" <td>113.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>116.988930</td>\n",
" <td>113.964157</td>\n",
" <td>114.157181</td>\n",
" <td>116.781204</td>\n",
" <td>0.471709</td>\n",
" <td>0.527943</td>\n",
" <td>0.526619</td>\n",
" <td>0.473026</td>\n",
" <td>-3.986990e-08</td>\n",
" <td>1.000000e+00</td>\n",
" <td>8.023168e-10</td>\n",
" <td>-2.590800e-08</td>\n",
" <td>0.000003</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" <td>4.0</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.969123e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-0.000007</td>\n",
" <td>-0.000016</td>\n",
" <td>0.000008</td>\n",
" <td>-0.000004</td>\n",
" <td>387.863708</td>\n",
" <td>-0.000008</td>\n",
" <td>0.000004</td>\n",
" <td>355.163696</td>\n",
" <td>367.663574</td>\n",
" <td>0.000003</td>\n",
" <td>488.382014</td>\n",
" <td>0.000009</td>\n",
" <td>-4.083468e-07</td>\n",
" <td>1.033109e+01</td>\n",
" <td>-8.599167e-07</td>\n",
" <td>9.329410e-07</td>\n",
" <td>1.548192e+01</td>\n",
" <td>2.535000e+01</td>\n",
" <td>6.618926e-07</td>\n",
" <td>1.317185e+01</td>\n",
" <td>-2.088769e-07</td>\n",
" <td>2.309995e-07</td>\n",
" <td>-8.440965e-07</td>\n",
" <td>-4.351725e-07</td>\n",
" <td>-0.000073</td>\n",
" <td>4278.000000</td>\n",
" <td>0.000025</td>\n",
" <td>-0.000003</td>\n",
" <td>9645.999997</td>\n",
" <td>6099.000001</td>\n",
" <td>0.000092</td>\n",
" <td>10980.000112</td>\n",
" <td>0.000050</td>\n",
" <td>-0.000185</td>\n",
" <td>-0.000024</td>\n",
" <td>-0.000041</td>\n",
" <td>0.000001</td>\n",
" <td>69.000000</td>\n",
" <td>0.000003</td>\n",
" <td>-0.000002</td>\n",
" <td>106.000001</td>\n",
" <td>107.000000</td>\n",
" <td>-0.000001</td>\n",
" <td>122.000000</td>\n",
" <td>0.000002</td>\n",
" <td>-8.663088e-08</td>\n",
" <td>-0.000001</td>\n",
" <td>0.000004</td>\n",
" <td>5.203749e-07</td>\n",
" <td>62.000000</td>\n",
" <td>9.035186e-07</td>\n",
" <td>-2.481910e-07</td>\n",
" <td>91.000001</td>\n",
" <td>5.700000e+01</td>\n",
" <td>-8.320788e-07</td>\n",
" <td>89.999998</td>\n",
" <td>-0.000001</td>\n",
" <td>9.289842e-07</td>\n",
" <td>3.691041e-07</td>\n",
" <td>1.960336e-07</td>\n",
" <td>324.666656</td>\n",
" <td>508.666655</td>\n",
" <td>9.602766e+06</td>\n",
" <td>25.350001</td>\n",
" <td>359.999999</td>\n",
" <td>0.000034</td>\n",
" <td>360.000005</td>\n",
" <td>4200.252966</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>4200.252972</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>-0.000002</td>\n",
" <td>-0.000002</td>\n",
" <td>5.988867e+01</td>\n",
" <td>-3.305128e-08</td>\n",
" <td>4.112339e-07</td>\n",
" <td>-0.000002</td>\n",
" <td>4.916907e-07</td>\n",
" <td>3.676375e-07</td>\n",
" <td>6.161664e-07</td>\n",
" <td>-2.302025e-07</td>\n",
" <td>11.0</td>\n",
" <td>-4.815603e-08</td>\n",
" <td>2.0</td>\n",
" <td>30.000001</td>\n",
" <td>65.330147</td>\n",
" <td>27.000000</td>\n",
" <td>0.5</td>\n",
" <td>1.000000e+00</td>\n",
" <td>117.801903</td>\n",
" <td>96.366028</td>\n",
" <td>99.852333</td>\n",
" <td>112.190826</td>\n",
" <td>0.487255</td>\n",
" <td>0.512415</td>\n",
" <td>0.534312</td>\n",
" <td>0.465308</td>\n",
" <td>-3.986990e-08</td>\n",
" <td>1.101867e-08</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>0.000003</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>BL</td>\n",
" <td>10.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>399.835262</td>\n",
" <td>357.452790</td>\n",
" <td>371.039427</td>\n",
" <td>-0.000004</td>\n",
" <td>399.163179</td>\n",
" <td>350.591277</td>\n",
" <td>355.442325</td>\n",
" <td>0.000007</td>\n",
" <td>369.493226</td>\n",
" <td>362.801604</td>\n",
" <td>358.589262</td>\n",
" <td>355.398711</td>\n",
" <td>1.034993e+02</td>\n",
" <td>5.698383e+01</td>\n",
" <td>9.113000e+01</td>\n",
" <td>9.240423e+01</td>\n",
" <td>7.745677e-07</td>\n",
" <td>7.813000e+01</td>\n",
" <td>9.370048e+01</td>\n",
" <td>9.204131e+01</td>\n",
" <td>9.204000e+01</td>\n",
" <td>9.243190e+01</td>\n",
" <td>9.645039e+01</td>\n",
" <td>-4.351725e-07</td>\n",
" <td>1673.999998</td>\n",
" <td>4366.000020</td>\n",
" <td>4601.999998</td>\n",
" <td>5100.000003</td>\n",
" <td>-0.000129</td>\n",
" <td>2360.000028</td>\n",
" <td>3248.000029</td>\n",
" <td>4153.999956</td>\n",
" <td>5130.000012</td>\n",
" <td>5486.999998</td>\n",
" <td>3792.000009</td>\n",
" <td>-0.000041</td>\n",
" <td>27.000000</td>\n",
" <td>74.000000</td>\n",
" <td>59.000000</td>\n",
" <td>50.999999</td>\n",
" <td>0.000001</td>\n",
" <td>39.999999</td>\n",
" <td>58.000000</td>\n",
" <td>62.000000</td>\n",
" <td>54.000000</td>\n",
" <td>5.900000e+01</td>\n",
" <td>48.000000</td>\n",
" <td>0.000004</td>\n",
" <td>6.200000e+01</td>\n",
" <td>59.000000</td>\n",
" <td>7.800000e+01</td>\n",
" <td>1.000000e+02</td>\n",
" <td>-0.000001</td>\n",
" <td>5.900000e+01</td>\n",
" <td>5.600000e+01</td>\n",
" <td>67.000000</td>\n",
" <td>95.000001</td>\n",
" <td>9.300000e+01</td>\n",
" <td>7.900000e+01</td>\n",
" <td>1.960336e-07</td>\n",
" <td>275.511108</td>\n",
" <td>165.955551</td>\n",
" <td>1.547337e+06</td>\n",
" <td>87.100000</td>\n",
" <td>359.999999</td>\n",
" <td>4099.556616</td>\n",
" <td>0.000006</td>\n",
" <td>8492.290954</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>8492.291019</td>\n",
" <td>-2.372236e-08</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>43.097305</td>\n",
" <td>81.933005</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.901117e+00</td>\n",
" <td>3.883571e+01</td>\n",
" <td>123.152811</td>\n",
" <td>3.017619e+01</td>\n",
" <td>5.899984e+00</td>\n",
" <td>6.772767e+01</td>\n",
" <td>1.100000e+01</td>\n",
" <td>11.0</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.0</td>\n",
" <td>270.000002</td>\n",
" <td>84.183266</td>\n",
" <td>86.000000</td>\n",
" <td>1.0</td>\n",
" <td>1.000000e+00</td>\n",
" <td>116.017754</td>\n",
" <td>112.073730</td>\n",
" <td>112.481918</td>\n",
" <td>115.570000</td>\n",
" <td>0.512272</td>\n",
" <td>0.487372</td>\n",
" <td>0.501274</td>\n",
" <td>0.498357</td>\n",
" <td>-3.986990e-08</td>\n",
" <td>2.000000e+00</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.000001</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0</td>\n",
" <td>12.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>340.586640</td>\n",
" <td>381.932252</td>\n",
" <td>343.005828</td>\n",
" <td>287.865416</td>\n",
" <td>322.172698</td>\n",
" <td>337.926027</td>\n",
" <td>379.962161</td>\n",
" <td>371.121615</td>\n",
" <td>348.213286</td>\n",
" <td>385.188262</td>\n",
" <td>424.714596</td>\n",
" <td>421.867860</td>\n",
" <td>8.835715e+01</td>\n",
" <td>8.325915e+01</td>\n",
" <td>8.762000e+01</td>\n",
" <td>9.878448e+01</td>\n",
" <td>9.606289e+01</td>\n",
" <td>9.008999e+01</td>\n",
" <td>9.977315e+01</td>\n",
" <td>1.091577e+02</td>\n",
" <td>1.077700e+02</td>\n",
" <td>9.626873e+01</td>\n",
" <td>8.569965e+01</td>\n",
" <td>7.475000e+01</td>\n",
" <td>2320.000012</td>\n",
" <td>6006.000079</td>\n",
" <td>4199.999997</td>\n",
" <td>7625.999949</td>\n",
" <td>5670.000003</td>\n",
" <td>6434.999984</td>\n",
" <td>4300.000000</td>\n",
" <td>3912.999990</td>\n",
" <td>5884.999974</td>\n",
" <td>5761.999999</td>\n",
" <td>7344.000022</td>\n",
" <td>7055.000011</td>\n",
" <td>29.000000</td>\n",
" <td>66.000000</td>\n",
" <td>49.999999</td>\n",
" <td>62.000000</td>\n",
" <td>70.000000</td>\n",
" <td>55.000001</td>\n",
" <td>50.000000</td>\n",
" <td>43.000001</td>\n",
" <td>55.000000</td>\n",
" <td>6.700000e+01</td>\n",
" <td>68.000000</td>\n",
" <td>83.000000</td>\n",
" <td>8.000000e+01</td>\n",
" <td>90.999999</td>\n",
" <td>8.400000e+01</td>\n",
" <td>1.230000e+02</td>\n",
" <td>81.000000</td>\n",
" <td>1.170000e+02</td>\n",
" <td>8.600000e+01</td>\n",
" <td>91.000001</td>\n",
" <td>107.000001</td>\n",
" <td>8.600000e+01</td>\n",
" <td>1.080000e+02</td>\n",
" <td>8.500000e+01</td>\n",
" <td>219.719698</td>\n",
" <td>203.787876</td>\n",
" <td>2.495732e+06</td>\n",
" <td>90.057501</td>\n",
" <td>359.999999</td>\n",
" <td>78.736178</td>\n",
" <td>360.000005</td>\n",
" <td>28.399661</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>28.399776</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>-0.000002</td>\n",
" <td>-0.000002</td>\n",
" <td>5.585887e+01</td>\n",
" <td>-3.305128e-08</td>\n",
" <td>4.112339e-07</td>\n",
" <td>-0.000002</td>\n",
" <td>4.916907e-07</td>\n",
" <td>3.676375e-07</td>\n",
" <td>6.161664e-07</td>\n",
" <td>-2.302025e-07</td>\n",
" <td>11.0</td>\n",
" <td>-4.815603e-08</td>\n",
" <td>2.0</td>\n",
" <td>89.999999</td>\n",
" <td>86.563255</td>\n",
" <td>133.999998</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>124.332870</td>\n",
" <td>111.164688</td>\n",
" <td>111.999260</td>\n",
" <td>123.194054</td>\n",
" <td>0.486095</td>\n",
" <td>0.513569</td>\n",
" <td>0.529518</td>\n",
" <td>0.470121</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.101867e-08</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>0.000003</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>TL</td>\n",
" <td>12.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>336.823396</td>\n",
" <td>371.930788</td>\n",
" <td>393.137390</td>\n",
" <td>390.354003</td>\n",
" <td>287.003906</td>\n",
" <td>330.524201</td>\n",
" <td>353.571073</td>\n",
" <td>368.188143</td>\n",
" <td>394.457854</td>\n",
" <td>402.317352</td>\n",
" <td>380.020050</td>\n",
" <td>369.980072</td>\n",
" <td>1.383823e+00</td>\n",
" <td>1.054491e+00</td>\n",
" <td>6.760000e+00</td>\n",
" <td>3.864072e+00</td>\n",
" <td>5.621238e+00</td>\n",
" <td>4.939999e+00</td>\n",
" <td>4.641594e+00</td>\n",
" <td>1.740082e+01</td>\n",
" <td>1.573000e+01</td>\n",
" <td>2.626225e+01</td>\n",
" <td>3.226898e+01</td>\n",
" <td>9.880000e+00</td>\n",
" <td>1512.000004</td>\n",
" <td>2940.000004</td>\n",
" <td>3008.000015</td>\n",
" <td>3525.000002</td>\n",
" <td>4614.999942</td>\n",
" <td>3952.000031</td>\n",
" <td>2368.000065</td>\n",
" <td>3647.999965</td>\n",
" <td>3975.999996</td>\n",
" <td>5004.999972</td>\n",
" <td>3247.999966</td>\n",
" <td>4248.000030</td>\n",
" <td>54.000000</td>\n",
" <td>60.000000</td>\n",
" <td>64.000000</td>\n",
" <td>75.000000</td>\n",
" <td>71.000000</td>\n",
" <td>76.000000</td>\n",
" <td>64.000000</td>\n",
" <td>64.000000</td>\n",
" <td>71.000000</td>\n",
" <td>6.500000e+01</td>\n",
" <td>58.000000</td>\n",
" <td>59.000000</td>\n",
" <td>2.800000e+01</td>\n",
" <td>49.000000</td>\n",
" <td>4.700000e+01</td>\n",
" <td>4.700000e+01</td>\n",
" <td>65.000000</td>\n",
" <td>5.200000e+01</td>\n",
" <td>3.700000e+01</td>\n",
" <td>57.000000</td>\n",
" <td>56.000000</td>\n",
" <td>7.700000e+01</td>\n",
" <td>5.600000e+01</td>\n",
" <td>7.200000e+01</td>\n",
" <td>189.174240</td>\n",
" <td>47.901518</td>\n",
" <td>9.430663e+05</td>\n",
" <td>9.327500</td>\n",
" <td>359.999999</td>\n",
" <td>89.277595</td>\n",
" <td>0.000006</td>\n",
" <td>40.607904</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>40.608056</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>70.433128</td>\n",
" <td>75.036019</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.065351e+00</td>\n",
" <td>4.602887e+00</td>\n",
" <td>103.103928</td>\n",
" <td>1.034278e+01</td>\n",
" <td>1.167725e+02</td>\n",
" <td>1.034589e+02</td>\n",
" <td>2.000000e+00</td>\n",
" <td>11.0</td>\n",
" <td>1.100000e+01</td>\n",
" <td>2.0</td>\n",
" <td>-0.000002</td>\n",
" <td>87.813721</td>\n",
" <td>128.000001</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>123.061050</td>\n",
" <td>113.467613</td>\n",
" <td>115.299324</td>\n",
" <td>120.841278</td>\n",
" <td>0.468104</td>\n",
" <td>0.531559</td>\n",
" <td>0.550006</td>\n",
" <td>0.449645</td>\n",
" <td>2.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>495.000002</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>TL</td>\n",
" <td>12.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>-1.542272e-09</td>\n",
" <td>5.271532e-09</td>\n",
" <td>9.749793e-10</td>\n",
" <td>381.000337</td>\n",
" <td>407.092437</td>\n",
" <td>410.879853</td>\n",
" <td>424.338590</td>\n",
" <td>370.991244</td>\n",
" <td>394.562106</td>\n",
" <td>410.708218</td>\n",
" <td>430.976800</td>\n",
" <td>443.288854</td>\n",
" <td>442.280731</td>\n",
" <td>446.995516</td>\n",
" <td>426.281890</td>\n",
" <td>1.259551e+01</td>\n",
" <td>4.876071e+00</td>\n",
" <td>1.820000e+00</td>\n",
" <td>1.749263e+00</td>\n",
" <td>1.661820e+00</td>\n",
" <td>4.160001e+00</td>\n",
" <td>5.744986e+00</td>\n",
" <td>1.067385e+01</td>\n",
" <td>4.030001e+00</td>\n",
" <td>2.865699e-01</td>\n",
" <td>1.068499e+01</td>\n",
" <td>1.274000e+01</td>\n",
" <td>924.000006</td>\n",
" <td>1023.000134</td>\n",
" <td>1781.999964</td>\n",
" <td>2645.999954</td>\n",
" <td>1759.999899</td>\n",
" <td>2268.000024</td>\n",
" <td>2051.999945</td>\n",
" <td>2520.000087</td>\n",
" <td>2622.000012</td>\n",
" <td>3065.999958</td>\n",
" <td>9888.000033</td>\n",
" <td>2725.999986</td>\n",
" <td>33.000000</td>\n",
" <td>32.999999</td>\n",
" <td>54.000000</td>\n",
" <td>63.000000</td>\n",
" <td>44.000000</td>\n",
" <td>54.000000</td>\n",
" <td>57.000000</td>\n",
" <td>60.000000</td>\n",
" <td>57.000000</td>\n",
" <td>7.300000e+01</td>\n",
" <td>102.999998</td>\n",
" <td>47.000000</td>\n",
" <td>2.800000e+01</td>\n",
" <td>31.000000</td>\n",
" <td>3.300000e+01</td>\n",
" <td>4.200000e+01</td>\n",
" <td>39.999999</td>\n",
" <td>4.200000e+01</td>\n",
" <td>3.600000e+01</td>\n",
" <td>42.000000</td>\n",
" <td>46.000000</td>\n",
" <td>4.200000e+01</td>\n",
" <td>9.600000e+01</td>\n",
" <td>5.800000e+01</td>\n",
" <td>321.878785</td>\n",
" <td>350.272735</td>\n",
" <td>5.461694e+06</td>\n",
" <td>5.687501</td>\n",
" <td>359.999999</td>\n",
" <td>26.318962</td>\n",
" <td>360.000005</td>\n",
" <td>12.091147</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>12.091336</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>43.025875</td>\n",
" <td>84.883132</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.972839e+00</td>\n",
" <td>4.185725e+01</td>\n",
" <td>90.381790</td>\n",
" <td>9.641726e+00</td>\n",
" <td>9.686746e+00</td>\n",
" <td>3.237302e-01</td>\n",
" <td>1.100000e+01</td>\n",
" <td>11.0</td>\n",
" <td>2.000000e+00</td>\n",
" <td>2.0</td>\n",
" <td>-0.000002</td>\n",
" <td>86.134194</td>\n",
" <td>122.000001</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>119.203537</td>\n",
" <td>117.759552</td>\n",
" <td>117.785362</td>\n",
" <td>119.176781</td>\n",
" <td>0.460290</td>\n",
" <td>0.539371</td>\n",
" <td>0.547368</td>\n",
" <td>0.452285</td>\n",
" <td>2.000000e+00</td>\n",
" <td>1.000000e+00</td>\n",
" <td>8.023168e-10</td>\n",
" <td>-2.590800e-08</td>\n",
" <td>0.000003</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>TR</td>\n",
" <td>10.0</td>\n",
" <td>7.057206e-09</td>\n",
" <td>-4.687249e-09</td>\n",
" <td>5.833634e-10</td>\n",
" <td>-5.494328e-09</td>\n",
" <td>5.513658e-09</td>\n",
" <td>-2.742456e-09</td>\n",
" <td>-1.379354e-09</td>\n",
" <td>1.969123e-09</td>\n",
" <td>2.469271e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>5.271532e-09</td>\n",
" <td>1.000000e+00</td>\n",
" <td>382.774746</td>\n",
" <td>-0.000016</td>\n",
" <td>312.829834</td>\n",
" <td>-0.000004</td>\n",
" <td>362.094606</td>\n",
" <td>281.113861</td>\n",
" <td>338.801574</td>\n",
" <td>329.203948</td>\n",
" <td>287.312103</td>\n",
" <td>338.003693</td>\n",
" <td>315.778412</td>\n",
" <td>313.737549</td>\n",
" <td>9.035760e+00</td>\n",
" <td>2.596090e+01</td>\n",
" <td>6.500001e+00</td>\n",
" <td>1.688457e+01</td>\n",
" <td>2.168551e+01</td>\n",
" <td>1.131000e+01</td>\n",
" <td>2.221207e+01</td>\n",
" <td>1.371167e+01</td>\n",
" <td>1.742000e+01</td>\n",
" <td>2.309995e-07</td>\n",
" <td>5.279425e+00</td>\n",
" <td>-4.351725e-07</td>\n",
" <td>4293.000007</td>\n",
" <td>5487.000071</td>\n",
" <td>9899.999919</td>\n",
" <td>9848.999955</td>\n",
" <td>8249.999955</td>\n",
" <td>12936.000257</td>\n",
" <td>7205.000061</td>\n",
" <td>8023.999923</td>\n",
" <td>13831.999646</td>\n",
" <td>-0.000185</td>\n",
" <td>15197.000224</td>\n",
" <td>-0.000041</td>\n",
" <td>81.000000</td>\n",
" <td>93.000002</td>\n",
" <td>150.000002</td>\n",
" <td>146.999998</td>\n",
" <td>124.999999</td>\n",
" <td>167.999999</td>\n",
" <td>131.000000</td>\n",
" <td>117.999999</td>\n",
" <td>152.000001</td>\n",
" <td>-8.663088e-08</td>\n",
" <td>167.000003</td>\n",
" <td>0.000004</td>\n",
" <td>5.300000e+01</td>\n",
" <td>59.000000</td>\n",
" <td>6.600000e+01</td>\n",
" <td>6.700000e+01</td>\n",
" <td>66.000000</td>\n",
" <td>7.700000e+01</td>\n",
" <td>5.500000e+01</td>\n",
" <td>68.000000</td>\n",
" <td>91.000001</td>\n",
" <td>9.289842e-07</td>\n",
" <td>9.100000e+01</td>\n",
" <td>1.960336e-07</td>\n",
" <td>178.455557</td>\n",
" <td>869.288872</td>\n",
" <td>1.283722e+07</td>\n",
" <td>11.743334</td>\n",
" <td>359.999999</td>\n",
" <td>2088.618890</td>\n",
" <td>360.000005</td>\n",
" <td>139.517727</td>\n",
" <td>-2.099637e-07</td>\n",
" <td>139.517629</td>\n",
" <td>1.000000e+00</td>\n",
" <td>-7.225576e-11</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>59.602981</td>\n",
" <td>61.294414</td>\n",
" <td>4.695936e-07</td>\n",
" <td>1.028378e+00</td>\n",
" <td>1.691434e+00</td>\n",
" <td>87.987358</td>\n",
" <td>2.276699e+01</td>\n",
" <td>9.629422e+01</td>\n",
" <td>8.241591e+01</td>\n",
" <td>2.000000e+00</td>\n",
" <td>11.0</td>\n",
" <td>1.100000e+01</td>\n",
" <td>2.0</td>\n",
" <td>-0.000002</td>\n",
" <td>89.734757</td>\n",
" <td>122.999999</td>\n",
" <td>1.0</td>\n",
" <td>1.043564e-08</td>\n",
" <td>117.858253</td>\n",
" <td>112.248657</td>\n",
" <td>117.583061</td>\n",
" <td>112.487999</td>\n",
" <td>0.495489</td>\n",
" <td>0.504158</td>\n",
" <td>0.524950</td>\n",
" <td>0.474689</td>\n",
" <td>1.000000e+00</td>\n",
" <td>1.101867e-08</td>\n",
" <td>8.023168e-10</td>\n",
" <td>1.000000e+00</td>\n",
" <td>495.000002</td>\n",
" <td>-2.806957e-09</td>\n",
" <td>normal</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"splits = RandomSplitter(valid_pct=0.2)(range_of(df))\n",
"to = TabularPandas(df.fillna(0), procs=[Categorify, FillMissing,Normalize],\n",
" cat_names = ['intersection_pos_rel_centre'],\n",
" cont_names = list(df.drop(['row_id', 'intersection_pos_rel_centre', 'diagnosis'], axis=1).columns),\n",
" y_names='diagnosis',\n",
" splits=splits)\n",
"dls = to.dataloaders(bs=64)\n",
"dls.show_batch()"
]
},
{
"cell_type": "markdown",
"id": "ca873386",
"metadata": {},
"source": [
"With these done, we can create a learner and train it for a short while. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b93d7a9b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: left;\">\n",
" <th>epoch</th>\n",
" <th>train_loss</th>\n",
" <th>valid_loss</th>\n",
" <th>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.371079</td>\n",
" <td>0.234524</td>\n",
" <td>0.948284</td>\n",
" <td>00:05</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.179927</td>\n",
" <td>0.187727</td>\n",
" <td>0.951030</td>\n",
" <td>00:06</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.172685</td>\n",
" <td>0.183211</td>\n",
" <td>0.951030</td>\n",
" <td>00:05</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.160957</td>\n",
" <td>0.183933</td>\n",
" <td>0.951030</td>\n",
" <td>00:06</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.150052</td>\n",
" <td>0.182679</td>\n",
" <td>0.951640</td>\n",
" <td>00:05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"learn = tabular_learner(dls, metrics=accuracy)\n",
"learn.fit_one_cycle(5)"
]
},
{
"cell_type": "markdown",
"id": "04a0d4d8",
"metadata": {},
"source": [
"We're getting a log loss of 0.17 on our validation set, which is a random sub-sample of train. However, we should really look at the score on the provided validation set, which more closely matches the test set:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "447b84a2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(362, 122)\n"
]
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Log Loss on provided validation set: 0.7788187272655996\n"
]
}
],
"source": [
"val = pd.read_csv(os.getenv(\"DATASET_PATH\", \"/ds_shared_drive/validation.csv\"))\n",
"val = pd.merge(val, pd.read_csv(os.getenv(\"DATASET_PATH\", \"/ds_shared_drive/validation_ground_truth.csv\")), \n",
" how='left', on='row_id')\n",
"print(val.shape)\n",
"test_dl = learn.dls.test_dl(val.fillna(0))\n",
"probs, y = learn.get_preds(dl=test_dl)\n",
"print('Log Loss on provided validation set:', log_loss(val['diagnosis'].values, probs.numpy()))"
]
},
{
"cell_type": "markdown",
"id": "ecd617a8",
"metadata": {},
"source": [
"Saving the trained model is as easy as:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "4519382c",
"metadata": {},
"outputs": [],
"source": [
"learn.export(AICROWD_ASSETS_DIR + '/fai_model1.mdl')"
]
},
{
"cell_type": "markdown",
"id": "110ae312",
"metadata": {
"tags": []
},
"source": [
"# Prediction phase ๐Ÿ”Ž\n",
"\n",
"Please make sure to save the weights from the training section in your assets directory and load them in this section"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c251433d",
"metadata": {},
"outputs": [],
"source": [
"learn = load_learner(AICROWD_ASSETS_DIR + '/fai_model1.mdl') # load the model"
]
},
{
"cell_type": "markdown",
"id": "ff64d165",
"metadata": {},
"source": [
"## Load test data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "d113acd7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>row_id</th>\n",
" <th>number_of_digits</th>\n",
" <th>missing_digit_1</th>\n",
" <th>missing_digit_2</th>\n",
" <th>missing_digit_3</th>\n",
" <th>missing_digit_4</th>\n",
" <th>missing_digit_5</th>\n",
" <th>missing_digit_6</th>\n",
" <th>missing_digit_7</th>\n",
" <th>missing_digit_8</th>\n",
" <th>...</th>\n",
" <th>top_area_perc</th>\n",
" <th>bottom_area_perc</th>\n",
" <th>left_area_perc</th>\n",
" <th>right_area_perc</th>\n",
" <th>hor_count</th>\n",
" <th>vert_count</th>\n",
" <th>eleven_ten_error</th>\n",
" <th>other_error</th>\n",
" <th>time_diff</th>\n",
" <th>centre_dot_detect</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>LA9JQ1JZMJ9D2MBZV</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.500272</td>\n",
" <td>0.499368</td>\n",
" <td>0.553194</td>\n",
" <td>0.446447</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>PSSRCWAPTAG72A1NT</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.572472</td>\n",
" <td>0.427196</td>\n",
" <td>0.496352</td>\n",
" <td>0.503273</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>GCTODIZJB42VCBZRZ</td>\n",
" <td>11.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.494076</td>\n",
" <td>0.505583</td>\n",
" <td>0.503047</td>\n",
" <td>0.496615</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>7YMVQGV1CDB1WZFNE</td>\n",
" <td>3.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>0.555033</td>\n",
" <td>0.444633</td>\n",
" <td>0.580023</td>\n",
" <td>0.419575</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>PHEQC6DV3LTFJYIJU</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.603666</td>\n",
" <td>0.395976</td>\n",
" <td>0.494990</td>\n",
" <td>0.504604</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>150.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows ร— 121 columns</p>\n",
"</div>"
],
"text/plain": [
" row_id number_of_digits missing_digit_1 missing_digit_2 \\\n",
"0 LA9JQ1JZMJ9D2MBZV 11.0 0.0 0.0 \n",
"1 PSSRCWAPTAG72A1NT 6.0 1.0 1.0 \n",
"2 GCTODIZJB42VCBZRZ 11.0 0.0 0.0 \n",
"3 7YMVQGV1CDB1WZFNE 3.0 1.0 0.0 \n",
"4 PHEQC6DV3LTFJYIJU 1.0 1.0 1.0 \n",
"\n",
" missing_digit_3 missing_digit_4 missing_digit_5 missing_digit_6 \\\n",
"0 0.0 0.0 0.0 0.0 \n",
"1 0.0 1.0 1.0 0.0 \n",
"2 0.0 0.0 1.0 0.0 \n",
"3 1.0 0.0 1.0 1.0 \n",
"4 1.0 1.0 1.0 1.0 \n",
"\n",
" missing_digit_7 missing_digit_8 ... top_area_perc bottom_area_perc \\\n",
"0 0.0 0.0 ... 0.500272 0.499368 \n",
"1 0.0 0.0 ... 0.572472 0.427196 \n",
"2 0.0 0.0 ... 0.494076 0.505583 \n",
"3 1.0 1.0 ... 0.555033 0.444633 \n",
"4 1.0 0.0 ... 0.603666 0.395976 \n",
"\n",
" left_area_perc right_area_perc hor_count vert_count eleven_ten_error \\\n",
"0 0.553194 0.446447 0 0 0 \n",
"1 0.496352 0.503273 0 1 0 \n",
"2 0.503047 0.496615 1 0 0 \n",
"3 0.580023 0.419575 0 1 0 \n",
"4 0.494990 0.504604 0 0 0 \n",
"\n",
" other_error time_diff centre_dot_detect \n",
"0 1 NaN NaN \n",
"1 1 NaN NaN \n",
"2 0 0.0 0.0 \n",
"3 1 NaN NaN \n",
"4 1 150.0 0.0 \n",
"\n",
"[5 rows x 121 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_data = pd.read_csv(AICROWD_DATASET_PATH)\n",
"test_data.head()"
]
},
{
"cell_type": "markdown",
"id": "ffd045b4",
"metadata": {},
"source": [
"## Generate predictions"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "1c73f00c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>row_id</th>\n",
" <th>normal_diagnosis_probability</th>\n",
" <th>post_alzheimer_diagnosis_probability</th>\n",
" <th>pre_alzheimer_diagnosis_probability</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>LA9JQ1JZMJ9D2MBZV</td>\n",
" <td>0.958330</td>\n",
" <td>0.024677</td>\n",
" <td>0.016993</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>PSSRCWAPTAG72A1NT</td>\n",
" <td>0.841258</td>\n",
" <td>0.080386</td>\n",
" <td>0.078356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>GCTODIZJB42VCBZRZ</td>\n",
" <td>0.998962</td>\n",
" <td>0.000609</td>\n",
" <td>0.000428</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" row_id normal_diagnosis_probability \\\n",
"0 LA9JQ1JZMJ9D2MBZV 0.958330 \n",
"1 PSSRCWAPTAG72A1NT 0.841258 \n",
"2 GCTODIZJB42VCBZRZ 0.998962 \n",
"\n",
" post_alzheimer_diagnosis_probability pre_alzheimer_diagnosis_probability \n",
"0 0.024677 0.016993 \n",
"1 0.080386 0.078356 \n",
"2 0.000609 0.000428 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_dl = learn.dls.test_dl(test_data.fillna(0)) # New dataloader with the test data\n",
"preds, _ = learn.get_preds(dl=test_dl)\n",
"preds = preds.numpy() # Convert to numpy array \n",
"predictions = {\n",
" \"row_id\": test_data[\"row_id\"].values,\n",
" \"normal_diagnosis_probability\": [p[0] for p in preds],\n",
" \"post_alzheimer_diagnosis_probability\": [p[1] for p in preds],\n",
" \"pre_alzheimer_diagnosis_probability\": [p[2] for p in preds],\n",
"}\n",
"\n",
"predictions_df = pd.DataFrame.from_dict(predictions)\n",
"predictions_df.head(3)"
]
},
{
"cell_type": "markdown",
"id": "866ee55a",
"metadata": {},
"source": [
"## Save predictions ๐Ÿ“จ"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "58ec9dad",
"metadata": {},
"outputs": [],
"source": [
"predictions_df.to_csv(AICROWD_PREDICTIONS_PATH, index=False)"
]
},
{
"cell_type": "markdown",
"id": "123bc5f7",
"metadata": {
"tags": []
},
"source": [
"# Submit to AIcrowd ๐Ÿš€\n",
"\n",
"**NOTE: PLEASE SAVE THE NOTEBOOK BEFORE SUBMITTING IT (Ctrl + S)**"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "6b842728",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[32mAPI Key valid\u001b[0m\n",
"\u001b[32mSaved API Key successfully!\u001b[0m\n",
"Using notebook: /home/desktop0/FastAI Tabular Starter Notebook.ipynb for submission...\n",
"Removing existing files from submission directory...\n",
"Scrubbing API keys from the notebook...\n",
"Collecting notebook...\n",
"Validating the submission...\n",
"Executing install.ipynb...\n",
"[NbConvertApp] Converting notebook /home/desktop0/submission/install.ipynb to notebook\n",
"[NbConvertApp] Executing notebook with kernel: python\n",
"[NbConvertApp] Writing 1325 bytes to /home/desktop0/submission/install.nbconvert.ipynb\n",
"Executing predict.ipynb...\n",
"[NbConvertApp] Converting notebook /home/desktop0/submission/predict.ipynb to notebook\n",
"[NbConvertApp] Executing notebook with kernel: python\n",
"[NbConvertApp] Writing 19616 bytes to /home/desktop0/submission/predict.nbconvert.ipynb\n",
"\u001b[2K\u001b[1;34msubmission.zip\u001b[0m \u001b[38;2;114;156;31mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[35m100.0%\u001b[0m โ€ข \u001b[32m1.4/1.4 MB\u001b[0m โ€ข \u001b[31m856.0 kB/s\u001b[0m โ€ข \u001b[36m0:00:00\u001b[0m[0m โ€ข \u001b[36m0:00:01\u001b[0m[36m0:00:01\u001b[0m\n",
"\u001b[?25h โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ \n",
" โ”‚ \u001b[1mSuccessfully submitted!\u001b[0m โ”‚ \n",
" โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ \n",
"\u001b[3m Important links \u001b[0m\n",
"โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”\n",
"โ”‚ This submission โ”‚ https://www.aicrowd.com/challenges/addi-alzheimers-detection-challenge/submissions/134381 โ”‚\n",
"โ”‚ โ”‚ โ”‚\n",
"โ”‚ All submissions โ”‚ https://www.aicrowd.com/challenges/addi-alzheimers-detection-challenge/submissions?my_submissions=true โ”‚\n",
"โ”‚ โ”‚ โ”‚\n",
"โ”‚ Leaderboard โ”‚ https://www.aicrowd.com/challenges/addi-alzheimers-detection-challenge/leaderboards โ”‚\n",
"โ”‚ โ”‚ โ”‚\n",
"โ”‚ Discussion forum โ”‚ https://discourse.aicrowd.com/c/addi-alzheimers-detection-challenge โ”‚\n",
"โ”‚ โ”‚ โ”‚\n",
"โ”‚ Challenge page โ”‚ https://www.aicrowd.com/challenges/addi-alzheimers-detection-challenge โ”‚\n",
"โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜\n"
]
}
],
"source": [
"!aicrowd login --api-key $AICROWD_API_KEY\n",
"!DATASET_PATH=$AICROWD_DATASET_PATH \\\n",
"aicrowd notebook submit \\\n",
" --assets-dir $AICROWD_ASSETS_DIR \\\n",
" --challenge addi-alzheimers-detection-challenge"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5d7f794e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.8.5"
},
"toc-autonumbering": false,
"toc-showcode": false,
"toc-showmarkdowntxt": false,
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment