From db6f81de942a1046b2a90167d5e433151474a599 Mon Sep 17 00:00:00 2001 From: Jan Meyer <20856376+jan-meyer-1986@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:47:14 +0200 Subject: [PATCH 1/8] sota --- cora_sota.ipynb | 1505 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1505 insertions(+) create mode 100644 cora_sota.ipynb diff --git a/cora_sota.ipynb b/cora_sota.ipynb new file mode 100644 index 0000000..2fffd2a --- /dev/null +++ b/cora_sota.ipynb @@ -0,0 +1,1505 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In previous notebooks we have analysed the performance of getML on the CORA dataset, and benchmarked it extensively against alternative approaches. \n", + "In this short notebook, we demonstrate, how getML outperforms the State of the Art performance with just a little tweak in its configurations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First let some boilerplate code run." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n", + "Processing /home/jan-meyer/Documents/gitlab/monorepo/src/python-api\n", + " Installing build dependencies ... \u001b[?25ldone\n", + "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", + "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25hCollecting jinja2 (from getml==1.5.0)\n", + " Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)\n", + "Collecting numpy~=1.22 (from getml==1.5.0)\n", + " Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "Collecting pandas (from getml==1.5.0)\n", + " Using cached pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)\n", + "Collecting pyarrow~=16.0 (from getml==1.5.0)\n", + " Using cached pyarrow-16.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.0 kB)\n", + "Collecting rich~=13.0 (from getml==1.5.0)\n", + " Using cached rich-13.8.1-py3-none-any.whl.metadata (18 kB)\n", + "Requirement already satisfied: typing-extensions~=4.0 in ./.venv/lib/python3.11/site-packages (from getml==1.5.0) (4.12.2)\n", + "Collecting markdown-it-py>=2.2.0 (from rich~=13.0->getml==1.5.0)\n", + " Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in ./.venv/lib/python3.11/site-packages (from rich~=13.0->getml==1.5.0) (2.18.0)\n", + "Collecting MarkupSafe>=2.0 (from jinja2->getml==1.5.0)\n", + " Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in ./.venv/lib/python3.11/site-packages (from pandas->getml==1.5.0) (2.9.0.post0)\n", + "Collecting pytz>=2020.1 (from pandas->getml==1.5.0)\n", + " Using cached pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)\n", + "Collecting tzdata>=2022.7 (from pandas->getml==1.5.0)\n", + " Using cached tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)\n", + "Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich~=13.0->getml==1.5.0)\n", + " Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", + "Requirement already satisfied: six>=1.5 in ./.venv/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas->getml==1.5.0) (1.16.0)\n", + "Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)\n", + "Using cached pyarrow-16.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (40.8 MB)\n", + "Using cached rich-13.8.1-py3-none-any.whl (241 kB)\n", + "Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)\n", + "Using cached pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)\n", + "Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n", + "Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)\n", + "Using cached pytz-2024.2-py2.py3-none-any.whl (508 kB)\n", + "Using cached tzdata-2024.2-py2.py3-none-any.whl (346 kB)\n", + "Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", + "Building wheels for collected packages: getml\n", + " Building wheel for getml (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25h Created wheel for getml: filename=getml-1.5.0-py3-none-any.whl size=359647 sha256=a926c8eb049994b8e27b331bfc89b12af4f7934be85685c0e324c46e70031be7\n", + " Stored in directory: /home/jan-meyer/.cache/pip/wheels/f9/41/ea/72f967c5d3c155fbc2b69b55fe2cf1d2cdedb226e79aaea439\n", + "Successfully built getml\n", + "Installing collected packages: pytz, tzdata, numpy, mdurl, MarkupSafe, pyarrow, pandas, markdown-it-py, jinja2, rich, getml\n", + "Successfully installed MarkupSafe-2.1.5 getml-1.5.0 jinja2-3.1.4 markdown-it-py-3.0.0 mdurl-0.1.2 numpy-1.26.4 pandas-2.2.3 pyarrow-16.1.0 pytz-2024.2 rich-13.8.1 tzdata-2024.2\n" + ] + } + ], + "source": [ + "%pip install -q \"ipywidgets==8.1.5\"\n", + "!pip install /home/jan-meyer/Documents/gitlab/monorepo/src/python-api" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "getML API version: 1.5.0\n", + "\n" + ] + } + ], + "source": [ + "import os\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import getml\n", + "\n", + "print(f\"getML API version: {getml.__version__}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/jan-meyer --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/jan-meyer/.getML/getml-1.5.0-x64-linux...\n", + "Launched the getML Engine. The log output will be stored in /home/jan-meyer/.getML/logs/20240930155539.log.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Connected to project 'cora_sota'\n",
+       "
\n" + ], + "text/plain": [ + "Connected to project \u001b[32m'cora_sota'\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", + "getml.engine.set_project(\"cora_sota\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Loading data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.1 Download from source\n", + "\n", + "We begin by downloading the data from the source file:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Connection(dbname='CORA', dialect='mysql', host='db.relational-data.org', port=3306)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "conn = getml.database.connect_mysql(\n", + " host=\"db.relational-data.org\",\n", + " dbname=\"CORA\",\n", + " port=3306,\n", + " user=\"guest\",\n", + " password=\"relational\",\n", + ")\n", + "\n", + "conn" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def load_if_needed(name):\n", + " \"\"\"\n", + " Loads the data from the relational learning\n", + " repository, if the data frame has not already\n", + " been loaded.\n", + " \"\"\"\n", + " if not getml.data.exists(name):\n", + " data_frame = getml.data.DataFrame.from_db(name=name, table_name=name, conn=conn)\n", + " data_frame.save()\n", + " else:\n", + " data_frame = getml.data.load_data_frame(name)\n", + " return data_frame" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "paper = load_if_needed(\"paper\")\n", + "cites = load_if_needed(\"cites\")\n", + "content = load_if_needed(\"content\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we deviate from the regular procedure by introducing the exact same train test split as the [current top seed](https://paperswithcode.com/paper/optimization-of-graph-neural-networks-with). While we contend, that testing on a single split is not sufficient to demonstrate performance of an algorithm on a specific data set, we proceed as such in order to maximize comparability with the current incumbent of the Leader Board. For a more extensive investigation of the getML performance on the CORA dataset, checkout our other notebooks. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To achieve the identical split we first need to match papers and their associated word matrix across data sources. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "if not os.path.exists(\"assets/zuordnung.txt\"):\n", + " from zuordnung import run_zuordnung\n", + "\n", + " # may take 90 minutes or longer to run\n", + " run_zuordnung(content)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "f = open(\"assets/zuordnung.txt\", \"r\")\n", + "zuordnung = f.read()\n", + "zuordnung = eval(zuordnung)\n", + "\n", + "\n", + "paper_df = paper.to_pandas()\n", + "paper_df[\"paper_id\"] = paper_df[\"paper_id\"].astype(int)\n", + "zuo_df = pd.DataFrame(zuordnung)\n", + "zuo_df[0] = zuo_df[0].astype(int)\n", + "paper_df = paper_df.merge(zuo_df, left_on=\"paper_id\", right_on=0).sort_values(by=1)\n", + "paper_df = paper_df[[\"class_label\", \"paper_id\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We split the sorted data set according to the instructions in the GNN paper (see: IV. Experiments, A. Datasets, third split)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "paper_train = getml.data.DataFrame.from_pandas(paper_df[:1707], name=\"train\")\n", + "paper_val = getml.data.DataFrame.from_pandas(\n", + " paper_df[1707 : 1707 + 500], name=\"validation\"\n", + ")\n", + "paper_test = getml.data.DataFrame.from_pandas(paper_df[1707 + 500 :], name=\"test\")\n", + "\n", + "paper, split = getml.data.split.concat(\n", + " \"population\", train=paper_train, validation=paper_val, test=paper_test\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to how the paper proceeded, we let a hyperparameter optimization run, and pick the parameters that perform best on the validation set. The performance on the test set serves as our benchmark value. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.2 Prepare data for getML" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "getML requires that we define *roles* for each of the columns." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "paper.set_role(\"paper_id\", getml.data.roles.join_key)\n", + "paper.set_role(\"class_label\", getml.data.roles.categorical)\n", + "cites.set_role([\"cited_paper_id\", \"citing_paper_id\"], getml.data.roles.join_key)\n", + "content.set_role(\"paper_id\", getml.data.roles.join_key)\n", + "content.set_role(\"word_cited_id\", getml.data.roles.categorical)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The goal is to predict seven different labels. We generate a target column for each of those labels. We also have to separate the data set into a training and testing set." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "data_full = getml.data.make_target_columns(paper, \"class_label\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + "
population
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
subset name rowstype
0testpopulation500View
1trainpopulation1708View
2validationpopulation500View
\n", + "
\n", + "
\n", + "
peripheral
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
alias name rowstype
0citescites5429DataFrame
1contentcontent49216DataFrame
2paperpopulation2708DataFrame
\n", + "
\n", + "
" + ], + "text/plain": [ + "population\n", + " subset name rows type\n", + "0 test population 500 View\n", + "1 train population 1708 View\n", + "2 validation population 500 View\n", + "\n", + "peripheral\n", + " alias name rows type \n", + "0 cites cites 5429 DataFrame\n", + "1 content content 49216 DataFrame\n", + "2 paper population 2708 DataFrame" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "container = getml.data.Container(population=data_full, split=split)\n", + "container.add(cites=cites, content=content, paper=paper)\n", + "container.freeze()\n", + "container" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Predictive modeling\n", + "\n", + "We loaded the data and defined the roles and units. Next, we create a getML pipeline for relational learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.1 Define relational model\n", + "\n", + "To get started with relational learning, we need to specify the data model. Even though the data set itself is quite simple with only three tables and six columns in total, the resulting data model is actually quite complicated.\n", + "\n", + "That is because the class label can be predicting using three different pieces of information:\n", + "\n", + "- The keywords used by the paper\n", + "- The keywords used by papers it cites and by papers that cite the paper\n", + "- The class label of papers it cites and by papers that cite the paper\n", + "\n", + "The main challenge here is that `cites` is used twice, once to connect the _cited_ papers and then to connect the _citing_ papers. To resolve this, we need two placeholders on `cites`." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
diagram
\n", + "
contentpapercitescontentpapercitescontentpopulationpaper_id = citing_paper_idpaper_id = citing_paper_idRelationship: many-to-onepaper_id = cited_paper_idpaper_id = cited_paper_idRelationship: many-to-onecited_paper_id = paper_idciting_paper_id = paper_idpaper_id = paper_id
\n", + "
\n", + "\n", + "
\n", + "
staging
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data frames staging table
0populationPOPULATION__STAGING_TABLE_1
1cites, paperCITES__STAGING_TABLE_2
2cites, paperCITES__STAGING_TABLE_3
3contentCONTENT__STAGING_TABLE_4
\n", + "
\n", + " " + ], + "text/plain": [ + "population:\n", + " columns:\n", + " - class_label: categorical\n", + " - paper_id: join_key\n", + "\n", + " joins:\n", + " - right: 'cites'\n", + " on: (population.paper_id, cites.cited_paper_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'cites'\n", + " on: (population.paper_id, cites.citing_paper_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'content'\n", + " on: (population.paper_id, content.paper_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + "\n", + "cites:\n", + " columns:\n", + " - cited_paper_id: join_key\n", + " - citing_paper_id: join_key\n", + "\n", + " joins:\n", + " - right: 'content'\n", + " on: (cites.citing_paper_id, content.paper_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'paper'\n", + " on: (cites.citing_paper_id, paper.paper_id)\n", + " relationship: 'many-to-one'\n", + " lagged_targets: False\n", + "\n", + "content:\n", + " columns:\n", + " - word_cited_id: categorical\n", + " - paper_id: join_key\n", + "\n", + "paper:\n", + " columns:\n", + " - class_label: categorical\n", + " - paper_id: join_key\n", + "\n", + "cites:\n", + " columns:\n", + " - cited_paper_id: join_key\n", + " - citing_paper_id: join_key\n", + "\n", + " joins:\n", + " - right: 'content'\n", + " on: (cites.cited_paper_id, content.paper_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'paper'\n", + " on: (cites.cited_paper_id, paper.paper_id)\n", + " relationship: 'many-to-one'\n", + " lagged_targets: False\n", + "\n", + "content:\n", + " columns:\n", + " - word_cited_id: categorical\n", + " - paper_id: join_key\n", + "\n", + "paper:\n", + " columns:\n", + " - class_label: categorical\n", + " - paper_id: join_key\n", + "\n", + "content:\n", + " columns:\n", + " - word_cited_id: categorical\n", + " - paper_id: join_key" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dm = getml.data.DataModel(paper.to_placeholder(\"population\"))\n", + "\n", + "# We need two different placeholders for cites.\n", + "dm.add(getml.data.to_placeholder(cites=[cites] * 2, content=content, paper=paper))\n", + "\n", + "dm.population.join(dm.cites[0], on=(\"paper_id\", \"cited_paper_id\"))\n", + "\n", + "dm.cites[0].join(dm.content, on=(\"citing_paper_id\", \"paper_id\"))\n", + "\n", + "dm.cites[0].join(\n", + " dm.paper,\n", + " on=(\"citing_paper_id\", \"paper_id\"),\n", + " relationship=getml.data.relationship.many_to_one,\n", + ")\n", + "\n", + "dm.population.join(dm.cites[1], on=(\"paper_id\", \"citing_paper_id\"))\n", + "\n", + "dm.cites[1].join(dm.content, on=(\"cited_paper_id\", \"paper_id\"))\n", + "\n", + "dm.cites[1].join(\n", + " dm.paper,\n", + " on=(\"cited_paper_id\", \"paper_id\"),\n", + " relationship=getml.data.relationship.many_to_one,\n", + ")\n", + "\n", + "dm.population.join(dm.content, on=\"paper_id\")\n", + "\n", + "dm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2. Hyperparameter Search\n", + "To mimic the approach of the GNN paper, we conduct a small Hyperparameter search, training on the train data, validate on the validate data and use the untouched test data as holdout set to get an unbiased estimate of the true performance.\n", + "For expediency, we make a grit search along two dimensions and keep the number of levels deliberately small:\n", + " \n", + " num_features: 250, 300, 350\n", + " built-in aggregation sets: minimal, default, all" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "mapping = getml.preprocessors.Mapping()\n", + "predictor = getml.predictors.XGBoostClassifier()\n", + "\n", + "actual_labels_val = paper[split == \"validation\"].class_label.to_numpy()\n", + "actual_labels_test = paper[split == \"test\"].class_label.to_numpy()\n", + "class_label = paper.class_label.unique()\n", + "\n", + "pipe1 = getml.pipeline.Pipeline(\n", + " data_model=dm, preprocessors=[mapping], predictors=[predictor]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def prob_to_acc(prob, actual_labels, class_label) -> float:\n", + " ix_max = np.argmax(prob, axis=1)\n", + " predicted_labels = np.asarray([class_label[ix] for ix in ix_max])\n", + " return (actual_labels == predicted_labels).sum() / len(actual_labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "parameter_sweep = {}\n", + "i = 0\n", + "for num_feat in [250, 300, 350]:\n", + " for aggregation_set in [\n", + " getml.feature_learning.aggregations.FASTPROP.Minimal,\n", + " getml.feature_learning.aggregations.FASTPROP.Default,\n", + " getml.feature_learning.aggregations.FASTPROP.All,\n", + " ]:\n", + " fast_prop = getml.feature_learning.FastProp(\n", + " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", + " aggregation=aggregation_set,\n", + " num_features=num_feat,\n", + " )\n", + "\n", + " pipe1.feature_learners = [fast_prop]\n", + "\n", + " pipe1.fit(container.train)\n", + "\n", + " probs_val = pipe1.predict(container.validation)\n", + " val_acc = prob_to_acc(probs_val, actual_labels_val, class_label)\n", + "\n", + " parameter_sweep[i] = {\n", + " \"num_feat\": num_feat,\n", + " \"agg_set\": aggregation_set,\n", + " \"val_acc\": val_acc,\n", + " }\n", + "\n", + " i += 1" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "best_val_acc_comb = list(\n", + " sorted(parameter_sweep.items(), key=lambda item: item[1][\"val_acc\"], reverse=True)\n", + ")[0][1]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy on validation set: 0.874\n", + "Number of features used: 300\n", + "Aggregation set used: frozenset({'AVG', 'MIN', 'MAX', 'SUM', 'COUNT'})\n" + ] + } + ], + "source": [ + "print(f\"Accuracy on validation set: {best_val_acc_comb['val_acc']}\")\n", + "print(f\"Number of features used: {best_val_acc_comb['num_feat']}\")\n", + "print(f\"Aggregation set used: {best_val_acc_comb['agg_set']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now as we identified the parameter combination that yields the highest accuracy on the validation set, let's use the same parameters on the hold out data to attain an unbiased estimate of the model's predictive performance." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "124a185842c4456aae45e21aeaa24d74", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
The pipeline check generated 3 issues labeled INFO and 0 issues labeled WARNING.\n",
+       "
\n" + ], + "text/plain": [ + "The pipeline check generated \u001b[1;36m3\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
To see the issues in full, run .check() on the pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "To see the issues in full, run \u001b[1;35m.check\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m on the pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a33d37208b4e41ec970c400a988d3505", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Trained pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "Trained pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time taken: 0:00:01.034566.\n", + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2746ffa55ef84a32a93888ef3938ea84", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
\n",
+       "
\n" + ], + "text/plain": [ + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fast_prop = getml.feature_learning.FastProp(\n", + " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", + " aggregation=best_val_acc_comb[\"agg_set\"],\n", + " num_features=best_val_acc_comb[\"num_feat\"],\n", + ")\n", + "\n", + "pipe1.feature_learners = [fast_prop]\n", + "\n", + "pipe1.fit(container.train)\n", + "\n", + "probs_test = pipe1.predict(container.test)\n", + "test_acc = prob_to_acc(probs_test, actual_labels_test, class_label)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy on the test set: 0.906\n" + ] + } + ], + "source": [ + "print(f\"Accuracy on the test set: {test_acc}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook sought out to attain a new record predictive performance on the well known Cora data set by using exclusively getML's feature learning framework. To maximize comparability we mimicked the methodology of the current record holder.\n", + "\n", + "We replicated the exact split used in their research paper and we ran a hyperparameter similar to how they did.\n", + "On the hold out data set we achieved an accuracy of 90.6% which compares favorably to the 90.16% of the hitherto record holder. Hence our approach can now be considered the new state-of-the-art solution on this popular benchmarking data set.\n", + "\n", + "Remarkable is the ease of implementation. Requiring only minimal tweaking of parameters, getML beat an advanced Graph Neural Network algorithm. Cutting edge predictive performance is now within reach of every Data Scientist by simply incorporating getML in their prediction pipelines." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(3,\n", + " {'num_feat': 300,\n", + " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", + " 'val_acc': 0.874}),\n", + " (6,\n", + " {'num_feat': 350,\n", + " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", + " 'val_acc': 0.874}),\n", + " (0,\n", + " {'num_feat': 250,\n", + " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", + " 'val_acc': 0.872}),\n", + " (4,\n", + " {'num_feat': 300,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'FIRST',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TREND'}),\n", + " 'val_acc': 0.87}),\n", + " (7,\n", + " {'num_feat': 350,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'FIRST',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TREND'}),\n", + " 'val_acc': 0.866}),\n", + " (1,\n", + " {'num_feat': 250,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'FIRST',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TREND'}),\n", + " 'val_acc': 0.864}),\n", + " (5,\n", + " {'num_feat': 300,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT DISTINCT OVER COUNT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'EWMA_1D',\n", + " 'EWMA_1H',\n", + " 'EWMA_1M',\n", + " 'EWMA_1S',\n", + " 'EWMA_30D',\n", + " 'EWMA_365D',\n", + " 'EWMA_7D',\n", + " 'EWMA_90D',\n", + " 'EWMA_TREND_1D',\n", + " 'EWMA_TREND_1H',\n", + " 'EWMA_TREND_1M',\n", + " 'EWMA_TREND_1S',\n", + " 'EWMA_TREND_30D',\n", + " 'EWMA_TREND_365D',\n", + " 'EWMA_TREND_7D',\n", + " 'EWMA_TREND_90D',\n", + " 'FIRST',\n", + " 'KURTOSIS',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'NUM MAX',\n", + " 'NUM MIN',\n", + " 'Q1',\n", + " 'Q10',\n", + " 'Q25',\n", + " 'Q5',\n", + " 'Q75',\n", + " 'Q90',\n", + " 'Q95',\n", + " 'Q99',\n", + " 'SKEW',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TIME SINCE FIRST MAXIMUM',\n", + " 'TIME SINCE FIRST MINIMUM',\n", + " 'TIME SINCE LAST MAXIMUM',\n", + " 'TIME SINCE LAST MINIMUM',\n", + " 'TREND',\n", + " 'VAR',\n", + " 'VARIATION COEFFICIENT'}),\n", + " 'val_acc': 0.862}),\n", + " (8,\n", + " {'num_feat': 350,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT DISTINCT OVER COUNT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'EWMA_1D',\n", + " 'EWMA_1H',\n", + " 'EWMA_1M',\n", + " 'EWMA_1S',\n", + " 'EWMA_30D',\n", + " 'EWMA_365D',\n", + " 'EWMA_7D',\n", + " 'EWMA_90D',\n", + " 'EWMA_TREND_1D',\n", + " 'EWMA_TREND_1H',\n", + " 'EWMA_TREND_1M',\n", + " 'EWMA_TREND_1S',\n", + " 'EWMA_TREND_30D',\n", + " 'EWMA_TREND_365D',\n", + " 'EWMA_TREND_7D',\n", + " 'EWMA_TREND_90D',\n", + " 'FIRST',\n", + " 'KURTOSIS',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'NUM MAX',\n", + " 'NUM MIN',\n", + " 'Q1',\n", + " 'Q10',\n", + " 'Q25',\n", + " 'Q5',\n", + " 'Q75',\n", + " 'Q90',\n", + " 'Q95',\n", + " 'Q99',\n", + " 'SKEW',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TIME SINCE FIRST MAXIMUM',\n", + " 'TIME SINCE FIRST MINIMUM',\n", + " 'TIME SINCE LAST MAXIMUM',\n", + " 'TIME SINCE LAST MINIMUM',\n", + " 'TREND',\n", + " 'VAR',\n", + " 'VARIATION COEFFICIENT'}),\n", + " 'val_acc': 0.854}),\n", + " (2,\n", + " {'num_feat': 250,\n", + " 'agg_set': frozenset({'AVG',\n", + " 'COUNT',\n", + " 'COUNT DISTINCT',\n", + " 'COUNT DISTINCT OVER COUNT',\n", + " 'COUNT MINUS COUNT DISTINCT',\n", + " 'EWMA_1D',\n", + " 'EWMA_1H',\n", + " 'EWMA_1M',\n", + " 'EWMA_1S',\n", + " 'EWMA_30D',\n", + " 'EWMA_365D',\n", + " 'EWMA_7D',\n", + " 'EWMA_90D',\n", + " 'EWMA_TREND_1D',\n", + " 'EWMA_TREND_1H',\n", + " 'EWMA_TREND_1M',\n", + " 'EWMA_TREND_1S',\n", + " 'EWMA_TREND_30D',\n", + " 'EWMA_TREND_365D',\n", + " 'EWMA_TREND_7D',\n", + " 'EWMA_TREND_90D',\n", + " 'FIRST',\n", + " 'KURTOSIS',\n", + " 'LAST',\n", + " 'MAX',\n", + " 'MEDIAN',\n", + " 'MIN',\n", + " 'MODE',\n", + " 'NUM MAX',\n", + " 'NUM MIN',\n", + " 'Q1',\n", + " 'Q10',\n", + " 'Q25',\n", + " 'Q5',\n", + " 'Q75',\n", + " 'Q90',\n", + " 'Q95',\n", + " 'Q99',\n", + " 'SKEW',\n", + " 'STDDEV',\n", + " 'SUM',\n", + " 'TIME SINCE FIRST MAXIMUM',\n", + " 'TIME SINCE FIRST MINIMUM',\n", + " 'TIME SINCE LAST MAXIMUM',\n", + " 'TIME SINCE LAST MINIMUM',\n", + " 'TREND',\n", + " 'VAR',\n", + " 'VARIATION COEFFICIENT'}),\n", + " 'val_acc': 0.848})]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(\n", + " sorted(parameter_sweep.items(), key=lambda item: item[1][\"val_acc\"], reverse=True)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f9bbbcbfe513b912bef8888a9d3cc5e4ac527df9 Mon Sep 17 00:00:00 2001 From: Jan Meyer <20856376+jan-meyer-1986@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:51:46 +0200 Subject: [PATCH 2/8] extent intro --- cora_sota.ipynb | 140 ++++++++++++++++++++++++++---------------------- 1 file changed, 77 insertions(+), 63 deletions(-) diff --git a/cora_sota.ipynb b/cora_sota.ipynb index 2fffd2a..e1725f6 100644 --- a/cora_sota.ipynb +++ b/cora_sota.ipynb @@ -4,6 +4,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "Recent years have shown an incredible proliferation of sophisticated Machine Learning algorithms. Keeping up with that development has become a full time job. Wouldn't it be nice to have a tool that fits all and still provides cutting edge results?! Look no further: getML to the rescue!\n", + "\n", "In previous notebooks we have analysed the performance of getML on the CORA dataset, and benchmarked it extensively against alternative approaches. \n", "In this short notebook, we demonstrate, how getML outperforms the State of the Art performance with just a little tweak in its configurations." ] @@ -65,7 +67,7 @@ "Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", "Building wheels for collected packages: getml\n", " Building wheel for getml (pyproject.toml) ... \u001b[?25ldone\n", - "\u001b[?25h Created wheel for getml: filename=getml-1.5.0-py3-none-any.whl size=359647 sha256=a926c8eb049994b8e27b331bfc89b12af4f7934be85685c0e324c46e70031be7\n", + "\u001b[?25h Created wheel for getml: filename=getml-1.5.0-py3-none-any.whl size=361543 sha256=8c3bd51ffa562e7155202fdf5f34a2c2a30b03798672483adbd5f40e9cccbdeb\n", " Stored in directory: /home/jan-meyer/.cache/pip/wheels/f9/41/ea/72f967c5d3c155fbc2b69b55fe2cf1d2cdedb226e79aaea439\n", "Successfully built getml\n", "Installing collected packages: pytz, tzdata, numpy, mdurl, MarkupSafe, pyarrow, pandas, markdown-it-py, jinja2, rich, getml\n", @@ -74,7 +76,7 @@ } ], "source": [ - "%pip install -q \"ipywidgets==8.1.5\"\n", + "%pip install -q \"ipywidgets==8.1.5\"\n", "!pip install /home/jan-meyer/Documents/gitlab/monorepo/src/python-api" ] }, @@ -105,45 +107,24 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/jan-meyer --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/jan-meyer/.getML/getml-1.5.0-x64-linux...\n", - "Launched the getML Engine. The log output will be stored in /home/jan-meyer/.getML/logs/20240930155539.log.\n" + "ename": "OSError", + "evalue": "Could not find getML executable in any of the following locations:\n['/home/jan-meyer/.getML', '/usr/local/getML', '/home/jan-meyer/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/.getML']\n\nRefer to the installation documentation for more information:\nhttps://getml.com/latest/install/", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[3], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#getml.engine.shutdown()|\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mgetml\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlaunch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mallow_remote_ips\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtoken\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtoken\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m getml\u001b[38;5;241m.\u001b[39mengine\u001b[38;5;241m.\u001b[39mset_project(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcora_sota\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/engine/_launch.py:274\u001b[0m, in \u001b[0;36mlaunch\u001b[0;34m(allow_push_notifications, allow_remote_ips, home_directory, http_port, in_memory, install, launch_browser, log, project_directory, proxy_url, token, quiet)\u001b[0m\n\u001b[1;32m 272\u001b[0m executable_path \u001b[38;5;241m=\u001b[39m locate_executable()\n\u001b[1;32m 273\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m executable_path:\n\u001b[0;32m--> 274\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\n\u001b[1;32m 275\u001b[0m COULD_NOT_FIND_EXECUTABLE_ERROR_MSG_TEMPLATE\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 276\u001b[0m install_locations\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mstr\u001b[39m(p) \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m INSTALL_LOCATIONS],\n\u001b[1;32m 277\u001b[0m install_docs_url\u001b[38;5;241m=\u001b[39mINSTALL_DOCS_URL,\n\u001b[1;32m 278\u001b[0m )\n\u001b[1;32m 279\u001b[0m )\n\u001b[1;32m 280\u001b[0m getml_dir \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 281\u001b[0m Path(home_directory) \u001b[38;5;28;01mif\u001b[39;00m home_directory \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m Path\u001b[38;5;241m.\u001b[39mhome() \u001b[38;5;241m/\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.getML\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 282\u001b[0m )\n\u001b[1;32m 283\u001b[0m project_dir \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 284\u001b[0m Path(project_directory)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m project_directory \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m getml_dir \u001b[38;5;241m/\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprojects\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 287\u001b[0m )\n", + "\u001b[0;31mOSError\u001b[0m: Could not find getML executable in any of the following locations:\n['/home/jan-meyer/.getML', '/usr/local/getML', '/home/jan-meyer/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/.getML']\n\nRefer to the installation documentation for more information:\nhttps://getml.com/latest/install/" ] - }, - { - "data": { - "text/html": [ - "
\n",
-       "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
Connected to project 'cora_sota'\n",
-       "
\n" - ], - "text/plain": [ - "Connected to project \u001b[32m'cora_sota'\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ + "#getml.engine.shutdown()|\n", "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", "getml.engine.set_project(\"cora_sota\")" ] @@ -166,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -175,7 +156,7 @@ "Connection(dbname='CORA', dialect='mysql', host='db.relational-data.org', port=3306)" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -194,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -214,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -239,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -252,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -278,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -297,7 +278,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Similar to how the paper proceeded, we let a hyperparameter optimization run, and pick the parameters that perform best on the validation set. The performance on the test set serves as our benchmark value. " + "Similar to the approach in the paper, we perform hyperparameter optimization and select the parameters that perform best on the validation set. The performance on the test set serves as our benchmark value. " ] }, { @@ -316,7 +297,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -336,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -345,7 +326,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -612,7 +593,7 @@ "2 paper population 2708 DataFrame" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -652,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -776,15 +757,18 @@ "\n", " joins:\n", " - right: 'cites'\n", - " on: (population.paper_id, cites.cited_paper_id)\n", + " on: \n", + " - (population.paper_id, cites.cited_paper_id)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'cites'\n", - " on: (population.paper_id, cites.citing_paper_id)\n", + " on: \n", + " - (population.paper_id, cites.citing_paper_id)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'content'\n", - " on: (population.paper_id, content.paper_id)\n", + " on: \n", + " - (population.paper_id, content.paper_id)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", "\n", @@ -795,11 +779,13 @@ "\n", " joins:\n", " - right: 'content'\n", - " on: (cites.citing_paper_id, content.paper_id)\n", + " on: \n", + " - (cites.citing_paper_id, content.paper_id)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'paper'\n", - " on: (cites.citing_paper_id, paper.paper_id)\n", + " on: \n", + " - (cites.citing_paper_id, paper.paper_id)\n", " relationship: 'many-to-one'\n", " lagged_targets: False\n", "\n", @@ -820,11 +806,13 @@ "\n", " joins:\n", " - right: 'content'\n", - " on: (cites.cited_paper_id, content.paper_id)\n", + " on: \n", + " - (cites.cited_paper_id, content.paper_id)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'paper'\n", - " on: (cites.cited_paper_id, paper.paper_id)\n", + " on: \n", + " - (cites.cited_paper_id, paper.paper_id)\n", " relationship: 'many-to-one'\n", " lagged_targets: False\n", "\n", @@ -844,7 +832,7 @@ " - paper_id: join_key" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -894,7 +882,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -912,7 +900,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -924,9 +912,24 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "OSError", + "evalue": "The Mapping preprocessor is not supported in the community edition. Please upgrade to getML enterprise to use this. An overview of what is supported in the community edition can be found in the official getML documentation.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[16], line 17\u001b[0m\n\u001b[1;32m 9\u001b[0m fast_prop \u001b[38;5;241m=\u001b[39m getml\u001b[38;5;241m.\u001b[39mfeature_learning\u001b[38;5;241m.\u001b[39mFastProp(\n\u001b[1;32m 10\u001b[0m loss_function\u001b[38;5;241m=\u001b[39mgetml\u001b[38;5;241m.\u001b[39mfeature_learning\u001b[38;5;241m.\u001b[39mloss_functions\u001b[38;5;241m.\u001b[39mCrossEntropyLoss,\n\u001b[1;32m 11\u001b[0m aggregation\u001b[38;5;241m=\u001b[39maggregation_set,\n\u001b[1;32m 12\u001b[0m num_features\u001b[38;5;241m=\u001b[39mnum_feat,\n\u001b[1;32m 13\u001b[0m )\n\u001b[1;32m 15\u001b[0m pipe1\u001b[38;5;241m.\u001b[39mfeature_learners \u001b[38;5;241m=\u001b[39m [fast_prop]\n\u001b[0;32m---> 17\u001b[0m \u001b[43mpipe1\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 19\u001b[0m probs_val \u001b[38;5;241m=\u001b[39m pipe1\u001b[38;5;241m.\u001b[39mpredict(container\u001b[38;5;241m.\u001b[39mvalidation)\n\u001b[1;32m 20\u001b[0m val_acc \u001b[38;5;241m=\u001b[39m prob_to_acc(probs_val, actual_labels_val, class_label)\n", + "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/pipeline/pipeline.py:1295\u001b[0m, in \u001b[0;36mPipeline.fit\u001b[0;34m(self, population_table, peripheral_tables, validation_table, check)\u001b[0m\n\u001b[1;32m 1292\u001b[0m _check_df_types(population_table, peripheral_tables)\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m check:\n\u001b[0;32m-> 1295\u001b[0m warnings \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpopulation_table\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mperipheral_tables\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m warnings:\n\u001b[1;32m 1297\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTo see the issues in full, run .check() on the pipeline.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/pipeline/pipeline.py:1106\u001b[0m, in \u001b[0;36mPipeline.check\u001b[0;34m(self, population_table, peripheral_tables)\u001b[0m\n\u001b[1;32m 1104\u001b[0m msg \u001b[38;5;241m=\u001b[39m comm\u001b[38;5;241m.\u001b[39mlog(sock)\n\u001b[1;32m 1105\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m msg \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSuccess!\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m-> 1106\u001b[0m \u001b[43mcomm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_engine_exception\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1107\u001b[0m issues \u001b[38;5;241m=\u001b[39m Issues(comm\u001b[38;5;241m.\u001b[39mrecv_issues(sock))\n\u001b[1;32m 1108\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(issues) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", + "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/exceptions.py:148\u001b[0m, in \u001b[0;36mhandle_engine_exception\u001b[0;34m(msg, extra)\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m handler \u001b[38;5;129;01min\u001b[39;00m EngineExceptionHandlerRegistry\u001b[38;5;241m.\u001b[39mhandlers:\n\u001b[1;32m 146\u001b[0m handler(msg, extra\u001b[38;5;241m=\u001b[39mextra)\n\u001b[0;32m--> 148\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(msg)\n", + "\u001b[0;31mOSError\u001b[0m: The Mapping preprocessor is not supported in the community edition. Please upgrade to getML enterprise to use this. An overview of what is supported in the community edition can be found in the official getML documentation." + ] + } + ], "source": [ "%%capture\n", "parameter_sweep = {}\n", @@ -961,9 +964,21 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m best_val_acc_comb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43msorted\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mparameter_sweep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mval_acc\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m)\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m[\u001b[38;5;241m1\u001b[39m]\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + } + ], "source": [ "best_val_acc_comb = list(\n", " sorted(parameter_sweep.items(), key=lambda item: item[1][\"val_acc\"], reverse=True)\n", @@ -1233,8 +1248,7 @@ "source": [ "This notebook sought out to attain a new record predictive performance on the well known Cora data set by using exclusively getML's feature learning framework. To maximize comparability we mimicked the methodology of the current record holder.\n", "\n", - "We replicated the exact split used in their research paper and we ran a hyperparameter similar to how they did.\n", - "On the hold out data set we achieved an accuracy of 90.6% which compares favorably to the 90.16% of the hitherto record holder. Hence our approach can now be considered the new state-of-the-art solution on this popular benchmarking data set.\n", + "We replicated the exact data split used in their research and performed hyperparameter optimization in a similar manner. On the holdout dataset, we achieved an accuracy of 90.6%, which compares favorably to the previous record of 90.16%. Therefore, our solution, combining FastProp for automated feature engineering and XGBoost for classification, can now be considered the new state-of-the-art on this popular benchmark dataset.\n", "\n", "Remarkable is the ease of implementation. Requiring only minimal tweaking of parameters, getML beat an advanced Graph Neural Network algorithm. Cutting edge predictive performance is now within reach of every Data Scientist by simply incorporating getML in their prediction pipelines." ] From e4fb0c664cd0fd072fced21fcd6c9f9bfad132ba Mon Sep 17 00:00:00 2001 From: Jan Meyer <20856376+jan-meyer-1986@users.noreply.github.com> Date: Tue, 19 Nov 2024 18:39:42 +0100 Subject: [PATCH 3/8] revised nb, zuordnung data, zuordnung algorithm --- assets/zuordnung.json | 1 + cora_sota.ipynb | 570 +++++++----------------------------------- utils/zuordnung.py | 56 +++++ 3 files changed, 151 insertions(+), 476 deletions(-) create mode 100644 assets/zuordnung.json create mode 100644 utils/zuordnung.py diff --git a/assets/zuordnung.json b/assets/zuordnung.json new file mode 100644 index 0000000..2b21f1d --- /dev/null +++ b/assets/zuordnung.json @@ -0,0 +1 @@ +[[35, 1358], [40, 1687], [114, 1623], [117, 1624], [128, 139], [130, 1773], [164, 142], [288, 1609], [424, 465], [434, 581], [463, 913], [504, 798], [506, 1794], [887, 1072], [906, 962], [910, 1810], [936, 1824], [940, 1827], [941, 1409], [943, 1408], [1026, 889], [1033, 797], [1034, 800], [1035, 1834], [1213, 898], [1237, 1837], [1246, 1204], [1272, 1013], [1365, 1701], [1385, 2078], [1481, 661], [1688, 1103], [1694, 1887], [1717, 1889], [1786, 1215], [1817, 1895], [1919, 1061], [1949, 541], [1951, 646], [1952, 647], [1953, 1896], [1955, 1898], [1956, 645], [1959, 1902], [1997, 210], [1999, 211], [2354, 1296], [2440, 1914], [2653, 1416], [2654, 1927], [2658, 1413], [2663, 1937], [2665, 1542], [2695, 1944], [2696, 310], [2698, 1945], [2702, 622], [3084, 1470], [3085, 1954], [3095, 119], [3097, 1360], [3101, 904], [3112, 1022], [3187, 1964], [3191, 1703], [3192, 1702], [3217, 1652], [3218, 1973], [3220, 436], [3222, 438], [3223, 437], [3229, 1986], [3231, 88], [3232, 2018], [3233, 55], [3235, 325], [3236, 323], [3237, 162], [3240, 651], [3243, 2025], [3828, 1826], [3932, 2029], [4274, 903], [4329, 1336], [4330, 2034], [4335, 429], [4553, 31], [4584, 2045], [4637, 2049], [4649, 1616], [4660, 1926], [4804, 1628], [4878, 97], [4983, 635], [5038, 2052], [5055, 2059], [5062, 1958], [5064, 735], [5069, 739], [5075, 1543], [5086, 1966], [5194, 327], [5348, 1950], [5454, 2065], [5462, 549], [5600, 458], [5869, 1331], [5959, 1377], [5966, 2071], [6125, 1602], [6130, 2075], [6151, 236], [6152, 2079], [6155, 153], [6163, 487], [6169, 484], [6170, 384], [6184, 519], [6196, 133], [6209, 505], [6210, 308], [6213, 306], [6214, 109], [6215, 1805], [6216, 2096], [6217, 1142], [6220, 1782], [6224, 426], [6238, 2097], [6311, 1526], [6318, 2100], [6334, 1309], [6343, 514], [6344, 516], [6346, 517], [6378, 2094], [6385, 36], [6539, 693], [6639, 1975], [6741, 711], [6767, 490], [6771, 1909], [6775, 386], [6782, 2116], [6784, 2117], [6786, 275], [6814, 33], [6818, 2122], [6898, 2124], [6910, 1119], [6913, 2130], [6917, 1849], [6923, 1464], [6925, 1463], [6935, 1351], [6939, 2135], [6941, 1683], [7022, 2005], [7032, 1671], [7041, 1024], [7047, 548], [7272, 2139], [7276, 1636], [7296, 2142], [7297, 24], [7419, 1367], [7430, 137], [7432, 1144], [7532, 2146], [7537, 374], [7867, 2058], [8079, 897], [8213, 1560], [8224, 1224], [8581, 1577], [8591, 2157], [8594, 2160], [8617, 2162], [8619, 697], [8687, 87], [8696, 161], [8699, 2016], [8703, 118], [8766, 1836], [8821, 2017], [8832, 1982], [8865, 957], [8872, 2168], [8874, 650], [8875, 2083], [8961, 2170], [9513, 52], [9515, 2172], [9559, 2173], [9581, 1063], [9586, 2175], [9708, 644], [9716, 763], [10169, 415], [10174, 2179], [10177, 525], [10183, 441], [10186, 440], [10430, 1537], [10435, 1538], [10531, 756], [10793, 975], [10796, 973], [10798, 454], [10981, 387], [11093, 49], [11148, 2192], [11325, 993], [11326, 2193], [11335, 702], [11337, 98], [11339, 2194], [11342, 586], [12155, 1631], [12158, 2197], [12165, 901], [12169, 80], [12182, 1042], [12194, 1391], [12195, 2199], [12197, 2180], [12198, 2181], [12199, 1388], [12210, 2054], [12211, 2073], [12238, 1279], [12247, 964], [12275, 639], [12330, 1952], [12337, 979], [12347, 746], [12350, 95], [12359, 2163], [12439, 1121], [12558, 1694], [12576, 1483], [12631, 2126], [12638, 1273], [12946, 224], [12960, 2266], [13024, 2209], [13136, 1819], [13193, 302], [13195, 303], [13205, 2210], [13208, 104], [13212, 1065], [13213, 54], [13269, 330], [13652, 710], [13654, 51], [13656, 2212], [13658, 2216], [13686, 836], [13717, 2217], [13885, 603], [13917, 1248], [13960, 1045], [13966, 1571], [13972, 1459], [13982, 475], [14062, 1317], [14083, 432], [14090, 320], [14428, 75], [14429, 2224], [14430, 284], [14431, 2225], [14529, 578], [14531, 2227], [14545, 2229], [14549, 809], [14807, 1083], [15076, 2230], [15429, 2182], [15431, 2234], [15670, 333], [15889, 1955], [15892, 2235], [15984, 2236], [15987, 1240], [16008, 2238], [16437, 2241], [16451, 1303], [16461, 1997], [16470, 2207], [16471, 2243], [16474, 1503], [16476, 1502], [16485, 281], [16819, 2248], [16843, 2250], [17201, 121], [17208, 1158], [17242, 1264], [17363, 2253], [17476, 1505], [17477, 1506], [17488, 2254], [17798, 737], [17811, 1668], [17821, 225], [18251, 2256], [18313, 2257], [18532, 2258], [18536, 1213], [18582, 1550], [18615, 69], [18619, 2189], [18770, 1419], [18773, 2261], [18774, 2262], [18777, 1015], [18781, 1104], [18785, 2264], [18811, 984], [18812, 1322], [18815, 1324], [18832, 1089], [18833, 1088], [18834, 741], [19045, 1262], [19231, 1395], [19621, 598], [19697, 1160], [20178, 1415], [20179, 1414], [20180, 1553], [20193, 1441], [20526, 103], [20528, 191], [20534, 2080], [20584, 868], [20592, 2276], [20593, 1844], [20601, 734], [20602, 736], [20821, 1163], [20833, 2101], [20850, 851], [20857, 850], [20920, 2265], [20923, 857], [20924, 854], [20942, 2019], [20972, 1800], [22229, 565], [22241, 1528], [22386, 472], [22431, 1370], [22563, 1131], [22564, 1133], [22566, 2185], [22835, 633], [22869, 2284], [22874, 2286], [22875, 451], [22876, 2285], [22883, 989], [22886, 2287], [23069, 582], [23070, 444], [23116, 2291], [23258, 102], [23448, 143], [23502, 232], [23507, 231], [23545, 1352], [23546, 1918], [23738, 2155], [23774, 1245], [24043, 2296], [24476, 2297], [24530, 2300], [24966, 733], [24974, 2305], [25181, 745], [25184, 743], [25413, 495], [25702, 482], [25772, 2309], [25791, 1289], [25794, 2310], [25805, 2056], [26850, 1863], [27174, 160], [27199, 1693], [27203, 839], [27230, 506], [27241, 2312], [27243, 1275], [27246, 1277], [27249, 2295], [27250, 1152], [27510, 873], [27514, 2314], [27530, 1344], [27531, 25], [27535, 1343], [27543, 2317], [27606, 347], [27612, 2074], [27623, 1681], [27627, 1682], [27631, 1998], [27632, 2319], [27895, 1203], [28026, 1237], [28202, 1705], [28227, 1775], [28230, 2323], [28249, 1335], [28254, 695], [28265, 1828], [28267, 940], [28278, 1787], [28287, 1776], [28290, 1735], [28336, 1254], [28350, 350], [28359, 1140], [28385, 2325], [28387, 1777], [28389, 685], [28412, 2326], [28447, 610], [28456, 1801], [28471, 887], [28473, 2106], [28485, 1251], [28487, 18], [28489, 1253], [28491, 2327], [28504, 2329], [28542, 1564], [28632, 1125], [28640, 373], [28641, 6], [28649, 2333], [28674, 707], [28851, 174], [28957, 2335], [28964, 2259], [29492, 1558], [29708, 879], [29723, 665], [29738, 780], [30817, 899], [30895, 1583], [30901, 1120], [30934, 2267], [30973, 590], [31043, 795], [31055, 1447], [31083, 1259], [31097, 115], [31105, 2343], [31336, 1472], [31349, 240], [31353, 1692], [31479, 1115], [31483, 1178], [31489, 577], [31769, 681], [31863, 2355], [31927, 2349], [31932, 1498], [32083, 1171], [32260, 2332], [32276, 606], [32688, 2039], [32698, 38], [32872, 589], [33013, 1788], [33231, 442], [33301, 2363], [33303, 1555], [33325, 2364], [33412, 1999], [33818, 2176], [33823, 1016], [33895, 2365], [33904, 1738], [33907, 1739], [34082, 84], [34257, 2367], [34263, 1093], [34266, 1090], [34315, 453], [34355, 1809], [34708, 827], [34961, 1645], [34979, 2219], [35061, 687], [35070, 822], [35335, 267], [35343, 2000], [35490, 20], [35778, 2376], [35797, 1894], [35852, 372], [35854, 1515], [35863, 476], [35905, 576], [35922, 2001], [36131, 2382], [36140, 1655], [36145, 1080], [36162, 2385], [36167, 1791], [36620, 885], [36802, 638], [37483, 2388], [37541, 304], [37879, 1018], [37884, 2040], [37888, 893], [37998, 96], [38000, 2164], [38205, 1740], [38480, 1779], [38537, 1634], [38722, 544], [38771, 662], [38829, 392], [38839, 844], [38845, 1183], [38846, 1182], [39124, 1494], [39126, 1908], [39127, 2394], [39130, 2024], [39131, 2178], [39165, 1529], [39199, 1666], [39210, 1662], [39403, 1780], [39474, 1888], [39890, 963], [39904, 1866], [40124, 2268], [40125, 2306], [40131, 781], [40135, 2403], [40151, 1912], [40583, 906], [40605, 2351], [40886, 2405], [40922, 668], [41216, 2406], [41417, 643], [41666, 2233], [41714, 73], [41732, 2377], [42156, 311], [42207, 751], [42209, 2408], [42221, 434], [42847, 1821], [42848, 2409], [43165, 2410], [43186, 2412], [43639, 1942], [43698, 172], [44017, 2195], [44121, 538], [44368, 796], [44455, 1214], [44514, 2413], [45052, 2416], [45061, 214], [45188, 2418], [45189, 65], [45212, 1622], [45533, 640], [45599, 613], [45603, 683], [45605, 2359], [46079, 757], [46431, 1741], [46452, 2422], [46468, 86], [46470, 497], [46476, 2397], [46491, 279], [46500, 11], [46501, 2424], [46536, 630], [46547, 270], [46887, 2425], [47570, 129], [47682, 2427], [47683, 2428], [47684, 349], [47839, 2429], [48066, 2342], [48075, 663], [48550, 1095], [48555, 298], [48764, 131], [48766, 1546], [48768, 1547], [48781, 202], [49482, 201], [49660, 1174], [49720, 2431], [49753, 2432], [49811, 1079], [49843, 779], [49844, 1919], [49847, 778], [49895, 414], [50336, 91], [50337, 2123], [50354, 1450], [50381, 1892], [50807, 2433], [50838, 21], [50980, 587], [51045, 375], [51049, 2434], [51052, 2435], [51180, 1580], [51831, 500], [51834, 502], [51866, 1507], [51879, 2436], [51909, 2112], [51934, 601], [52000, 168], [52003, 167], [52007, 2438], [52515, 2], [52784, 738], [52835, 471], [52847, 2137], [53942, 753], [54129, 1229], [54131, 1742], [54132, 2446], [54550, 193], [54844, 1523], [55403, 1291], [55770, 113], [55801, 282], [55968, 1781], [56112, 704], [56115, 2450], [56119, 1743], [56167, 1269], [56708, 1283], [56709, 1282], [57119, 2451], [57764, 1839], [57773, 122], [57922, 1695], [57932, 555], [57948, 2133], [58268, 1647], [58436, 2456], [58453, 221], [58454, 220], [58540, 452], [58552, 568], [58758, 998], [59045, 1468], [59244, 1029], [59626, 315], [59715, 1427], [59772, 2373], [59798, 553], [60159, 1053], [60169, 1405], [60170, 2118], [60560, 1600], [60682, 634], [61069, 1035], [61073, 931], [61312, 824], [61417, 2457], [62274, 1669], [62329, 760], [62333, 1603], [62347, 968], [62389, 1222], [62417, 523], [62607, 2461], [62634, 1216], [62676, 1442], [62718, 1077], [63477, 300], [63486, 1527], [63549, 1192], [63812, 1190], [63832, 1412], [63835, 1512], [63915, 2282], [63931, 175], [64271, 2269], [64319, 527], [64484, 1783], [64519, 945], [65057, 584], [65074, 2464], [65212, 377], [65650, 74], [65653, 1848], [66556, 580], [66563, 1758], [66564, 464], [66594, 815], [66596, 2467], [66751, 1475], [66782, 1976], [66794, 1519], [66805, 1759], [66809, 1244], [66982, 2381], [66986, 2398], [66990, 48], [67245, 1445], [67246, 1446], [67292, 1822], [67415, 456], [67584, 217], [67633, 67], [68115, 419], [68224, 1098], [68463, 2015], [68495, 2183], [68505, 2057], [69198, 411], [69284, 1284], [69296, 1604], [69392, 158], [69397, 1981], [69418, 2042], [70281, 2475], [70441, 1312], [70442, 1311], [70444, 1313], [70520, 1197], [70970, 2476], [71336, 1066], [71736, 1559], [71904, 1590], [72056, 886], [72101, 2006], [72406, 2478], [72805, 1236], [72908, 1359], [73119, 583], [73146, 1143], [73162, 89], [73323, 2481], [73327, 1903], [73712, 2482], [73972, 1032], [74427, 1147], [74698, 2289], [74700, 140], [74749, 1913], [74821, 78], [74920, 369], [74921, 2483], [74937, 2484], [74975, 1579], [75121, 2485], [75318, 2486], [75674, 409], [75691, 1055], [75693, 2487], [75694, 2488], [75695, 1054], [75969, 1501], [75972, 1396], [75983, 396], [77108, 365], [77112, 260], [77438, 2383], [77515, 1139], [77758, 1869], [77826, 1276], [77829, 1963], [78508, 1458], [78511, 1761], [78549, 595], [78552, 4], [78555, 1091], [78557, 1256], [78994, 1608], [79809, 94], [79817, 2263], [80491, 509], [80515, 2148], [80656, 1392], [81350, 399], [81714, 628], [81722, 1764], [82087, 391], [82090, 493], [82098, 68], [82664, 1904], [82666, 2491], [82920, 1169], [83449, 1901], [83461, 331], [83725, 2113], [83746, 2213], [83826, 1870], [83847, 2493], [84020, 749], [84021, 748], [84459, 79], [84695, 2361], [85299, 1871], [85324, 2494], [85352, 1765], [85449, 518], [85452, 1850], [85688, 1851], [86258, 62], [86359, 831], [86840, 725], [86923, 1290], [87363, 189], [87417, 817], [87482, 1598], [87915, 2290], [88356, 1474], [89308, 2497], [89335, 2166], [89416, 1795], [89547, 239], [90470, 2498], [90655, 15], [90888, 1873], [91038, 1454], [91581, 2357], [91852, 370], [91853, 371], [91975, 910], [92065, 2008], [92589, 1266], [93273, 2499], [93318, 1411], [93320, 176], [93555, 1874], [93755, 2502], [93923, 181], [94229, 2283], [94416, 2458], [94639, 2503], [94641, 1067], [94713, 1481], [94953, 351], [95188, 2270], [95198, 400], [95225, 2202], [95435, 2252], [95579, 406], [95586, 2145], [95588, 134], [95589, 2095], [95594, 2504], [95597, 2505], [95642, 114], [95718, 863], [95719, 862], [96335, 2009], [96845, 860], [96847, 859], [96851, 762], [97377, 2156], [97390, 2221], [97645, 1766], [97892, 1661], [98693, 1148], [98698, 1145], [99023, 877], [99025, 875], [99030, 2508], [100197, 1987], [100701, 163], [100935, 2507], [100961, 1508], [101143, 1899], [101145, 388], [101261, 2511], [101263, 2203], [101660, 2134], [101662, 2293], [101811, 1535], [102061, 2512], [102406, 1921], [102879, 1467], [102884, 2053], [102938, 183], [102939, 182], [103430, 1684], [103482, 1708], [103515, 1154], [103528, 703], [103529, 1961], [103531, 2516], [103537, 1385], [103543, 148], [104840, 2010], [105057, 1410], [105856, 2247], [105865, 1365], [105899, 1012], [106590, 1484], [107177, 1922], [107251, 2280], [107252, 242], [107569, 2204], [108047, 657], [108962, 1428], [108963, 1429], [108974, 1534], [108983, 1202], [109323, 1010], [110041, 2525], [110162, 1959], [110163, 379], [110164, 132], [111676, 1578], [111770, 585], [111866, 81], [112099, 2527], [112378, 1842], [112787, 2528], [112813, 2271], [114189, 593], [114308, 342], [114966, 2529], [115188, 520], [116021, 2321], [116081, 2396], [116084, 1421], [116087, 1420], [116512, 1371], [116528, 1268], [116545, 2530], [116552, 246], [116553, 936], [116790, 1618], [117315, 1308], [117316, 1627], [117328, 128], [118079, 2402], [118259, 1180], [118260, 1304], [118424, 916], [118435, 2531], [118436, 1026], [118558, 508], [118559, 460], [118682, 2350], [118873, 1201], [119686, 2215], [119712, 1489], [119761, 722], [119956, 1497], [120013, 1270], [120039, 1039], [120084, 729], [120817, 2535], [121792, 462], [123556, 321], [123825, 316], [124064, 1772], [124224, 1611], [124296, 285], [124734, 408], [124828, 1294], [124952, 1307], [126128, 2589], [126793, 1138], [126867, 259], [126868, 2537], [126909, 602], [126912, 714], [126920, 381], [126926, 378], [126927, 2518], [127033, 389], [127940, 2539], [128202, 1188], [128203, 1187], [128383, 2407], [128540, 1499], [129042, 107], [129045, 1650], [129287, 2541], [129558, 360], [129896, 463], [129897, 1906], [131042, 1818], [131117, 2339], [131122, 2542], [131315, 397], [131317, 1633], [131318, 401], [132806, 341], [132821, 1556], [133550, 1996], [133553, 2543], [133563, 1325], [133566, 2063], [133567, 1326], [133615, 2154], [133628, 2544], [134060, 10], [134128, 1798], [134199, 1629], [134219, 2546], [134307, 623], [134314, 2547], [134315, 2548], [134316, 515], [134320, 2549], [135130, 1620], [135464, 1221], [135765, 412], [135766, 56], [135798, 528], [136665, 1561], [136766, 596], [136767, 992], [136768, 41], [137130, 828], [137359, 93], [137380, 2423], [137790, 895], [137849, 443], [137868, 39], [137873, 1968], [137956, 108], [139547, 1605], [139738, 2550], [139865, 1862], [140005, 1137], [140569, 2064], [141160, 269], [141171, 2147], [141324, 2444], [141342, 1721], [141347, 1292], [141596, 2552], [141868, 120], [142268, 1102], [143323, 2553], [143476, 810], [143676, 997], [143801, 2500], [144212, 1136], [144330, 2274], [144408, 792], [144679, 376], [144701, 1610], [145134, 2303], [145176, 383], [145215, 816], [145315, 1476], [145384, 135], [147870, 2308], [148170, 1722], [148341, 2560], [148399, 965], [149139, 292], [149669, 1785], [151430, 1916], [151708, 2038], [152219, 1191], [152226, 2068], [152227, 861], [152483, 1520], [152731, 197], [153063, 1050], [153598, 1490], [154023, 2565], [154047, 953], [154134, 1911], [154982, 1907], [155158, 42], [155277, 2341], [155736, 1047], [155738, 1588], [156794, 943], [156977, 788], [157401, 1023], [157761, 2055], [157805, 334], [158098, 2237], [158172, 588], [158614, 966], [158812, 799], [159084, 380], [159085, 2569], [159897, 2336], [160705, 1581], [160732, 116], [161221, 1799], [162075, 1386], [162080, 2570], [162664, 1417], [163235, 2574], [164885, 1659], [166420, 2575], [166825, 410], [166989, 2576], [167205, 2158], [167656, 718], [167670, 498], [168332, 136], [168410, 1448], [168958, 670], [169279, 1462], [169280, 2577], [170338, 1699], [170798, 1478], [171225, 1440], [171954, 2472], [173863, 1425], [173884, 255], [174418, 2360], [174425, 2578], [175256, 328], [175291, 30], [175548, 972], [175576, 858], [175909, 1226], [177115, 393], [177993, 1280], [177998, 2581], [178209, 2109], [178718, 46], [178727, 686], [179180, 2582], [179702, 1664], [179706, 658], [180187, 1698], [180301, 2583], [180373, 277], [180399, 696], [181782, 1258], [182093, 2584], [182094, 558], [184157, 2251], [184918, 869], [187260, 2586], [187354, 1482], [188318, 1479], [188471, 1337], [189566, 271], [189571, 2240], [189572, 152], [189574, 2294], [189577, 151], [189620, 2386], [189623, 2587], [189655, 1369], [189708, 317], [189721, 922], [189774, 1401], [189856, 2387], [190697, 1723], [190698, 768], [190706, 1189], [191216, 288], [191222, 618], [191404, 1774], [192734, 1293], [192850, 1156], [192870, 2370], [193347, 1593], [193352, 145], [193354, 144], [193742, 126], [193918, 2588], [193931, 2509], [193932, 2519], [194223, 2379], [194609, 1185], [194617, 1469], [194645, 234], [195150, 1085], [195361, 2088], [195792, 567], [197054, 876], [197452, 2304], [197783, 1924], [198443, 1724], [198653, 1070], [198866, 2592], [199571, 2593], [200480, 1882], [200630, 649], [202520, 652], [202522, 654], [202639, 218], [203646, 1424], [205192, 1941], [205196, 833], [206259, 1786], [206371, 902], [206524, 594], [207395, 448], [208345, 747], [210309, 2231], [210871, 1725], [210872, 2597], [211432, 324], [211875, 818], [211906, 769], [212097, 1112], [212107, 677], [212777, 1917], [212930, 843], [213246, 599], [213279, 942], [214472, 85], [215912, 2590], [216877, 77], [216878, 354], [217115, 2232], [217139, 1368], [217852, 551], [217984, 570], [218410, 329], [218666, 896], [218682, 1549], [219218, 422], [219239, 2198], [219446, 2555], [219976, 1404], [220420, 1612], [221302, 1956], [226698, 445], [227178, 1199], [227286, 230], [228990, 2600], [228992, 832], [229635, 1726], [230300, 937], [230879, 507], [230884, 402], [231198, 1488], [231249, 1727], [232605, 1328], [232606, 1327], [232860, 2602], [233106, 900], [235670, 2455], [235678, 123], [235679, 99], [235683, 26], [235776, 2099], [236759, 1933], [237376, 1220], [237489, 1607], [237521, 216], [238099, 1972], [238401, 1696], [239800, 794], [239810, 890], [239829, 1105], [240321, 180], [240791, 480], [241133, 2089], [241821, 477], [242637, 1348], [242663, 2401], [243274, 2540], [243483, 526], [245288, 829], [245955, 2255], [246618, 2515], [248119, 1524], [248395, 1223], [248425, 1041], [248431, 1150], [248823, 2591], [249421, 1728], [249858, 423], [250566, 272], [251756, 1513], [252715, 2190], [252725, 939], [253762, 715], [253971, 2414], [254923, 1729], [255233, 1953], [255628, 1159], [256106, 1272], [258259, 2606], [259126, 2014], [259701, 1730], [259702, 1731], [259772, 2184], [260121, 1615], [260979, 1172], [261040, 479], [262108, 2607], [262121, 363], [262178, 1373], [263069, 1114], [263279, 1732], [263482, 2608], [263486, 891], [263498, 173], [263553, 2129], [264347, 1232], [264556, 669], [265203, 1733], [267003, 1792], [267824, 2609], [270085, 632], [270456, 1621], [270600, 398], [272345, 2062], [272720, 771], [273152, 1734], [273949, 2246], [277263, 504], [278394, 866], [278403, 2610], [280876, 248], [282700, 1934], [284023, 2501], [284025, 1567], [284414, 1845], [285675, 1239], [285687, 2611], [286500, 101], [286513, 2612], [286562, 1514], [287787, 154], [288107, 1036], [289085, 1086], [289088, 1225], [289779, 1736], [289780, 155], [289781, 156], [289885, 1097], [289945, 2613], [292277, 494], [293271, 294], [293285, 2047], [293974, 1051], [294030, 203], [294126, 404], [294145, 106], [294239, 421], [299195, 1802], [299197, 417], [300071, 2120], [300806, 332], [302545, 947], [307015, 1737], [307336, 2027], [307656, 1430], [308003, 262], [308232, 2165], [308529, 2324], [308920, 1969], [309476, 1517], [310530, 264], [310653, 2524], [310742, 1970], [312409, 2462], [314459, 1101], [315266, 286], [315789, 1378], [318071, 2617], [318187, 491], [321004, 2618], [321861, 1925], [323128, 2136], [325314, 19], [325497, 2322], [328370, 841], [330148, 1864], [330208, 914], [334153, 1803], [335042, 1124], [335733, 1209], [337766, 2621], [340075, 1820], [340078, 835], [340299, 1865], [341188, 1778], [342802, 1946], [345340, 1789], [346243, 1332], [346292, 1092], [348305, 2622], [348437, 496], [350319, 2115], [350362, 572], [350373, 2384], [353541, 554], [354004, 946], [358866, 934], [358884, 2211], [358887, 675], [358894, 2356], [359067, 1314], [360028, 1058], [362926, 2468], [365294, 2331], [367312, 44], [368431, 1110], [368605, 2371], [368657, 2625], [370366, 579], [372862, 2132], [375605, 2627], [375825, 560], [376704, 1181], [377303, 631], [379288, 2628], [380341, 1059], [384428, 692], [385067, 701], [385251, 100], [385572, 1570], [387795, 337], [389715, 838], [390693, 987], [390889, 2041], [390894, 2380], [390896, 2121], [390922, 2002], [395075, 1557], [395540, 872], [395547, 2033], [395553, 1002], [395725, 1957], [396412, 2003], [397488, 1173], [397590, 1372], [399173, 1883], [399339, 1346], [399370, 229], [400356, 2206], [400455, 2626], [400473, 2340], [408885, 2631], [409255, 273], [409725, 92], [411005, 1096], [411092, 539], [415693, 1568], [416455, 905], [416867, 1302], [416964, 2632], [417017, 252], [421481, 774], [423463, 1971], [423816, 1345], [424540, 607], [427606, 985], [428610, 791], [429781, 2051], [429805, 483], [430329, 2242], [430574, 2633], [430711, 2634], [431206, 2127], [436796, 13], [440815, 1569], [444191, 1697], [444240, 1625], [445938, 698], [446271, 1], [446610, 2637], [447224, 5], [447250, 2004], [449841, 447], [458439, 2639], [459206, 425], [459213, 533], [459214, 1007], [459216, 2279], [463825, 1218], [466170, 2640], [467383, 2641], [469504, 150], [470511, 1962], [481073, 2545], [486840, 626], [502574, 1690], [503871, 2372], [503877, 16], [503883, 364], [503893, 466], [509233, 1374], [509315, 569], [509379, 60], [510715, 63], [510718, 1452], [513189, 111], [519318, 813], [519353, 2463], [520471, 908], [521183, 249], [521207, 1884], [521251, 621], [521252, 478], [521269, 1885], [521855, 1157], [522338, 245], [523010, 605], [523394, 706], [523574, 2645], [529165, 1691], [531348, 2260], [531351, 529], [545647, 2069], [552469, 1644], [559804, 1094], [560936, 1846], [561238, 1744], [561364, 1234], [561568, 1230], [561581, 194], [561582, 1451], [561593, 1081], [561595, 2564], [561610, 1380], [561611, 1379], [561613, 1342], [561674, 473], [561789, 2647], [561809, 2648], [562067, 243], [562123, 1867], [562940, 2649], [563613, 1460], [566488, 265], [566653, 1128], [566664, 2275], [567005, 960], [567018, 2599], [568045, 2110], [568857, 1745], [573535, 2470], [573553, 591], [573964, 758], [573978, 853], [574009, 346], [574264, 1746], [574462, 1492], [574710, 359], [575077, 59], [575292, 228], [575331, 1747], [575402, 223], [575795, 1249], [576257, 481], [576362, 1589], [576691, 2492], [576725, 1748], [576795, 1281], [576973, 1431], [577086, 825], [577227, 1471], [577331, 1606], [578306, 1177], [578309, 1176], [578337, 1300], [578347, 1935], [578365, 295], [578645, 2442], [578646, 867], [578649, 871], [578650, 2652], [578669, 629], [578780, 1749], [578845, 2614], [578898, 2523], [579008, 609], [579108, 58], [582139, 1477], [582343, 1920], [582349, 865], [582511, 2070], [583318, 83], [589923, 808], [590022, 924], [591016, 1675], [591017, 1676], [592826, 724], [592830, 2228], [592973, 489], [592975, 2390], [592986, 2391], [592993, 933], [592996, 227], [593022, 1155], [593060, 2392], [593068, 1596], [593091, 1750], [593104, 1037], [593105, 1038], [593155, 2460], [593201, 1164], [593209, 1161], [593210, 110], [593240, 1599], [593248, 1601], [593260, 1389], [593328, 1509], [593329, 564], [593544, 615], [593559, 723], [593560, 9], [593813, 616], [593859, 2445], [593921, 2447], [593942, 403], [594011, 1383], [594025, 1030], [594039, 2655], [594047, 1751], [594119, 1034], [594387, 2448], [594483, 1263], [594511, 2656], [594543, 1384], [594649, 1287], [594900, 999], [595056, 1804], [595063, 2558], [595157, 2334], [595193, 427], [596075, 2510], [601462, 1642], [601561, 2022], [601567, 682], [604073, 1005], [606479, 2415], [606647, 268], [608190, 2651], [608191, 105], [608292, 1685], [608326, 552], [610529, 222], [612306, 1165], [613409, 420], [616336, 127], [617378, 1496], [617575, 2659], [621555, 1673], [626530, 12], [626531, 1318], [626574, 2662], [626999, 2663], [627024, 1049], [628458, 2664], [628459, 1438], [628500, 563], [628667, 656], [628668, 2090], [628751, 2495], [628764, 1641], [628766, 2595], [628815, 2048], [628888, 637], [630817, 1943], [630890, 811], [631015, 185], [631052, 297], [632796, 2352], [632874, 2353], [632935, 2354], [633030, 2665], [633031, 2666], [633081, 1129], [633585, 394], [633721, 849], [634902, 326], [634904, 1752], [634938, 1753], [634975, 1754], [636098, 1847], [636500, 531], [636511, 27], [640617, 1755], [641956, 994], [641976, 45], [642593, 592], [642621, 837], [642641, 1491], [642681, 368], [642798, 1688], [642827, 22], [642847, 2393], [642894, 2671], [642920, 2676], [642930, 1439], [643003, 1255], [643069, 348], [643199, 64], [643221, 1257], [643239, 1135], [643485, 2673], [643597, 2594], [643695, 2680], [643734, 1457], [643735, 1456], [643777, 1019], [644093, 996], [644334, 1366], [644361, 1449], [644363, 361], [644427, 956], [644441, 1194], [644448, 2679], [644470, 1639], [644494, 177], [644577, 492], [644843, 1390], [645016, 2681], [645046, 1109], [645084, 1320], [645088, 2684], [645452, 209], [645571, 450], [645870, 726], [645897, 2538], [646195, 1461], [646286, 2249], [646289, 1261], [646334, 2674], [646357, 2675], [646412, 187], [646440, 2646], [646809, 1756], [646836, 1306], [646837, 1305], [646900, 2685], [646913, 732], [647315, 358], [647408, 1757], [647413, 263], [647447, 819], [648106, 1657], [648112, 1554], [648121, 2688], [648232, 784], [648369, 1231], [649730, 1297], [649731, 1868], [649739, 845], [649944, 1170], [650807, 2689], [650814, 1706], [650834, 1426], [653441, 258], [653628, 611], [654177, 1980], [654326, 71], [654339, 2691], [654519, 1210], [656048, 2517], [656231, 694], [662250, 1310], [662279, 2489], [662416, 1111], [662572, 546], [671052, 2636], [671269, 2077], [671293, 435], [672064, 2091], [672070, 2667], [672071, 2668], [675649, 790], [675756, 1548], [675847, 775], [682508, 2694], [682666, 1552], [682815, 290], [683294, 2695], [683355, 1046], [683360, 1162], [683404, 1510], [684372, 1823], [684531, 1126], [684972, 740], [684986, 141], [686015, 407], [686030, 2320], [686061, 948], [686532, 512], [686559, 291], [687401, 1595], [688361, 1295], [688824, 1613], [688849, 2696], [689152, 2579], [689439, 2604], [693143, 614], [694759, 1760], [695284, 888], [696342, 253], [696343, 254], [696345, 251], [696346, 812], [703953, 912], [708945, 938], [709113, 2159], [709518, 7], [711527, 2453], [711598, 204], [711994, 2697], [714208, 761], [714256, 43], [714260, 1653], [714289, 1443], [714748, 1530], [714879, 1585], [714975, 805], [733167, 1893], [733534, 2698], [733576, 944], [734406, 2699], [735303, 1205], [735311, 319], [737204, 2571], [738941, 1151], [739280, 2701], [739707, 2573], [739816, 620], [746058, 2624], [751408, 1936], [752684, 1108], [753047, 186], [753070, 2580], [753264, 1228], [753265, 1319], [754594, 1298], [755082, 705], [755217, 719], [756061, 1679], [762980, 927], [763009, 1301], [763010, 17], [763181, 2141], [767763, 1536], [779960, 1044], [782486, 699], [785678, 2167], [787016, 1762], [801170, 1763], [814836, 991], [815073, 345], [815096, 1678], [817774, 2704], [820661, 641], [820662, 642], [824245, 287], [851968, 40], [853114, 165], [853115, 2707], [853116, 1473], [853118, 169], [853150, 1872], [853155, 2706], [854434, 2028], [884094, 1064], [892139, 2107], [899085, 2479], [899119, 1504], [907845, 1591], [911198, 1432], [917493, 2551], [919885, 2007], [928873, 1134], [943087, 636], [948147, 1573], [948299, 1875], [948846, 226], [949217, 1654], [949318, 1323], [949511, 1876], [950052, 1100], [950305, 1877], [950986, 1130], [954315, 2480], [964248, 1667], [975567, 1433], [976284, 2021], [976334, 1784], [987188, 457], [987197, 1397], [989397, 1117], [990075, 2506], [1000012, 604], [1022969, 125], [1031453, 1852], [1050679, 1149], [1059953, 1025], [1061127, 1485], [1063773, 2345], [1071981, 2208], [1095507, 2520], [1102364, 1381], [1102400, 1330], [1102407, 1853], [1102442, 164], [1102548, 1594], [1102550, 1830], [1102567, 1353], [1102625, 1840], [1102646, 2108], [1102751, 842], [1102761, 130], [1102794, 2174], [1102850, 256], [1102873, 2191], [1103016, 1597], [1103031, 2222], [1103038, 266], [1103162, 1146], [1103315, 608], [1103383, 1398], [1103394, 1500], [1103499, 2298], [1103610, 1357], [1103676, 382], [1103737, 1983], [1103960, 1709], [1103969, 2223], [1103979, 1806], [1103985, 1123], [1104007, 1838], [1104031, 2374], [1104055, 149], [1104182, 2318], [1104191, 932], [1104258, 1278], [1104261, 2404], [1104300, 2043], [1104379, 716], [1104435, 1286], [1104449, 2035], [1104495, 2420], [1104647, 2169], [1104749, 1233], [1104769, 1021], [1104787, 2244], [1104809, 2437], [1104851, 405], [1104946, 2449], [1104999, 969], [1105011, 983], [1105033, 773], [1105062, 1854], [1105116, 2378], [1105148, 864], [1105221, 742], [1105231, 1831], [1105344, 1062], [1105360, 1387], [1105394, 1767], [1105428, 2030], [1105433, 1265], [1105450, 2419], [1105505, 147], [1105530, 1811], [1105531, 627], [1105574, 918], [1105603, 1347], [1105622, 1563], [1105672, 2344], [1105698, 362], [1105718, 1574], [1105764, 124], [1105810, 840], [1105877, 385], [1105887, 2050], [1105932, 1399], [1106052, 1878], [1106103, 2105], [1106112, 1768], [1106172, 1769], [1106236, 1960], [1106287, 157], [1106298, 274], [1106330, 76], [1106370, 2011], [1106388, 1592], [1106401, 543], [1106406, 542], [1106418, 485], [1106492, 1333], [1106546, 1796], [1106547, 138], [1106568, 1988], [1106630, 1928], [1106671, 2301], [1106764, 499], [1106771, 395], [1106789, 1967], [1106849, 988], [1106854, 1084], [1106966, 655], [1107010, 1825], [1107041, 47], [1107062, 1833], [1107067, 1677], [1107095, 921], [1107136, 355], [1107140, 1910], [1107171, 801], [1107215, 468], [1107312, 2143], [1107319, 2200], [1107325, 925], [1107355, 1572], [1107367, 2288], [1107385, 2521], [1107418, 513], [1107455, 1770], [1107558, 949], [1107567, 2186], [1107572, 2072], [1107674, 562], [1107728, 184], [1107808, 1393], [1107861, 1435], [1108050, 1241], [1108167, 1841], [1108169, 352], [1108175, 597], [1108209, 1989], [1108258, 117], [1108267, 344], [1108329, 573], [1108363, 1113], [1108389, 783], [1108551, 1905], [1108570, 3], [1108597, 241], [1108656, 803], [1108728, 2151], [1108834, 1812], [1108841, 926], [1109017, 28], [1109185, 2559], [1109199, 289], [1109208, 2561], [1109392, 179], [1109439, 1614], [1109542, 1626], [1109566, 2533], [1109581, 1196], [1109830, 727], [1109873, 1186], [1109891, 8], [1109957, 2084], [1110000, 1965], [1110024, 1179], [1110028, 1680], [1110209, 1207], [1110256, 667], [1110390, 755], [1110426, 1525], [1110438, 1929], [1110494, 664], [1110515, 449], [1110520, 1576], [1110531, 2023], [1110546, 2366], [1110563, 0], [1110579, 1354], [1110628, 247], [1110768, 2032], [1110947, 671], [1110950, 1375], [1110998, 261], [1111052, 112], [1111186, 2368], [1111230, 1551], [1111240, 2114], [1111265, 313], [1111304, 1797], [1111614, 1028], [1111733, 575], [1111788, 1341], [1111899, 1267], [1111978, 2292], [1112026, 2316], [1112071, 954], [1112075, 952], [1112099, 731], [1112106, 2566], [1112194, 1056], [1112319, 1376], [1112369, 2430], [1112417, 545], [1112426, 2338], [1112574, 1540], [1112650, 1793], [1112665, 2104], [1112686, 1068], [1112723, 309], [1112767, 1434], [1112911, 244], [1112929, 2036], [1113035, 990], [1113084, 2603], [1113182, 1656], [1113438, 1710], [1113459, 2085], [1113534, 2149], [1113541, 2605], [1113551, 1167], [1113614, 958], [1113739, 2026], [1113742, 2514], [1113828, 1116], [1113831, 1243], [1113852, 35], [1113926, 2012], [1113934, 935], [1113995, 1855], [1114118, 1004], [1114125, 660], [1114153, 547], [1114184, 212], [1114192, 1947], [1114222, 787], [1114239, 672], [1114331, 1711], [1114336, 70], [1114352, 1665], [1114364, 237], [1114388, 467], [1114398, 2369], [1114442, 1003], [1114502, 1566], [1114512, 1674], [1114526, 2131], [1114605, 532], [1114629, 2081], [1114664, 2031], [1114777, 540], [1114838, 730], [1114864, 1879], [1114992, 2245], [1115166, 233], [1115291, 1531], [1115375, 338], [1115456, 894], [1115471, 2013], [1115670, 907], [1115677, 1977], [1115701, 470], [1115790, 1217], [1115886, 2092], [1115959, 2214], [1116044, 488], [1116146, 612], [1116181, 852], [1116268, 61], [1116328, 1274], [1116336, 1890], [1116347, 1856], [1116397, 720], [1116410, 2375], [1116530, 1246], [1116569, 1813], [1116594, 343], [1116629, 770], [1116835, 1057], [1116839, 1060], [1116842, 305], [1116922, 190], [1116974, 765], [1117049, 2619], [1117089, 2620], [1117184, 1880], [1117219, 2128], [1117249, 1198], [1117348, 2119], [1117476, 1712], [1117501, 2471], [1117618, 659], [1117653, 1075], [1117760, 1584], [1117786, 955], [1117833, 1122], [1117920, 2465], [1117942, 1771], [1118017, 2568], [1118083, 1948], [1118092, 1790], [1118120, 690], [1118209, 2277], [1118245, 980], [1118286, 550], [1118302, 1900], [1118332, 314], [1118347, 2477], [1118388, 676], [1118546, 2623], [1118658, 276], [1118764, 1118], [1118823, 1195], [1118848, 1814], [1119004, 561], [1119078, 446], [1119140, 1857], [1119178, 1227], [1119180, 50], [1119211, 1582], [1119216, 2226], [1119295, 830], [1119471, 257], [1119505, 929], [1119623, 2526], [1119654, 474], [1119671, 1938], [1119708, 689], [1119742, 2536], [1119751, 1008], [1119987, 1974], [1120019, 2629], [1120020, 1651], [1120049, 1000], [1120059, 1099], [1120084, 571], [1120138, 982], [1120169, 666], [1120170, 556], [1120197, 336], [1120211, 1858], [1120252, 1418], [1120431, 708], [1120444, 826], [1120563, 1881], [1120643, 1250], [1120650, 1362], [1120713, 1455], [1120731, 1670], [1120777, 1951], [1120786, 293], [1120858, 1815], [1120866, 1052], [1120880, 625], [1120962, 510], [1121057, 1184], [1121063, 2311], [1121176, 2060], [1121254, 196], [1121313, 971], [1121398, 1466], [1121459, 2281], [1121537, 1006], [1121569, 455], [1121603, 1242], [1121659, 1649], [1121739, 2532], [1121867, 146], [1122304, 909], [1122425, 2086], [1122460, 1816], [1122574, 1014], [1122580, 461], [1122642, 1271], [1122704, 1939], [1123068, 356], [1123087, 1382], [1123093, 2638], [1123188, 2125], [1123215, 2562], [1123239, 892], [1123493, 917], [1123530, 2466], [1123553, 1009], [1123576, 2302], [1123689, 1141], [1123756, 1444], [1123867, 1843], [1123926, 1930], [1123991, 522], [1124837, 250], [1124844, 2346], [1125082, 1990], [1125092, 834], [1125258, 959], [1125386, 1713], [1125393, 37], [1125402, 2337], [1125467, 2020], [1125469, 911], [1125492, 188], [1125597, 2643], [1125895, 1991], [1125906, 339], [1125909, 340], [1125944, 1436], [1125953, 772], [1125992, 1978], [1125993, 2644], [1126011, 804], [1126012, 802], [1126029, 459], [1126037, 1166], [1126044, 1107], [1126050, 2218], [1126315, 700], [1126350, 2196], [1126503, 1043], [1127430, 1562], [1127530, 789], [1127541, 1575], [1127551, 1686], [1127558, 2473], [1127566, 2474], [1127619, 1915], [1127657, 777], [1127810, 2650], [1127812, 961], [1127851, 1402], [1127863, 2278], [1127913, 1714], [1128151, 557], [1128198, 301], [1128201, 977], [1128204, 978], [1128208, 976], [1128227, 764], [1128256, 1521], [1128267, 1193], [1128291, 2439], [1128314, 1715], [1128319, 2440], [1128369, 1361], [1128407, 559], [1128425, 2066], [1128430, 208], [1128437, 2653], [1128453, 90], [1128531, 1660], [1128536, 1658], [1128542, 2315], [1128839, 215], [1128846, 521], [1128853, 1076], [1128856, 1074], [1128868, 1992], [1128881, 1027], [1128927, 600], [1128935, 2395], [1128943, 883], [1128945, 882], [1128946, 881], [1128959, 684], [1128974, 536], [1128975, 2556], [1128977, 535], [1128978, 534], [1128982, 2443], [1128985, 1716], [1128990, 2313], [1128997, 312], [1129015, 2654], [1129018, 170], [1129021, 721], [1129027, 501], [1129040, 1407], [1129096, 2087], [1129106, 2061], [1129111, 511], [1129208, 530], [1129243, 1640], [1129367, 439], [1129368, 2657], [1129369, 2658], [1129442, 2187], [1129443, 1212], [1129494, 1541], [1129518, 1406], [1129570, 752], [1129572, 2358], [1129573, 754], [1129608, 1423], [1129610, 915], [1129621, 1200], [1129629, 2596], [1129683, 524], [1129778, 744], [1129798, 1832], [1129835, 213], [1129907, 199], [1129994, 299], [1130069, 974], [1130080, 967], [1130243, 2660], [1130356, 2098], [1130454, 2661], [1130539, 728], [1130567, 2046], [1130568, 178], [1130586, 207], [1130600, 318], [1130634, 433], [1130637, 2111], [1130653, 648], [1130657, 2272], [1130676, 1340], [1130678, 855], [1130680, 2067], [1130780, 1518], [1130808, 219], [1130847, 1339], [1130856, 1238], [1130915, 1993], [1130927, 566], [1130929, 57], [1130931, 673], [1130934, 674], [1131116, 1717], [1131137, 1984], [1131149, 1329], [1131150, 1219], [1131163, 2669], [1131164, 1422], [1131165, 2239], [1131167, 1545], [1131172, 1437], [1131180, 2672], [1131184, 200], [1131189, 198], [1131192, 1643], [1131195, 2411], [1131198, 2616], [1131223, 2563], [1131230, 430], [1131236, 428], [1131257, 2677], [1131258, 2670], [1131266, 2417], [1131267, 759], [1131270, 82], [1131274, 856], [1131277, 1349], [1131300, 1532], [1131301, 1533], [1131305, 688], [1131312, 1071], [1131314, 2682], [1131330, 1208], [1131334, 2678], [1131335, 1206], [1131345, 418], [1131348, 413], [1131359, 296], [1131360, 1718], [1131374, 1632], [1131414, 653], [1131420, 2687], [1131421, 2686], [1131464, 766], [1131466, 2490], [1131471, 1394], [1131549, 2554], [1131550, 2585], [1131557, 1516], [1131565, 2459], [1131607, 776], [1131611, 2201], [1131634, 1073], [1131639, 1175], [1131647, 335], [1131719, 537], [1131728, 1979], [1131734, 322], [1131741, 206], [1131745, 205], [1131748, 1859], [1131752, 1646], [1131754, 1648], [1131828, 941], [1132073, 2692], [1132083, 1663], [1132157, 1985], [1132285, 680], [1132385, 619], [1132406, 2693], [1132416, 2635], [1132418, 1704], [1132434, 159], [1132443, 486], [1132459, 2037], [1132461, 14], [1132486, 1940], [1132505, 171], [1132706, 424], [1132731, 2452], [1132809, 2161], [1132815, 2152], [1132857, 431], [1132864, 782], [1132887, 2362], [1132922, 874], [1132948, 1931], [1132968, 1334], [1133004, 1949], [1133008, 1356], [1133010, 2615], [1133028, 717], [1133047, 1617], [1133196, 951], [1133338, 1480], [1133390, 2171], [1133417, 1082], [1133428, 1211], [1133469, 1638], [1133846, 2567], [1133930, 2690], [1134022, 1886], [1134031, 23], [1134056, 208], [1134197, 986], [1134320, 1087], [1134346, 1153], [1134348, 884], [1134865, 353], [1135082, 2138], [1135108, 1891], [1135115, 2630], [1135122, 1400], [1135125, 1403], [1135137, 1299], [1135345, 2572], [1135358, 880], [1135368, 1860], [1135455, 2700], [1135589, 981], [1135746, 2347], [1135750, 1017], [1135894, 469], [1135899, 1932], [1135955, 390], [1136040, 2703], [1136110, 1247], [1136310, 1493], [1136342, 2557], [1136393, 617], [1136397, 1807], [1136422, 416], [1136442, 1861], [1136446, 2140], [1136447, 1316], [1136449, 1315], [1136631, 2702], [1136634, 1672], [1136791, 2441], [1136814, 53], [1137140, 713], [1137466, 919], [1138027, 2150], [1138043, 2469], [1138091, 750], [1138619, 307], [1138755, 192], [1138968, 848], [1138970, 1078], [1139009, 2705], [1139195, 1544], [1139928, 2330], [1140040, 1808], [1140230, 1363], [1140231, 1364], [1140289, 1994], [1140543, 2534], [1140547, 2044], [1140548, 923], [1152075, 1923], [1152143, 767], [1152150, 870], [1152162, 503], [1152179, 1132], [1152194, 1817], [1152244, 1619], [1152259, 283], [1152272, 503], [1152277, 366], [1152290, 32], [1152307, 995], [1152308, 1630], [1152358, 2220], [1152379, 1069], [1152394, 1048], [1152421, 1040], [1152436, 238], [1152448, 995], [1152490, 1031], [1152508, 34], [1152564, 1168], [1152569, 2421], [1152633, 814], [1152663, 2598], [1152673, 366], [1152676, 367], [1152711, 930], [1152714, 928], [1152740, 2093], [1152761, 1033], [1152821, 235], [1152858, 786], [1152859, 785], [1152896, 1829], [1152904, 503], [1152910, 2328], [1152917, 691], [1152944, 1011], [1152958, 1106], [1152959, 1321], [1152975, 995], [1152991, 283], [1153003, 2177], [1153014, 166], [1153024, 2299], [1153031, 1511], [1153056, 2082], [1153064, 280], [1153065, 72], [1153091, 847], [1153097, 846], [1153101, 950], [1153106, 2426], [1153148, 2153], [1153150, 950], [1153160, 1285], [1153166, 709], [1153169, 1288], [1153183, 624], [1153195, 2601], [1153254, 1539], [1153262, 1635], [1153264, 1637], [1153275, 195], [1153280, 1040], [1153287, 137], [1153577, 970], [1153703, 995], [1153724, 709], [1153728, 793], [1153736, 679], [1153784, 1689], [1153786, 2496], [1153811, 1487], [1153816, 1486], [1153853, 357], [1153860, 1033], [1153861, 1031], [1153866, 1587], [1153877, 1707], [1153879, 1700], [1153889, 2273], [1153891, 807], [1153896, 806], [1153897, 2307], [1153899, 2522], [1153900, 1252], [1153922, 1465], [1153933, 1355], [1153942, 2389], [1153943, 823], [1153945, 820], [1153946, 821], [1154012, 1001], [1154042, 678], [1154068, 1522], [1154071, 2683], [1154074, 2513], [1154076, 2642], [1154103, 1235], [1154123, 1020], [1154124, 1020], [1154169, 1453], [1154173, 66], [1154176, 1565], [1154229, 29], [1154230, 1350], [1154232, 2399], [1154233, 2400], [1154251, 366], [1154276, 920], [1154459, 1040], [1154500, 2188], [1154520, 278], [1154524, 2454], [1154525, 1835], [1155073, 712]] \ No newline at end of file diff --git a/cora_sota.ipynb b/cora_sota.ipynb index e1725f6..9259894 100644 --- a/cora_sota.ipynb +++ b/cora_sota.ipynb @@ -4,10 +4,24 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Recent years have shown an incredible proliferation of sophisticated Machine Learning algorithms. Keeping up with that development has become a full time job. Wouldn't it be nice to have a tool that fits all and still provides cutting edge results?! Look no further: getML to the rescue!\n", + "# CORA: getML performance breaks record\n", "\n", - "In previous notebooks we have analysed the performance of getML on the CORA dataset, and benchmarked it extensively against alternative approaches. \n", - "In this short notebook, we demonstrate, how getML outperforms the State of the Art performance with just a little tweak in its configurations." + "Recent years have shown an incredible proliferation of sophisticated Machine Learning algorithms. Keeping up with that development has become a full time job. Let alone to stay atop of the game. \n", + "\n", + "Wouldn't it be great to have a tool that \"fits all\" and still provides cutting edge results?! Look no further, getML has it all: consistent implementation across use cases and superior predictive performance.\n", + "\n", + "Case in point is the popular CORA dataset. In previous notebooks we have [analyzed the performance of getML on the CORA dataset](https://getml.com/latest/examples/enterprise-notebooks/cora/), and [benchmarked it against alternative approaches](https://getml.com/latest/examples/enterprise-notebooks/kaggle_notebooks/cora_getml_vs_gnn/). \n", + "In this short notebook, we demonstrate, how getML outperforms the State of the Art performance with just a little tweak of its parameters.\n", + "\n", + "The record holder on [papers with code](https://paperswithcode.com/sota/node-classification-on-cora) up until now is Izadi et al. (2020) using Graph Neural Networks to predict the correct label of the papers' abstract in the CORA dataset. We align our approach as much as possible with this paper to ensure maximum comparability.\n", + "\n", + "Summary:\n", + "\n", + "- Prediction type: __Classification model__\n", + "- Domain: __Academia__\n", + "- Prediction target: __The category of a paper__ \n", + "- Source data: __Relational data set, 3 tables__\n", + "- Population size: __2,708__" ] }, { @@ -26,63 +40,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Note: you may need to restart the kernel to use updated packages.\n", - "Processing /home/jan-meyer/Documents/gitlab/monorepo/src/python-api\n", - " Installing build dependencies ... \u001b[?25ldone\n", - "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", - "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", - "\u001b[?25hCollecting jinja2 (from getml==1.5.0)\n", - " Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)\n", - "Collecting numpy~=1.22 (from getml==1.5.0)\n", - " Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", - "Collecting pandas (from getml==1.5.0)\n", - " Using cached pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)\n", - "Collecting pyarrow~=16.0 (from getml==1.5.0)\n", - " Using cached pyarrow-16.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.0 kB)\n", - "Collecting rich~=13.0 (from getml==1.5.0)\n", - " Using cached rich-13.8.1-py3-none-any.whl.metadata (18 kB)\n", - "Requirement already satisfied: typing-extensions~=4.0 in ./.venv/lib/python3.11/site-packages (from getml==1.5.0) (4.12.2)\n", - "Collecting markdown-it-py>=2.2.0 (from rich~=13.0->getml==1.5.0)\n", - " Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n", - "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in ./.venv/lib/python3.11/site-packages (from rich~=13.0->getml==1.5.0) (2.18.0)\n", - "Collecting MarkupSafe>=2.0 (from jinja2->getml==1.5.0)\n", - " Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in ./.venv/lib/python3.11/site-packages (from pandas->getml==1.5.0) (2.9.0.post0)\n", - "Collecting pytz>=2020.1 (from pandas->getml==1.5.0)\n", - " Using cached pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)\n", - "Collecting tzdata>=2022.7 (from pandas->getml==1.5.0)\n", - " Using cached tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)\n", - "Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich~=13.0->getml==1.5.0)\n", - " Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", - "Requirement already satisfied: six>=1.5 in ./.venv/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas->getml==1.5.0) (1.16.0)\n", - "Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)\n", - "Using cached pyarrow-16.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (40.8 MB)\n", - "Using cached rich-13.8.1-py3-none-any.whl (241 kB)\n", - "Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)\n", - "Using cached pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)\n", - "Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n", - "Using cached MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)\n", - "Using cached pytz-2024.2-py2.py3-none-any.whl (508 kB)\n", - "Using cached tzdata-2024.2-py2.py3-none-any.whl (346 kB)\n", - "Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", - "Building wheels for collected packages: getml\n", - " Building wheel for getml (pyproject.toml) ... \u001b[?25ldone\n", - "\u001b[?25h Created wheel for getml: filename=getml-1.5.0-py3-none-any.whl size=361543 sha256=8c3bd51ffa562e7155202fdf5f34a2c2a30b03798672483adbd5f40e9cccbdeb\n", - " Stored in directory: /home/jan-meyer/.cache/pip/wheels/f9/41/ea/72f967c5d3c155fbc2b69b55fe2cf1d2cdedb226e79aaea439\n", - "Successfully built getml\n", - "Installing collected packages: pytz, tzdata, numpy, mdurl, MarkupSafe, pyarrow, pandas, markdown-it-py, jinja2, rich, getml\n", - "Successfully installed MarkupSafe-2.1.5 getml-1.5.0 jinja2-3.1.4 markdown-it-py-3.0.0 mdurl-0.1.2 numpy-1.26.4 pandas-2.2.3 pyarrow-16.1.0 pytz-2024.2 rich-13.8.1 tzdata-2024.2\n" + "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install -q \"ipywidgets==8.1.5\"\n", - "!pip install /home/jan-meyer/Documents/gitlab/monorepo/src/python-api" + "%pip install -q \"getml==1.5.0\" \"ipywidgets==8.1.5\"" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -97,6 +65,7 @@ "source": [ "import os\n", "\n", + "import json\n", "import numpy as np\n", "import pandas as pd\n", "\n", @@ -111,21 +80,31 @@ "metadata": {}, "outputs": [ { - "ename": "OSError", - "evalue": "Could not find getML executable in any of the following locations:\n['/home/jan-meyer/.getML', '/usr/local/getML', '/home/jan-meyer/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/.getML']\n\nRefer to the installation documentation for more information:\nhttps://getml.com/latest/install/", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[3], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#getml.engine.shutdown()|\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mgetml\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlaunch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mallow_remote_ips\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtoken\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtoken\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m getml\u001b[38;5;241m.\u001b[39mengine\u001b[38;5;241m.\u001b[39mset_project(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcora_sota\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/engine/_launch.py:274\u001b[0m, in \u001b[0;36mlaunch\u001b[0;34m(allow_push_notifications, allow_remote_ips, home_directory, http_port, in_memory, install, launch_browser, log, project_directory, proxy_url, token, quiet)\u001b[0m\n\u001b[1;32m 272\u001b[0m executable_path \u001b[38;5;241m=\u001b[39m locate_executable()\n\u001b[1;32m 273\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m executable_path:\n\u001b[0;32m--> 274\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\n\u001b[1;32m 275\u001b[0m COULD_NOT_FIND_EXECUTABLE_ERROR_MSG_TEMPLATE\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 276\u001b[0m install_locations\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mstr\u001b[39m(p) \u001b[38;5;28;01mfor\u001b[39;00m p \u001b[38;5;129;01min\u001b[39;00m INSTALL_LOCATIONS],\n\u001b[1;32m 277\u001b[0m install_docs_url\u001b[38;5;241m=\u001b[39mINSTALL_DOCS_URL,\n\u001b[1;32m 278\u001b[0m )\n\u001b[1;32m 279\u001b[0m )\n\u001b[1;32m 280\u001b[0m getml_dir \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 281\u001b[0m Path(home_directory) \u001b[38;5;28;01mif\u001b[39;00m home_directory \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m Path\u001b[38;5;241m.\u001b[39mhome() \u001b[38;5;241m/\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.getML\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 282\u001b[0m )\n\u001b[1;32m 283\u001b[0m project_dir \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 284\u001b[0m Path(project_directory)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m project_directory \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m getml_dir \u001b[38;5;241m/\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprojects\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 287\u001b[0m )\n", - "\u001b[0;31mOSError\u001b[0m: Could not find getML executable in any of the following locations:\n['/home/jan-meyer/.getML', '/usr/local/getML', '/home/jan-meyer/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/.getML']\n\nRefer to the installation documentation for more information:\nhttps://getml.com/latest/install/" + "name": "stdout", + "output_type": "stream", + "text": [ + "Launching ./getML --allow-push-notifications=true --allow-remote-ips=false --home-directory=/home/user/.getML --in-memory=true --install=false --launch-browser=true --log=false --project-directory=/home/user/.getML/projects in /home/user/.getML/getml-enterprise-1.5.0-amd64-linux...\n", + "Launched the getML Engine. The log output will be stored in /home/user/.getML/logs/getml_20241119160445.log\n", + "\u001b[2K Loading pipelines... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" ] + }, + { + "data": { + "text/html": [ + "
Connected to project 'cora_sota'.\n",
+       "
\n" + ], + "text/plain": [ + "Connected to project \u001b[32m'cora_sota'\u001b[0m.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "#getml.engine.shutdown()|\n", - "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", + "getml.engine.launch()\n", "getml.engine.set_project(\"cora_sota\")" ] }, @@ -208,7 +187,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here we deviate from the regular procedure by introducing the exact same train test split as the [current top seed](https://paperswithcode.com/paper/optimization-of-graph-neural-networks-with). While we contend, that testing on a single split is not sufficient to demonstrate performance of an algorithm on a specific data set, we proceed as such in order to maximize comparability with the current incumbent of the Leader Board. For a more extensive investigation of the getML performance on the CORA dataset, checkout our other notebooks. " + "Here we deviate from the regular procedure by introducing the exact same train test split as the [current top seed](https://paperswithcode.com/paper/optimization-of-graph-neural-networks-with). While we contend, that testing on a single split is not sufficient to demonstrate performance of an algorithm on a specific data set, we proceed as such in order to maximize comparability with the current incumbent of the Leader Board. For a more extensive investigation of the getML performance on the CORA dataset, checkout [our other notebooks](https://getml.com/latest/examples/enterprise-notebooks/kaggle_notebooks/). " ] }, { @@ -220,27 +199,27 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ - "if not os.path.exists(\"assets/zuordnung.txt\"):\n", - " from zuordnung import run_zuordnung\n", + "if not os.path.exists(\"assets/zuordnung.json\"):\n", + " !pip install torch\n", + " !pip install -q git+https://github.com/pyg-team/pytorch_geometric.git\n", + " from utils.zuordnung import run_zuordnung\n", "\n", - " # may take 90 minutes or longer to run\n", + " # may take 90 minutes or longer to run|\n", " run_zuordnung(content)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "f = open(\"assets/zuordnung.txt\", \"r\")\n", - "zuordnung = f.read()\n", - "zuordnung = eval(zuordnung)\n", - "\n", + "with open(\"assets/zuordnung.json\", \"r\") as f:\n", + " zuordnung = json.load(f)\n", "\n", "paper_df = paper.to_pandas()\n", "paper_df[\"paper_id\"] = paper_df[\"paper_id\"].astype(int)\n", @@ -254,7 +233,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We split the sorted data set according to the instructions in the GNN paper (see: IV. Experiments, A. Datasets, third split)" + "We split the sorted data set according to the instructions in the Izadi et al. paper (see: IV. Experiments, A. Datasets, third split)" ] }, { @@ -274,13 +253,6 @@ ")" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Similar to the approach in the paper, we perform hyperparameter optimization and select the parameters that perform best on the validation set. The performance on the test set serves as our benchmark value. " - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -312,7 +284,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The goal is to predict seven different labels. We generate a target column for each of those labels. We also have to separate the data set into a training and testing set." + "The goal is to predict seven different labels. We generate a target column for each of those labels." ] }, { @@ -873,7 +845,7 @@ "metadata": {}, "source": [ "## 2.2. Hyperparameter Search\n", - "To mimic the approach of the GNN paper, we conduct a small Hyperparameter search, training on the train data, validate on the validate data and use the untouched test data as holdout set to get an unbiased estimate of the true performance.\n", + "To mimic the approach of the GNN paper, we conduct a small Hyperparameter search, train on the train data, validate on the validate data and use the untouched test data as holdout set to get an unbiased estimate of the true performance.\n", "For expediency, we make a grit search along two dimensions and keep the number of levels deliberately small:\n", " \n", " num_features: 250, 300, 350\n", @@ -914,22 +886,7 @@ "cell_type": "code", "execution_count": 16, "metadata": {}, - "outputs": [ - { - "ename": "OSError", - "evalue": "The Mapping preprocessor is not supported in the community edition. Please upgrade to getML enterprise to use this. An overview of what is supported in the community edition can be found in the official getML documentation.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[16], line 17\u001b[0m\n\u001b[1;32m 9\u001b[0m fast_prop \u001b[38;5;241m=\u001b[39m getml\u001b[38;5;241m.\u001b[39mfeature_learning\u001b[38;5;241m.\u001b[39mFastProp(\n\u001b[1;32m 10\u001b[0m loss_function\u001b[38;5;241m=\u001b[39mgetml\u001b[38;5;241m.\u001b[39mfeature_learning\u001b[38;5;241m.\u001b[39mloss_functions\u001b[38;5;241m.\u001b[39mCrossEntropyLoss,\n\u001b[1;32m 11\u001b[0m aggregation\u001b[38;5;241m=\u001b[39maggregation_set,\n\u001b[1;32m 12\u001b[0m num_features\u001b[38;5;241m=\u001b[39mnum_feat,\n\u001b[1;32m 13\u001b[0m )\n\u001b[1;32m 15\u001b[0m pipe1\u001b[38;5;241m.\u001b[39mfeature_learners \u001b[38;5;241m=\u001b[39m [fast_prop]\n\u001b[0;32m---> 17\u001b[0m \u001b[43mpipe1\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 19\u001b[0m probs_val \u001b[38;5;241m=\u001b[39m pipe1\u001b[38;5;241m.\u001b[39mpredict(container\u001b[38;5;241m.\u001b[39mvalidation)\n\u001b[1;32m 20\u001b[0m val_acc \u001b[38;5;241m=\u001b[39m prob_to_acc(probs_val, actual_labels_val, class_label)\n", - "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/pipeline/pipeline.py:1295\u001b[0m, in \u001b[0;36mPipeline.fit\u001b[0;34m(self, population_table, peripheral_tables, validation_table, check)\u001b[0m\n\u001b[1;32m 1292\u001b[0m _check_df_types(population_table, peripheral_tables)\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m check:\n\u001b[0;32m-> 1295\u001b[0m warnings \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpopulation_table\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mperipheral_tables\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m warnings:\n\u001b[1;32m 1297\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTo see the issues in full, run .check() on the pipeline.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/pipeline/pipeline.py:1106\u001b[0m, in \u001b[0;36mPipeline.check\u001b[0;34m(self, population_table, peripheral_tables)\u001b[0m\n\u001b[1;32m 1104\u001b[0m msg \u001b[38;5;241m=\u001b[39m comm\u001b[38;5;241m.\u001b[39mlog(sock)\n\u001b[1;32m 1105\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m msg \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSuccess!\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m-> 1106\u001b[0m \u001b[43mcomm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_engine_exception\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1107\u001b[0m issues \u001b[38;5;241m=\u001b[39m Issues(comm\u001b[38;5;241m.\u001b[39mrecv_issues(sock))\n\u001b[1;32m 1108\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(issues) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", - "File \u001b[0;32m~/Documents/github/getml-demo/.venv/lib/python3.11/site-packages/getml/exceptions.py:148\u001b[0m, in \u001b[0;36mhandle_engine_exception\u001b[0;34m(msg, extra)\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m handler \u001b[38;5;129;01min\u001b[39;00m EngineExceptionHandlerRegistry\u001b[38;5;241m.\u001b[39mhandlers:\n\u001b[1;32m 146\u001b[0m handler(msg, extra\u001b[38;5;241m=\u001b[39mextra)\n\u001b[0;32m--> 148\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(msg)\n", - "\u001b[0;31mOSError\u001b[0m: The Mapping preprocessor is not supported in the community edition. Please upgrade to getML enterprise to use this. An overview of what is supported in the community edition can be found in the official getML documentation." - ] - } - ], + "outputs": [], "source": [ "%%capture\n", "parameter_sweep = {}\n", @@ -966,19 +923,7 @@ "cell_type": "code", "execution_count": 17, "metadata": {}, - "outputs": [ - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m best_val_acc_comb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43msorted\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mparameter_sweep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mval_acc\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m)\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m[\u001b[38;5;241m1\u001b[39m]\n", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" - ] - } - ], + "outputs": [], "source": [ "best_val_acc_comb = list(\n", " sorted(parameter_sweep.items(), key=lambda item: item[1][\"val_acc\"], reverse=True)\n", @@ -987,16 +932,16 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Accuracy on validation set: 0.874\n", + "Accuracy on validation set: 0.876\n", "Number of features used: 300\n", - "Aggregation set used: frozenset({'AVG', 'MIN', 'MAX', 'SUM', 'COUNT'})\n" + "Aggregation set used: frozenset({'MAX', 'SUM', 'AVG', 'COUNT', 'MIN'})\n" ] } ], @@ -1015,7 +960,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -1032,41 +977,13 @@ "output_type": "display_data" }, { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "124a185842c4456aae45e21aeaa24d74", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "
\n",
-       "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] }, { "data": { @@ -1095,54 +1012,17 @@ "output_type": "display_data" }, { - "data": { - "text/html": [ - "
\n",
-       "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a33d37208b4e41ec970c400a988d3505", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "
\n",
-       "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Retrieving features from cache... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] }, { "data": { @@ -1161,46 +1041,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Time taken: 0:00:01.034566.\n", - "\n" + "Time taken: 0:00:00.518892.\n", + "\n", + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2746ffa55ef84a32a93888ef3938ea84", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-      ],
-      "text/plain": []
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "
\n",
-       "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -1220,7 +1069,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1248,251 +1097,20 @@ "source": [ "This notebook sought out to attain a new record predictive performance on the well known Cora data set by using exclusively getML's feature learning framework. To maximize comparability we mimicked the methodology of the current record holder.\n", "\n", - "We replicated the exact data split used in their research and performed hyperparameter optimization in a similar manner. On the holdout dataset, we achieved an accuracy of 90.6%, which compares favorably to the previous record of 90.16%. Therefore, our solution, combining FastProp for automated feature engineering and XGBoost for classification, can now be considered the new state-of-the-art on this popular benchmark dataset.\n", + "We replicated the exact data split used in their research and performed hyperparameter optimization in a similar manner. On the holdout dataset, we achieved an accuracy of 90.6%, which compares favorably to the previous record of 90.16%. Therefore, our solution, combining FastProp for automated feature engineering and XGBoost for classification, can now be considered the new state of the art performance on this popular benchmark dataset.\n", "\n", "Remarkable is the ease of implementation. Requiring only minimal tweaking of parameters, getML beat an advanced Graph Neural Network algorithm. Cutting edge predictive performance is now within reach of every Data Scientist by simply incorporating getML in their prediction pipelines." ] }, { - "cell_type": "code", - "execution_count": 33, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[(3,\n", - " {'num_feat': 300,\n", - " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", - " 'val_acc': 0.874}),\n", - " (6,\n", - " {'num_feat': 350,\n", - " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", - " 'val_acc': 0.874}),\n", - " (0,\n", - " {'num_feat': 250,\n", - " 'agg_set': frozenset({'AVG', 'COUNT', 'MAX', 'MIN', 'SUM'}),\n", - " 'val_acc': 0.872}),\n", - " (4,\n", - " {'num_feat': 300,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'FIRST',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TREND'}),\n", - " 'val_acc': 0.87}),\n", - " (7,\n", - " {'num_feat': 350,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'FIRST',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TREND'}),\n", - " 'val_acc': 0.866}),\n", - " (1,\n", - " {'num_feat': 250,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'FIRST',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TREND'}),\n", - " 'val_acc': 0.864}),\n", - " (5,\n", - " {'num_feat': 300,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT DISTINCT OVER COUNT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'EWMA_1D',\n", - " 'EWMA_1H',\n", - " 'EWMA_1M',\n", - " 'EWMA_1S',\n", - " 'EWMA_30D',\n", - " 'EWMA_365D',\n", - " 'EWMA_7D',\n", - " 'EWMA_90D',\n", - " 'EWMA_TREND_1D',\n", - " 'EWMA_TREND_1H',\n", - " 'EWMA_TREND_1M',\n", - " 'EWMA_TREND_1S',\n", - " 'EWMA_TREND_30D',\n", - " 'EWMA_TREND_365D',\n", - " 'EWMA_TREND_7D',\n", - " 'EWMA_TREND_90D',\n", - " 'FIRST',\n", - " 'KURTOSIS',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'NUM MAX',\n", - " 'NUM MIN',\n", - " 'Q1',\n", - " 'Q10',\n", - " 'Q25',\n", - " 'Q5',\n", - " 'Q75',\n", - " 'Q90',\n", - " 'Q95',\n", - " 'Q99',\n", - " 'SKEW',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TIME SINCE FIRST MAXIMUM',\n", - " 'TIME SINCE FIRST MINIMUM',\n", - " 'TIME SINCE LAST MAXIMUM',\n", - " 'TIME SINCE LAST MINIMUM',\n", - " 'TREND',\n", - " 'VAR',\n", - " 'VARIATION COEFFICIENT'}),\n", - " 'val_acc': 0.862}),\n", - " (8,\n", - " {'num_feat': 350,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT DISTINCT OVER COUNT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'EWMA_1D',\n", - " 'EWMA_1H',\n", - " 'EWMA_1M',\n", - " 'EWMA_1S',\n", - " 'EWMA_30D',\n", - " 'EWMA_365D',\n", - " 'EWMA_7D',\n", - " 'EWMA_90D',\n", - " 'EWMA_TREND_1D',\n", - " 'EWMA_TREND_1H',\n", - " 'EWMA_TREND_1M',\n", - " 'EWMA_TREND_1S',\n", - " 'EWMA_TREND_30D',\n", - " 'EWMA_TREND_365D',\n", - " 'EWMA_TREND_7D',\n", - " 'EWMA_TREND_90D',\n", - " 'FIRST',\n", - " 'KURTOSIS',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'NUM MAX',\n", - " 'NUM MIN',\n", - " 'Q1',\n", - " 'Q10',\n", - " 'Q25',\n", - " 'Q5',\n", - " 'Q75',\n", - " 'Q90',\n", - " 'Q95',\n", - " 'Q99',\n", - " 'SKEW',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TIME SINCE FIRST MAXIMUM',\n", - " 'TIME SINCE FIRST MINIMUM',\n", - " 'TIME SINCE LAST MAXIMUM',\n", - " 'TIME SINCE LAST MINIMUM',\n", - " 'TREND',\n", - " 'VAR',\n", - " 'VARIATION COEFFICIENT'}),\n", - " 'val_acc': 0.854}),\n", - " (2,\n", - " {'num_feat': 250,\n", - " 'agg_set': frozenset({'AVG',\n", - " 'COUNT',\n", - " 'COUNT DISTINCT',\n", - " 'COUNT DISTINCT OVER COUNT',\n", - " 'COUNT MINUS COUNT DISTINCT',\n", - " 'EWMA_1D',\n", - " 'EWMA_1H',\n", - " 'EWMA_1M',\n", - " 'EWMA_1S',\n", - " 'EWMA_30D',\n", - " 'EWMA_365D',\n", - " 'EWMA_7D',\n", - " 'EWMA_90D',\n", - " 'EWMA_TREND_1D',\n", - " 'EWMA_TREND_1H',\n", - " 'EWMA_TREND_1M',\n", - " 'EWMA_TREND_1S',\n", - " 'EWMA_TREND_30D',\n", - " 'EWMA_TREND_365D',\n", - " 'EWMA_TREND_7D',\n", - " 'EWMA_TREND_90D',\n", - " 'FIRST',\n", - " 'KURTOSIS',\n", - " 'LAST',\n", - " 'MAX',\n", - " 'MEDIAN',\n", - " 'MIN',\n", - " 'MODE',\n", - " 'NUM MAX',\n", - " 'NUM MIN',\n", - " 'Q1',\n", - " 'Q10',\n", - " 'Q25',\n", - " 'Q5',\n", - " 'Q75',\n", - " 'Q90',\n", - " 'Q95',\n", - " 'Q99',\n", - " 'SKEW',\n", - " 'STDDEV',\n", - " 'SUM',\n", - " 'TIME SINCE FIRST MAXIMUM',\n", - " 'TIME SINCE FIRST MINIMUM',\n", - " 'TIME SINCE LAST MAXIMUM',\n", - " 'TIME SINCE LAST MINIMUM',\n", - " 'TREND',\n", - " 'VAR',\n", - " 'VARIATION COEFFICIENT'}),\n", - " 'val_acc': 0.848})]" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "list(\n", - " sorted(parameter_sweep.items(), key=lambda item: item[1][\"val_acc\"], reverse=True)\n", - ")" + "# References\n", + "\n", + "Izadi, Fang, Stevenson, Lin (2020): Optimization of Graph Neural Networks with Natural Gradient Descent \n", + "https://arxiv.org/pdf/2008.09624v1" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/utils/zuordnung.py b/utils/zuordnung.py new file mode 100644 index 0000000..057f1d1 --- /dev/null +++ b/utils/zuordnung.py @@ -0,0 +1,56 @@ + +import json +import numpy as np +from torch_geometric.datasets import Planetoid + + +def run_zuordnung(getml_word_data): + """ + The matching process is based on the word matrix of the abstracts' content. That data is stored differently in the data of Izadi et al's GNN paper (hereinafter referred to as GNN paper or GNN data) and getML's data source. In the GNN's case, words are stored one-hot-encoded in a matrix (e.g. [0,0,1,0,1]), while getML data source simply lists the words and their associated index in the on-hot-encoded word matrix (e.g.: [word2, word4]). The following routine first retrieves the index of the GNN matrix. Due to different offsets, the word indices between both data source do not align. Therefore, we compute the difference between adjacent word indices and compare them across sources. If the patterns match, we have found a match between both sources and save their associated dataframe indices. + + It turns out there is a perfect match between both sources and every observation in one source finds its counterpart in the other source. + """ + + getml_word_data = getml_word_data.to_pandas() + + gnn_word_data = Planetoid(name="Cora", root="") + + zuordnung = [] + for getml_idx in getml_word_data["paper_id"].unique(): + getml_positions = [ + int(ele[4:]) + for ele in getml_word_data[getml_word_data["paper_id"] == getml_idx][ + "word_cited_id" + ].values + ] + getml_positions = np.sort(getml_positions) + + getml_words_pattern = [ + j - i for i, j in zip(getml_positions[:-1], getml_positions[1:]) + ] + + for gnn_idx in range(len(gnn_word_data[0].x)): + gnn_positions = [ + i + for i, x in enumerate( + [int(x) for x in list(gnn_word_data[0].x[gnn_idx])] + ) + if x == 1 + ] + gnn_words_pattern = [ + j - i for i, j in zip(gnn_positions[:-1], gnn_positions[1:]) + ] + + if gnn_words_pattern == getml_words_pattern: + match = (int(getml_idx), gnn_idx) + zuordnung.append(match) + break + + + with open('assets/zuordnung.json', 'w') as file: + print("Writing to file") + json.dump(zuordnung, file) + print('Done') + + print(zuordnung) + From d6d6078678597e0327ce834f12ba13e137b408db Mon Sep 17 00:00:00 2001 From: Alexander Uhlig <2765645+alxn4@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:31:56 +0000 Subject: [PATCH 4/8] Update intro and conclusion. --- cora_sota.ipynb | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/cora_sota.ipynb b/cora_sota.ipynb index 9259894..9e17780 100644 --- a/cora_sota.ipynb +++ b/cora_sota.ipynb @@ -6,14 +6,11 @@ "source": [ "# CORA: getML performance breaks record\n", "\n", - "Recent years have shown an incredible proliferation of sophisticated Machine Learning algorithms. Keeping up with that development has become a full time job. Let alone to stay atop of the game. \n", + "Graph Neural Networks (GNNs) are renowned for their outstanding performance on graph-structured data, excelling in tasks like node classification and link prediction. However, deploying GNNs is often complex. Tasks such as graph preprocessing, optimizing architectures, tuning hyperparameters, and ensuring convergence are non-trivial challenges when working with neural network based approaches, requiring considerable time investment.\n", "\n", - "Wouldn't it be great to have a tool that \"fits all\" and still provides cutting edge results?! Look no further, getML has it all: consistent implementation across use cases and superior predictive performance.\n", + "**getML** offers a faster and more user-friendly alternative. Leveraging **getML FastProp**, the fastest open-source tool for propositionalization-based automation of feature engineering on relational data and time series, FastProp transforms relational data into a single feature table suitable for standard machine learning models by efficiently computing a wide range of statistical and temporal aggregates. When combined with models like **XGBoost**, getML delivers a straightforward yet highly performant approach to predictive modeling. This method eliminates the need for complex GNN-based approaches while ensuring coding efficiency, computational speed, and high model accuracy.\n", "\n", - "Case in point is the popular CORA dataset. In previous notebooks we have [analyzed the performance of getML on the CORA dataset](https://getml.com/latest/examples/enterprise-notebooks/cora/), and [benchmarked it against alternative approaches](https://getml.com/latest/examples/enterprise-notebooks/kaggle_notebooks/cora_getml_vs_gnn/). \n", - "In this short notebook, we demonstrate, how getML outperforms the State of the Art performance with just a little tweak of its parameters.\n", - "\n", - "The record holder on [papers with code](https://paperswithcode.com/sota/node-classification-on-cora) up until now is Izadi et al. (2020) using Graph Neural Networks to predict the correct label of the papers' abstract in the CORA dataset. We align our approach as much as possible with this paper to ensure maximum comparability.\n", + "This notebook demonstrates how **getML** surpasses the previous record on the CORA dataset—set by the GNN-based approach of [Izadi et al. (2020)](https://paperswithcode.com/sota/node-classification-on-cora)—with minimal code and configuration.\n", "\n", "Summary:\n", "\n", @@ -1095,11 +1092,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This notebook sought out to attain a new record predictive performance on the well known Cora data set by using exclusively getML's feature learning framework. To maximize comparability we mimicked the methodology of the current record holder.\n", + "This notebook demonstrates how **getML**, powered by its **FastProp** feature engineering algorithm and **XGBoost**, surpasses the current state-of-the-art on the CORA dataset. By replicating the data split and hyperparameter optimization methods of Izadi et al., we achieve a record-breaking accuracy of **90.6%**, exceeding their previous benchmark of 90.16%.\n", + "\n", + "At the core of this success is **FastProp**, which automates feature creation for relational datasets by efficiently generating statistical and temporal aggregates.\n", "\n", - "We replicated the exact data split used in their research and performed hyperparameter optimization in a similar manner. On the holdout dataset, we achieved an accuracy of 90.6%, which compares favorably to the previous record of 90.16%. Therefore, our solution, combining FastProp for automated feature engineering and XGBoost for classification, can now be considered the new state of the art performance on this popular benchmark dataset.\n", + "This example highlights how cutting-edge performance can be achieved without the need for manual feature engineering or complex GNN-based approaches, enabling faster iteration and greater model interpretability.\n", "\n", - "Remarkable is the ease of implementation. Requiring only minimal tweaking of parameters, getML beat an advanced Graph Neural Network algorithm. Cutting edge predictive performance is now within reach of every Data Scientist by simply incorporating getML in their prediction pipelines." + "By incorporating getML into their workflows, data scientists can achieve superior results with less effort, seamlessly combining efficiency with state-of-the-art performance." ] }, { From 71f5af35a50474cf2959927b5b40054c3966771b Mon Sep 17 00:00:00 2001 From: Alexandros Ladas Date: Fri, 22 Nov 2024 16:26:43 +0100 Subject: [PATCH 5/8] Fix header hierarchy for TOC on docs --- interstate94.ipynb | 202 +- loans.ipynb | 14046 +++++++++++++++++++++---------------------- movie_lens.ipynb | 11419 ++++++++++++++++++----------------- 3 files changed, 12837 insertions(+), 12830 deletions(-) diff --git a/interstate94.ipynb b/interstate94.ipynb index 1a634f5..f6251ee 100644 --- a/interstate94.ipynb +++ b/interstate94.ipynb @@ -4,9 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Hourly traffic volume prediction on Interstate 94\n", - "\n", - "### Multivariate time series prediction with getML\n", + "# Interstate 94 - Hourly traffic volume prediction (multivariate time series)\n", "\n", "In this tutorial, we demonstrate a time series application of getML. We predict the hourly traffic volume on I-94 westbound from Minneapolis-St Paul.\n", "We benchmark our results against [Facebook's Prophet](https://facebook.github.io/prophet/). getML's relational learning algorithms outperform Prophet's classical time series approach by ~15%.\n", @@ -24,7 +22,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Background\n", + "## Background\n", "\n", "The dataset features some particularly interesting characteristics common for time series, which classical models may struggle to deal with appropriately. Such characteristics are:\n", "\n", @@ -42,7 +40,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Analysis" + "## Analysis" ] }, { @@ -63,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -87,7 +85,7 @@ "import getml\n", "\n", "os.environ[\"PYARROW_IGNORE_TIMEZONE\"] = \"1\"\n", - "warnings.simplefilter(action='ignore', category=FutureWarning)\n", + "warnings.simplefilter(action=\"ignore\", category=FutureWarning)\n", "%matplotlib inline\n", "\n", "print(f\"getML API version: {getml.__version__}\\n\")" @@ -95,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -123,7 +121,7 @@ } ], "source": [ - "getml.engine.launch(allow_remote_ips=True, token='token')\n", + "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", "getml.engine.set_project(\"interstate94\")" ] }, @@ -131,14 +129,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 1. Loading data" + "### 1. Loading data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### 1.1 Download from source\n", + "#### 1.1 Download from source\n", "\n", "Downloading the raw data and convert it into a prediction ready format takes time. To get to the getML model building as fast as possible, we prepared the data for you and excluded the code from this notebook. It is made available in the example notebook featuring the full analysis. We only include data after 2016 and introduced a fixed train/test split at 80% of the available data." ] @@ -891,7 +889,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 1.2 Prepare data for getML\n", + "#### 1.2 Prepare data for getML\n", "\n", "The `getml.datasets.load_interstate94` method took care of the entire data preparation:\n", "* Downloads csv's from our servers into python\n", @@ -910,7 +908,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -946,7 +944,7 @@ " fontsize=14,\n", " fontweight=\"bold\",\n", ")\n", - "traffic_first_week = traffic[(traffic.ds>=start) & (traffic.ds= start) & (traffic.ds < end)]\n", "ax.plot(\n", " traffic_first_week[\"ds\"].to_numpy(),\n", " traffic_first_week[\"traffic_volume\"].to_numpy(),\n", @@ -1482,7 +1480,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 1.3 Define relational model\n", + "#### 1.3 Define relational model\n", "\n", "To start with relational learning, we need to specify the data model. We manually replicate the appropriate time series structure by setting time series related join conditions (`horizon`, `memory` and `allow_lagged_targets`). We use the [high-level time series api](https://getml.com/latest/reference/data/time_series) for this.\n", "\n", @@ -1822,7 +1820,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.Predictive modeling\n", + "### 2.Predictive modeling\n", "\n", "We loaded the data, defined the roles, units and the abstract data model. Next, we create a getML pipeline for relational learning." ] @@ -1831,7 +1829,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.1 getML Pipeline" + "#### 2.1 getML Pipeline" ] }, { @@ -1883,7 +1881,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.2 Model training" + "#### 2.2 Model training" ] }, { @@ -2005,7 +2003,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.3 Model evaluation" + "#### 2.3 Model evaluation" ] }, { @@ -2171,7 +2169,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.4 Studying features" + "#### 2.4 Studying features" ] }, { @@ -2696,20 +2694,20 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# the test set starts at 2018/03/15 – a thursday; we introduce an offset to, once again, start on a monday\n", "def limit_view(view):\n", - " start_date = '2018-03-19'\n", - " end_date = '2018-03-26'\n", + " start_date = \"2018-03-19\"\n", + " end_date = \"2018-03-26\"\n", " return view[(view.ds >= start_date) & (view.ds < end_date)]" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -2822,14 +2820,14 @@ ], "source": [ "# Predict with getML\n", - "prediction_getml = pd.DataFrame(np.array(predictions), columns=['traffic_volume'])\n", - "prediction_getml['ds'] = time_series.test.population['ds'].to_numpy()\n", + "prediction_getml = pd.DataFrame(np.array(predictions), columns=[\"traffic_volume\"])\n", + "prediction_getml[\"ds\"] = time_series.test.population[\"ds\"].to_numpy()\n", "prediction_getml" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "lines_to_next_cell": 0 }, @@ -2861,7 +2859,11 @@ "actual = limit_view(time_series.test.population.to_pandas())\n", "\n", "ax.plot(actual[\"ds\"], actual[\"traffic_volume\"], label=\"Actual\")\n", - "ax.plot(actual[\"ds\"], limit_view(prediction_getml)['traffic_volume'], label=\"Predicted getML\")\n", + "ax.plot(\n", + " actual[\"ds\"],\n", + " limit_view(prediction_getml)[\"traffic_volume\"],\n", + " label=\"Predicted getML\",\n", + ")\n", "fig.suptitle(\n", " \"Predicted vs. actual traffic volume for first full week of testing set\",\n", " fontsize=14,\n", @@ -2874,7 +2876,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.5 Features\n", + "#### 2.5 Features\n", "\n", "The most important feature looks as follows:" ] @@ -2926,7 +2928,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### 2.6 Productionization\n", + "#### 2.6 Productionization\n", "\n", "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` module." ] @@ -2948,7 +2950,7 @@ "source": [ "While the feature is less smooth, it is really close to what we got in the 1-step case. This is another indication for the presence of strong time-related patterns in the data.\n", "\n", - "## 3. Benchmarks against Prophet\n", + "### 3. Benchmarks against Prophet\n", "\n", "By design, Prophet isn't capable of delivering the 1-step ahead predictions we did with getML. In order to retrieve a benchmark in the 1-step case nonetheless, we mimic 1-step ahead predictions through cross validating the model on a rolling origin. This clearly gives Prophet an advantage as all information up to the origin is incorporated when *fitting* the model and a new fit is calculated for every 1-step ahead forecast. Prophet's performance thus has to be viewed as an upper bound. Further, as noted above, we thought it would be interesting to let Multirel and Relboost figure out time based patterns by itself if we provide only deterministic components. So, in a second step, we benchmark this case against Prophet. For both tools, we use very simple models with all hyperparameters set to their default values." ] @@ -2964,18 +2966,19 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "try:\n", - " prediction_prophet = pd.read_csv('assets/pred_prophet_30d.csv')\n", - " prediction_prophet['ds'] = pd.to_datetime(prediction_prophet['ds'])\n", + " prediction_prophet = pd.read_csv(\"assets/pred_prophet_30d.csv\")\n", + " prediction_prophet[\"ds\"] = pd.to_datetime(prediction_prophet[\"ds\"])\n", "\n", "except FileNotFoundError:\n", " import logging\n", " import cmdstanpy\n", - " logger = logging.getLogger('cmdstanpy')\n", + "\n", + " logger = logging.getLogger(\"cmdstanpy\")\n", " logger.addHandler(logging.NullHandler())\n", " logger.propagate = False\n", " logger.setLevel(logging.CRITICAL)\n", @@ -2984,30 +2987,26 @@ " from prophet.diagnostics import cross_validation\n", "\n", " # Rename columns to follow Prophet convention\n", - " traffic_prophet = (\n", - " traffic\n", - " .to_pandas()[['ds', 'traffic_volume']]\n", - " .rename(\n", - " {'traffic_volume': 'y'}, axis='columns'\n", - " )\n", + " traffic_prophet = traffic.to_pandas()[[\"ds\", \"traffic_volume\"]].rename(\n", + " {\"traffic_volume\": \"y\"}, axis=\"columns\"\n", " )\n", "\n", " # The actual prediction. One model for every 1h ahead prediction.\n", - " fit_df = traffic_prophet[traffic_prophet.ds < split_date + pd.Timedelta('30d')]\n", - " train_ds = traffic_prophet[traffic_prophet.ds < split_date]['ds']\n", + " fit_df = traffic_prophet[traffic_prophet.ds < split_date + pd.Timedelta(\"30d\")]\n", + " train_ds = traffic_prophet[traffic_prophet.ds < split_date][\"ds\"]\n", " train_window = train_ds.max() - train_ds.min()\n", "\n", " model_prophet = Prophet()\n", " model_prophet.fit(fit_df)\n", "\n", " # Cross validate\n", - " prediction_prophet = cross_validation(model_prophet,\n", - " horizon='1h',\n", - " period='1h',\n", - " initial=train_window)\n", + " prediction_prophet = cross_validation(\n", + " model_prophet, horizon=\"1h\", period=\"1h\", initial=train_window\n", + " )\n", " # Save predictions\n", - " prediction_prophet.to_csv('assets/pred_prophet_30d.csv',\n", - " encoding='utf-8', index=False)" + " prediction_prophet.to_csv(\n", + " \"assets/pred_prophet_30d.csv\", encoding=\"utf-8\", index=False\n", + " )" ] }, { @@ -3021,7 +3020,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -3034,9 +3033,11 @@ ], "source": [ "# Calculate score\n", - "r2_prophet = stats.pearsonr(prediction_prophet['yhat'].values,\n", - " prediction_prophet['y'].values)[0]**2\n", - "print('R2:', r2_prophet)" + "r2_prophet = (\n", + " stats.pearsonr(prediction_prophet[\"yhat\"].values, prediction_prophet[\"y\"].values)[0]\n", + " ** 2\n", + ")\n", + "print(\"R2:\", r2_prophet)" ] }, { @@ -3063,7 +3064,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "lines_to_next_cell": 0 }, @@ -3092,13 +3093,19 @@ "source": [ "fig, ax = plt.subplots(figsize=(20, 10))\n", "# Plot all together\n", - "ax.plot(time_series.test.population.ds, time_series.test.population.traffic_volume, label='Actual')\n", - "ax.plot(prediction_getml['ds'], prediction_getml.traffic_volume, label='Predicted getML')\n", - "ax.plot(prediction_prophet.ds, prediction_prophet.yhat, label='Predicted prophet')\n", - "plt.title('1-Step-Ahaed Predicitions')\n", + "ax.plot(\n", + " time_series.test.population.ds,\n", + " time_series.test.population.traffic_volume,\n", + " label=\"Actual\",\n", + ")\n", + "ax.plot(\n", + " prediction_getml[\"ds\"], prediction_getml.traffic_volume, label=\"Predicted getML\"\n", + ")\n", + "ax.plot(prediction_prophet.ds, prediction_prophet.yhat, label=\"Predicted prophet\")\n", + "plt.title(\"1-Step-Ahaed Predicitions\")\n", "plt.legend()\n", - "plt.ylabel('Traffic Volume')\n", - "plt.xlabel('Time')\n", + "plt.ylabel(\"Traffic Volume\")\n", + "plt.xlabel(\"Time\")\n", "# We shift the data by 5 days to let the plot start on a mondey\n", "start_date = pd.Timestamp(year=2018, month=3, day=19)\n", "end_date = pd.Timestamp(year=2018, month=3, day=26)\n", @@ -3107,7 +3114,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -3219,12 +3226,14 @@ } ], "source": [ - "prediction_getml[(prediction_getml.ds>=start_date) & (prediction_getml.ds<=end_date)]" + "prediction_getml[\n", + " (prediction_getml.ds >= start_date) & (prediction_getml.ds <= end_date)\n", + "]" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -3397,7 +3406,9 @@ } ], "source": [ - "prediction_prophet[(prediction_prophet.ds>=start_date) & (prediction_prophet.ds<=end_date)]" + "prediction_prophet[\n", + " (prediction_prophet.ds >= start_date) & (prediction_prophet.ds <= end_date)\n", + "]" ] }, { @@ -3413,7 +3424,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -3432,36 +3443,34 @@ "from IPython.display import Image\n", "\n", "try:\n", - " forecast_prophet = pd.read_csv('assets/forecast_prophet.csv')\n", - " forecast_prophet['ds'] = pd.to_datetime(forecast_prophet['ds'])\n", - " display(Image(filename='components.png'))\n", + " forecast_prophet = pd.read_csv(\"assets/forecast_prophet.csv\")\n", + " forecast_prophet[\"ds\"] = pd.to_datetime(forecast_prophet[\"ds\"])\n", + " display(Image(filename=\"components.png\"))\n", "except FileNotFoundError:\n", " import logging\n", " import cmdstanpy\n", - " logger = logging.getLogger('cmdstanpy')\n", + "\n", + " logger = logging.getLogger(\"cmdstanpy\")\n", " logger.addHandler(logging.NullHandler())\n", " logger.propagate = False\n", " logger.setLevel(logging.CRITICAL)\n", - " \n", + "\n", " from prophet import Prophet\n", - " \n", - " traffic_prophet = (\n", - " traffic\n", - " .to_pandas()\n", - " .rename(\n", - " {'traffic_volume': 'y'}, axis='columns'\n", - " )\n", + "\n", + " traffic_prophet = traffic.to_pandas().rename(\n", + " {\"traffic_volume\": \"y\"}, axis=\"columns\"\n", " )\n", - " \n", - " model_forecast_prophet = Prophet(seasonality_mode='multiplicative')\n", - " model_forecast_prophet.fit(traffic_prophet[traffic_prophet.ds=split_date].ds)\n", + " model_forecast_prophet = Prophet(seasonality_mode=\"multiplicative\")\n", + " model_forecast_prophet.fit(traffic_prophet[traffic_prophet.ds < split_date])\n", + "\n", + " future = pd.DataFrame(traffic_prophet[traffic_prophet.ds >= split_date].ds)\n", "\n", " forecast_prophet = model_forecast_prophet.predict(future)\n", "\n", - " forecast_prophet.to_csv('assets/forecast_prophet.csv',\n", - " encoding='utf-8', index=False)\n", + " forecast_prophet.to_csv(\n", + " \"assets/forecast_prophet.csv\", encoding=\"utf-8\", index=False\n", + " )\n", " model_forecast_prophet.plot_components(forecast_prophet)\n", " pd.plotting.register_matplotlib_converters()" ] @@ -3488,7 +3497,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "lines_to_next_cell": 0 }, @@ -3502,16 +3511,21 @@ } ], "source": [ - "r2_forecast_prophet = stats.pearsonr(forecast_prophet['yhat'].values,\n", - " time_series.test.population.traffic_volume.to_numpy())[0]**2\n", - "print('R2:', r2_forecast_prophet)" + "r2_forecast_prophet = (\n", + " stats.pearsonr(\n", + " forecast_prophet[\"yhat\"].values,\n", + " time_series.test.population.traffic_volume.to_numpy(),\n", + " )[0]\n", + " ** 2\n", + ")\n", + "print(\"R2:\", r2_forecast_prophet)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 4. Conclusion\n", + "### 4. Conclusion\n", "\n", "__Benchmarks against Prophet__\n", "\n", @@ -3526,7 +3540,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -3589,10 +3603,12 @@ "source": [ "scores = [getml_score.rsquared, r2_prophet, r2_forecast_prophet]\n", "\n", - "pd.DataFrame(data={ \n", - " 'Name': ['getML', 'prophet 1-step-ahead', 'prophet forecast'],\n", - " 'R-squared': [f'{score:.2%}' for score in scores]\n", - "})" + "pd.DataFrame(\n", + " data={\n", + " \"Name\": [\"getML\", \"prophet 1-step-ahead\", \"prophet forecast\"],\n", + " \"R-squared\": [f\"{score:.2%}\" for score in scores],\n", + " }\n", + ")" ] }, { diff --git a/loans.ipynb b/loans.ipynb index 4ed0abd..d27ec88 100644 --- a/loans.ipynb +++ b/loans.ipynb @@ -1,7025 +1,7025 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Predicting the loan default risk of Czech bank customers using getML\n", - "\n", - "### Introduction to relational learning with getML\n", - "\n", - "This notebook demonstrates the application of our relational learning algorithm to predict if a customer of a bank will default on his loan. We train the predictor on customer metadata, transaction history, as well as other successful and unsuccessful loans.\n", - "\n", - "Summary:\n", - "\n", - "- Prediction type: __Binary classification__\n", - "- Domain: __Finance__\n", - "- Prediction target: __Loan default__\n", - "- Source data: __8 tables, 78.8 MB__\n", - "- Population size: __682__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Background\n", - "\n", - "This notebook features a textbook example of predictive analytics applied to the financial sector. A loan is the lending of money to companies or individuals. Banks grant loans in exchange for the promise of repayment. Loan default is defined as the failure to meet this legal obligation, for example, when a home buyer fails to make a mortgage payment. A bank needs to estimate the risk it carries when granting loans to potentially non-performing customers.\n", - "\n", - "The analysis is based on the [financial](https://relational.fit.cvut.cz/dataset/Financial) dataset from the [the CTU Prague Relational Learning Repository](https://arxiv.org/abs/1511.03086) (Motl and Schulte, 2015) (Now residing at [relational-data.org](https://relational-data.org/dataset/Financial).)\n", - "." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's get started with the analysis and set-up your session:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -q \"getml==1.5.0\" \"matplotlib==3.9.2\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from IPython.display import Image\n", - "\n", - "import getml\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/user --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/user/.getML/getml-1.5.0-x64-linux...\n", - "Launched the getML Engine. The log output will be stored in /home/user/.getML/logs/20240912214744.log.\n", - "\u001b[2K Loading pipelines... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
Connected to project 'loans'.\n",
-                            "
\n" - ], - "text/plain": [ - "Connected to project \u001b[32m'loans'\u001b[0m.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "getml.engine.launch(allow_remote_ips=True, token='token')\n", - "getml.engine.set_project(\"loans\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Loading data\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1.1 Download from source\n", - "\n", - "Downloading the raw data from the CTU Prague Relational Learning Repository into a prediction ready format takes time. To get to the getML model building as fast as possible, we prepared the data for you and excluded the code from this notebook. It will be made available in a future version." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "population_train, population_test, order, trans, meta = getml.datasets.load_loans(roles=True, units=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1.2 Prepare data for getML\n", - "\n", - "The `getml.datasets.load_loans` method took care of the entire data lifting:\n", - "* Downloads csv's from our servers in python\n", - "* Converts csv's to getML [DataFrames](https://getml.com/latest/reference/data/data_frame#dataframe)\n", - "* Sets [roles](https://getml.com/latest/user_guide/concepts/annotating_data#roles) to columns inside getML DataFrames\n", - "\n", - "The only thing left is to set [units](https://getml.com/latest/user_guide/concepts/annotating_data#annotating-units) to columns that the relational learning algorithm is allowed to compare to each other." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Data visualization__\n", - "\n", - "To simplify the notebook, original data model (image below) is condensed into 4 tables, by resolving the trivial one-to-one and many-to-one joins:\n", - "\n", - "- A population table `population_{train, test}`, consiting of `loan` and `account` tables\n", - "- Three peripheral tables: `order`, `trans`, and `meta`.\n", - "- Whereas `meta` is made up of `card`, `client`, `disp` and `district`" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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adasGW+++SZNmjThscceIzU1lR49erB27VqsVivNmzfn1VdfpVevXue9psLCQp599lnPd8TExDB+/Hi++uorHA4HV111FTab7bwjfoXapTZ9zbBhwzzHldtiRTtJSEhg1qxZvPfee9hsNgCuvvpq5syZQ/PmzXn99df5/PPP6datG1u3biU3N5eoqChee+01unXrxiOPPMKRI0eQZZmHHnqIsWPH8uKLL573uhU/VLPU5UFhQUEBv/32Gxs2bCA4OJj+/fvTuHFjUlNTycnJIS4ujqysLIqKimjZsiWPP/44fn5+aLVuMWe32zl48CAnTpzAZDLRqlUrIiIizttuQkKC53MVEQSBPn36EB8fT4sWLTyvnzx5kqNHjxITE4PD4UClUiGKYr21w1r38GqVQMNQAxEBOk/1eZUo0K1JMI3DjHy9NZ19qcX0bh5KsFFNY5ONY8eOs2L9TpBl9Brv0dLOnTuZNm0aGRkZPPLII4wcOZKTJ0/y4osvcvz4cX744Qdyc3N54IEHeOmllwgICOCjjz7i999/x+VykZeXx7Zt29BoNDz22GM0a9aMBQsWsG7dOhISEnjsscfIzc0lIyPjbzvZZrORl5eHxWKhrKyMt9566x+1c7lQ3X29fft25s6dS25uLnfccQe9evVi69atnvclSSI/P5+cnBwkSeL3339n6dKlBAQE8PrrrzNq1CgsFgubN2/2rLkfO3aMPXv2MGrUKDp16sTWrVt55ZVXKC4uPu81VfwOl8vF119/zdKlS9HpdDzyyCNERkaye/fuK6aP6zK16WtSU1O9BPO5trhq1SpeeeUVIiMjee2117jttttYs2YNr732GjabDYvF4pkhv+uuu2jfvj3Hjh3j448/BuCOO+4gPDwcvV7PnXfeSe/evau8bsUP1SzlorxfqzDEM/ewXJQP7xFLuzh/QsxaLGVOjyjv2zKMUodc5aDw9ddf5/rrr2fgwIHccMMNbNiwAfAeFI4aNYpjx45RXFzMs88+y0033cTDDz/M0KFD+c9//sO2bdv46KOPePXVVwH47rvvuO222zh8+DDz589n4MCBjBgxgv79+zN27Fj++OMPRo4cyaRJk7BYLFgsFiZPnkz//v258847GTRoEMOGDWPHjh2V2h08eDDHjx8/7/1xOp0sWrSI4cOHs27dOs9nbr75ZgYOHMj//d//sWTJElwuV722wVqfeSrn3CCxIpuT5b+eYs/pIu7sFkO/FqFYMg6TlvQy5sIc7nCa+Fa6nc2HgkmMPLs+umXLFk6fPs3tt9/OjBkzkGWZDh06kJ+fj16v58knn2TAgAHk5+dTXFxMZGQkJ0+eJD09HX9/fwAaNmzI4sWLad26NdnZ2Tz99NMYDAZeeOEF/vOf/7B582ZuueWWv92ZUm4IgiB4lPo/aedyo7r6euvWrWRmZnLzzTfz+uuvYzAYKCkpYenSpZ5jBEHw9IMoioiiSGFhIfv27aN9+/bcdtttNG/enNLSUsC9DPfcc89x++23s2XLFm688Ua2b99OZmYmfn5+570eQRAQRRG73c5vv/2GJEk8+OCDvPjii6Snp3P06FH27Nnj69uucIba8DVqtdrre8rtsNxONmzYQFlZGTExMQiCQHh4ODqdjl9++YW8vDyP8LrjjjuYPn06X331FXfffTepqalotVpGjRrFihUrsNvtPPbYY7Rv377K61X8UM1yIVFud0oeUT60SzTBRjVBFPHroWxW/HIalTmkykFhYWEhd999NwaDgU8//dTzflWDwpiYGCZPnsyePXtYtWoVv/zyC126dKFfv34kJSXRpk0b7rjjDkJCQiguLiYzM5Nt27Zx00030b59e9RqNdnZ2QQHBwPw9ddfM2/ePOLi4nj88cfZtWsXn3/+OXPnzuXBBx88b7tVUVxcTE5ODmVlZeTl5TFz5kz27t3LTTfdRLt27fjiiy88M7D1Fd+JJ/CqEbR6VyY/7c9mQLsIgk069h4+gWbjy0S3bIzG2Jp4WwnSphWUCN6Bkvn5+QDExsZ6phDvuecewG10Cxcu5PXXX6e0tBSj0Uh2djaCIHgcnSzLREVFeeJcHA4HhYWFGI1GEhISAGjUqBF+fn6UlZVd1LUJgoDD4aCgoOBftXO5UF19XVhYCEB8fDxmsxmAxo0bn/c7JUmie/fujBs3jmXLljF//nwAmjRpwgsvvECvXr2QZRmj0egJvo2LiyMgIID8/HyKior+9rrKbUUQBM95BAYGEhcXx+7du3192xXOUBu+Bqhy15DdbicvLw+AXbt2ceLECcBtuxEREZ6YD0EQPPFT0dHR6PV6JElClmVcLpen/b/bbVeO4odqlro2KExMTCQwMJCBAweSlJREly5deOaZZ3A6nZ5zffDBB3nppZdQqVT8/vvvnnbtdju//PILDoeDhx9+mGeffZbMzEyuueYaAgIC6N27N0ePHvVq90JUPNejR4964olfe+01EhMTiYqK4oknnvB1F/4rfCaeDBoVIWYtKlGg1CGRkluCSadm2/ECth4vJFwo4BZbAdqGrRDNQTgLc4n220VYQoBXOxEREQAcPHjQ88B7//33KSws5MYbb2TBggWkp6ezaNEiOnfuzLhx41i7dq1XGxXFlE6nIzQ0lLS0NHbu3Enbtm3Zs2ePxwFdDLIso9PpCAsL+1ftXC5UV1+Xr/fv37+frKwsjEYje/furfJ7S0tLGTRoEP3796eoqIiPP/6YTz75hHfffZerrroKURSxWCzs2LGDjh07sm/fPnJzczGbzRcVmKnVagkLC0OWZfbs2YPD4SA1NZXDhw/X6+noy42a9jUFBQU88MADVca5lfsCgAceeIDHH3/cs1lFo9EQGhrq8T8XshtBEHA6nVUuKZ+L4odqlro2KJw8eTJDhw71zCjKsuwR3+C2n2bNmlXaKFAungoKClCr1cTFxQFuex8zZoznuHLRXt7uxcZ1FhYWYrfbiYiIIDw8HICEhAQMBkO9TVMAPhRPPRKD6RAfiL9BjSgIjOwbfzYPiyAgW7Mp+rkBgroJsqERtvxDmEKjCfHXe7XTvXt3mjdvzg8//MAjjzyCLMv873//o127dgwaNAitVovdbic5OZmNGzfy+++/e31ekiSv6evAwED69evH1q1bmTp1Kj///DPbtm2jqKjogtsz4exIRJIkAgMDufbaa9myZcslt3O5UV193a1bN+Lj4/n5558ZMWIEBoPBs6Ze8d7LsowoiiQnJ/P444/TsGFDhg0b5hnhh4eHo9G4C3w6HA5efvllNm/ezLZt2ygoKGDAgAFERkZWeT3lNqPVaunTpw9Lly7lvffeIysri7S0NA4dOuTrW65QgZr2NW3btuXhhx/2ehCUP2AkSUKj0dC/f38++OADli1bBsCpU6dYtWoV/fv356qrrkKWZc+/cso/L8syGo2GgIAAioqKmDJlCk8//TQDBw487/Uqfqh2qIuDwptvvtkjwC0Wiycw+0KUi+zw8HCcTid//fUXAMePH+fDDz8kJCSEUaNGeY4vb/diduiVX59er+f06dMcO3aMq666il27dlFSUlKvB5k+E096jcpr7TfQeE61anMU5t6Pkbb2LaL6PoB10wdE938MtSnU67BmzZoxZ84cXn75ZX744QcAevTowQsvvEDbtm0ZN24cs2fP5rvvvqNt27Zcc8017N69G5PJhE6no0GDBkRGRnoMTKVSMXr0aNLT01m3bh0bNmzgxhtvxN/fH4vFct7dBeX4+/sTHR1NcHAwGo2GRx999LztWK1Wz8P7SqC6+rpVq1a8+OKLzJ07ly1bttCmTRvuvPNOvvvuOwIDA1GpVERFRSFJEmq1mt69ezNs2DC+/PJLXnrpJdRqNbfeeitPP/00RqPR83Dp168fycnJ5Ofnc9NNN/Hcc89V+WDRaDRe33HzzTfz7LPP8vHHH7N+/Xp69erFrbfeypYtW5SRfR2hNnxNdHQ0gYGBREVF4efnV8kWr7/+embMmMHixYt54403UKlUdO3alTFjxuDv709wcDCxsbGemYeKvkkURfz9/Rk5ciTFxcX89ddf7Nixo0rxpPih2qGuDQrDwsI8IlutVvPDDz8wceJExo0b52nr3JmeiuK8f//+fPjhhyxevJicnBwOHjzITz/9xP33349KpSIwMNCr3WeffdYzk3QuFZeYmzRpQqdOnVi7di2jR4+mRYsWrF+/vspzqi/4TDz9PQKiIYi8/Hz0p7eTl59PA0MQnKNUBUHg5ptvpnv37qSlpSHLMjExMZ4guHvvvZfrrrsOq9VKeHg4giBQXFxMcHAwarWadevWodFovIKDGzZsyKJFi8jIyECtVhMeHk5RURGyLJOamsonn3ziFXcgyzLx8fHceOONXHvttZ6EX3Fxcedtx+VyVZmj5crk4vpaFEXuvvturrvuOoqKiggNDUWr1fL888/j5+eHn58fH330EU6n0+NIXn75ZcaMGUNOTg5+fn40aNAAs9lMVlYWsiyjUqkYNWoU06ZN82wo0Gq1fPTRR5w8edJrZKRSqbjhhhtYtmwZdrvd8x3PP/88Dz74IA6Hg4iICBwOB1ar1WODCnWd6vE1Y8eO5eGHHyYwMBCj0VjJFh9//HGGDh1KRkYGer2eBg0aePzOpEmTGDt2rKetVq1a8eOPP6JWqz0bW26//Xauu+46SkpKKC0tZd68eVitVq9zNJvNDBo0iD///FPxQzVMXRwUqtVqevXqxT333MP69etZt24dDz74IKGhoV7iHM4K9PLl6HKB//bbb/Ppp5+i1WoZNmwYzz33HCqVyqvdH3/8kUcfffS84kmlUhESEkKDBg0wmUyYzWamTJmCy+Viz5492Gw2hgwZwvfff09YWFi9TetSh8UTlMg6vi1sh/5XO6XWdjSRdVQ1URgcHHzeh5UoipWSHgYEnJ02jY6OPm97RqPRa91Zr3ePFn7++WcWLFiA3W73PFhdLhc9evRg4MCBlb6rqnYUvLnYvhYEgYiICM8PHvDKTnvuj1mr1dKoUSNPIG7FdnQ6HTqdDq1WS2RkpGeprqCggM8//5xff/3VMyMpyzJarZbGjRtX2umk0WiIjY31ei0wMNDXt1ThEqgOXxMYGOjV7+faoiiKREVFeXKTVSQoKMgrzk6r1VbyTYIgEBISQkhICAcOHGDJkiVkZWV5Hj6SJBEeHs6AAQMq2bvih3xB7Q8Kwf1Me+utt8jLy0MQBMLCwpg4cSJPPvmkl92eK9BFUWTMmDEMHTqUzMxM9Ho9sbGxHv9asV1wb35Yvnx5pRQdV199NRMmTOCJJ57w2HT37t354osvyM7Oxt/fn4CAAP773/+i1WrrZXZxqOPiyWAw0KlLV37dto/uXbrWiTX6AQMG0L59+0rxDSaTqcqt7Qp/T233tZ+fH9OmTcNms1XKguvn58eCBQu81uTLp8zP9+BTqP/URV9zIRo1asS3336L0+n0slG1Wk3Dhg19fXoKZ6jtQWE5BoPBayB/rjgvb+N8Ar0qgX9uuwsXLmTRokWo1WdlhNPp5NFHH6V///6Vvu/cwUVVExf1hTotnnRaDQP6dqV3t/YY9Dp0Wt+vzwcEBHjNXClUD7Xd13q9nptuuum876lUKuUBdIVRF33NBc9Xp6Np06a+Pg2Fv6G+ifJL4YknnmD48OFeoQ2yLF8w/9PlRO2IJwEELj2qXhAE9Dotel3tFgKuCwjum+beD1ufUPrap9Rbu6m+G6DYXy1yxdvb31DfRPmlcO5M2ZVGzYsnAVwSZFvsyMheeTEUzo8oQI7FgUsCVX2KpVP62qfUW7upLhT7q1WuKHtTRLnPqKsCvcbFk4BAUamDuetPoFGJde366yQC4HBJFJU6CTbWn5GK0te+pb7aTfVdv2J/tckVY2+KKPcZdVmg17h4kpHx16t5pl88oWaNYngXQbnBPPvtYeR69AhQ+tq31Fe7qS4U+6tdrhR7U0S576jLAr3ml+1kt2IMM2sJNdeti6/LCAhupV3HfqmyDJYyJ2admkrJYZW+9jl11W6qC8X+6haXu72BIsp9SV0W6LUTMC5T5y68riO7b1qdI/lIHp/vyGToVRH0aXqeJJBKX/uUumo31YVif3WLy93ezlykIsp9SF0V6HU6VYGCG0EQcDkd5FvKkFUaDFoVZl3td93Ph90PrmYRJj7fkQlw/geYQp2grthNdaHYn4LPUES5z6irAr3+etIrBEEUyM7J4+M/97PxWDEO1DSMDue2rgn0ahKIWqydwoo/H85jxfZMbu8QQe+mwSSf+RuUB1hdpK7YTXWh2J+CgkJdQhFPdRlBwGG38+G6HXy/8ySnfvkCa9ohjFFN2TdwJFPuvY6+TYP+/ff8DRUfXOUPqvL/rtieiSAItIw01cntpFckdcRuqgvF/hQUFOoal6V4crlcOJ1OtFotkiRht9trJLOrLMuUlpai0+nOW9xQlmXsdjsajeYfFT8UBCiwlrEp3ULqpi/I2+WutF2WncIBjYbv2rSgS8MATFp329YyFxa7y6sNs1aFSafyeu1ijyuxu/jteAFf7cryenCVU/7359sz6N00GFmmchBvLVF+r9VqNSqVitLSUlQqVa1VjXe5XBe0M4fD4amPV9P42m6q6zhZPhvjdCH7+2JHJr2aBPnU/moCu92OKIpe5S8UFBTqBj77VdqdErkWO2F+OtQqt8crsjkpsjnwN2jwN7hPzSXJ5Frs2J0SIWYtBq3qb9v+888/+eqrr5g8eTK//fYby5cv56WXXiIuLq5ar+HIkSNMnz6dBx54gL59+1Z6Pysri9mzZ3PffffRrl27S/8CGWRRgx011tTDXm+pLJlkFRRT5pQ8D8ENh/P4dnc24pklGUmSGdQ2jJtbe1dOv+jjDuWx5NdU/q9ZML2rWBrp0zSYbSlFfLYtA0uZC399ZZOqyb4uJy8vjxkzZnDXXXfRokULJkyYQJs2bXj44Yf/VR87HA4cDgcGg8GrDMG5/Pjjj3zyySdV2tnnn39Oeno6Y8aMqXkB5Wu7qabjLGVOT4xTVfbXu2kwe9MsfL4jg+IyFwHn2J9Tkim2OXFJMhq1gL9eQ5lTwlrmRMY9WWXUqjBoVUgyFNscOFwyKlHA36BG5aPlTZvNxmuvvUbLli35z3/+45NzUFBQqJpaF0+yDMWlTn7an03ygRwm3JJIuL+O/anFfLQphYISBwFGDXd1i6VtrD9rdmeyZlcmLkkmIdzEiF4NCfW78MMnJSWF1atX8/TTTyMIwj+a9blYVCpVlQ9Vi8XCqlWruO666/6ZeAIMWjXR0eEci26CLfskAFq1iqad+xAbEYpOffa7+zYNpnND77p75vMIkIs+LjEYnUbkm11ZJB/OO29syc+H8ziWa+P2jhF8siXDK6iyNvq6HJvNRlJSEr169aJVq1aIonhBsXOxJCcns3r1aqZOnYq/v3+Vx/2dne3YsYNDhw7x6KOP/utzuhh8ajfVdJxZp2boVRF8viOzSvtLPpzHwawShl4VyfIt6V7255RkVm7PYM3uTErtLgKNGu7uEUtJmZNlm0/hlGQEBJpHm3mwd0MOZ1r57LfTFJQ40GtU3NAunEEdonwioJxOJz/99BOSJCniqQ5SU6L86NGj7N69mz59+lQqrFtYWMjatWvZv38/QUFBDBgwgMTERF/fiiuWWhdPllInb/90gl0phYgiSDJIssyPe7NQq0RGXduI//2Rysrt6YT5a0k+kEuPxBBiQwy8vd79uX6twiq1m5OTQ3Z2NuHh4QiCgEqlQpIkevbsSbNmzTyVoF0uF2lpaRQUFBAaGkpERASiKFJSUkJJSQl+fn5kZmZit9uJioryqmx9Lo0aNWLq1KleFa+Li4tJS0vDbDbjdDovKK7+DhkZP72a2zo2IDt9FH+pNagsmTTt3IeYnkO4rkUYpgoPG5Ou8tLI+bjY44xaFf/XLAS1KJw3OLc8FuXOjpG0iDTx6dYMr5iTmurrgoIC0tPT0Wq1xMTEoNfrAbeQBXcxzv/+979eS2gOh4O0tDRKSkqIiIggONh9HeX9bjQaSU9PR5IkGjRogMFgoKSkhG3btrFu3TruvfdemjZtWqU99OzZk+bNm3vsTJIk0tLSsFqtxMTEoFKpPOdX0/jabqrrOEHwjm2C89vfHR0jaRlp4pOt6V72V2xzsmZ3JlqVQLuEIP44ms+G/dk0izJTYHPSqVEgANtOFNA2NoCdKYUU2hx0TQhCJQrIsjtBn0r0Psfs7GxycnIICQnBz8+P4uJiQkJCUKlUyLJMZmYmeXl5BAUFERkZiSAIOJ1O8vLyMJvN5OXlUVxcTHR0tFeR8bKyMlJTU5FlGT8/P9RqtZcg/zsb1uv1pKWlERgY6OWTFKqXmhLlkiSxePFiFi1axJIlS7jzzjs971ksFiZMmMDPP/9Mq1atOHHiBMuXL+edd975xwNzhX9HrYsng1bFsK4xhPppST6QA7hnKLokBBFk0pIYaWL9vmyyi8vQa0RG9Y3HqFOx93QRJr2KMH9dpTaTkpKYMWMGhYWFxMTEEBUVBbgfpsnJybz++ut8/PHHBAYG8sYbb/DJJ5/gcDjQarWMHj2ahx56iB9//JFFixbRqlUrfv31VwoKCmjfvj0vvfQSCQkJ572WtLQ0HnjgAaZMmULv3r3Zu3cvkyZN4sCBA4SEhNChQwccDsc/nwGRQRagV0IgEfdcx8rWzcnKLyY2MpTrWoTRq0lgrfTZuQ+wirudbu8QQa8mQWRb7JWCdWuirzds2MDMmTNJS0vD5XLRo0cPpk+f7rnHgiBQWlrKc889R5cuXRgzZgz5+fm88sorrFmzBpfLRVhYGM8//zz9+vVj7dq1LFiwgPj4eHbt2kVhYSH/93//x+zZs1m5ciULFy4kJyeHESNG8Oyzz3LHHXec9x4lJyczf/58PvroI4KDg3nrrbdYunQpAC1atMBisdReRfU6YjfVxd/ZX+8q7M8lyZTaXbRLCGJY1xhScm2UOiRckoxaFIgLMQKw82Qh1jInpXYXscFGRvRqiEmnOm8M1cqVK5k1axbFxcVERUXRokULDh8+zAcffEBoaChLly5lyZIllJaWotVqGTlyJA899BApKSk89NBDJCYmsn//fjIzM2nSpAlz586lRYsWZGdnM336dNatW4fRaKRt27bk5OR47PpCNvzjjz/y2muvER4ezsGDBxk7diwjRozwdbddttSUKE9LSyM5ORl/f3+SkpIYPHgwOp3bB/7xxx98//33zJ8/nwEDBnD48GGGDh3KF198oYgnH1Hr4kmtEmgYaiAiQOdxTCpRoFuTYOxOia+3prMvtZhhXWMINmkJNmnZdqKQr7amIyBUioM5ceIEL7zwAk2bNmXs2LGcOnWKKVOmUFZWhiAIWK1WUlNTkSSJvXv38tZbbzFmzBhuvvlm/ve///HTTz8xdOhQbDYbmzZtIjAwkNdee42srCyef/555s2bx7x5884beOxwOEhNTcVms2G325k5cyapqanMnz8fvV7PK6+84uUA/xGyjFol0KdpIJ0b+lPmlNCpBa+Zg9rAExy+I5PdaRYOZlrPG8Rbk3196tQpJkyYQFxcHNOnT+fkyZO89NJLfPjhh9x7772e4yRJIiMjg8LCQgA+/vhjVq5cybRp02jWrBmvvvoqU6ZMoW3btpSWlrJlyxbatGnDkiVL+P3335k+fTrXXXcdAwcO5MiRI3zxxRfMnz+fNm3aVHmtFouF1NRUADZu3Mirr77KiBEjuPXWW9m4cSMvvvgi1157be11WB2xm+rin9gfgtvethwrICXXxomcElrF+CEg4HTJbD9RAIDTJXvsUzjzmfL/r8ixY8d44YUXaN26NU8++SQpKSlMnToVq9UKwObNm5kzZw4jR47kpptu4ttvv2XOnDm0adOGsLAw9u/fj9FoZNasWRQWFjJ27FhPPOaHH37Id999x5QpU2jTpg0ffvghe/fuZejQocCFbdhms7F9+3buuusuFixYoCzl1DA1IcrB7TecTifjx4/nvffe4/Dhw7Ru3RqA6Ohopk2bRr9+/dBoNDRo0IDg4GCKi4t9fTuuWHwWMC7L3sPEIpuT5b+eYs/pIoZ1iaJ9lIaTaTkU2ZwEaFXc1TGYJRtOsHbbSRoPaI7qzHT29u3byc/PZ+LEibRt25auXbty8OBBPvjgA0/b5eKlfAnt4MGDdO/enYcffhidTkdAQACSJBEcHMwzzzxDp06dAHdA+Icffkhubi6RkZGVrqE8zkUURdLT09myZQvPP/88119/PQClpaXs3r270rX+U0xa0RPk6wsqPsCqzPB8Hqqrr7du3Up2djZvv/027dq1o1u3biQmJiLLMi6X964tQRAQBIGysjK+//57WrRoQWxsLKWlpfTs2ZN169axb98+BEEgPDycxx57jCZNmtCwYUM+/PBDjh07hp+fH7GxsRiNRlq1alUpBuHc7xNFEVmW2bBhA3FxcYwdO5agoCBatmzJL7/8giRJPuk3X9tNdfFP7E/mrCASPK+5heVVZ+KtTufZEAUBQYQCq4MdJwvQaUR0ahWJkWY0ZzY5bNu2jeLiYiZMmECrVq3o3LkzR44c4b333gNg/fr1GAwG2rZti8VioW3btgBs2rSJwYMHYzKZuO++++jRowcA3377LcePHyc3N5d169Zx8803e2aMwsLCWLt2LbIsX5QNR0VFMX78+CpnyRWqkWoW5eDeWblq1So6dOjAsGHDWLFiBWvXrvWIpxYtWtCiRQvP8cnJyaSkpDB27Fhf340rFt+JJ/CqEbR6VyY/7c/mxvaRaGU7Y6a8B5ILRBGtSkQQIKeolB/2ahl29RjCgt2OLycnB7PZ7CVuGjVqhE6n83poS5JEq1atmDFjBu+99x73338/4eHhPPjggwwfPhyAgIAAT8wKQHx8PKWlpdhstr+9nvz8fAAaNmzo9Xmj0Vht4qku0LtJMB1j/S8pU3V19XV2djYmk8mrrzt06ADA6dOnK31vuXjKy8vj4MGDTJ48GUmSkCSJ+Ph4JElClmVMJhNmsxkAURQxGo04nU4Aj+C5WOHjcDjIyckhNjbWEx+l1+uJj4/n+PHjvu6+es+l2J9w5l+XhCCGdYlh7pojAIiC+yG3akcGAAEGDc2izNgcEt9uS2P+D0cRBYFuTYNpEm4C1dmlM6PRSGhoqOc7GjRogFar9fR7amoqs2fP9gjpgIAAjEYjLpcLrVbriVMCMJlMFBQUUFpaSkFBAfHx8Z73goKCiI6O9oini7HhC8VnKlQv1SnKwT1Q3759O8899xzBwcF07tyZNWvW8NBDD1XaqLJ161ZeeOEFBg0axA033ODrW3HF4jPxZNCoCDFrUYkCpQ6JlNwSTDo1W48V8IuliEJrKbPHDkatUuFwOlGLIrIg8NbyDUgVnsQhISFYrVYyMjI8QZInT570LNtVxOVyMWDAAG644QZSUlJYvHgxU6ZMoVOnTqhUKgoLC0lLS/PETJ08eRK9Xn9RsSrlsxIpKSme106ePElJSUm17PqqKwgC+OkvzWyqq6/Dw8OxWq2kp6cTEREBwN69e3G5XOedFZJlGZ1OR2BgIG3atGHWrFkeQVVYWEjDhg355ptvEAThggL33FmtC6HRaAgNDWXv3r1YrVa0Wi1lZWWcPHnysrIDX3Ep9mfSqbm3ZxxRgToCjRoGd4xCFAWCzRrMejWSJCMI7qXl5lF+NAw10ijUQKHNiUGjonWsHzrN2Rm7qKgoLBYLR48e9bK/0tJSNBoNwcHBNG3alLfffpugoCBcLhe5ubmEhoaSl5dX5XmW2+jJkyc9r5VvihAE4aJsGLisBml1meoW5QDr1q3j1KlTLFu2jKSkJI4ePUpKSgq7d++mZ8+enuP279/PU089RYsWLXjhhRdqL45SoRI+E089EoPpEB+Iv0GNKAiM7Bt/ZppTICM7lxf/SkYQVEyes4KM7AJaJcbx39G3Eh0RhrrCrqWOHTsSEBDArFmzGDt2LKdPn+aTTz7xeuDJsowoivzxxx9Mnz6d+++/n27duhEVFeVZyhMEgby8PF555RXGjh1LVlYW77//Pr169SIkJOS81yDLsmcUGBUVRceOHXnrrbeIjo5Gp9PxxhtvUFRU5KtbXGeorr7u1KkT4eHhzJgxg6effprU1FSmT5/O0KFDue+++5Bl2fMAKf9/nU7H9ddfz+LFi1m/fj2tW7fmq6++YsuWLSxcuBCoPKtUPpoHMJvNpKWl8f3333PTTTd5zRxUpNwWBEGgT58+fPDBB8yfP98T87Rhw4bz5gJTqDn0GpFrW56dJeqScFZgNw6rPEvjp1fTIzGkyva6dOlCfHw8EydOZMSIEaSmpvLll196/Ee/fv1Yvnw5X3zxBQMHDmTLli0sW7aMCRMmEBsb62VXcNZm/Pz86NevH2+99RadOnWiTZs2fPTRR56Zyn9iwwo1R3WL8uLiYlavXk2fPn245ZZbkCSJHj168P7775OUlOQRT8eOHWPcuHFER0czb948rxlQhdrHZ+JJr1Gh15x9MAYazwZkO2xaREGgxC6RnlWIXq/j9lt7Y/LzIyIsxGvLd3x8PNOmTWPmzJmMGDGC6Oho+vbty6FDhzxLMFFRUYiiSJs2bWjTpg0vv/wyKpUKrVbL008/TfPmzdm1axfR0dH4+/vzxBNPUFRURPv27Rk3blyVWaq1Wi3R0dHo9Xq0Wi0TJ05k0qRJPPHEEwQFBdGtWzcsFotnK/2VSnX1dYMGDZg5cyYzZszgwQcfRJIkunTpwr333otWqyUqKgqj0YggCERERHimu++77z7S0tKYMWMGsixjNBoZNWoUMTExmEwmj4gG97JdRESEZwt5t27d6N69OzNnzkStVnttH65IeTsAvXv3Zty4cbz//vt8/fXXNG/enFtuuQW9Xq/MPtVjIiIimD9/PvPmzePDDz8kMTGR2267jaSkJJxOJ9dccw3jx4/n3XffZfny5YiiyC233ELnzp3Jzs4mOjraa6YgKCiI0tJSRFHk/vvv58SJE8yaNQuTycRVV13F9ddf71lOvhQbVqhZqluU79y5kwMHDrBw4UJuvPFGz+uFhYWsXLmSp556CoCxY8dy+PBhXnjhBQ4cOMC+ffsIDQ2lVatWSt/7gDqZ918+U0TZJatp1jSO22/tw6p1W9DqjISFhKBWexvKLbfcwtVXX10p90pwcDB9+/alY8eOnjwss2fP5oknnsBisXjleZIkCZPJxKRJkwB3zpUGDRogCAJLliwhNTXVk3NFlmX0ej2DBw9mxYoVnod027ZtWbZsGenp6RiNRsLDwyksLLxgcsUrnUvt6759+3LVVVeRnp6ORqMhJiYGg8GAy+Xi008/JSAgAJ1Ox+uvv+7Z5hscHMzMmTN5/PHHKS4uJiwszJMP7LrrrqNbt26e2UWTycSCBQs8n23YsCFLly4lLy+PkpIS5s6di9Vq9YggWZYJDQ1l2LBhLF++3GNnTz75JMOGDcNqtRIZGYkoitjtdk+7CvWPwsJCdu7cyUMPPUTLli3R6/XMmTMHjUaDRqNBpVIxatQoBg0aRG5uLv7+/kRHR6NWqzEYDHz22WcEBgZ62nvyySdxuVyo1WrCwsJ49dVXPTs2o6KiPMuBcGk2rFC/2LZtG82aNfNsVCpnwIABrFmzhgMHDlBWVsb+/fsRBIFXX33Vs0mmd+/ezJ07V4l38wF1UjwB2B0uHC6B0Q/eRlCAmVt0Bt5d/j3X9uqKeJ7Re1hYGGFhZxMqlo/wDAaD12hPq9XSqFGjyjdCrUan06HX6z3xDOBOQFe+NFdxSUiSJNRqdaVkdP7+/l5iSUlW9/dcal8HBgZ6PYTAvZOyYr+dO6Wt0Wi8gvnLMRqNGI1Gz9+iKFb6bHmflueWcrlcXuJJkiQMBoNnlqD8fBo0aODrW6tQjQiCwOrVq9m3bx99+/bFarWSnJzMAw884FnOLd/5Vj4LWY5arfayT8ArQSa4NxZU3C1X0S7h4m1YoX5x3333MXz48Erit1OnTnzzzTf4+fkhiiI///yzV2gCuG1G6XvfUCfFk1qtQqfVsPzrH4mOCCMyLJSw0GCu7dWVvX8dwta/PUZD9dYHKx+5nevQyqfHFWoGX/T1PyU6Oppnn33W16eh4CP8/f2ZO3cuX3/9NQcOHCAwMJDZs2dzww03KMsmCv+YqlKgqFQqr53FFXeCK/ieOimeggP9mD91NLIke8paqNUqREHA1r89gQHmf/8l5xAXF1fthYMV/h5f9LWCwj+lQYMGjBkzxtenoaCg4GPqpHhSiaInt8+51JVZCIXqQelrBQUFBYX6Rv1PO6ygoKCgoKCgUIvUyZknBQUFhZrE7pRYuzeLnGI7IWYtiZFm4sOM6NTKeFJBQeHvUcSTgoLCFYHN7vIUm3a4ZDYdzGP3qcIzechEOsQHMqhjJE0jlDg7BQWFC6MMsxQU6gAOh4OysrIq37fb7Z56ewqXzs6UQl5dc4RdKYWe12RZJi7EyMN94+nUKJA/j+Uzd/URth4vOG8b5XXmqirX43K5LqoOZkUkSaKsrOxfl1ZxuVzV0o6CgsLF4RPx5JRk8q0OcortFNocyDKUOiRyLXZyLHZyLXZsdreDkmQoLHEfm2914JIqO4eysjJKS0t9eycVqsTulEgvKMXpOtt3RTYnp/NsFNnOCgKXJJNVVMbpPJun/+s7F2ObkiSxePFiJk2ahNVqrfS+zWZjzpw5fPfdd76+nHpJSq6N934+yebDeSz66Ti7TxWhUQm0auBP14Qg+rUMZUz/BB6/rjF2p8S7P5/gaFblfsjLy2PChAls3779vN/z448/MmrUKK/6luficDgoKSnxiJydO3cyYcKEC9a+uxj+/PNPJk2aREFBwd8eq/hLBYV/T60v2zklmZXbM1izO5NSu4tAo4a7e8RSUuZk2eZTOCUZAYHm0WYe7N2Qw5lWPvvtNAUlDvQaFTe0C2dQhyhU4tnkiUuXLqW0tJQnn3zSkwVcwffIMhSXOvlpfzbJB3KYcEsi4f469qcW89GmFApKHAQYNdzVLZa2sf6s2Z3Jml2ZuCSZhHATI3o1JNSvfu+4u1jbFAShyvedTic//fQTkiTxn//8x9eXVK9wumS+25FOVlEZN7aLYNvxAhauO8bofo24s1sDZFlGoxYRgF7NQpBlmQU/Hmfl9gwev64RGtXZPrHZbCQlJXHNNdfQuXPnSt91oT4sJzk5mdWrVzN16lT8/f05deoUq1atYuzYsf8qQ3hKSgqrV6/mqaeeqjJvUDmKv/z3OCWZYpsTlySjUQv46zWUOSWsZU5k3IWDjVoVBq0KSYZimwOHS0YlCvgb1F7Pr4ocPXqU3bt306dPn0r9mJeXxw8//MDBgwfx9/enX79+tGvXzte34oql1sVTsc3Jmt2ZaFUC7RKC+ONoPhv2Z9MsykyBzUmnRoEAbDtRQNvYAHamFFJoc9A1IQiVKCDL4HBJqEQVsiyTm5vLpk2bsNlsDB48mJCQECwWC4GBgZ6acna7nby8PE8tKVmW0Wq1pKWlodFoiI6O9qpfV1JSQlpaGrIsEx0draS+/4dYSp28/dMJdqUUIoruWURJlvlxbxZqlcioaxvxvz9SWbk9nTB/LckHcumRGEJsiIG317s/169VmFebkiSRkZFBbm4ugYGBREVFoVafNePyavRarZaYmBivuoLl/ep0OomKivJKiFpSUkJ6errnvfIs8Xa7nfz8fIKCgtBqtZ7vkGWZoKAgCgsLkWV3IdDysjwxMTGoVCpycnK8bDMqKsrTRkVEUeSOO+7Abrd7sgWXlZWRmpqKLMv4+fmhVquVB90/IK2glD+PFdCuYQAP92nIVQ0DeHvDCRatP86j/9eYtrHepZO6Nw3mj6P5bDtRwKm8UhqHeWdvLk+GmZubS1ZWFmFhYZ6M9D179qR58+bExMTgdDrJy8vDZDKRnZ2NIAiEhoaybds21q1bx7333kvz5s0RRRG1Wo3dbufUqVOUlJTQoEGDi/I5OTk5ZGdne8q0lBc5h6p/J1XZpMPhIC0tjZKSEiIiIqosgK1QMxMAcHYGetGiRSxZssSrjmZeXh5PPvkkO3fupFWrVpw4cYKlS5eyePFiT+Fghdql1sWTS5IptbtolxDEsK4xpOTaKHVIuCQZtSgQF+J2VjtPFmItc1JqdxEbbGREr4aYdCpkGcordjgcDubNm8f3338PwAMPPMBTTz3F/Pnzuf/++xk+fDgASUlJzJ8/n6VLl/LZZ5+xe/duzGYz27dvp7S0lEGDBjFhwgT8/f05dOgQ06ZNY8+ePciyTOvWrZk2bRqJiYm+7qt6h0GrYljXGEL9tCQfyAHcs1FdEoIIMmlJjDSxfl822cVl6DUio/rGY9Sp2Hu6CJNeRZi/dx04h8PBu+++yzvvvIPdbkcQBO655x6efPJJ9Ho9GzZsYObMmZ4yKj169GDq1KnExsZy+PBhpk2bxs6dO3E6nTRq1IgpU6Zw9dVXe/p8165dgDth6uTJk+nWrRsHDhzgqaee4rXXXqN9+/ZIksTLL7+My+XilVdeYcGCBWzZsgWdTsfBgwex2+2MGjWKhx56yMs2R4wY4WnjfLz77rscO3aMN998k+LiYqZNm8a6deswGo20bduWnJwcpajwP+BolhVrmZMODQNRiSJdzxRxfWfDCc8MVLs4t4h2nFlW7tAwkD+P5nMkw1JJPAF89913LFy4kLS0NAIDA5k8eTIDBgwgOTmZ+fPns2zZMqxWK/fddx/R0dEcOHCAAQMG0LRpUxYtWkR2djYjRoxg4sSJmM1mSktLee2119ixYwc5OTl07tyZOXPmEB0dXeV1JSUlMWPGDAoLC4mJifEqB+NyuXjnnXcq/U5Gjx7N66+/7mWT8+bNo1GjRsyaNYs1a9bgcrkICwvj+eefp1+/fr7uvjpJdU4AVCQtLY3k5GT8/f1JSkpi8ODBnlqYmzdvZvfu3SxYsIAePXpw8uRJbr/9dr744gt69Oih+AYfUPtDWQFUosCWYwXMXX2EEzkliAIICDhdMttPFLD9RAFOl+wRScKZz5T/fzkajYZRo0bRr18/evTowfz587nmmmuIiooiKSkJu92Oy+VizZo1hISEEB0dTX5+Pt9++y0RERG8++67PPbYY3z88cd88cUXOBwOZs2aRXp6OosWLWLhwoWcPn2auXPnYrfbfd1X9Q61SqBhqIGIAJ2n31SiQLcmwTQOM/L11nT2pRbTp0UYwSYtTSJMpBeU8dXWdAQEz86octLS0vj5558ZPnw4n376KUOHDmXRokXs37+ftLQ0JkyYQFBQEO+++y5Tp07ljz/+4KOPPqK0tJQZM2Zw8OBB5syZw4IFC5AkiVdffZWcnBxmzpzJ0aNHee2113jnnXdQqVRMmjSJvLw8HA4HqampXsHcubm55OTkIMsy+fn5JCcn06tXLz766CP69+/PggULSE1N5dFHH/WyzQsJ8Ly8PLKyspAkiQ8++IDvvvuO8ePH8/bbb2M2m9m7d6/iIP8BeRY7KkHAz6Bm0frj/LAni56JIYzsG4+1zMWnv5+m0OYAYN3eLBb8eByTXoVKFMizev/mBUHAYrGwbds2Hn30Ud577z2ioqJ44YUXSE9Pp6SkhNTUVFwuFw6Hg4MHD5Kdnc2MGTN4+OGHufXWWxkxYgSNGzdm/vz5XH/99UiSRH5+Pg6HgzfffJPp06ezceNGvv766yqv6cSJE7zwwgvExcWxdOlSRo4cydatWykpKUEUxSp/JwcPHmT06NGVbPKDDz5g5cqVTJo0iU8++YS4uDimTJlCenq6r7uvTlI+AdAi2o9hXWOICtRXmgCICzEiCkKlCYDR/RoxuFM0ek3lcj4bN27E6XQyfvx4du3axeHDhz3vtWvXjrfffptrrrkGtVpNSEgIfn5+vr4VVzQ+SVUgc1YQCZ7XZNQqgasaukeBp/NsiIKAIEKB1cGOkwXoNCI6tYrESDMalYAgCMTFxREaGkpJSQktW7ZEFEVuueUWpk+fTkpKCgaDga1bt/LEE0+g1+uRJInWrVszduxYQkNDadOmDZs3b2b9+vV0796dTZs2cccdd3iWVzp37szq1avJzc2tVOxT4eI4dwdQkc3J8l9Psed0EcO6RNE+SsPJtByKbE4CtCru6hjMkg0nWLvtJI0HNEd1ZrkqJiaG119/HavVSlFREQkJCciyTEZGBqmpqWRnZ/P222/Trl07unXrRmJiIrIsc/r0aX799VcmTJjADTfcAEBCQgInTpwgOzubX3/9leeff57+/fsD8Oyzz3Lvvfeyd+9eT1HOisKl4t+yLNOxY0fuu+8+zGYz9913H6tXryY9PZ3evXt7bLNVq1YXFfNksVhYt24dN998MyNGjADcRa/Xrl2r7KT6BwiC29/IskywSYNZ53Z5PRJDUKtEXJLkec2sVxNsdi/fy1CpKLUsu0sI3XPPPZ7Ys4kTJzJkyBB27txZyU7MZjOjR4/mxhtv9LwWGxuL0WikVatW+Pv7I0kSQUFBPPbYY7Rr145WrVrxySefcPTo0Sqvafv27eTn5zNx4kTatm1L165dOXjwIB988AGyLF/wd9K5c2cvm7TZbHz//fe0aNGC2NhYSktL6dmzJ+vWrWPfvn2KzzsfFSYAUnJtnMgpoVWMn9cEAHBREwDl2O12Vq1aRYcOHRg2bBgrVqxg7dq1tG7dGjhbPmzr1q38+eef/PnnnzgcDoYPH64MqnxErYsn4cy/LglBDOsSw9w1RwC3o3K6ZFbtyAAgwKChWZQZm0Pi221pzP/hKKIg0K1pME3CTaA6+/Aq/+dyuRBFkZ49e2Iymdi0aRP+/v4IgkCfPn08x8fFxWE2u3O5lFcq37FjB1lZWVitVlatWsXvv/8OuGNP4uPjlW3i/wIZd7xTOat3ZfLT/mxubB+JVrYzZsp7ILlAFNGqRAQBcopK+WGvlmFXj/GUb8nOzmbKlCn88ccfnjigkpISz3smk8mrkGaHDh0A98NGlmXi4+M97zVq1IhGjRp53qtY1zA2NtYTH3Ixo7vg4GBPzJzRaESlUnns5VzbvBCCIFBWVkZBQYHXuQYFBREdHa2Ip39AqJ8OSZLJszoY3iPWY4cCcHWCd0Buz8QQrmkWwuozmxZC/XSV2tPpdF59ExUVhV6vJycnxytOSZZlNBoNgYGBXp+XJMnrv+VtlscYiaKIn5/fBf1NTk4OZrPZy9YbNWrkWeLJyso67++k3H4q+syysjLy8vI4ePAgkydPRpIkJEkiPj5esbcLUF0TAOUcOXKE7du389xzzxEcHEznzp1Zs2YNDz30kCf+EuDAgQN88803nDx5ksjISBwOh69vxRVLrYsnk07NvT3jiArUEWjUMLhjFKIoEGzWYNarkSR38G3DUAPNo/xoGGqkUaiBQpsTg0ZF61g/dJrKD6GKD6eoqCh69erFmjVrMBgMdO3aldjYWMD9gEpJScFisaDX63E6nZw8eZKQkBDCw8Mxm8089NBD3HXXXUiShMViobS0lIiICB93Vf3FoFERYtaiEgVKHRIpuSWYdGq2HivgF0sRhdZSZo8djFqlwuF0ohZFZEHgreUbkCqorqSkJFauXMmbb75Jnz59OHToEPfccw+SJBEeHo7VaiU9Pd3TV3v37sXlchEQEIAgCBw/fpy+ffsC7t1Jp0+fJigoyGMT5Zw6dQqn00loaCgqlcorf095IHBFh/Z3XIxwAjwbGQIDAzl58qTn9fIgeGWEeek0iTARYNTw59F8+rUMw6Q7u1xSrg0qzg6U2F38eSwfP72appGVg7bLyso4ceKE5+/09HRKS0sJDQ296BxPVeWJOnteFxYtISEhWK1WMjIyCA8PB+DkyZOUlZWhUqn47rvvzvs7qdiuy+VCEAR0Oh2BgYG0adOGWbNmeQR8eSyVQmWqewIAYN26dZw6dYply5aRlJTE0aNHSUlJYffu3V4B4UOHDmXgwIHk5OTwzDPPMGXKFD7//HOvzS8KtUOtiye9RuTalqGev7tUGP01DqvsrPz0anokVr2FVxAEzGYzGzduZOPGjVx99dUYDAZuuukm7r//fgAWLlzo2SUjiiJ79uxh3rx5DBkyhN9++41ffvmFadOm0bhxY66++mpWrFhBmzZtMBgMvPPOO2g0GubMmXPenVIKf0+PxGA6xAfib1AjCgIj+8afmdIWyMjO5cW/khEEFZPnrCAju4BWiXH8d/StREeEoVZVjg1wuVxkZGSwfPly8vLykGWZTp06ER4ezowZM3j66adJTU1l+vTpDBkyhP/+97/07NmThQsXEh0djV6vZ86cORgMBhYtWkS3bt1YtGgR0dHRmM1mXnnlFeLj42nVqhVlZWWo1Wo++eQTAgMD2bZtG7/88gs333wzcHYUX44sy0iS5HntfLZ5Pso/5+fnR79+/Xjrrbfo1KkTbdq04aOPPuL48eO+7sZ6SWSAjh6JIXy3I521e7IY1DESURBwSTJrdmchyTI3totAfSaQd/2+bHanFDGgbQTRgXqvtgRBwOl0smzZMpo0aUJ0dDRz584lNDSU9u3bs3nzZi9bqGgH5ZjNZtLS0vj+++8ZNGiQ57iKnGtT59KxY0cCAgKYNWsWY8eO5fTp03zyySceUVYuss/9nVQ8h40bN5KcnEy3bt24/vrrWbx4MevXr6d169Z89dVXbNmyhTfeeOOSBglXCtU9AVBcXMzq1avp06cPt9xyC5Ik0aNHD95//32SkpLo2bMna9euJS0tjeHDh+Pv74+/vz+9e/dm/vz5WCwWRTz5gMuiPMvNN9/Mr7/+ysSJE1m4cCFXXXUV7du3JzY2lrKyMrp06eI5VpZl2rdvz9GjR3nggQcoKyvj7rvvZsiQIWi1WiZOnMiUKVN47LHHPKkKJk6cqKQr+Be4y1+cFUGBxrNpIRw2LaIgUGKXSM8qRK/XcfutvTH5+RERFuIRvQA33HADycnJTJkyhaCgIE8/63Q6oqKimDlzJjNmzODBBx9EkiS6dOnCvffei16vZ+LEiUydOpWnn34aSZKIjY1l4sSJhIWFMXHiRKZNm8bYsWMB97LdjBkzCAkJweVy8cQTT/DGG2/w22+/kZiYyDXXXOPJwRIUFOQ146DRaDxLOeBtm4sXL64yL0tQUBBhYWGIosj999/PiRMnmDVrFiaTiauuuorrr79eCRD9B4iCwI3tIjiQVsxnf5xGlmWuaxOOUasiz2LHJckIuNNqrNuXzYrfU2kUbuTmqyIqbSUXRZFmzZrRqlUr3nzzTTIyMggMDGT69OlERUVhMBiIiopCpVJ5UqCcK5a7detG9+7dmTlzJlqtlvDwcKKjoz12Xp7S4EKpAuLj45k2bRozZ85kxIgRREdH07dvXw4dOgS4fycbNmyo9DspP5eKNrlo0SJGjBhBWloaM2bMQJZljEYjo0aNokGDBr7uvjpJdU8A7Ny5kwMHDrBw4UKv+LjCwkJWrlzJuHHjSE9PZ9KkSbhcLvr3709KSgqff/45bdq0UYSTjxDkGlzYzrbYGfnJfgDeuaslYeaambkpz/dUXFzseXAdPXqU22+/nUGDBjF58mTPsePGjSM1NZWFCxeSl5eHWq2mQYMGXnmerFarVz6gc+MWaoPaune+Pt/0rDzGvbiY0fcMZMnHq7n91j788NMWBt90DTkFZdzQpy1m49nYE4vFQmpqKlqtlsjISCwWC2az2fNgKF/i0mg0xMTEeD28yvM8ORyOSv1a/p7L5SIyMtLLIblcLlJTUykpKSEyMhJBEDyBvoWFhbhcLs/yn9Pp9OTW0el0Htu0Wq2cPn3ak+yyYj6etm3b0rt3b8AdPyUIAqWlpaSmpgLuZejS0lI0Gs3fCqj6ZjfVxd9d95FMK0t+PsGhDAvNo/zo2CiQYJP7N59vdbDtRAF/pRXTJNzMw30bkhhZub6dy+UiNzcXf39/CgsLycvL88rzZLPZKCoqIjQ01NPv5XZQkaKiInJycggJCUGn01FYWOhZIi7fwQnw66+/snXrVq8lX1mWue666+jevTvZ2dmedvz8/CguLiYkxD3guNDv5Hz+sjzPU3FxMWFhYZ7cUf/2vtd3auP6Xn/9ddasWcPHH3/sWYYF+OOPP3jyySeZNWsWXbp0YebMmXzzzTeo1WocDgeJiYlMnTq1yvQnlwt11cYui5mn8tFauRNbs2YNs2bNQq1Wc/vtt3sdq9Fo0Gq1+Pn5VZnR12Qy0bRpU19f1hWD3eHC4RIY/eBtBAWYuUVn4N3l33Ntr66VdjyZzWaaNWvm+fvckX1gYGCVYtdoNNKkSZNLfk+lUnkFlFfk3FGfWq32io+raJvZ2dmegNxyyv8ODAz0mmXT6/UkJCR4nZ/CP6dJhImnb2jC97uz2HQol89+P+2xLUmWCTJqGNQhigFtI4gM0J23DZVK5Xm46fX6SnGQBoPByx6ripMsX3Ypp2IiV0EQCA4O9izjulyuSsvC5X+HhYURFhbm9f3lXOh3cq6/hLMbZxRqn/vuu4/hw4dXeh516tSJb775Bj8/P0wmE1OnTuW+++4jNTWVgIAAmjRpoiyr+pDLQjydS0BAALfeeiv9+vWrlFvnrrvuwmazeWWlVvAdarUKnVbD8q9/JDoijMiwUMJCg7m2V1f2/nUIW//2GA11Y6Txb+nUqROdOnXy9WlcsYT76xjeI5YBbcM5nl1CjsUOMoSYtTQKMxLmr60k1n2FIAgMHDiQgQMH+vpUFGqYqsrpqFQqrx2VGo2GxMREJWFzHeGyVBDdu3ene/fu531PqQVUtwgO9GP+1NHIkjuHjkqlQq1WIQoCtv7tCQww//svUVA4gyi4RVS4v+7fN6agoHDFclmKJ4X6g0oUPXmczuVymXFSUFBQULi8UMSTgoKCgsK/RhAEXE4H+ZYyZJUGg1blyd6uoHC5Uacs2+6UWLs3i5xiOyFmLYmRZuLDjOjUSjV5BQUFhbqKIApk5eTx8R/72HjcggM1DaPDua1rAr2aBKIW60YsmYJCdeFz8WSzuzwFYB0umU0H89h9qvBMbiCRDvGBDOoYSdMIJfZFQUFBoc4hCJSV2Xl7zTZ+3nuK05u+wJp2CGNUU/YNHMmUe6+jb9Ogf/89Cgp1CJ+Kp50phazakcEtV0XSLs4d9yLLMnEhRgZ1jOKv1CJ+P5rP4UwLD/eJp1OjwEptyLJMaWkpOp3uokpg1DSyLGO329FoNHXifBQUFGoOl8uF0+lEq9UiSRJ2u73KLPKXQk34tb9rs+K1XEopIEGAQmsZWwpLSNv8BXm71gFQlp3CAY2G79q0oEvDAExaxR8qXD74zJpTcm289/NJNh/OY9FPx9l9qgiNSqBVA3+6JgTRr2UoY/on8Ph1jbE7Jd79+QRHs6yV2jly5AgjR44kOTnZpzeynKysLCZMmMCePXt8fSp1Aqckk291kFNsp9DmQJah1CGRa7GTY7GTa7Fjs7vLSkgyFJa4j823OnBJlfO3lpWVUVpa6uvLUqhH2J0S6QWlOF1n7anI5uR0no0i29kCvC5JJquojNN5No9N/h1//vknkyZNori4mHXr1jFq1CivOonnQ5IkSkpKLljj7lL82sW0dzFtll9LQUHBpd1gGVBrcIpqrKmHvd5SWTLJKrBQ5pQurU0FhTqOT8ST0yXz3Y50sorKuLFdBKV2iYXrjvFXWjF3dmvA3d0boFGLaFQCvZqFcP81ceRaHKzcnoHDVflHqFKp6kzRVIvFwqpVq0hLS/P1qfgcpySzcnsG41fsY+zyPUz6/C/+OJbPr4dz+e+nexm3fA/jlu/l9R+OklVUxm9H8pj0xV+MXb6H8Z/t49vt6ZUE1NKlS1m0aFGlemAKCuciy26RtHpXJq8kHSbPagdgf2oxM1ce5KVvDzJj5UF2pRQhy7BmdybTvj7AS98eZMGPx8gptv/td6SkpLB69WpKSkoQBOGiZolSUlIYN24chw8frvIYQRAu2q9dTHvlXKjNitdyqRg0auKjwzFGn000q1WraNq5D7ERIejUdcM/Vyc1IcqPHj3K119/7ckyfz6Kior4+uuvSUpKUgaSPsQny3ZpBaX8eayAdg0DeLhPQ65qGMDbG06waP1xHv2/xrSN9c6a2r1pMH8czWfbiQJO5ZXSOOxstuVGjRoxdepUT+Zfl8tFWloaBQUFhIaGEhER4XFoRUVFpKamIooiDRo0wGQyIUkSubm5GI1GT/06q9VKSUkJISEhiKKILMtkZmaSl5dHUFCQp0RHOcXFxaSlpWE2m3E6nXVKzPmSYpuTNbsz0aoE2iUE8cfRfDbsz6ZZlJkCm9OzDLvtRAFtYwPYmVJIoc1B14QgVGcKtTpcEipR5SkpsWnTJmw2G4MHDyYkJASLxUJgYKAnS7Pdbvf0U2lpKbIso9VqSUtL89Qbq1iKp7wsS3kdQ6WG4eWDpdTJ2z+dYFdKIaLontmUZJkf92ahVomMurYR//sjlZXb0wnz15J8IJceiSHEhhh4e737c/1ahVVqNycnh+zsbE8JE5VKhSRJ9OzZk2bNmhETEwNU9kWRkZE4nU4OHjzIDz/8QP/+/YmMjMTf35+8vDx0Oh1Wq5XCwkLi4uK8/BqctdXyslEBAQE4HI5K7QUEBJzX/5zrK6u6lkv1XTIyfno1t3VsQHb6KP5Sa1BZMmnauQ8xPYdwXYswTFrVJbVZl5FlKC518tP+bJIP5DDhlkTC/XXsTy3mo00pFJQ4CDBquKtbLG1j/VmzO5M1uzJxSTIJ4SZG9GpIqF/lNCySJLF48WIWLVrEkiVLuPPOO8/7/UuXLmXy5MkkJibSuXNnrwz1CrWHT8TT0Swr1jInHRoGohJFup4prPjOhhMsXHeM0f0aeWKgHGdUfYeGgfx5NJ8jGRYv8ZSWlsYDDzzAlClT6N69O/Pnz+eTTz7B4XCg1WoZPXo0Dz74ILt27WLKlCkcO3YMWZZp06YNM2fOJDg4mFGjRvGf//yHe+65B4Bvv/2W//3vfyxdupSAgACWLl3KkiVLKC0tRavVMnLkSB544AHUajV79+5l0qRJHDhwgJCQEDp06IDD4VDEE+4RV6ndRbuEIIZ1jSEl10apQ8IlyahFgbgQdz/uPFmItcxJqd1FbLCREb0aYtKpkGV3PAWAw+Fg3rx5fP/99wA88MADPPXUU8yfP5/777+f4cOHA5CUlMT8+fNZunQpn332Gbt378ZsNrN9+3ZKS0sZNGgQEyZMwN/fn0OHDjFt2jT27NmDLMu0bt2aadOmKRl8LxMMWhXDusYQ6qcl+UAO4H7wdUkIIsikJTHSxPp92WQXl6HXiIzqG49Rp2Lv6SJMehVh50mkmZSUxIwZMygsLCQmJoaoqCjAPaOTnJzM66+/zscff0xgYCBvvPGGly96/PHHadGiBS+88ALp6ek899xzDB8+nMcff5yxY8ditVrJzs4mKCiIqVOnMn78eCZPnkzv3r05fPgw06ZNY+fOnTidTho1asT06dMRBMGrvbvvvpuJEyd6DRDKqegre/fuXeW1XDIyyAL0Sggk4p7rWNm6OVn5xcRGhnJdizB6NQksP4zLwSvWlChPS0sjOTkZf39/kpKSGDx4cKW6iFu2bOH999+nffv2WK1WarA0rcLf4JNluzyLHZUg4GdQs2j9cX7Yk0XPxBBG9o3HWubi099PU2hzALBubxYLfjyOSa9CJQqeqfdyHA4HqamplJWVsW/fPt566y2GDx/Ol19+yX/+8x82bNhAdnY277zzDrm5uSxdupQFCxZQUlLCH3/8gSRJpKenU1xc7GmzuLiY9PR0ADZv3sycOXMYNmwYK1asYMiQIcyZM4c///wTu93OzJkzSU1NZf78+cycOZNjx46Rk5OjiCcAAVSiwJZjBcxdfYQTOSWIAggIOF0y208UsP1EAU6X7BFJwpnPlP9/ORqNhlGjRtGvXz969OjB/Pnzueaaa4iKiiIpKQm73Y7L5WLNmjWEhIQQHR1Nfn4+3377LREREbz77rs89thjfPzxx3zxxRc4HA5mzZpFeno6ixYtYuHChZw+fZq5c+dit//9co1C3UetEmgYaiAiQOexJZUo0K1JMI3DjHy9NZ19qcX0aRFGsElLkwgT6QVlfLU1HQHBswu4nBMnTvDCCy8QFxfH0qVLGTlyJFu3bvUs2VmtVlJTU5Ekib1791byRevWraNBgwZMmDCBqKgoJk+ezMiRIxFFkdOnT7Nnzx5GjhzJrFmzMBqNnD59GpvNhtPpZMaMGRw8eJA5c+awYMECJEnilVdeoWHDhjz33HNe7VVVeqrcV5aWlnL69OkLXsslI8uoVQJ9mgby4q2teOOeLky6IYFrE4NQiwIuSeaH/Tn8fryQ+v68Lxfl/VqFecr5lIvy4T1iaRfnT4hZi6XM6RHlfVqEYrO7qhTlABs3bsTpdDJ+/Hh27dpVaRm2uLiYOXPm0K5dO4YNG6Y8Y3yMT2aeBME9CpFlmWCTxpNIrUdiCGqViEuSPK+Z9WqCze5RlAyVak9VjDMQRRFBEDh48CDdu3fn4YcfRqfTYTKZ0Gg05Obm8tdff9GzZ0/ee+89zGYzVqu1UpxCxTbXrVuHwWCgbdu2WCwW2rZtC8CmTZto0KABW7Zs4fnnn+f6668HoLS0lN27dysjgjPInBVEguc1t6O9qqF7dvF0ng1REBBEKLA62HGyAJ1GRKdWkRhpRqMSEASBuLg4QkNDKSkpoWXLloiiyC233ML06dNJSUnBYDCwdetWnnjiCfR6PZIk0bp1a8aOHUtoaCht2rRh8+bNrF+/nu7du7Np0ybuuOMOtFr3FHrnzp1ZvXo1ubm5/3wUrlDnOPe3WGRzsvzXU+w5XcSwLlG0j9JwMi2HIpuTAK2KuzoGs2TDCdZuO0njAc1RnfEF27dvJz8/n4kTJ9K2bVu6du3KwYMH+eCDDzxtlz/Qype/zvVFgYGB5OXlodfradq0KZGRkRQWFgIwZMgQz+z3sWPHPH4oLS2NX3/9lQkTJnDDDTcAkJCQwLFjxwgMDCQhIcHT3oXstrw9URTZtm1bldfyb32XSStW2lknCgIqUeCjP9M4VVDKLa3D0Gvq5+67C4lyu1PyiPKhXaIJNmkJNmnZeryAL7e442DPd912u51Vq1bRoUMHz0B97dq1tG7d2nPM//73P/766y+WL1/Ojh07lGeMj/GJeAr10yFJMnlWB8N7xFIeEywAVyd45wPpmRjCNc1CWH1mzTjU7/yqvfxBOWPGDN577z3uv/9+wsPDefDBB7nrrrt44oknkCSJV199ldmzZ9OzZ0+eeeYZQkJCkGX5vCre4XCQm5tLamoqs2fP9sQ/BQQEYDKZyM3NBfCqRh4fH4/RaFQMG3d/CrhHZMO6xDB3zRHA7UidLplVOzIACDBoaBZlxuaQ+HZbGvN/OIooCHRrGkyTcBOoykd3suefy+VCFEV69uyJyWRi06ZN+Pv7IwgCffr08RwfFxeH2ezOEVZeOX7Hjh1kZWVhtVpZtWoVv//+O+DeyRcfH4/T6byk61So28hAxX0Hq3dl8tP+bG5sH4lWtjNmynsguUAU0apEBAFyikr5Ya+WYVeP8ZQPysnJwWw2exVrbdSoETqdzuv3LkkSrVq1Oq8vuvvuuz2bHSpuehBFscoCsfn5+ciyTHx8vNf3NmrUyKudi91EIQjCBa+lJhAEuK55CBF+Wj76M52UvFKGd4kiwq/+lmC6kCi/82r3zJS1zEVqvo2mESaeubEpc5IOs+lgLomR3nkLjxw5wvbt23nuuecIDg6mc+fOrFmzhoceegh/f3+OHDnC22+/zYgRI2jbti3bt28HUNLh+BCfiKcmESYCjBr+PJpPv5ZhmHRnp8fL7bHiMk6J3cWfx/Lx06tpGll1QK/T6WTAgAHccMMNpKSksHjxYqZMmULbtm1p0qQJM2bMwGKxsHnzZiZNmoTRaOT5559HEASvHSZ5eXk4HA40Gg3BwcE0bdqUt99+m6CgIFwuF7m5uYSGhnqW+ipuTT558uQ/n/q+zDDp1NzbM46oQB2BRg2DO0YhigLBZg1mvRpJcovWhqEGmkf50TDUSKNQA4U2JwaNitaxfug0589HU+40oqKi6NWrF2vWrMFgMNC1a1diY2MB90MiJSUFi8WCXq/H6XRy8uRJQkJCCA8Px2w289BDD3HXXXchSRIWi4XS0lIiIiJ8fesUqhGDRkWIWYtKFCh1SKTklmDSqdl6rIBfLEUUWkuZPXYwapUKh9OJWhSRBYG3lm9AqqC6QkJCsFqtZGRkeIKuT548SVlZWaXfu8vlOq8v6tixo2cQdrFiJzg4GEEQOH78OH379gXcPiclJYWuXbsCXFJ7sixf8FpqkrYxfjzTT8snWzPYfbqY61qE1Oj31SRVifIB7SIIMmk5lGHBqFWxYN1x+rcOIz7UiMMpoT5PxYx169Zx6tQpli1bRlJSEkePHiUlJYXdu3fTs2dP3n77bWw2Gx07duTw4cOeJd0DBw54bXZSqD18Ip4iA3T0SAzhux3prN2TxaCOkYiCe118ze4sJFnmxnYRqM/suFq/L5vdKUUMaBtBdKD3zoJypyGKIn/88QfTpk3j/vvvp1u3bkRFRaFWqykrK2Py5MkUFxfzxBNPEB0djZ+fHwBGo5GYmBi+++47unfvTkFBAV9++SWSJCEIAtdeey3Lly/niy++YODAgWzZsoVly5bx7LPP0qtXLzp27Mhbb71FdHQ0Op2ON954g6KiIl/3a51ArxG5tmWo5+8uFWYVG4dV/rH76dX0SKzamQqCgNlsZuPGjWzcuJGrr74ag8HATTfdxP333w/AwoULUancYlwURfbs2cO8efMYMmQIv/32G7/88gvTpk2jcePGXH311axYsYI2bdpgMBh455130Gg0zJkzx7OUp1D/6ZEYTIf4QPwNakRBYGTf+DNxdgIZ2bm8+FcygqBi8pwVZGQX0Coxjv+OvpXoiDDUqrMDu44dOxIQEMCsWbMYO3Ysp0+f5pNPPvHKryTLsscXTZ8+3csXldul0WjEZrORlJRE48aNPTPVFWcyyv2aJElERUXRs2dPFi5cSHR0NHq9njlz5qDX6/noo48wmUye9uLj44mJiTnv4K1imxdzLTVFpL+Ox3vFUt/n5qsS5duOF7D1WAENgg2Mvjaero2DWL0zExmICzXSt0WoVzvFxcWsXr2aPn36cMsttyBJEj169OD9999n9erVtGvXjmPHjpGfn8+YMWMQBIHc3FxycnIYO3Ys8+fPp0ePHr6+HVccPhFPoiBwY7sIDqQV89kfp5FlmevahGPUqsiz2HFJMgLuXQ3r9mWz4vdUGoUbufmqCE8wcTnl2891Oh1t2rShTZs2vPzyy6hUKrRaLePGjaNjx44UFBQwc+ZMhg8fjiAItGjRgocffhij0cioUaOYOHEiDz74IDExMbRt29YzVX7NNdcwfvx43n33XZYvX+6Js+ncuTNarZaJEycyadIknnjiCYKCgujWrZtnpkOh+rn55pv59ddfmThxIgsXLuSqq66iffv2xMbGUlZWRpcuXTzHyrJM+/btOXr0KA888ABlZWXcfffdDBkyxNN3U6ZM4bHHHvOkKpg4caIyirvMcJd6OiuCAo1nd6I5bFpEQaDELpGeVYher+P2W3tj8vMjIizEI3jAvSQ/bdo0Zs6cyYgRI4iOjqZv374cOnQIURQxGo1ERUUhiuJ5fdHTTz9Ns2bNcDgcDBs2jC+//BKNRsNTTz1FREQE/v5nU7SU+zW9Xo9arWbixIlMnTqVp59+GkmSiI2N9dhqdHS0pz21Ws306dPPex+0Wq3HV8bGxlZ5LRWvuabQXgb1SqsS5eWoRIFAo4bbu8a4A8YdLiL8dfjpvR+7O3fu5MCBAyxcuJAbb7zR83phYSErV67kscceY86cORQWFiLLMiqVii+//JLPPvuMV155hXbt2vn6VlyR+Kw8S2SAjpF941ny8wk+/vUUW44X0LFRIA2C3aLjm23pbDtRwF9pxTQJN/Nw34aVZp0AoqOj+eyzzwgICECv1zN79myeeOIJLBaLV56nAQMG0LlzZzIyMtBoNMTExHgekv369WPlypXk5uYSEhKC2WympKSEwMBARFFk1KhRDBo0iNzcXPz9/YmOjvbsaGnbti3Lli0jPT0do9FIeHg4hYWFXo5Qofro1asX3377LcXFxZ7g2NzcXGw2G4MGDSI09OyoTpIkGjZsyFtvvUVeXh5qtZoGDRp4tnE3b96cpUuXeuXOCQwM9PUlKtQisuxefnHJapo1jeP2W/uwat0WtDojYSEhqNXeQuKWW27h6quvJicnh5CQEPz8/CguLiY4OJi+ffvSsWNHQkLcoqsqX6TRaHjxxRd5/PHHMRgMBAYG8uabb3rFG1X0awBNmjThnXfeIS0tDYfD4WWrJpOJF198kTFjxiBJEkuWLCEtLc2ztC3LMnq9nsGDB7NixQqPb6rqWkJCan8pzSnJ/HIkn9ggPU0qpKKpy1xIlFdErRKICap6ML1t2zaaNWtGp06dvF4fMGAAa9as4eDBg1x77bVe7x08eJCEhATatWvnielUqF18WtuuSYSJp29owve7s9h0KJfPfj/t2U0nyTJBRg2DOkQxoG0EkQHnD2RUq9VeMSpardYTSHkuISEhVTqGiIgIr3Yqzj4IgkBUVFSVO1n8/f29xFLFJHQK1YsgCISGhnpE0po1a5g1axZqtZrbb7/d61iNRoNWq8XPz6/KfjeZTDRt2tTXl6XgQ+wOFw6XwOgHbyMowMwtOgPvLv+ea3t1rbS7FyAsLIywsLN5espr2RkMBq+6dhfyRXq93mujSUXRD5X9GriX+5o0aVJle3FxcdhsNs/yXPkyYPnfarW6km+q6lpqHRlSC8v4alcWt3eIoHvjIMQrJGz0vvvuY/jw4ZV8VKdOnfjmm288ISYVuemmm+jTp48y2PMhPhVPAOH+Oob3iGVA23COZ5eQY7GDDCFmLY3CjIT5a8/rwBQUAAICArj11lvp169fpeSWd911Fzabrcq8NwoKarUKnVbD8q9/JDoijMiwUMJCg7m2V1f2/nUIW//2GA31J/7NYDAwatQoX5/GJaNWCdzRIZJws5ZPt2VwMq+UQW3DMesun8zkVVHVLkuVSuW1G7IiJpNJCS/wMXXiqSIKbhEV7l8z22QVLl+6d+9O9+7dz/ueEgug8HcEB/oxf+poZMkdS6JSqVCrVYiCgK1/ewIDlCWR2kKtEujfIoSYQB2fbs2gYXAxPRMCfX1aCgrnpXbE05ms0goXj+C+adS7LSlKX/uUems31XcDLsn+VKLoyeN0LvVpxslX1IS9tYoy89//i0ejUvyIQt2l5sWTAC4Jcs6UVZGvWK9+8QgI5FjtuCRQ1adNKUpf+5R6azfVdwMU+6tFatLeAgx1YlFEQaFKat5CZcgrcTD+m8PuH5jiz/6eMw+BvBIHYSbNv2+vtlD6+uIRBHci2DP3SEb+9/ervtpNdaHYX+1Si/Zmd0nsPFVM41ADoWZlRlDB99SoeBIF4ayhX8lLCZeK7B7JhZk0hJrrR8C80tcXjyAKlJXZKSwpA5UGg0aNn16NLMC/qppaD+2mulDszwfUor25JPj1eAHf7Mni/q4xJIbXj3QGCpcvNSqegoxqXh7UFEmp8/aPEQWBIGPdn8JW+vriEASBzJw8lny/jT8LS3AKaqKjw7mtYwN6JQSirqY4j/piN9WFYn++pabtzaARebB7A77cmckbP6dwW/tweiYEKXFRCj6jxmeeQq7E5YMrEKWvLw6X08FHf+xjw55TpG3+AmvqYY5FNyE7fRQR91xHn6aBvj7Feolif5c/fjoV93SOomGQnlV7swk2amjXwO/fN6yg8A+4coamCgp1gHxLGb8ct3B60xfk7VoHgC37JH+pNaxs3ZzODf0xaa/EaG8Fhb9HJQr0TQwmMcKEv49zQNmdErkWO2F+Os+McZHNSZHNgb9Bg/+ZoHeXJJNrsWN3SoSYtRi0VZ/30aNH2b17N3369PHK/2S329m4cSPp6eledQs7duxIixYtfHofrlQU8aSgUIvIKg0O1FjTDnm9rrJkklVQTJlTUsSTgsLfEBPgu5yAsgzFpU5+2p9N8oEcJtySSLi/jv2pxXy0KYWCEgcBRg13dYulbaw/a3ZnsmZXJi5JJiHcxIheDQn1qxz0LkkSixcvZtGiRSxZsoQ777zT815RURFTp06lsLCQkJAQZNld2Fqn0yniyUco4klBoRYxaFU0jA7HGNWUsuwUALRqFU079yE2IhSdWonhUFC4VMqcEkdzSmgUYsCgqdkZKUupk7d/OsGulEJEESTZXU7sx71ZqFUio65txP/+SGXl9nTC/LUkH8ilR2IIsSEG3l7v/ly/VmGV2k1LSyM5ORl/f3+SkpIYPHiwp95hSUkJxcXFvPTSS/Tp0wdJkpAkCaNRCZz3FYp4UlCoRcw6Nbd1TWDfwJEc0GhQWTJp2rkPMT2HcF2LMEzay78chYJCdVPqkPh8eyb+ejXDu0QRVoPpDAxaFcO6xhDqpyX5QA7gno3qkhBEkElLYqSJ9fuyyS4uQ68RGdU3HqNOxd7TRZj0KsKqqKSxceNGnE4n48eP57333uPw4cO0bt0agIKCAmRZJjw8nKysLE/Rc71ef9HnrVC9KOJJQaGW6dUkkBfuvY5VbVqQlV9MbGQo17UIo1eTQF+fmoJCvSTAoObhHg34+M805q4/yb1domgZZa6RWgdqlUDDUAMRATrKw49UokC3JsHYnRJfb01nX2oxQ7tEE2zSEmzSsvV4AV9uSQNAr6m8LG+321m1ahUdOnRg2LBhrFixgrVr13rEU3Z2Nnl5ebzwwgtkZ2djs9no2rUrL730EnFxcb6+/VckSnCFgkItoxYFrm0axIu3tuKNe7ow6YYErk0MQn2llJFXUKgBogN0jOkdR9toM0t/S+VYTkmNfp98TlqMIpuT95JPsn5/NndeHcP1bcKxlrk4lGGhaYSJZ25siizDpoO5ldo6cuQI27dvp2fPngQHB9O5c2fWrFlDUVERADabDaPRSJcuXfjggw+YOXMmv//+OwsWLMDlcvn61l+RKDNPCgo+wqQVleBwBYVqxKhVcUfHSDrE+hNqqtlM5DLueKdyVu/K5Kf92QxoF0GQScuhDAtGrYoF647Tv3UY8aFGHE4Jtbryb37dunWcOnWKZcuWkZSUxNGjR0lJSWH37t307NmTa665hqSkJBo2bIhWq6V9+/Zs27aN5ORkioqKvHbmKdQOiudWUPAxkgx/nCjkUFbNjpQVFK4EVKJAi0hTjdfHM2hUhJi1qESBUodESm4JJp2abccLWLrxJF9tTcdPr6Zr4yBW78zkrXXHiQs10rdFqFc7xcXFrF69mj59+jBkyBD69u3LvffeS0xMDElJSQDs3r2bVatW4XA4vD4riqJX6gKF2kOZeVJQ8DGiAIeySkgvKmPctQ2V5TsFhWqmzCmRVWwnOkCHqpp+Xz0Sg+kQH4i/QY0oCIzsG4/TdXYqSiUKBBo13N41hj4tQrE5XET46/DTez92d+7cyYEDB1i4cCE33nij5/XCwkJWrlzJuHHjsNlszJ07F4fDwbBhw9i3bx9ff/01gwcPxt/f39e394pEEU8KCnWAXk0Cmbv+JIezSmgRafL16SgoXFYUlDhZ9Msp2kT7cWu7cAyaf7/ooteo0FdIixBoPH+Ge7VKICao6l1x27Zto1mzZnTq1Mnr9QEDBrBmzRr27t1L3759GTduHO+//z4fffQRTqeT7t278+ijjyKKygKSLxBkWSkGpaDga2QZFv5yCoDR1zS4oor6KijUNLIMe9MtfPxnGmFmLfd0iSLS/+8TbWZb7Iz8ZD8A79zVskZSIOTn5+NyuQgJCfFagnO5XGRnZ+Pn54fJZMLlcnHixAlOnz5NUFAQTZo0uSLyPNVGH/wTFMmqoFAHEAS4NjGYk3k2sood/75BBQUFD4IAbaLNPNMvHlEQeDP5FBlF9vMeW+qQKLA5KbA53QHhNTyOCQoKIjQ0tFLskkqlIjIyEpPJ5Pk7ISGB3r1707Zt2ytCONVllGU7BYU6QpMwIyN7NKjR6vQKClcy4X5aHu3VgJ2ni9GpBbKK7WQUlZFZbCer2E6u1UFRqZM8qwOHJDOqZwMEBGSUBRoFbxQvraBQR9CoBJqEKaNJBYWaxKBR0a1RIPklDqavOYYouEWVv15NiElDyygTBo2Kz7dnkllkRxDcy34KChVRxJOCgoKCwhWHIAhoVQK3XRVB54b+aFVno1jsLomfD+eRWVxW06t2CvUUJeZJQUFBQeGKQ68WCTZpsDlcXsIJQKsSCdCrySq2/8PWFS53FPGkoFAHOZxVwv4Mi69PQ0HhskWvEfHXq8msInA82KQl1+rAKck1HjSuUP9QxJOCQh3kWG4Jn27NwGpX6lYpKNQUISYNudbz726N9NNSaHNS5pRQ1JPCuSjiSUGhDtIxNgBrmYvdqcW+PhUFhcuWcD8tRaVO7C7J63W7S8KgFckrcVDqkBTppFAJJWBcQaEOEmrW0CU+gJ8O5tEh1h+dWhnnKChUNxF+WrKK7Ww5WYTN4SKz6Gy6ghyLA7tL9ir+WxG7UyLXYifMT4da5ZZXRTYnRTYH/gYN/mdq67kkmVyLHbtTIsSsxaBVVXk+R48eZffu3fTp06dSsV+Hw8GmTZv4888/kWWZHj160K1bN9Rq5THuC5S7rqBQR7kmIYgtJws5nmujeYRSskVBobqJ8NchyfDljkyCTRpPuoIWkSaizmQgf/67I155nmQZikud/LQ/m+QDOUy4JZFwfx37U4v5aFMKBSUOAowa7uoWS9tYf9bszmTNrkxckkxCuIkRvRoS6lc5S7YkSSxevJhFixaxZMkS7rzzTs97TqeTt956i7feeotGjRphtVpZvHgxU6ZM4f7771eKA/sARTwpKNRRIv21PNgthnC/ulGOQEHhciPMrGH6zQmIgoBeLaI/p+ZdjogilycAAIAASURBVMWBKELFHJmWUidv/3SCXSmFiCJIMkiyzI97s1CrREZd24j//ZHKyu3phPlrST6QS4/EEGJDDLy93v25fq3CKp1LWloaycnJ+Pv7k5SUxODBg9Hp3AJu9+7dLFy4kNGjRzNq1ChKS0uZMmUKa9as4bbbblOKA/sARTwpKNRRVKJAyyizr09DQeGyRRQEgqso6Au4Z5zOWbYzaFUM6xpDqJ+W5AM57uNk6JIQRJBJS2KkifX7sskuLkOvERnVNx6jTsXe00WY9CrCqqipt3HjRpxOJ+PHj+e9997j8OHDtG7dGoAff/yRoKAgbrvtNlJTU7Hb7Tz//POo1WpP+RaF2kUJpFBQUFBQULhI1P/P3n2HR1WlDxz/3ju9pE0mnTQITXoTEJQgooC4rujiotgL+tNV1F1ULNhQRMVOUBAQsSAqigaUDWgQdZdOpIQSSnpIzySZTLv390fMmCEBYUUicD7Pkwdy78zNnZvJ3Pec8573aCQS7SaiQgw0jZZpZInBKTbaR5hZtrGIHQUOhnWxY7PoSYmyUFjZwKcbCgFa9G4BuN1uvvrqK/r27cv48eOxWq2sWrUKAFVVycvLw2g08vjjjzNhwgSuvPJKbr/9dgoLC9FoNMd97sLJI4InQRAEQThB6hFrttQ4vbyTeYjVO0uZMCiOS3pEUufysae4lo5RFv45piOqCut2l7c41r59+9i8eTNDhw7FZrMxYMAAVq5cicPhwOv14nA4WL9+PTabjXfffZc5c+ZQVlbGtGnTqK0V9eDaggieBOE0cNjhJrukTqyxJQh/EioEzMRbsa2ENTtL6ZccSphFz57iWsocLt7IOMD3e8pxeXx4vAraVmbOZmRkkJeXx+LFi7nuuutYt24dW7ZsYdu2beh0OoKDg4mLi+OBBx6ge/fuDB8+nDvvvJOsrCwKCwvb+lKclUTwJAingbyqBub/VEBFvef3H0wQhN/NpNMQbtWjkSUaPAq55fVYDFo2Hahi/tpDfLaxiCCjloHtw1ixtYQ3Mw6QYDczvKs94DgOh4MVK1aQmprKVVddxfDhw7n++uuJi4sjPT0dgA4dOqDT6Vr0dkmSJGbatRGRMC4Ip4EuURb0GpmfDlQxtnvE7z+gIAi/y5BONvomhRJs0iJLErcPT8Lr+zW40cgSoWYdVw+MI7WrHafHR1SwgSBj4G1369atZGdnM3v2bMaMGePfXl1dzfLly5k8eTKXXnop7777LjNnzuTuu++mpKSEtLQ0evfuTWxsbFtfirOS6HkShNOARa9hWMcw1uVU4WjwtvXpCMJZz6jTEGbRoZElJAlCzTrsQXr/V5hFhyQ1JpjHhRlJibS0CJwANm3aROfOnenfv3/A9lGjRqHT6di5cycdO3bkmWeeYfPmzYwbN47bbruNiIgIpk2bJmbbtRHR8yQIp4kBicFkZJeTVVjLkPahbX06giCcBDfccAMTJ04kPDw8YHv//v35/PPPCQoKAuDSSy9lwIAB7N+/H71eT0pKiqjv1IZE8CQIp4lQk45rB8S02noVBOH0dOQyLE00Gg3R0dEB2yIjI4mMjGzrUxYQwZMgnFZ6xgW19SkIgiCc9UTOkyAIgiAIwgkQwZMgCIIgCMIJEMGTIJyG6t0+csqc+BRRNVMQBOFUE8GTIJyGDjvcvLUuj/yqhrY+FUEQhLOOCJ4E4TQUF2rEbtXz3d7Ktj4VQRCEs44IngThNKTTSFzYycaWPAclDndbn44gCMJZRZQqEITTVPcYK2FmLT/tr+KvvUTtF0E4ldxehfJaNxFBBrSaxvXlapxeapwegk06gk2Nt1efolJe68btVQi36jHpNUc9Zk5ODllZWaSmpgbUf9qzZw8bNmxosbZdTEwM559/Pnq9vq0vx1lHBE+CcJoy6mSu7B2Fx6e09akIwllDVcHR4GXNzlIys8t4+LJORAYb2FngYNG6XKrqPYSYdVwzOJ6e8cGszCph5bYSfIpKh0gLN12QiD2oZbCjKApz5swhLS2NuXPnMmHCBP++nTt3Mm/ePBRFQZIkVFUlJyeHHj16MGDAABE8tQERPAnCaax7rLWtT0EQziq1DV7eWnOQbbnVyDIoKiiqyr+3H0arkZl0YTIf/7eA5ZuLiAjWk5ldzpBO4cSHm3hrdePzRnRrubh3YWEhmZmZBAcHk56ezrhx4zAYDEDjOnfnn38+qqoiyzLFxcVcf/319O3b1798i3BqiZwnQRAEQThOJr2G8QPjGNEtAllqHK5TVTi3QxgTh8TTKyGYcKueWpcXo05m0vAkUrvacbp9WIwaIoINrR537dq1eL1epkyZwrZt29i7d69/n9FoJDw8HLvdjs1m44cffsDlcjFx4kSkX85BOLVE8CQIgiAIx0mrkUi0m4gKMdAUt2hkicEpNtpHmFm2sYgdBQ6GdbFjs+hJibJQWNnApxsKgcbh9iO53W6++uor+vbty/jx47FaraxatarVn19cXMyCBQu4/PLL6dKlS1tfjrOWCJ4E4QzgVVQKqlx4fKJopiCcCkcmb9c4vbyTeYjVO0uZMCiOS3pEUufysae4lo5RFv45piOqCut2l7c41r59+9i8eTNDhw7FZrMxYMAAVq5cSU1NTYvHfvrpp9TU1IhepzYmgidBOAM4GrykrctjV3FdW5+KIJwVVBrznZqs2FbCmp2l9EsOJcyiZ09xLWUOF29kHOD7PeW4PD48XgWttuVtNyMjg7y8PBYvXsx1113HunXr2LJlC1lZWQGPKygoYNGiRVxxxRV07ty5rS/BWU0kjAvCGSDUpCMxzMiaPeV0i7GgkUWLVBD+SCadhnCrHo0s0eBRyC2vx2LQsulAFRv3V9HOZuLOC5MY2D6MFVtLUIEEu5nhXe0Bx3E4HKxYsYLU1FQuu+wyFEVhyJAhLFiwgPT0dIYOHep/7CeffEJdXZ3odfoTEMGTIJwBJAmGd7Lxyre5HCh3khJhbutTEoQz2pBONvomhRJs0iJLErcPT8LbbNhcI0uEmnVcPTCuMWHc4yMq2ECQMfC2u3XrVrKzs5k9ezZjxozxb6+urmb58uXcc889xMTEkJuby6JFixg3bpzodfoTEMN2gnCGSA43kRJh4ts9lYjMJ0H4Yxl1GsIsOjSyhCRBqFmHPUjv/wqz6JCkxgTzuDAjKZGWFoETwKZNm+jcuTP9+/cP2D5q1Ch0Oh27du0CIDMzE7PZzMSJE9v6pQuApB6Z9SYIwmlrz+F6ciucpHayoRVDd4Lwu5TWurn9g50AvH3NOURYT34xysrKSnw+H+Hh4QFDcT6fj9LSUoKCgrBYLFRVVeF2u4mIiDirhuxOxe/gfyGG7QThDNIp0kynSDFkJwini+bLsDSn0WiIjo72fx8aGtrWpyo0I4btBEEQBEEQToAIngRBEARBEE6ACJ4E4QykqlBR5xGLBguCIPwBRPAkCGcgl09h4X8L+elAdVufiiAIwhlHBE+CcAYyamUSw4x8u6eCBo/ofRIEQTiZRPAkCGeooSlhVNZ72V5U29anIgiCcEYRwZMgnKGigvT0iQ9i9e5ysWCwIAjCSSTqPAnCGWxEZxvrcqrwKgo6jaatT0cQzhhur0J5rZuIIANaTWPRyhqnlxqnh2CTjmBT4+3Vp6iU17pxexXCrXpM+qP/Hebk5JCVlUVqamqL+k8VFRV8/fXX7N69m9DQUEaMGEHPnj3b+jKctUTwJAhnsHahRsb3jUI+iyoSC8IfSVXB0eBlzc5SMrPLePiyTkQGG9hZ4GDRulyq6j2EmHVcMzienvHBrMwqYeW2EnyKSodICzddkIg9qGWVbEVRmDNnDmlpacydO5cJEyb491VWVnLPPfewadMm+vTpQ2FhIfPnz+f1118nNTW1rS/JWUkM2wnCGU4EToJw8tQ2eHlrzUE+WV9Iea0bRQVFVfn39sNoNTKTLkxGliSWby6iqLqBzOxyhnQK59oh8WzLrWFbbuszYAsLC8nMzCQ4OJj09HRcLpd/34YNG8jMzOT555/nvffe44MPPiAiIoKPPvoIn8/X1pfkrCSCJ0EQBEE4Tia9hvED4xjRLcLfMFFVOLdDGBOHxNMrIZhwq55alxejTmbS8CRSu9pxun1YjBoigg2tHnft2rV4vV6mTJnCtm3b2Lt3b8B+nU5HeHg4Go2GkJAQgoOD8fl8iOVp24YIngThLFHv9uH2irIFgvB7aDUSiXYTUSEGmjp1NbLE4BQb7SPMLNtYxI4CB8O62LFZ9KREWSisbODTDYUAGHUtb7tut5uvvvqKvn37Mn78eKxWK6tWrfLvHzRoEKNHj+ahhx7i8ccf54477iA3N5eJEyei1Yrsm7YggidBOAuoKizbdphvdpW39akIwhnhyB6fGqeXdzIPsXpnKRMGxXFJj0jqXD72FNfSMcrCP8d0RFVh3e6Wf4P79u1j8+bNDB06FJvNxoABA1i5ciU1NTUAOJ1OPB4PRUVFrF+/nh07diBJEm63u60vw1lLBE+CcBaQJIgNMbB2XyVVTk9bn44gnPZUQGkWP63YVsKanaX0Sw4lzKJnT3EtZQ4Xb2Qc4Ps95bg8PjxeBa225W03IyODvLw8Fi9ezHXXXce6devYsmULWVlZALz77rusW7eOhQsX8tlnn7Fy5Ur69u3LtGnTKCsra+tLcVYSwZMgnCX6JwajkSU2HKpp61MRhNOeSach3KpHI0s0eBRyy+uxGLRsOlDF/LWH+GxjEUFGLQPbh7FiawlvZhwgwW5meFd7wHEcDgcrVqwgNTWVq666iuHDh3P99dcTFxfHihUr8Pl87Nmzh/bt2zNgwADMZjNRUVEMGzaMgoICystFb3JbEIOlgnCWCDJoGdohlO/2VjI4ORSrQdR9EoT/1ZBONvomhRJs0iJLErcPT8LbrBitRpYINeu4emBcY8K4x0dUsIEgY+Btd+vWrWRnZzN79mzGjBnj315dXc3y5cuZPHkyffr0YcaMGXz44YdcdNFFFBcXs3jxYpKSkrDb7cd9zsLJI4InQTiLDE4OpbjGjdPjE8GTIPwORp0Go+7Xv6FQs67Vx2k1EnFhxqMeZ9OmTXTu3Jn+/fsHbB81ahQrV65kx44dTJw4kYMHD/LCCy/w6quv4na7iYuL45lnniE8PLytL8VZSVLFPEdBOGuogNenotVIiOpPgnBspbVubv9gJwBvX3MOEVb97zxiS5WVlfh8PsLDw5Ga1WTz+XyUlpYSFBSExWLB4/Fw4MABCgsLsVqtdOjQoUUV8jPRqfgd/C9Ez5MgnEUkQKcRYZMg/FkcLQDSaDRER0f7v9fpdHTq1IlOnTq19SkLiIRxQRAEQRCEEyKCJ0E4S7l9Cm6fKJopCIJwokTwJAhnqbX7Klm27TAi61EQBOHEnPU5T4qqUlnvRRF3kD8FWZIIM2vFYrangN2i54usUoa2DyMu1PD7DygIgnCWOOuDp8p6Lw99sZeyWjeIG3bbUlXsVj0zLu9IuEX3+48nHNM50Raig/V8n1PJ3/tF//4DCoIgnCXO+uBJUVXKat2U1noIM2mQRfzUJhQVKp2+X/4vegFPBb1W5sJONj7eXMKIzrY/zRRgQThVFBUcDV4sBg1a8eEvnICzPngCQJIIM2l49MJobCYtKuLmfSpJSFQ4vTyzplj0/p1iPWOD2JLvoKLOI4In4axTVO1iZsYB2oUaSe0YRrcYK2a9KB4r/DYRPP1ClsBm0hJh0aKI4OmUkn8p1ygafqeexaDhlsFxotUtnJV2FNWikSTCzDo+2FiMxaDhvORQzk0Mxm7VN+ZeStDaLcHtVSivdRMRZED7S+20GqeXGqeHYJOOYFPj7dWnqJTXunF7FcKtekzHCM5ycnLIysoiNTW1Rf2nkpISvvnmGw4cOEC7du245JJLaNeuXVtfwrOWCJ6aUVFRUMXso1NMkVTR29eGDFox6VY4+yiqys7iWvomBDNxQAxltW7WH6rhxwNV/Du7nL7xwXSOMqOogQ079ZehvjU7S8nMLuPhyzoRGWxgZ4GDRetyqar3EGLWcc3geHrGB7Myq4SV20rwKSodIi3cdEEi9qCWvbyKojBnzhzS0tKYO3cuEyZM8O/Ly8vjrrvuYt++fXTt2pX09HSWLFnCa6+9RpcuXdr6Up6VxKdmG5GkE/xq6xMWBEE4g1Q7veRVNtA9xgqA3apnTDc7Uy9O5toBMWQVOHgh4yCOBi/NFzOqbfDy1pqDfLK+kPJaN4raGIj9e/thtBqZSRcmI0sSyzcXUVTdQGZ2OUM6hXPtkHi25dawLbe61fMpLCwkMzOT4OBg0tPTcblc/n0fffQRO3bs4K233uLDDz9k8eLFOJ1O0tLS8Hq9bX0pz0qi56kN+BSVWpeCT1WPOygyaGXM+paxriRJiOUJhZNBUVUUBf8QhCCcyQ5WNACQaAtctNes19A/IZj/HKhCUVUaPIGJHCa9hvED47AH6cnMLgMae6PO7RBGmEVPp2gLq3eUUupwYdTJTBqehNmgYXt+DRajhojg1suCrF27Fq/Xy5QpU3jnnXfYu3cv3bt3x+v1smPHDvr168egQYP8y7SMHDmSJUuWUFFRQWRkZFtfzrOOCJ5OMZ+i8u/sar7bU43Le/zVnWND9Fzdz05iuME/rKiqKi6XC51OhyyLTkTh99leWMv2olr+1idarH8nnPF2FNaSEGYkxNSyLEpprZv95U4u6hzOwYoGFOXX8EmrkUi0m4gKMfjnt2hkicEpNtxehWUbi9hR4OBv58Zis+ixWfRsPFDFpxsKATDqWn5Wu91uvvrqK/r27cv48eNZsmQJq1atonv37mi1Wmw2G9nZ2ZSXlxMdHY3L5WL//v2UlZVRXV0tgqc2IO64p5AkQa1L4bs91RRUuaio8x7XV3mdl6yCOrbm1/m7jyVJoqqqimeeeYZt27aJ4En43YKMWn7cX82+0vq2PhVB+EM5XF6yD9fRJdra6kSVDYdqsOo1dIuxHDUH9sge/xqnl3cyD7F6ZykTBsVxSY9I6lw+9hTX0jHKwj/HdERVYd3u8hbH2rdvH5s3b2bo0KHYbDYGDBjAypUrqampAeCvf/0rpaWl3H333aSlpfHAAw/wn//8B71ej9vtbuvLeVYSd9xTzKequLwKGllCq5X9XzqtjEaWkKTGlk3Avl96AVzeXxOrJUnC6XSy6t+rKCwsRJJ+DapkWUaWZf+2JkfbJ0mS/+tozxXOfEk2E12jLazZUyEmTQhnJEVVWX+omle/zWVPST3b8h3sPVwfUFuu3u3jxwNVnNc+FKtBe9S0CJXGOlFNVmwrYc3OUvolhxJm0bOnuJYyh4s3Mg7w/Z5yXB4fHq+CtpUJGhkZGeTl5bF48WKuu+461q1bx5YtW8jKygLgggsuYM6cORgMBr788kusVisTJkwgODiY4ODgtr6sZyUxbHeKNYUk9lAjiVFBAUFKfmktZVVOOieEYTL8+qtxurzsOlTpf37zP2WNRhMQOFVVVXH48GH0ej3R0dEYjUZUVUWSJFwuF0VFRdTX12O327Hb7ciyTH19PfX19ZhMJkoOl6AqKrGxsZhMJpFPdRaRJLiwk43Za/M4VOkkyWZq61MShJPKq6jsL3PSwW7m0m52fjpQzavf5dIl2sLFXcLpFGlmZ3EddS4fAxJDjtmIMOk0hFv1aGSJBo9Cbnk9FoOWTQeq2Li/inY2E3demMTA9mGs2FqCCiTYzQzvag84jsPhYMWKFaSmpnLZZZehKApDhgxhwYIFpKenM3ToUHbs2AHA7Nmz0Wq1GI1GJk+eTGxsLCEhIW19Wc9KInhqA6oKZoOOaJvZP2YuAZWOBsolCXuIgWCzHvWX7TX1HuTfqMMjIZGZmckrr77C4ZLDIEG/fv341z//RWJiIuXl5cyaNYvVa1ajKioWq4V77rmHv17+V7797lvmzZtHQnwC23dsp6amhmHDhvHI1EcICwsTAdRZJCXCzDkxFn4uqKVdiFEkjwunLa/S2MtvaVZXSa+RuapPlL+uWa92QewrdbIqu5zXv8ulc5SZohoXvdsFEW7RUVp79CGxIZ1s9E0KJdjUuBbn7cOT8Pp+/azUyBKhZh1XD4wjtasdp8dHVLCBIGPgbXfr1q1kZ2cze/ZsxowZ499eXV3N8uXLuf/++9m9ezf33Xcfd999N3/5y1/IzMzkyy+/ZOrUqaLnqY2I4KkNSBI46t0cKnE0K6gtUVPnQVFUCsvrqXC44ZfwqcHtxec7egAjyRJ5BXk8M/0ZEhMTeeSRRyg9XMpzM57jzdlvMv2Z6Wzfvp2c/Tn865//Ijk5mTfeeIM33niD1GGpNDQ0sGXLFrp27crLL7/Mpo2beOHFFxh2wTAuv/xyfD5fW18y4RTRaSSGpYTx6ne5bM130DPOSu92QcQEG9CLelDCacDp8bGzqI5v91YQZtZx3bkx6DW/vnebF4SVJYlOkWZSIkzklDr5elcZDpePC1LCfvPnGHUajLpfA7NQc+vrcWo1EnFhxqMeZ9OmTXTu3Jn+/fsHbB81ahQrV65k+/btjBo1ii1btjB37lzmz5+PJEnccMMNAbWghFNLBE9tpLrWjbPBE7DN61NRFJVDRY6AJEZFbZyldzSyJLNt6zYqyit45eVX6NWrFwAHDx3kg/c/oKysjHPPPZek5CRcDS4cDgfJ7ZPZsnUL9c7G5GC73c6tt9xK586diW8Xz0dLPuJQ7iGR+3QW2phbQ2yIgR6xVn4urCVjdwVRQXp6xlrpEx9MXKhRVIMX/nQ8PpXvcyrJ3FtJtdNDr3ZBDO9oQ6f57aBfliQ6Rpppb4+n1uUj2Hjqbo033HADEydOJDw8PGB7//79+fzzzwkKCsJsNvP4449z7bXXUlpaSmxsLAkJCeh0YgH1tiKCpzagqtA1xsTwjiEBw3br9jvYWVTPuN7h2C1a/7BdeZ2XT7aUH/2AEpSXlWM2m4mIiMDr9SLLMu3ataPB1UBDQwPZ2dk8//zz5BfkExoaSnV19a89SipYzBYsFgs+nw9ZljGZTPi8osfpbFNW62ZLvoNr+scwIDGYMd3sFNW42Jbv4KeD1WTsruCpsSmEmsRHh/Dn4vIq7Cutp098EOclhxIZdOJrNWpkiZBT/N4+chkW/7loNERHR/u/1+l0dOnSRVQU/5MQn4BtQEUlKkjPwOQgfwtekiT2l7vYU+KkVzsz8WGN9ZwkCfIq3XyRVXH0JUxUCA8Pp95Z72+VAOTn52M0GtHpdLy3+D3yC/J5YeYLdOrUic8++4zZabN/zT6XELlNAusP1WAxNE7RBtBrZRJtJhJtJrQamf8cqBLLuQhtzu1tLDJsajZsZjFouGlQnKhRJpwSInhqA7IkUVTtZt2+mmY9TxL5lS48PpVNuXUcLHP5e54q6r24fQoaSeLI+XaKoqAoCr379MZms/HKq69wxx13UHq4lA8//JChQxrrhqiqiqqo+Hw+srOzSV+RTkNDY4VdFRVFCSzYqSiKCKbOMv4p2smhLVaWV1SVvYfr6BRpwaQTwZPQNmpdPrbmO8jcV8E50Vau6PVrcUgJROAknDIieDqVVDDrZc6JMbMpt5ZD5Q0Bi9b5lMab1JdZFTRPNVJVsOo1dIgw0jxwaurWNRgNtItrxyOPPMIrr7zCPffcA0Dfvn258847MZvNTPj7BPbu3cv9D9xPZEQkHVI64PP6kDUyFrOFqKgoNBoNqqoiyzIREREEBQe19RUTTqEdRbXUuXycm9hy9k6100tuZQPDOtra+jSFs1Cd28eaPRX8mFOFR1HpnxDM4GQxRV9oOyJ4OoVUGteou7qfnf4JVho8SuDadlKzBx6xPSJIR5LN4C/KpigKdruduW/PJSgoCEVRSB2WSq+evSgtLUWn0xEdHd2Yu+Tz0a9fPxbMX0BpaSkhISGEhIRQW1uLLczGsGHD6NevHzabDUVRsFgsPD/jeQwGg1h08izhVVS+21tJtxgrdmvLXJFDR1kHTBBOhVqXj/1lToZ3sjEgMZgws0iUFtqWCJ7aQIhRQ78ECxz3ssAAKkdOuNNoNP41jZqG2MLCwrDZbP5tzYfewsPDsdvtoDYO1ZnNZlS18d+m/0Nj/pXdbg84rnBmq3P5yK9qoKjaxeINRXSPsZJoMxJq0iFJsDG3+qjrgAnCydTgUZAkAnLrIq16/u/8eDEsJ/xpiOCpDajwS+Xa3x+YHBncHBkwHc++490mnLlCTFoeHJnMjqJadhXXsXhDEQCJYUZiQw3850A1f+8XLUoUCH+YynoPG3Nr+PFAFakpNoZ1/HUWmiSJfCbhz0UET4JwGlJUlcp6b8CaXL+XXivTLz6YnnFBVDu9HCx3sr2ollW7ynG4fNitesrqPCKwPk6yJBFmbqw+LRxdRb2Hf2eXs+FQDTpZYnByCD3jrG19WoJwTCJ4akZCQkZCkcTN4VSSkZBOaAhTqKz38tAXeymrdcMfcHOW+PWwdW4fLo/CtBU5IhA4XqqK3apnxuUdCbeIoc5jKXW4KaxycXnPCHq3CybIoPn9Bz0F3F6F8lo3EUEG/zJGNU4vNU4PwSYdwb/Ui/IpKuW1btxehXCrHpP+6K8vJyeHrKwsUlNTW63/pKoqmzdvJjc3lxEjRrRYmiU7O5s1a9ZQU1ND3759ueCCCzAaRZ7iH0EET7/wqVBW722cti9ip1NKlqC83odPBTEJ/vgoqkpZrZvSWg9hJs0fOpxm0EgYNRpURUH5/Yc74ykqVDp9v/xffJg053T70GnlgCVSOkaa+UdEQsC2PzNVBUeDlzU7S8nMLuPhyzoRGWxgZ4GDRetyqar3EGLWcc3geHrGB7Myq4SV20rwKSodIi3cdEEi9lYKeCqKwpw5c0hLS2Pu3Lktll5xOBwsXLiQWbNmoSgKq1atCgie1q1bx+TJk9FqtYSFhTFv3jyuu+46HnroIQwGQ1tftjOOCJ5obGXXuhXe3lCOTiOLYYlTTJIkPD6FWreCTXt6tDr/FCSJMJOGRy+MxmbSHr2IqnDKSEhUOL08s6b4D+kRPF0ddrj56UAVW/MdXNk7iu6xvw7LyZJ0WuXS1TZ4eWvNQbblViPLjcGyoqr8e/thtBqZSRcm8/F/C1i+uYiIYD2Z2eUM6RROfLiJt1Y3Pm9Et4gWxy0sLCQzM5Pg4GDS09MZN26cP+hRFIVXX32VpUuXMnDgQNavXx9Qm8/hcPD8888TGRlJWloadrudhQsX8vzzz3PBBRcwfPjwtr5sZxwRPNE48yzYqGXKyPbYrTrR83SKyRKU1Xp48Iu9IgA4QbIENpOWCIsWRVy7Nif/Mvx8OgUDf6TCahff7CpnW34NISYd53cIJSnc1Nan9buY9BrGD4zDHqQnM7sMaOyNOrdDGGEWPZ2iLazeUUqpw4VRJzNpeBJmg4bt+TVYjBoiglvvBVq7di1er5cpU6bwzjvvsHfvXrp37w6Az+cjKSmJt99+m/LycjZv3hzQyN+5cyfbt2/nlVdeITExEYBrrrmGDz/8kBUrVojg6Q8ggicAFTQyRFj12K0iP6EtSEhoZE7GBMSzjoqKgoroMG17iqSKBkAzhyqc1Dg9XHduLOfEWAKWUzldaTUSiXYTUSEGf+eiRpYYnGLD7VVYtrGIHQUO/nZuLDaLHptFz8YDVXy6oRAAYysV+t1uN1999RV9+/Zl/PjxLFmyhFWrVvmDJ51OxzXXXIMsy6Snp7cYHcnNzUWr1fofDxASEkK3bt04dOgQDQ0NIvfpJBMpJk1+qX0ktA218RcgtCFJOsGvtj5h4U+l3u1rkeM1IDGEu4cl0C8h+IwInJo7MoCpcXp5J/MQq3eWMmFQHJf0iKTO5WNPcS0doyz8c0xHVBXW7W65yPu+ffvYvHkzQ4c2Lqc1YMAAVq5cSU1Njf8xsnz023VdXR2yLAcESLIsYzabqaur+3UReOGkET1PgiDgU1RqXY2LrR5vUGTQypj1ov11NlNVKKhu4PucKnJK67l5cByxIb8OS50uSeD/02uHgBSPFdtKWLOzlFG9ogiz6NlTXItZr+GNjANc3D2CJLsZj1dB28rC2hkZGeTl5bF48WLS09PJyckhNzeXrKwshg4d+pvnYrfb8fl8VFZWEhcXB4DH46G0tJTw8HD0ev1vHkM4MSJ4EoSznE9R+Xd2Nd/tqcblPf75dLEheq7uZycx3HBaDxlKv4y9iIkiJyantJ5vdpWTXVJHdLCe4Z1sZ1VZBpNOQ7hVj0aWaPAo5JbXYzFo2XSgio37q2hnM3HnhUkMbB/Giq0lqECC3czwrvaA4zgcDlasWEFqaiqXXXYZiqIwZMgQFixYQHp6+nEFTykpKciyTGZmpn/oLj8/ny1btnD99dej0509v5dTRQRPgnAWkySodSl8t6eagirXcddxUmlM8u8cZSIp3HhaD3k3NDSu2yemc5+YPYfrUYFJQ9vRMdKMXnN29UIO6WSjb1IowabGQqi3D0/C62u2cLssEWrWcfXAOFK72nF6fEQFGwgyBt52t27dSnZ2NrNnz2bMmDH+7dXV1Sxfvpx77rmHmJiYgOccGeinpKQwevRoZs+eTUJCAomJibzyyitIksTll1/e1pfqjCSCp1NAURRqa2uRJAmr1epv6Z5KqqqyZ88eamtr6dWrF1pty199fX09Ho8Hs9ksWipnEZ+q4vIqaGQJTbMboAQoioqiqmhkKXDqvari9qq4vK0nSDfPz2g+pRoae3qa9/Y0vxH8nn1Hft/0uOZ/b03/b35OH3zwAQ2uBiZNmoRG1ogeqFbUu32YdJqAt8BFXcLRyJy1hVONOg3GZnlcoUdZrFirkYgLO3qy9qZNm+jcuTP9+/cP2D5q1ChWrlzJrl27AoInk8lEbGxswGe0VqtlypQp1NXVMWXKFCRJIjQ0lJkzZ9KlS5e2vlRnJBE8HcPJqiB76NAh7r//fsLDw3nxxRcJDQ095a+lsrKSSZMmkZuby7Jly+jVq1fga3W7eemll/j++++ZOnUqqampbXLNhVOv6dZnDzWSGBUUEGzkl9ZSVuWkc0IYJsOvHxdOl5ddhyr9z28KNyRJwufzUVRURGVlJSEhIURFRaHT6fyBTFVVFSWHS9DpdMREx2Aymfz76uvrKS4uxuv1EhUVRUhISIt9Pp+PqKgogoODUVUVj8dDVVUVoaGh/htKVVUV0DjjqLq62n+MkpISTCYTMTExaDQaysvL+c9//0NDQwNjLx1LVFSUyA/5hU9ROVjhJHNvJVX1Hm4d0o7gZr0mYq25k+OGG25g4sSJhIeHB2zv378/n3/+OUFBQQHbzzvvPD7++GP/4u1N4uLieP311zl48CC1tbUkJSURERHxmz9f+N+I4KkVJ7uCrMPhIDMzk5iYGNxud5u8JoPBQJ8+fbDb7Uct+5+VlcXq1au5+eab2+zaC21DVcFs0BFtM/t7FySg0tFAuSRhDzEQbNaj/rK9pt6D3EoysMfjYdF7i3jvvff87/Xx48dzx6Q7MBqNrP1+LS+//DIlJSX4fD7OPfdcHpzyIAkJCezdu5eZM2fy8/af8fl8JCQkMGXKFAaeO5Dde3bzwgsvsGPHDlChXbt2PPDPBxg0cBA7duxg6iNTmf7MdHr27InX6+XV117F5/PxxLQnmDdvHpu3bMZgMLBv3z7cbjc33ngj1028jjlvzWH16tUA3P2Pu3nm6Wfo1atXi96ys4miwvZCBxm7KzhQ7iQ53MTwTjYs+jNrttyfRWufxwAajYbo6OgW241GY6vbobFXqmvXrm39ks4KInhqxR9RQVaWZTSaXz98PB4Pe/bs4eDBg1gsFrp27UpUVJR/f0lJCTt27KCmpobY2Fi6deuGxWLB4/GQnZ2N1+slMTGRPXv2UFlZSbdu3UhISDjqazIYDEyYMIG6ujp/i6Wuro6dO3ficrlISkpCo9Gg0WjaZFhRaFuSBI56N4dKHM2GZiRq6jwoikpheT0VDjf8Ej41uL34fIHDW7IsU1RUxA8//MBVV11F6rBU0leks3DBQlJTU4mMiOSZZ54hLi6Ohx96mLy8PGa9PIslS5bwf//3f8x6eRb7cvbx5JNPotPqeP2N13nzzTdJTkrmlZdf4cCBAzz91NNYLBZeefUVpk+fzoL5C/B4PBQXF+Nyu/zv3cqKSrxeL6qqUl1dzY8//sjUqVO5/777ef+D95k3bx4XjbiIm268if05+2lwNfDI1EdITk4+qwMnaOxx2l5US4hJy+ThCSTZTI3DtoIg+IngqRUnVkFWwx0XJv9SQdZxzAqy0Dis4XQ6ef7555k3bx7V1dXIskyPHj2YPn06w4YNY926dUyZMoUdO3agKAoGg4Hx48czY8YMPB4Pd911F/n5+fTu3ZvvvvsOl8tF7969eeuttwKKpDVXXV3Ngw8+SEFBAZ999hlxcXFMmTKFzz77DI/HQ58+fXA6ncesJSKc2apr3TgbPAHbvD4VRVE5VOQIqJqtqI032eYURSEmJoZnpz9LXV0dtbW1JCclo6gKh0sOU1RURFlZGS+99BJ9evfB6/WSkpKCoioUFRWxfv16Jk+ezOhRo1EUhaSkJPLy8igvL2fDhg3cd999XHzxxf6f9X93/R/Z2dlYLBZkWQ5YXFqSJCT517yn3r17M+HvEwgLC8Pn85GRkUFxSTEXnH8BtnAbznonXbp0QaM5u3KeFLUxb83UrHCjTiNxVZ+osy4BXBBOhAieWnFCFWTNWsKo4cc9pSz5Ph+NNTwgifBIsiyzfPlyZsyYQXR0NA8//DC7du1i8eLFPP7443z44Yd88803lJeXc/PNN5OUlMRrr73GokWLuPzyy+nfvz9VVVUcOHCAdu3aceutt/Lpp5/y448/snz58qMGT4qiUFlZSVlZGT6fj2XLljF//nyioqK45ZZbOHToEF988YXodTpLqSp0jTExvGNIwLDduv0OdhbVM653OHaL1j9sV17n5ZMtgcX+JEmirKyMmTNnsnHTRoKsQWi0GpxOJwDlZeWYzWaiIqP8vUJ9+/ZFlmU2bNyAqqrEx8ejKAo+n4/27dvTqVMnNmzYgKIqtGvXDkVRUFWVuLg4tFotZeVlWK3WY782VMJCw9Bqtfh8PsxmMxpZg8/r8x9PRUVRlIDe4TOZ26ew73A9a/ZUYtLJTDw3BkOz+kMicBKEYxPB0zG0VkH2/R/z+Dm/hgmD4xjR1U5t8V4K02dgrS7j714LXyhX88MeG52iLa0e0+12+3uLbr75ZqZOnUpeXh6bN29m69at7Nu3j8mTJzNq1CgqKytxOBxER0dz6NAhiouL/TOOTCYTDzzwAJdffjl6vZ7p06dTWFiIoihH7T2SJAlZlnG73fz0008oisItt9zC008/TVFRETk5Ofz8889tfdmFNqCiEhWkZ2BykL+HSZIk9pe72FPipFc7M/FhjfWcJAnyKt18kVURMNNOo9Hw73//m5Vfr2TGczMYMmQIOftzuPPOO1FVFXuE3Z/0HRsbi9fr5eeff0ZRFIKDgpEkidxDuf73b25uLgUFBYSGhiJLMvkF+f59BYUFeL1ewsPD0Wg0+Hw+nA1ONBoNDQ0NVFZVBibaSoGv9UiKTzkrGg5eRWXDoWq+3VNBcY2bLlEWhnYIFcGSIJwgETwdw7EqyNosBrbvPYhu7Qxiz2mPztydJGc9yrol1EspRz2m2+2moqICSZL8OUohISFER0ezf/9+SktLWbp0KS+++CINDQ2YzWZKS0sDpmKrqorZbCYpKQmA2NhYgOPO1fB4PFRXVyNJEu3btwcgNDSUhIQEsrKy2vqyC21AliSKqt2s21fTrOdJIr/Shcensim3joNlLn/PU0W9F7dPQSNJBMy3++W5Pp+Pw4cP88knn1BVVYWiKvTp3YcIewSzXp7FXf93F0XFRbz4wotc9pfLuPvuuxk0cBDzF8wnOjoao9HI62+8jtFo5KUXX6L/gP4sWLCA6KhoLBYLr7/2OgkJCXTp3AW3241Wq+WzTz8jJDiEbVnb+M9//uMf4lNVFbX5H7IKitrY46TRaLBYLPz000/8+NOPDOg/4IxeA6zBo7A130FyuInrB8YSF2LkLIgZBeGkE8HTMRyzguyBaiKlKi5zVqFP7IZsDcNbXU5s0DYiOoQc9ZgGg4GoqChUVSU7OxtoTA7Pzc3FbDYjyzKvvvoqRUVFpKWlMWDAAO6//35WrVrV4lj/a0tZr9cTERGBqqr8/PPPeDweCgoK2Lt371nR+haaUcGslzknxsym3FoOlTcE9NL4lMa8mC+zKo4s84RVr6FDhJGmwMnn83HRiIv44YcfeH7m84SGhNKjRw+6d++OQW8gNjaWRx99lFkvz+LeyfeiKAp9+/Tl6vFXYzFbmDx5MjNnzuTxaY+jKApxsXHcOflOIiMjuW/yfcx8YSaPPvooKirt4trxyNRHsNvteL1ebrvtNt5++202bNhAh5QODB402F8SJDQklIaGBn8DRKfTER3VGKBJksTFF1/M+vXrmT59OjNnzqR3r95nRNK4V1HxKirGZsNxFr2GWwbHodeKniZB+D1E8HQMx6wgK0modaXUfNcOSZuCakrGWbkHiz2W8OCWLVdVbcyp0Ol0jBo1ikWLFvHOO+9QU1NDTk4O+/bt47LLLqNbt27odDrcbjeZmZmsXbuW//znP/5jAL/maTTriWr+79EoioKiKOj1elJTU5k/fz7vvPMOhw8fprCwkD179rT1JRdOMZXGNequ7menf4KVBo8SuLad1OyBR2yPCNKRZDP4e2dVVSU2NpaXXnyJoqIidDodUVFR1NbWYrVaURSF888/nx49elBSUoJWqyUmJgaz2YzP56NDhw68/PLLFBUV+es8hYaG4vP56NixI6++8ipFxUUoPoXIqEhCgkP8w9TXX3c9Iy8aSb2znqjIKCRJ8u+7/fbb8fl86HQ6FKUxd2ru3LmEhITg8Xg4b/B5LF68mLraOqKiok77wMnp8bGzqI5v91bQPtzEFb2ifu1NlBCBkyCcBCJ4OobfrCBrjcE67C4KV71JzPCbqVu3kNiL70JrCSxeptfriYuL85ciGDlyJM899xyzZ8/mo48+Qq/XM27cOB5//HE6derE/fffz/PPP8+XX35Jz549Of/888nKysJqtaLRaIiNjUWWZX8xv6CgIGJjY7HZbEfNd9LpdMTExKAoClqtlrFjx/Lggw/y3nvvsXr1ai644AL++te/smHDBsxmc1tfeuEUCzFq6JdggeNeFhhA5YgJd6iqitVqpVOnTv7vTSaT///QOETcVNvmyEaA2WwmJSXl6Ps6tNwHjflWTcPgzberqkpISEjAdq1W6+/9hcYeXHu4nQh7xGkdODV4FH7YX8nafVVUOz30ahdE/4QQMSz3BzlZRZSby8nJISsri9TU1KPW49u8eTO5ubmMGDGC4ODgFo+pqKggMzOTxMRE+vbt29aX6YwlgqffRUI2hVFRWYkxfzMVlZW0M4Vx5KdVhw4d+Prrr9FoNISFhSHLMnfccQfjxo2jpKQEo9FIXFwcFktjkvn111/PyJEjqaurIzIyEkmScDgc2Gw2jEYj7733Hj6fz1899sorr2TEiBFoNBoWLVrEoUOHAobfNBoNo0ePZvHixbjdbiIiItDpdDzyyCPccssteDweoqKi8Hg81NXVYbPZ2vrCCqeYCr8s7vv7p+kfGdicyP7/dR8cPeevteccue23jn06qGnwsjW/lr7xQQxODiUySFRK/yOc7CLKTRRFYc6cOaSlpTF37lwmTJgQsN/hcLBw4UJmzZqFoiisWrUqIHhSVZWtW7fy1FNP8c0333DPPfeI4OkPJIKn36leNfBFdS+MP7ppqOtFimrgyCpPOp3On9TdRJIkoqKiAgpjNpFlmbi4uIBtTa1noMVzLBYLFouF6upqli5dyo8//uifcq2qKnq9nvbt29O7d+8W5xUfHx+wrS2WjhEE4cR4fI3lFZrPkouw6rl7WHxAyQHh5PsjiigDFBYWkpmZSXBwMOnp6YwbN86/WLWiKLz66qssXbqUgQMHsn79+haNhezsbO666y4iIyPp2LEjLperrS/VGU0ET7+TyWSi/7kD+XHTDs47d6B/iKItWK1W3njjDerr6wMWRpVlucWq3MKZQ0JCRkKRTu+ekzNBY6nOP26czOHysS2/hnU5VQxKCiG106+9xJKECJxOgRMroiwzaXjSL0WUa45ZRHnt2rV4vV6mTJnCO++8w969e/11+3w+H0lJSbz99tuUl5ezefPmVntKb775Zi699FJ/eRDhjyOCp9/JoNcxavhAhg3ujclowKDX/f6D/o80Gg2JiYltfUmEU8inQlm9t7HIo/isbHOyBOX1PnwqnMwwpqbBS+beSn7cX4VHUemfEMw5Mdbff2DhhJ1QEWWLHptFz8YDVXy6oRAAo67lO8PtdvPVV1/Rt29fxo8fz5IlS1i1apU/eNLpdFxzzTXIskx6enqrgVHnzp3p2rUrTqdTBE6ngAiemkj8Ty1GSZIwGvQYDSK/4PeQGn8BJyPl5qwhAbVuhbc3lKPTyOID809AkiQ8PoVat4JNe/KqlZfUuNlZXMvwzjYGJAQTZm67RprQ6JhFlAfFMaJbBHUuHwWVTjpGWfjnmI68kL6XdbvL6RQdGPju27ePzZs389BDD2Gz2RgwYAArV67k1ltv9ec1/dbSWU37xefAqSGCJwCpsZ5Naa1btODbgCxBWa0HnwKi0PHxU1EJNmqZMrI9dqtOvG//BJreyw9+sbfVSubHw+VV0MgS2maLCbaPMHHf8ERRZuBP5FhFlMMsevYU12LWa3gj4wAXd48gyW7G41XQtvI7zMjIIC8vj8WLF5Oenk5OTg65ublkZWUxdOjQtn6pQitE8ERjr0dNg4cXVx9sbMG39QmdZSTA41OoafBiEy3q46c2BpsRVj12q7hufxYSUmMjQG3sifJ5PVTWulA1Okx6DVZD6x+7lfUeNuTWsCm3hku72ekZ9+vyMhpJQqMVNQf+TI5ZRHl/Fe1sJu68MImB7cNYsbUEFUiwmxneNbCUjcPhYMWKFaSmpnLZZZehKApDhgxhwYIFpKeni+DpT0oET/zagv/niCTRgm8DJ6O1ftZSEdfsT0Zt/KUgyRKlZRW8t34na/c78KAlMTaSKwd24IKUUH/PUmmtm9W7K9iYW4NOlhjcPpREW9tNPBGOzzGLKNOYBxVq1nH1wDhSu9pxenxEBRsIMgbedrdu3Up2djazZ89mzJgx/u3V1dUsX76ce+65p8WEn+MpiCyG7/5YIngC0YL/E2jeWheE054k4XG7eTdjC19vPUTe959QV7gHc0xHdvzldqZdP5LhHRuLIOaUOcmtaOCvPSPo1S6YIMPJy5US/ji/WUT5F1qNRFzY0ddL3LRpE507d6Z///4B20eNGsXKlSvZtWtXQPBkMpmIjY1Fp2v950mSRGRkZKtFNoWTRwRPTUQLvk01tdYF4UwgSVBV52JdUS0F6z6hYlsGAK7SXLJ1Or7s0ZVzE0Ow6GX6xQfTLz4YnUYMy52NbrjhBiZOnEh4eHjA9v79+/P5558TFBQUsP28887j448/xm63t3o8o9HIzJkz/bX+hD+GCJ4EQRBONhVUjQ4PWuoK9gbs0tSWcLiqFpdXwaKXRdB0ljtaD5FGoyE6OrrFdqPR2Or2JpIktQjEhJNPTN0QBOGs5vV62bhxI3v37j3qUi4Oh4OampoTWvvOqNPQLjoCU2yKf5teq6HjgFTio8IxiARwQThtiZ4nQTjD/BELlp5uVFWlrq4ORVGwWCzHHMLIysriqquuIiUlhaVLl7boCaisrOTee++lvr6e1157rcXSSa3+fFSsBi3nd4qk+NLbyNHp0DhK6DgglbihVzGyawSWM+h6C8LZRgRPwu/i8XhQFMW/BtOR3G43siyj1Yq32h/tj1qw9HRUW1vLlClTKCoq4sUXXyQlJeWoj7XZbPTr14+kpKRW38dut5sffvgBh8NBfX398Z3AL2UKxvWKpGfcxXzV6xwOVzqIj7YzsmsEF6SEtvUlEgThdxB3tGM4m1vwLpcLVVUxGo8+S6RpFfDc3FyeeOIJLBZLwH6n08msWbM455xzuOKKK9r6JZ3x/ogFS91uN7t37+bAgQPo9Xq6du1KQkKCf+3Empoadu7cSUlJCZGRkXTv3t2f4KqqKvv37/cPh3Xu3Jnk5GT/c2tra9m1axfFxcVERkZyzjnnEBQUhKIo5OTkUFlZSUpKCjabDYfDwe7duzGbzXTp0oXS0lIOHDhAXFwciqKwc+dOwsLC6N27N3q9nl27drFmzRoKCwvZuHEjISEhREREtHrd7HY7d999N0FBQej1jcFjaWkpu3btwmKxEBISgkajOfEEXFXFpJO5sGMYAxNDcHkVDFpJ9DgJwhlABE+tEC14mD9/Pg0NDdx7773HXBZAkqSj7vd6vaxZswZFUUTwdAqc2IKlGu64MPmXBUsdrS5YWldXxzPPPMPChQupq6tDVVXat2/PzJkzueSSS8jJyeHhhx8mIyMDl8uFwWDg0ksv5fnnnyc6Opr58+czc+ZMioqKUBSFhIQEpk2bxt///ndyc3N59NFHWbFiBS6XC51Ox8UXX8yzzz5LXFwczz77LF9//TVvv/02l112GTt27GDChAl069aNJUuW8NVXXzFlyhQGDhxIYWEhe/bswWKxcP/993Pddddxxx13sG/fPlRV5dZbb+W+++7j6aefbvW6ZWdnc+utt9KxY0eWLFlCfn4+kydP5r///S86nY5hw4ZRW1vrD/r+Fxa9jEUvUkwF4Uwh/ppb0dSC/2R9IeW17lZb8LIksXxzEUXVDf4W/LVD4tmWW8O23OoWx1QUhcLCQn7++Wfy8vLwer0B+6uqqti1axc5OTk0NDQE7Kuvr2ffvn1kZ2dTXV3dYl9OTg67d++mpqbGv93tdlNSUoLb7Q74GZWVlUBjAbaqqiqqq6vJzs4mNzcXn88HQFlZGevWreP7778nLy8v4BjNybLM3//+d+69917MZjPQ2GO1f/9+cnJycDqdaLXa31yTSTg5jrVgafsIs3/B0mFd7NjMWtpbnOzff4Alq7eCqgbUrAHYs2cPa9asoWvXrsyYMYMrr7ySrKws5s6dS01NDW+++SZLly6lR48eTJs2jS5durB48WI++ugjtm3bxpNPPklxcTF33HEHt99+O4cOHeLpp5/m4MGDpKWl8d5779G5c2eeeOIJevbsyZIlS3j11VdxuVw4HA7Ky8txuVxA4/BweXk5VVVVKIqC0+mkoqKCn376ifPPP5/Ro0dTXl7OO++8g8PhYMKECURGRmI0GpkwYQLDhg076nXzer2Ul5dTWVmJ0+lk9uzZZGRk0KFDB+666y7Ky8spLi7+XcGTIAhnFtHz1IoTa8HLTBqe9EsLvqbVFrzH42HevHm8/fbbuN1uJEniuuuu495778VoNPLtt9/y7LPPUlhYiM/nY8iQITzxxBPEx8ezd+9ennzySbZu3YrX6yU5OZlp06YxaNAg9uzZw5NPPsm2bdsASEhI4LHHHmPw4MFkZ2czefJkZs2aRe/evVEUhRkzZuDz+Zg5cyZvvPEGGzZswGAwsHv3btxuN5MmTeLWW2/l5Zdf5uuvvwbgpptu8h+jNfPmzWP//v28/vrrOBwOnnzySTIyMjCbzfTs2ZOysjJx0znFjrlg6eA4RnS1U1u8l8L0GViry/i718IXytX8sMdGp+hfh17POeccFi5cyKFDh/B4PBQXF2MwGCguLqa4uJi1a9ditVp57LHHuOiiixg1ahTffPMNvXr14qeffiI/P5+rr76a6dOno6oqffv2paqqitraWlavXo3ZbObhhx9m7Nix9O7dm82bN7NmzRruu+8+ZFlu8b6RJCngC2Do0KHMnDmTgoICNm7cSFVVFR6Ph0mTJvHRRx/hdru56667jvr+bX5sWZaprq7mp59+wmQy8fjjj3PFFVfwww8/+JfNEARBABE8tepYLXi3V/G34McPjMNm0WOz6Nl0sJrPNhYhIbXIeSosLOS7775j4sSJjBw5kmXLlpGWlsbIkSOJjo7m4YcfJiEhgaeeeopDhw7xzDPPsGjRIh544AGmT5/O7t27eeGFF9DpdLzwwgu89NJLpKWl8eyzz5KTk8OsWbOwWq0899xzPProoyxduhSPx0NBQYG/5Q5QXl6O1+tFVVUqKyvJzMzkmWee4ZFHHmH+/Pm88cYbjB49mv/7v/9j7969NDQ0MH36dDp06HDUa1VRUcHhw4dRFIWFCxfy5ZdfMm3aNHr06MG7777L9u3bueqqq9r6V3pWOdaCpTaLge17D6JbO4PYc9qjM3cnyVmPsm4J9VJgUvWhQ4eYMmUKGzduxGQyoSiK//3kdruprKzEbDYTHx8PQM+ePenZsycA69evByA+Pt6fR3TdddcBUFxcTFlZGWazmcTERKAx8DebzVRWVvp7XpsHgUdbbiIpKQmTyURoaChhYWHU1tbi8/n873PA36P6WyRJwuPxUFVVhdls9r/vk5OTCQoKCvhbEoQ/Iic2JyeHrKwsUlNTW63/pKoqmzdvJjc3lxEjRhAcHByw7+eff2b16tXU1NTQt29fRowY4R8VEE4uETwdw7Fa8OPPjaF3jI5DhWXUOL2E6DVc08/G3G8PsmrTIdqP6oLml+GquLg4XnnlFerq6qipqaFDhw6oqkpxcTEFBQWUlpby1ltv0atXLwYPHkynTp1QVZX8/Hx+/PFHHn74YUaPHg1Ahw4dOHjwIKWlpfz444888sgjXHzxxQA8+OCDXH/99Wzfvp2goKAWrffm36uqSr9+/bjhhhuwWq3ccMMNrFixgqKiIoYNG4bdbqe+vp5u3bodV85TbW0tGRkZjB07lptuugmAiIgIVq1aJdZYOsWOuWDpgWoipSouc1ahT+yGbA3DW11ObNA2IjqEBBxn+fLlfPXVV4wdO5YZM2awceNG7rzzTv9EgqioKIqKiti5cyedO3dm3bp1fPnllwwZMoSIiAgkSQoYTl6wYAHV1dVcccUVxMTEUFhYyK5du+jRowe7du3C4XDQuXNnLBYLWq0Wj8fD3r2NBSZ37txJXV1dq71Rrf2/6Xuv14vD4Tiu66aqKnq9noiICAoKCti6dSs9e/bk559/9gdUgvBH5cQ2TcBJS0tj7ty5TJgwIWC/w+Fg4cKFzJo1C0VRWLVqVUDwtGbNGu6//37sdjtWq5UFCxZw44038sgjjxx1KRfhfyeCp2M4Wgt+TO9o9Kqbf0x7BxQfyDJ6jYwkQVlNA99s1zN+0D+IsDXejEpLS5k2bRr//e9/CQoKQqvV+qc8l5aWYrFYAirG9u3bF4DNmzejqipJSUn+fcnJySQnJ/v3JSQk+PfFx8ej1WopKytrUdK/NTabzf9HZTab0Wg0/lwsVVVRVRWfz/ebOUuSJOFyuaiqqgo417CwMGJjY0XwdIodc8FSSUKtK6Xmu3ZI2hRUUzLOyj1Y7LGEBwfOrGzqMcrNzWXx4sV89913OJ1OVFUlNDSUUaNG8dNPP/HYY4/x7bffsnr1anbu3Mkbb7zByJEj6dy5M9988w133HEHqqry8ccf07NnT2655RbGjh3LTz/9xBNPPMFPP/3E6tWrqa+v59JLLyU2Npbk5GQAZs+ezfbt29myZYu/96npCwj4V1EU/9CaXq8nJCSEmpoapk2bxgMPPMBf/vKXo16zpueGhYVx4YUXsn79ep544gm+++47Nm3aRE1NDSaTWKxX+GNmtULjCEVmZibBwcGkp6czbtw4f+kMRVF49dVXWbp0KQMHDmT9+vUBw8gNDQ3MmzePjh07MmfOHKxWKy+88ALvvvsu119/Pe3bt2/ry3bGEcHTMRytBb9xfxXf19ZQXdfA8/eNQ6vR4PF60coyqiTx5vvfojSLutLT01m+fDmvv/46qamp7Nmzh+uuuw5FUYiMjKSuro6ioiKioqIA2L59Oz6fj5CQECRJ4sCBAwwfPhxovJHl5+cTFhaGJEnk5ub6f05TIrrdbkej0eDz+XA6nUBjUmxFRUVAS+W3HE/gBL+22ENDQzl06JB/e1VVFUVFRSLn6RT7zQVLrTFYh91F4ao3iRl+M3XrFhJ78V1oLYFrZV1++eX88MMPZGZm8vHHHzN06FAqKyuJjIxEr9dzxx13UFlZyWeffcaiRYsICQnhX//6F9dccw1hYWG88MILzJgxg2+++QaAIUOG8NhjjxEXF8dtt91GZWUlS5cuZeHChQQHB3Pvvfdy1113odFomDhxIlu2bGH9+vX89NNPjBw5EoDIyEhkWSYoKIiYmBj/0IZGoyEmJgZFUdDpdFitVm6//XYcDge7du1iy5YtRw2ejEYj7dq1IyoqCoPBwJ133klhYSEZGRl8++23jBkzhuDgYOrq6kQLXjjpObFN1q5di9frZcqUKbzzzjvs3buX7t27A42fxUlJSbz99tuUl5f7G89NJEli3LhxJCcn+9e8a9++PR6Px38PEE4uETwdw9Fa8JIkUVxaztO7MpEkDY+9sITi0iq6dUrgX3f+ldioCLSt1ITx+XwUFxfz/vvvU1FRgaqq9O/fn8jISKZPn84DDzxAQUEBTz31FFdddRX/+te/GDp0KLNnzyY2Nhaj0cgLL7yAyWQiLS2NwYMHk5aWRmxsLFarlZkzZ5KUlES3bt1wuVxotVo++OADQkND2bRpE99//z1jx44FCGi9N33fPK/EarWydu1a1q5dy6BBg47a6m56XlBQECNGjODNN9+kf//+9OjRg0WLFnHgwIG2/jUKLUjIpjAqKisx5m+morKSdqYwOCLITUxMZN68eRQXF2MymbDZbFRXV6PRaLBarQQHB/P8888zefJkysvLCQsLo127dv4AY+zYsZx33nkUFhaiqipxcXHYbDagsbbS9OnTufvuu6moqCAsLIyYmBh/b1fXrl15//33ycvLIzg4mMjISKqrq9FqtZjNZq666ipGjBiB1WoFIDQ0lEWLFuH1ev31nK6++mpGjhxJfX09DQ0NvPzyy9TV1QW8RovFwvjx48nIyAh4XWlpaRQXF6PVaomMjKSmpgafz3fUWlHC2eN4c2L/dm6sPyd244EqPt1QCIBR17JB6na7+eqrr+jbty/jx49nyZIlrFq1yh886XQ6rrnmGmRZJj09vUVvvsFg4G9/+5v/+5qaGpYtW0aPHj38OYnCySWCp2M4Vgve49QjSxL1boWiw9UYjQau/uswLEFBREWEBxTUGz16NJmZmUybNo2wsDD69OlD7969MRgMxMTE8OyzzzJ9+nRuueUWFEXh3HPP5frrr8doNDJ16lSeeOIJHnjgARRFIT4+nqlTpxIREcHUqVN58sknue+++4DGYbvp06cTHh6Oz+fjnnvu4bXXXuOnn36iU6dOnH/++f6WelhYWECLRKfTERMT4y+KOXbsWH788UemTp3KnDlz6NWrV6vXKCwsjIiICGRZ5sYbb+TgwYM899xzWCwW+vTpwyWXXHJcQ4jCqVWvGviiuhfGH9001PUiRTXQWns4KCgo4Pd3ZN6PXq8nMTHRn/h9JJvN5g+YjqTT6UhISAgYem4uLCwsIGm2+c+2WCwBRVllWSYyMjLg+U0LpIaHh5Odnc3cuXM5fPiwvze1qed39OjRdOnSJeC5ZrM5YKjjWMVihbPTMWe1DopjRLcI6lw+CiqddIyy8M8xHXkhfS/rdpfTKdoa8Nx9+/axefNmHnroIWw2GwMGDGDlypXceuut/tGC4y350tDQwIwZM9i1axdvv/32CY02CMdPBE//I1VtzInyqVo6d0zg6r+m8lXGBvQGMxHh4Wi1vwZPcXFxpKWlUVBQgF6vJzo6mtraWn+refjw4fTp04eioiJ0Oh1xcXH+np6UlBTefvttCgsL8Xg8xMTEEBoaCkDnzp2ZN2+ev8RBdHQ0ISGNeVYajYbbbruNMWPGUF9fT3R0NJIkoSgKsixzzz334PP5/C39xMRElixZ4j/2BRdcwBdffEFdXR35+fk8/fTTKIriH4JTFIWePXty++23A/gTbV966SUKCgoAiImJoaGhQQx1/AmZTCb6nzuQHzft4LxzB57x+TzJycl88cUXeL3egEkTWq32qIGfIBzLsWa1hln07CmuxazX8EbGAS7uHkGS3YzHq6DVtgyCMjIyyMvLY/HixaSnp5OTk0Nubi5ZWVkMHTr0uM/J4/Hw2muv8cknnzBjxgyGDBnS1pfpjCWCp9/B7fHh8UncecuVhIVYucxgYt77X3PhBQORjxgCsVqtdO7c2f/9kTer0NBQf+ByJLPZfNS1uY61T6PRHLVV3xRkNdFqtf6cK2hstdvtdux2O6WlpQHJuPBrgm1oaGhAL5vRaAwobSBmKP05GfQ6Rg0fyLDBvTEZDRj0Z3aAazAY6NixY1ufhnAGOeas1v1VtLOZuPPCJAa2D2PF1hJUIMFuZnjXwNxCh8PBihUrSE1N9dcTGzJkCAsWLCA9Pf24gydFUXjnnXdYuHAhTz/9NOPGjWvrS3RGE8HT/0ir1WDQ63h/2b+JjYogOsJOhN3GhRcMZPuuPTgv7o3ZdHov0dKkf//+9O/fv61PQ2iNBBInnpAvSRJGgx6j4cx4j/6ZSI2/lMauCeGMdcxZrTTmQYWadVw9MI7UrnacHh9RwQaCjIG33a1bt5Kdnc3s2bMZM2aMf3t1dTXLly/nnnvuISYmJuA5Rw4ZqqrKRx99xLRp07j00kux2+18++23yLLMOeecI3L1/gAiePof2UKDePWJO1EV1b9oqFarQZYknBf3JjTE+vt/iCAciwQ+BUpr3aioAUMIQtuQJSir9eBTQCNWJTqj/eas1l9oNRJxYUfPmdu0aROdO3du0UAdNWoUK1euZNeuXQHBk8lkIjY2NiAdor6+nq+//hqtVsv69evZsGEDqqpiMpl49tln/bNVhZNHBE//I40s++s4HelM6XES/twkJGoaPLy4+iA6jSw6Ov4EJMDjU6hp8GIzn9lDocLJccMNNzBx4kTCw8MDtvfv35/PP/+8xYSb8847j48//thfkgAaA6qXXnoJl8vVooTBkccVTg4RPAnCaUpFJdio5Z8jkrBbdaLn6U+gqefpwS/2oopwVjgOrS3DAo05q82LJzcxGo0ttsuyLIbmTjERPJ0gt1dh1fbDlDnchFv1dIq2khRhxqAVffTCKaY2Dg1FWPXYraKX489CQmocshOxkyCcsUTwdBycbp9/MUePT2Xd7gqy8qp/GfOW6ZsUyuX9oukYJfKchJNLVaHW5cVq0NJqoXYV0cPxJ6OiisBJEM5worvkN2zNreallfvYllvt36aqKgnhZm4bnkT/5FDW76/kxRX72Hig6riP6/P5WoxPC8KRMvdV8NDyvWTuq2jrUxEEQRB+IYKnY8gtd/LOd4f4YW8FaWsOkJVXg04j0a1dMAM7hDHiHDv/uLgDd49sj9urMO+7g+QcrjuuY69fv55HH32Uqqqq33ysy+WioaGhrS+HcIp9t7eCpVtK6BxlYemWEr7bKwIoQRCEPwMRPB2F16fy5ZYiDte4GNMriga3wuyM/ewqdDBhcDuuPa8dOq2MTiNxQedwbjw/gfJaD8s3F+PxKb95/NzcXFasWEF9ff1vPnb+/PmkpaUFFKkUzmzf7a1gyeYS/tYnin8MS+BvfaJYslkEUIIgCH8GIng6isKqBtbvr6JXYgi3pSZya2oidW4faasPsKvQgV4rB5QmPK+jjQHtQ9l0sIq8itZ7icrKyti1axfl5eVIkoRGo/EvFeFyuThw4ADbt2/n8OHD/uG8srIy1q1bx/fff09eXh5utxtoLMN/6NAhdu3aRUXFmXVDlSQJn9dDWVUtpQ4XtS5vW5/SKdUUOF3dN4rUjjYkILWjjav7NgZQmfsqf7lQp/7cmg83+3y+k7Ziu6qqOJ3Ok9pA+K1jiqFzQRD+VyJ4Ooqcw3XUubz0TQxFI8sM7BDGpOFJ1Lt9zM7YH5AD5fmlqmzfxFAa3D72Fde2OF56ejp/+ctfuOqqq5gwYQLp6elAY6BQXV3N1KlTueyyyxg/fjxjx45l2bJluFwuXn75Zb7++msyMzO56aab2LVrFzU1NTz++ONcfvnljB8/nquuuorVq1e39SU7KSRZorSsgteWreO2t9Zw0+zVPPjxVtbsqcR7FszFz9xbydItvwZOzTUFUJ9sKeG7vZWoKq0GUG6vQlFVQ0C14xqnl/wKJzXOXwNRn6JyuMZFfoUTp9t3XOfXNNzscDjIyMhg0qRJ5ObmHvM5iqJQX1+Pz3f0n7Fv3z5uv/12MjMzf/Mcjud4x3PMExk6FwRBaE4ET0dRUetGI0kEmbSkrT7ANz8fZmincG4fnkSdy8eH/8mn2ukBIGP7Yd749wEsRg0aWaKizh1wrIMHD/L444+TkJDA/Pnzuf3229m4cSP19fXIsszWrVvZu3cvjz/+OO+99x7t27fnhRdeoLa2ljvvvJMRI0YwZMgQXn31VTp16sTChQtZvnw5jz76KB988AEJCQlMmzaNoqKitr5sv48k4XG7eTdjC++u3cPaD18n46U7+fDFh3jqvX/zfU5VW58h0Bh0uL0KDR6FercPh8uH29uyd6OizsOew3VsL6xlU24NPx6oIr+qZa/khkPVvLUun1e+PcQr3x2iS5SFYUcETk3Oax+KzaxlyaZial2+gKVZVLUxSFqxrYSZ6Xv978OdBQ6eXb6bZ77YzfTlu9mWW4OqwsqsEp5cls0zX+zmjX/vp8zh5rc0H26WJOm4VnrPzc3l/vvvZ+/evUd9zJE9sb/3eE2OdcwTGToXhCP9EY2UnJwcli1bRmVlZav7VVVl06ZNLFu2jJqamoB9iqKwceNGXnrpJZ544gmWLl3a4jHCySNKFRyFJDXONlZVFZtFh9XQeKmGdApHq5HxKYp/m9WoxfZLnR0VWiwKvHnzZiorK5k6dSo9e/Zk4MCB7N69m4ULF6IoCoMHD+aNN96goaGBmpoaOnbsyMaNG3E6nbRr1w673U59fT3dunXD6XTy9ddf07VrV+Lj42loaGDo0KFkZGSwY8eOFmsgnU4kCarqXKwrqqVg3SdUbMsAwFWaS7ZOx5c9unJuYggW/dFv2K11xri8Ck6PgqKqKAr4VBWLXoPVoAl43MFyJzllTjw+BZe38at7jJVzYgJLUPywv4rvc6pQVBWvT8XtU7ika3iLnqJ1+6vIyC7HoJXRaiS0ssQlXe20Cw1cqsGnNr72cIueUV3tZBU6yNxb0eJ4AN/vq6Soxs3VfaN5f2NRQJmC2gYvb605yLbcamS5ccV3RVX59/bDaDUyky5M5uP/FrB8cxERwXoys8sZ0imc+HATb61ufN6Ibi0L7ZWVlVFaWkpkZKQ/yFEUhaFDh9K5c2fi4uIaX4fPR2FhIVVVVdjtdqKjo/F6vezevZtvvvmGiy++mOjoaIKDg6moqMBgMFBXV0d1dTUJCQk88cQTREZG+n9ufX09hYWFeL1eYmJiCAkJwePxtDheSEhIqwFScnJyi2O29lqOJ2AThCaqCo4GL2t2lpKZXcbDl3UiMtjAzgIHi9blUlXvIcSs45rB8fSMD2ZlVgkrt5XgU1Q6RFq46YJE7EEtV6FQFIU5c+aQlpbG3LlzmTBhQsB+h8PBwoULmTVrFoqisGrVKoKDg/37ly9fziOPPEK7du2wWCwsWLCAdevW8fzzz2M0Gn/zdQknRgRPR2EPMqAoKhV1HiYOifdXb5aAQR0CK8IO7RTO+Z3DWfHLH4g9yBCwv6ysDKvVGlAVNjk5GYPBgCRJbN++nWnTppGXl0dYWBhVVVV4vb+2XFRV9X+5XC4qKirYvXs3jz32GIqioCgKSUlJp3/uhgqqrMONlrqCwF4FTW0Jh6scuLyKP3jKKnCwOc+BV1Hx+BTcPpVBSSEMTApcNidzbyXf7CpDUfEHO5f3jGRMt8DVzfeXO1mXU4leK6OTJTSyRHK4ucVpRgbp6dMuCKNORq+V0WskEsNMLR53UWcbQ9uHIssSGqkxqNa3Ukx1UFIIg5qdc1POExAQQH23t4JPth5m4oAYukZb+GBTUUA9IZNew/iBcdiD9GRmlzVeUhXO7RBGmEVPp2gLq3eUUupwYdTJTBqehNmgYXt+DRajhohgQ4tzS09PZ/r06VRXVxMXF+cPzjUaDZmZmbzyyiu89957hIaG8tprr/HBBx/g8XjQ6/XcfffddO3alccff5yioiIeeughJk6cyN133819991HXV0dpaWlhIWF8cQTTzBlyhQee+wxhg0bxt69e3nyySfZunUrXq+X5ORknnrqKSRJCjjetddey9SpUwPW+WpSWFjIzTffzLRp0xg2bNhRX4sgnIg/qpFSWFhIZmYmwcHBpKenM27cOAyGxr9JRVF49dVXWbp0KQMHDmT9+vUBuXy1tbUsXryYCy64gOeeew6TyURaWhovv/wyt912G927d2/ry3bGEcHTUaREWQgx61ifU8mIcyKwNOulaIpRmhqskgT1bh/r91cSZNTSMdoScKzw8HDq6uooLi72t4IPHTqE2+3G4/HwzjvvkJeXx+zZs+nSpQsfffQRL730UsAxfD4fkiRhMBgIDQ2lR48ePPfcc0iShMvl8t8QTncmvZbY2Ej2x6bgLD0EgFajIanvMOKj7Bi0v/YSOD0KtS4veq2MSach2CgRdERvEkDPOCsxIQYMWumXYEcmxNTyrX9+hzAGJ4c2BjqyhCy17EUE6BJloUuUhd9i1msw6zW/+bgjNQVMTQHUsI42MpslkV+QEkZprbtFIUatRiLRbiIqxOB/b2pkicEpNtxehWUbi9hR4GD8wDhsFj02i55NB6v5bGMREpK/EGyTpuHmjh07ct9995GXl8e0adNwuVxIkkRdXR0FBQUoisL27dt58803+cc//sHYsWP5+OOPycjIYOTIkTz88MPcd999PPbYY4wcORJZlsnPzyc/P5/HH3+cvn37otFoyM/Px+l04vV6mT59Ort37+aFF15Ap9PxwgsvMHPmTGbPns1DDz3E/fffz2OPPcZFF12EVtv6x5jH46GgoICGhgb/zzraaxGE4/VHNFIA1q5di9frZcqUKbzzzjvs3bvXH/T4fD6SkpJ4++23KS8vZ/PmzQGNZb1ezwMPPEB8fDyhoaEAREREoNVqT/9G9Z+UCJ6OIjrEwJBO4Xy5pYhVPx/m8n7RyJKET1FZmXUYRVUZ0ysKrSyhqrB6RylZuTWM6hlF7BHDMv369SMkJITnnnuO++67j/z8fD744AN/wquqqiiKgtfrZefOnXz++ecBdZ2sVitr164lMzOTwYMHc8kllzBnzhxWr15N9+7d+eyzz9iwYQOvvfZaQDfu6UZFJcio5cp+7SgtmsQurQ5NbQkp/VOJG3olI7tGYGl2gx/YSi9Tq7/LYAPRR/nAak6nkdBp/hw30qYAaumWErIKa9ldUtdqEnmr1/GID8sap5f3f8zj5/waxp8bQ+8YHYcKy6hxegnRa7imn4253x5k1aZDtB/VBc0veUzHGm5u0hR4NA1/7d69m/POO4/bbrvNH+hXVFRgNBrp2LEj0dHRVFc3Tra46qqruO666wDYv3+/P4eqsLCQH3/8kYcffpjRo0cD0KFDB/bv309oaCgdOnTwH+9YvUdNx5NlmU2bNh31tYibi3AijreR8rdzY/2NlI0Hqvh0QyEARl3L3me3281XX31F3759GT9+PEuWLGHVqlX+4Emn03HNNdcgyzLp6ekt3rN6vZ7BgwdTW1vLBx98wMGDB1m+fDkTJkygU6dObX3JzkgieDoKWZIY0yuK7EIHH/03H1VVGdkjErNeQ0WtG5+iItHYhZuxo5Ql/ykgOdLM2D5RaOTAG3BSUhJPPvkkzz77LDfddBOxsbEMHz6cPXv2YDQa/bPoJk2aRHR0NJ06dcLj8aDRNAYKY8eO5ccff2Tq1KmkpaVx0003UVhYyPTp01FVFbPZzKRJk2jXrl1bX7bfRwVVggs6hBJ13UiWd+/C4UoH8dF2RnaN4IKU0LY+w1OqeQD1tz7HFzhBY4dU84mJK7aVsGZnKWN6R6NX3fxj2jug+EBu7IWTJCiraeCb7XrGD/oHEbbGgPRYw83NP7wVRaFbt25Mnz6dd955hxtvvJHIyEhuueUWrr32Wv/wQvNhBlmWj7ogamVlJaqqkpSUFPBzk5OTA45zvGUNJEk65msRhP/FsRopEwbFMaJbBHUuHwWVTjpGWfjnmI68kL6XdbvL6RQdmEe5b98+Nm/ezEMPPYTNZmPAgAGsXLmSW2+91d8gPp7JGXV1daxatYo9e/Zw+PBhtFotHo9HvM//ACJ4OoboEAO3D09i7ncHee/HPDYcqKJfcijtbI09S59vKmLTwSp2FTpIibRy2/DEFr1OTS677DIGDRpEWVkZ4eHhBAUF4XA4sNlsRERE8Mknn1BSUkJoaChhYWHU1NRgtzfm5FxwwQV88cUXOBwOYmJiMBqNPPvss9x99904HA4iIiL8CbCnPVVFq5FI7RjKgMRgXF4Fg1YK6HE6mwxLsdEvPtg/OeF4mHQawq16NLJEg0cht7wei0HLxv1VfF9bQ3VdA8/fNw6tRoPH60Ury6iSxJvvf4vSLOo62nBza0NdPp+PUaNGMXr0aHJzc5kzZw7Tpk2jX79+yLLs7109HjabDUmSOHDgAMOHDwcaZ8bl5uYycOBAgBM6nqqqx3wtgvC/OFojZVSvKMIsevYU12LWa3gj4wAXd48gyW7G41XQtpL3mJGRQV5eHosXLyY9PZ2cnBxyc3PJyspi6NChx31OUVFRvPHGG3g8Hr755humTJlCly5d+Pvf/97Wl+uMI4Kn35ASZeGB0Sl8nXWYdXvK+eg/+f48GEVVCTPruLxvDKN6RhEdcuzoPiIigoiIXxMFTaZfk4zDw8MJDw9vdZ8kSdjtdn8wBY3duImJiW19ef5QFr18zJl1ZwNJgiDjif2ZDulko29SKMEmLbIkcfvwJLw+FUmSKC4t5+ldmUiShsdeWEJxaRXdOiXwrzv/SmxUBFrNr0Hqbw03Q2NgIssy//3vf3nqqae48cYbGTx4MDExMf6eU7PZjNPpJD09nfbt22M2m/0TIJofp2nyQ0xMDEOHDmX27NnExsZiNBp54YUXMBqNLFq0CIvF4j9eUlIScXFxrTYcmh/zeF6LIJyIozVSNh2oYuP+KtrZTNx5YRID24exYmsJKpBgNzO8a+BEFYfDwYoVK0hNTeWyyy5DURSGDBnCggULSE9PP67gqaKigkWLFjFy5Ei6desGwEUXXURQUNBxlfQQTpwIno5DZLCBiUPiGdUzkgOl9ZT9kqwbbtWTHGEmIljfamKxILQFo06DUfdrEBRq/nUmmsfZ+F6tdysUHa7GaDRw9V+HYQkKIioi3B/wwLGHm2VZxmw2ExMTgyzL9OjRgx49ejBjxgw0Go0/gbVz5854PB7Gjx/Pp59+ik6nY/LkyURFRQXk5+l0On+gpNVqmTp1Kk888QQPPPAAiqIQHx/P1KlTsVgsxMbG+o+n1Wp56qmnWr0Oer2e2NhYDAYD8fHxR30tzV+zIByvozVSmmhkiVCzjqsHxpHa1Y7T4yMq2NCiMbR161ays7OZPXs2Y8aM8W+vrq5m+fLl3HPPPS1y+1rL0/v000/57rvveOKJJwgNDWXJkiVUVVXRq1evtr5UZyQRPB0nWWoMoiKPI/FYEP6sVLVxuMGnauncMYGr/5rKVxkb0BvMRISHo9UGBhLHGm4ePnw4/fr1Izy8Meh6/vnnueeee6itrcVutxMVFYUsy+h0Op5++mnuvvtuTCYToaGhvP766wF5GLGxsXz00UeEhDTmW6WkpPD2229TWFiIx+MhJibGP4vIYrHw9NNP849//ANFUZg7dy6FhYX+nBBVVTEajYwbN44lS5b4g7SjvZbmPb6CcLyO1UhpTquRiAs7ep2lTZs20blzZ/r37x+wfdSoUaxcuZJdu3YFBE8mk4nY2NiA8hw2m41nnnmGp556imuvvdY/geOBBx5g5MiRbX2pzkgieBKEs4zb48Pjk7jzlisJC7FymcHEvPe/5sILBrbag3q04WaTyRQwvKzX6/1J3UcyGo0Bw8zNh6ABtFotUVFRAdvMZjMpKSlHPV5CQgJOp9M/PNfUGm/6XqvVBhTIPNZrEYS2csMNNzBx4sQWQXz//v35/PPPCQoKCth+3nnn8fHHH7f4Gxo2bBgff/wx+/bto6GhgcTERBISEo4r0Vw4cSJ4EoSziFarwaDX8f6yfxMbFUF0hJ0Iu40LLxjI9l17cF7cG7NJ//t/0CliMpmYNGlSW5+GIPzPjjbrVKPRBMwObWI0GlvdDi1zZ4U/jgieBOEsYgsN4tUn7kRVVDQaDRqNBq1WgyxJOC/uTWiI9ff/EEEQhDOcCJ4E4SyikWV/HacjnU49ToIgCG1JDIYKgiAIgiCcABE8HYPbq1BU1RAw/bTG6SW/wkmN89eFe32KyuEaF/kVTpzu07NujKqqOJ1OPB5PW5+KIAiCIPypiWG7VqgqOBq8rNlZSmZ2GQ9f1onIYAM7CxwsWpdLVb2HELOOawbH0zM+mJVZJazcVoJPUekQaeGmCxKxB51eQyD19fU8/fTTDB06lLFjx7b16QiCIAjCn5YInlpR2+DlrTUH2ZZbjSw3luBXVJV/bz+MViMz6cJkPv5vAcs3FxERrCczu5whncKJDzfx1urG543oFhFwTEVRKC4upry8nNDQUGJiYtBqtXi9XioqKrBYLJSVlaEoCnFxcWg0GgoLC6mrqyMuLi5gump9fT1FRUV4vV5iYmL8dWzq6uqor68nPDwcWZZRFIXy8nLMZjNms5ny8nKMRiNOp5PS0lLCw8OJiopCVVVyc3PJyMjAaDQyaNAgwsLCRPFAAWhceqWhoQGDwYBWKz4yBEEQxCdhK0x6DeMHxmEP0pOZXQY09kad2yGMMIueTtEWVu8opdThwqiTmTQ8CbNBw/b8GixGDRFHFNL0eDzMmzePt99+G7fbjSRJXHfdddx3330UFBRwyy23kJKSws8//0xlZSVXXXUVwcHBfP755xQXFzNo0CBmzZpFdHQ0e/bs4cknn2Tbtm0AJCQk8NhjjzF48GA+//xzli5dyvz587HZbFRXVzNp0iSuuOIKrrzySu677z5kWaa0tJRDhw5hNpt5+umnOffcc3n44YfZtWsXJSUl7N69mzfffBOb7fgWohX+PLyKisPpxaeo6LQSwUYdLq9CncuLCkiAWa/BpNegqOBwevD4VDSyRLBJ22JR67y8PF577TUOHTrEAw884F9bThAE4WwmgqdWaDUSiXYTUSEGmmoGamSJwSk23F6FZRuL2FHg4G/nxmKz6LFZ9Gw8UMWnGwoBMOoCU8kKCwv57rvvmDhxIiNHjmTZsmWkpaVx8cUXExQUxM6dOwkNDeWll15i9erVzJw5kwsvvJCZM2eybds2nnzySb777juuuuoqpk+fTk5ODrNmzcJqtfLcc8/x6KOP8sknn1BbW0txcXHAqvPFxcU4HA5UVSU/P5+SkhKee+45YmJiePzxx3n11Vf58MMPeeyxx8jNzeWSSy5h0qRJAUtnCKcHr6KyfHMxK7NKaHD7CDXruHZIPPUuL4t/yMOrqEhIdIm1csuwRPaW1PHRT/lU1Xsw6jSM7hXJ5X1jAgKoJUuWsGTJEiZPnkxsbGxbv0RB+NNwexXKa91EBBnQahr/ZmqcXmqcHoJNOoJNjbdXn6JSXuvG7VUIt+oxHWOR85ycHLKyskhNTW21/pOqqmzevJnc3FxGjBhx1M/pLVu2sHPnTvr370/nzp3b+lKdkUTwdAxHrh9U4/Ty/o95/Jxfw4RBcYzoFkGdy0dBpZOOURb+OaYjL6TvZd3ucjpF/1ovJy4ujldeeYW6ujpqamro0KEDqqpSUFBAly5dsFqtXH/99Zx33nnEx8ezePFi/vKXvzB06FC6du3KwoULKSkpoaioiJ9++olHHnmEiy++GIAHH3yQ66+/nh07diDLcosFUpt/r6oql112GZdffjkAV155JW+++SZut5uUlBSsVitxcXEkJSW19aUX/gcOp5eVWSXoNRK9OoTx35xKvt1ZSucYK1VOL/2TQwHYdLCKnvEhbM2tptrpYWCHMDSyhKqCx6egkTWoqkp5eTlZWVn07NmTK6+8kqioKKqrq/3VvEtKSmjXrh1BQUHU19dTWFiIqqrExsZisVj85+VyuSgoKAAgJiYGp9OJTqcjKCiIyspK4NdCgR6Ph4qKCsLCwtDrG/MGKysrKS4uxmw2+5elUBSFioqKVoehm6iqyuHDhykrKyM4OJjY2Fg0Gg2VlZUoioLNZkOSJFRVDTgPSaxTKRzDH5UTqygKc+bMIS0tjblz5zJhwoSA/Q6Hg4ULFzJr1iwURWHVqlWtBk8HDhzgrrvuYsuWLcycOVMET38QETwdg0pjvlOTFdtKWLOzlFG9ogiz6NlTXItZr+GNjANc3D2CJLsZj1dBqw3seSotLWXatGn897//JSgoCK1WS319vX9/040EGpepMJlMmM1mAGRZ9t+IKisrUVWVhIQE/3Pj4+PRarWUlpb+5oe+RqMJqD7bdNzmy1u0tuCkcHrwKSoNbh+9OoQxfmAcueVOGjwKPkVFK0skhDe+p7YeqqbO5aXB7SPeZuamCxKxGDSoKv6eVpfLxcyZM0lPTwcal5CYOXMmq1ev5ttvv0WWZaqqqnj99dex2Ww8/vjj/Pzzz6iqSvfu3XnyySfp1KkTpaWlPPnkk6xevRqr1cqAAQMoLCzkoosu4u6772bGjBmoqspzzz2HRqMhOzube++9l1mzZtG7d2/WrFnDs88+y+HDhwEYPXo0U6dORZblVoehn3rqKUaPHo3X6+Xdd9/lrbfeoq6uDkmS+Pvf/87999/Pu+++y+rVq3n33Xex2Ww4HA7uvPNOevfuzcMPP9zWv0bhT+6PyImFxhGKzMxMgoODSU9PZ9y4cf71HxVF4dVXX2Xp0qUMHDiQ9evX+0cYmvN4PLz22ms0NDQQHx8vZk//gUSpgmMw6TSEW/VoZIkGj0JueT0Wg5ZNB6qYv/YQn20sIsioZWD7MFZsLeHNjAMk2M0M7xq45lB6ejrLly/n0UcfZdmyZUyfPp2goKATClRUVfW3inNzc/3b8/Ly8Hq92O12NBoNDQ0N+HyN5RJcLhfV1dVHDaqO/PmqqvqfK5yGpMbh5Q37q3hxxT4OltUjSyAh4fWpbD5YxeaDVXh9qj9Ikn55TtP/mxgMBu666y4uuugihgwZwuuvv0737t0pLy/np59+IjU1lTfeeIOkpCSmT59OUVERaWlpzJ49m/z8fF588UXcbjfvvvsuX331FQ8++CBpaWnIsszKlStxOBwAlJeXU1ZW5v+5brebgoIC3G43hYWFPProoyQnJ/P+++/z6KOP8vnnn/Phhx8CkJ+fz4YNG5g0aRILFiwgPDyc1157jfr6en744QeefvppLr74YhYuXMgNN9zAu+++y7fffsuAAQPYuXOnP29w9+7dbN68mb59+7b1b1A4DTTlxI7oFuFfC7IpJ3bikHh6JQQTbtVT6/L6c2JTu9pxun2t5sQ2Wbt2LV6vlylTprBt2zb27t3r3+fz+UhKSuLtt9/m+uuvR6vVtnr/WLVqFV9//TX/+te/iImJEY3hP5DoeTqGIZ1s9E0KJdikRZYkbh+eFFDzSSNLhJp1XD0wrvGPw+MjKthAkLH1y+rz+SguLub999+noqLCv735oqZH+15RFGJiYhg0aBBpaWnExsZitVqZOXMmSUlJdOvWDZfLxeHDh/noo49ITU1l6dKl5Obm+oOn1nqWmrZptVr0ej2ZmZmMHDmSLl26iNl2pyGVXwMiyb9NRauR6JPYWFk8v8KJLElIMlTVedhyqAqDTsag1dAp2opOIyFJEomJiYSHh1NfX0+3bt2QZRlVVTnvvPP4xz/+gcVi4eDBg3z//ff8/e9/9w+zDRgwgJUrV3Lw4EFWr17N2LFjufHGG4HGhXlXrVrlfx9KktQiuJdlGVmW2bRpE3l5edx11100NDTQrl072rdvz5o1a7jiiisAWh2GrqurIyMjg7i4OO6//35sNhu9e/dmwIABtGvXjqioKFJSUsjIyGD48OGsXr2auLg4BgwY0Na/PuE0cLJzYqGx0fDVV1/Rt29fxo8fz5IlS1i1ahXdu3cHGkcnrrnmGmRZJj09vdWgqKSkhFmzZjF27FhGjBhBWlpaW1+qM5oIno7BqNNg1P0aQISada0+TquRiAszHvU4o0ePJjMzk2nTphEWFkafPn3o3bs3JpMJrVZLbGysf3V3jUZDTEyMf0hNlmWioqL8w32PPPIITz75JPfddx/QOGw3ffp0bDYbAwcO5G9/+xtvvPEGixYtokePHgwePBiLxYIkSURFRQWMkVssFmJiYpBlmaCgIK699lpefvllHnvsMebNmydm251mpF++zu0Qxvhz43hx5T4AZKmx5+mrLcUAhJh0dI6x4vQofLGpkFe/yUGWJAZ3tJESaQFNYLDdNKzbFDyFhob6SxZUVFRQW1vLV199xX/+8x+gscczKSmJ+vp6qqqqAnLoQkNDiY2N/c0WsSRJlJaWUlNTw1tvveUfvqitraV9+/Z4vd5Wh6ElScLtdlNWVkZ8fDxWa2PuoU6nIzU11f/YUaNG8fnnn3Pw4EHWrl3LRRddJN7vwgk5WTmxAPv27WPz5s089NBD2Gw2fwPk1ltv9X9my7J8zHOZP38+TqeTe+65B5PJhKqqIn/vDySCp1MgLi6OtLQ0CgoK0Ov1REdHU1tb6w+IPvroI0JDQ4HGVbHfe+89/4d+UFAQs2fP9gdXnTt3Zt68eRQWFuLz+YiOjiYkJMT/2BkzZnDXXXchSRIxMTE0NDRgNBoxmUy8/vrr/psQwMUXX8x5553nvwHdcMMNjB49Gp/P5z+mcPqwGLRcPzSBmFADoWYd4/rFIMsSNqsOq1GLojR+mCbaTXSJCSLRbibZbqLa6cWk09A9PgiD7rdH8pvfNEJDQ7Fardx6661cc801KIpCbW0tLpcLu91OcHAwhw4d8j++qqqKoqIi/4e6VqulqqrKf8zKykrcbjeqqhIeHo7NZuOZZ56he/fuKIpCVVUVer0es9ncai8qNAZKkZGRbNu2jdraWmw2G16vl/Xr1xMdHU379u25+OKLee+99/joo48oLi5m1KhRbf3rE04zJysnFiAjI4O8vDwWL15Meno6OTk55ObmkpWVxdChQ3/zXLKysliwYAF/+9vfqK+vp6CgwD+Jo6ioiKioqGMGX8KJE8HTKWK1WgNmPTQFQ0DADCGNRkNkZKT/e1mWiYgITC40m82kpKS0+nOMRiMdO3b0f9981pPdbm9xnKbEdMDfCyacnow6mQvP+fV3fG6HX6c6t4+wtHh8kFHLkE7hxzzmkUO9R34fGxvL4MGDWbJkCT169MBkMvH222+j1+uZOXOmf/hgwIABdOvWjYULF3LgwAF/8JSUlMRbb71Feno60dHRzJs3j+rqalRVpV+/fkRGRrJgwQImT55MSUkJr732GqNHj+baa69tdRi6KYn2oosuYtGiRbz00ktceeWVrF27lrS0NGbOnEn79u1JSUmhZ8+evPTSS4wYMYJzzjmnrX99wmnmWDmxG/dX0c5m4s4Lk/w5sSq0mhPrcDhYsWIFqampXHbZZSiKwpAhQ1iwYAHp6enHFTzt378fl8vFp59+ypdffonP5+PgwYPk5eWhqirTp0/HaDT+5nGE4yeCJ0EQjio8PDwg0A8LC6OhocH/vdFoZOrUqUybNo277rrLX6pg6tSpWCwWbrzxRg4ePMizzz6L2Wyme/fudO3a1R/0XHXVVfz444/861//wm6306dPH8455xy0Wi3t2rXjmWee4bnnnmPixImoqkqfPn0YNWoUWq32qMPQkiRx3nnn8eijjzJnzhw+//xzJEliwoQJXHjhhUBjQvxFF13E0qVLueiiiwIaEYJwPE5WTuzWrVvJzs5m9uzZjBkzxr+9urqa5cuXc8899xATExPwnCMbDampqSxfvtzfeKiurubee+9l+PDhTJ482Z+PKJw8IngSBKFVkiTxr3/9yz+hAODee+/F5/MFfBh36dKF+fPnU1hY6F8yqGkYOjIyklmzZvnrPFksFiZOnOj/kO/QoQOLFi2isLAQi8VCREQEDofD//yRI0fSr18/iouL0el0tGvXDpPJhKIoRx2GttlsaDQabr75ZsaOHUtpaam/zlPT6/B6vRQXF9O+fXt/QCUIJ+Jk5cRu2rSJzp07079//4Dto0aNYuXKlezatSsgeDKZTP56Z03CwsICimo6HA5SUlLo1q0b8fHxbX2pzkgieBIE4aiagpgmR8uFs1gsAcPFzRmNRjp06AA0fqgbDIaAD/6QkJCA4zbv6QKw2WwtkrllWf7NYeimSRLNh8WhsVU+bdo0vvzyS2699VZRFFZoUzfccAMTJ04MmPwA0L9/fz7//POAdU0BzjvvPD7++OMW7//mLBYLc+bMafG3JJw8IngSBOGUMRqNPPjggwF5faeaRqOhc+fODBo0iEsvvVQk0gptqrVlWKDxfRodHd1iu9FobHV7c63lygonlwieBEE4ZXQ6HRdccEGbnoPVauXOO+9s60shCMJpTDS5BEEQBEEQToAIntqIz+fD5XKdkvL5qqridDpbXQtJEARBEIQTI4KnY3B7FYqqGgKmn9Y4veRXOKlxev3bfIrK4RoX+RVOnO7jWxtu/fr1PProo1RVVZ308/Z4PNTX1/sDs3379nH77beTmZnZthdUaDNur8JXW4tZ+H0uX24pZndRLS6vCKYFQRD+FyLnqRWqCo4GL2t2lpKZXcbDl3UiMtjAzgIHi9blUlXvIcSs45rB8fSMD2ZlVgkrt5XgU1Q6RFq46YJE7EHHrquRm5vLihUrmDx58lETBv9XmZmZrFixgieeeMJfB0ej0YhS/WcZp9uHSd84ldrjU1m3u4KsvOpfpljL9E0K5fJ+0XSMsv7OnyQIgnB2ET1Praht8PLWmoN8sr6Q8lo3igqKqvLv7YfRamQmXZiMLEks31xEUXUDmdnlDOkUzrVD4tmWW8O23OpWj1tWVsauXbsoLy9HkiR/QON0OiktLfUPqymKQmlpKXV1daiqSllZGQ6Hg+LiYnbv3o3X29jrVV5ezo4dO9i3bx9OpxOA+vp6Nm3aREZGBvv376euro7k5GSeeOIJzj33XP+5VFVVkZ2dzf79+wOKHtbX11NWVkZ9fT05OTns3bvXf2zh9LE1t5qXVu4LeC+qqkpCuJnbhifRPzmU9fsreXHFPjYeqDru457K4WZBEIQ/K9Hz1AqTXsP4gXHYg/RkZpcBjb1R53YII8yip1O0hdU7Sil1uDDqZCYNT8Js0LA9vwaLUUNEsKHFMdPT05k+fTrV1dXExcX5i55ptVqWLVvGxx9/zPz587HZbFRXVzNp0iSuuOIKrrzySu677z7q6uooLS0lJCSEd999ly1btvD0009TVlaGz+fj/PPPZ8aMGXz99dfMnj2bsrIybrrpJh5++GGGDBnCzTffzLRp0xg2bBirV6/mueeeo7i4GEmSGDhwII899hiJiYmsWrWKN954g6SkJLZt20Z1dTUXXXQR06dPP+k9ZMIfI7fcyTvfHWLf4TryK53834j2dImx0q1dMD5FZcQ5di7qFkH/fRUsWHuIed8dJMzSkQ6Rlt889vr16/nss8+YOnXqb74fmoIssSyEIAhnGtHz1AqtpnHx1KgQA00jXRpZYnCKjfYRZpZtLGJHgYNhXezYLHpSoiwUVjbw6YZCoHGNseYOHjzI448/TkJCAvPnz+f2229n48aN1NfXI0mSv1epec9TcXExDocDVVXJz8/n559/5vbbb2fGjBloNBpWrFhBnz59WLRoEY8//jhff/01n3/+OX/5y1+4+eabad++Pa+++iqXXHIJLpeLgoICGhoaKCwsZOrUqURERDB//nymT5/Ohg0bmDVrlj+xfMOGDQQFBTF37lzuv/9+Pv/8c7799tu2/rUIx8HrU/lySxGHa1yM6RVFg1thdsZ+dhU6mDC4Hdee1w6dVkankbigczg3np9Aea2H5ZuL8fh+Oweqabi5vr7+Nx87f/580tLSxEQF4Yz0R+TE5uTksGzZMiorK1vdr6oqmzZtYtmyZdTU1ATsO3DgAB999BGLFy9m8eLFvPfee3z55ZcBIwvCySN6no7hyKGJGqeX93/M4+f8GiYMimNEtwjqXD4KKp10jLLwzzEdeSF9L+t2l9Mp+tc8ks2bN1NZWcnUqVPp2bMnAwcOZPfu3SxcuBBVbVzp/sh8pCO/v+qqq7juuuv85zV16lQcDod/1XibzUZubi5BQUHEx8djNpvp1q0bISEhlJeXI8sysiyzceNGysrKmDdvHj169AAaF5WcP38+5eXlQOOSGnfddRcpKSkkJiby7rvvcuDAgbb+dQjHobCqgfX7q+iVGMJtqYn0SQzhrW8Pkrb6AP93UXt6xgcHPP68jjb+m1PJpoNV5FU00D6i5RpvZWVllJaWEhkZGTDcDI29S4WFhdTV1REZGUlERASSJFFWVsa6detwOp2MGzeOmJgY9Ho9Ho+HwsJC6uvriYqKalE5XBD+7P6onFhFUZgzZw5paWnMnTuXCRMmBOx3OBwsXLiQWbNmoSgKq1atCljbcdWqVTzzzDMkJSWh0WhQFIXk5GSGDh0qen//ACJ4OgYVUJrFTyu2lbBmZymjekURZtGzp7gWs17DGxkHuLh7BEl2Mx6vglYb2PNUVlaG1WoNqAqbnJwcsC7XsciyHDBE0tDQwLx58/j444/R6/VYLBby8/P9+5v3YDUnSRKlpaVYLJaACs+JiYk0NDRQV1cHNJb2t1qt/p9tNpv9eVbCn1vO4TrqXF76JoaikWUGdmh837z97UFmZ+znzhHJ9EpoXArF80uLuW9iKOtzKtlXXNsieDracLMkSVRXV/PUU0/xzTffoCgKVquVhx56iEsvvZSXX36Zr7/+GoCbbrqJl/+fvfuOc6JOHzj+mZn0ZEuyyVa2wMLSpEkXRJA7FYXT8xQVK+rJeWf3fiooIqeUEwFRBEVEz3ZYTkVEUEGkCBaK9CZll+29ZdNnfn/EDUTK6QksLN/367VKykwmk93kyff7fJ9n+nRatmzJpEmTWLx4MaFQCJfLxaOPPsrgwYOb+rQJwi/WmBO7Ka8GWeaoObHvflvAxxuKcMUaIjmx6QlmXloW3m5wxyOrfxcWFrJixQpiY2NZtGgRV155ZeQzQlVVZsyYwXvvvUfv3r357rvvjnh/LywspFevXrzwwgsYjUY0TUOW5agASzhxxLTdcZj1Cgk2A4os4Q2o5FU0YDXqWL+/mnkrc/lgXRExJh29W9n59IcSXli6nwynhUHto3sOJSQk4Ha7KS4ujlyXm5uLz+cDwnlPXq+XUCg8pOvz+aipqTnm6rjt27fzwgsvcPnll/Of//yHOXPm0Lp166iRssZ9HU7TNFwuF263m9LS0qhjMZlMWK3hnBdJkkRC8Bmqst6PIknEmHXMXrafz7aU0j8ngTsGZeH2hfj3N/nUeAIALN1ayswv9mM1KSiyRKXbH7Wv4003y7LMDz/8wJ49e3j88cd54403aNWqFVOmTKG+vp4777yTwYMH069fP2bMYErdGwAAgABJREFUmEFOTg6vvfYaH3/8MY899hhvv/02GRkZjBs3jqKioqY+bYLwizXmxA7u6EL+6T26MSf2hn7pdMmIJcFmoN4XjOTEDmzvxOMPHTMnFmDlypUEg0EeeughNm3axJ49eyK3hUIhsrKymDNnDjfddBM6nS7qPbpxYVFSUhKqqpKfn4/f7yc+Pl60HzpJxMjTcfTLcXBuVjyxZh2yJHHHoKyo+W1Floi36Lmmd1r4jyMQIinWSIwp+rR2796duLg4Jk2axP33309+fj5vv/02oVAovAIqI4PS0lLmz5/PwIEDee+998jLy4sET5qmHRHMaJqGqqrU1tayZMkSduzYwcUXXwyE208UFhayZMkShg0bBoS/uaiqSvfu3XE6nZFjKS4u5rXXXmPQoEEkJCRE7nc4VVVFMHWGkKTwiKmmaTisemzG8O9iv5wEdIpMSFUj19lMOhy2cINeDSIfBI2ON92sqip9+/Zl5syZeL1eamtradOmDevWrcPj8dCiRQucTicNDQ107NgRj8fDkiVLaN++Penp6Xi9Xvr378/SpUvZtm1bVNd4QTidHS8n1h9UIzmxV/dKxWE14LAaWLe/+pg5sQB+v59PPvmEc889l+HDh/POO+/w+eefc8455wDhtkYjRoxAlmUWLVp0xPuxz+eLrL6+5pprqKysxGg08uCDD3LdddeJAOokEMHTcYTr4SiRy/EW/VHvp1Mk0uzHnlPOyspi/PjxTJw4kZEjR5KamsqgQYPYvXs3kiTRp08frr76ambOnMnrr79Op06d6Nu3L1arNdIZ/vCh1w4dOnD77bczf/58Fi5cSPv27enfv3+kM33fvn0577zzmDhxInq9nvPPP5/U1FSMRiNpaWlMnDgxciwAvXv35oEHHkCSJKxWKykpKShK+HnLskxSUlJU13vh9OWMMaKqGpXuADf0S49MO0tAn+zo1XH9cxI4v20Cn/6Uj+GMif5GfLzpZkmS2Lp1K+PGjePgwYPY7Xaqq6ujpncbg35N0/D5fFRWVrJr1y7Gjh0bCdKzsrJEYC6ckU5UTiyECxlv2LCBRx55BIfDQc+ePVm8eDG333575L3/eAFQ499dXFwcDz30EOnp6bz44ouMHz+eTp060blz56Y+Xc2OCJ5OkWHDhtGnTx/Ky8tJSEggJiaGuro6EhISUBSFyZMn87e//Q1JkkhJScHr9WIymTCbzTz//PNR+VFms5kxY8Zw0003EQgESE1NJRgMRgKezMxM5s2bF3ksm83G/PnzIwHQ4MGDOffccykpKcFgMJCamhpJKLzooos477zzSEhIAML5TzNnzvzF+VlC02qdZCXOoue7vVUM7uDCajwU/De+1zd+W5YkaPCH+G5fFTEmHW2So0sVHD7d3Jgjl5ubi9/vJxAI8Morr3Dw4EFmzZpFu3btmD9/PlOnTo3aRygUQpIkjEYj8fHxdOrUiUmTJiFJUmR6Oi0tralPmyD8aicqJxZg6dKlHDx4kDfffJNFixaxd+9e8vLy2Lx5M/379/+vx2I2m5k8eTImkynyZeehhx5i2bJlbNiwQQRPJ4EInk4hl8uFy3UoUdBsNkf+bTKZaNOmTeRyY/4RgNPpPGJfBoOBVq1aHfOxYmNjo0arkpKSom632+1HrdNjsViwWA4lDcuyfNTHF05PyXFG+uUksHBjEZ9vKeXy7snIkkRI1Vi8uRRV07i0SxI6WULTYNm2Mjbn1XJJ5yRS46NHT4833QyHpo6DwSDbt2/no48+iloWbbPZWLlyJStWrKBv375cfPHFvPjiiyxbtoxzzjmHDz74gO+//57nnntOJLUKZ5zj5cSu21dNC4eZOy/MiuTEanDUnNi6ujo+/fRTBg4cyLBhw1BVlX79+vHqq6+yaNGiXxQ8eTwePvjgA3r27Bk1UgxEvlQLJ5YIngShGZEliUu7JLGzsI753+ajaRq/75SIxaBQWe8npGpIhFcMLd1WxjvfFNAy0cLQbkkocnTO0/Gmm00mEyNHjmTHjh2MGjWK5ORkcnJyCAQCkTfroUOHsmbNGsaMGcPs2bMZOXIkhYWFTJgwAU3TsFgsjBo1ihYtWjT1aROEX+1E5cT+8MMP7Ny5k1mzZnHppZdGrq+pqeHjjz/mnnvuOSIn8OdThrIss3btWv7zn//wzDPP4HQ6ee6559Dr9Zx77rlNfaqaJRE8CUIzkxxn5I5BWbz81QHeWHOQ7/dX071lPC0c4ZGlj9YXsf5ANTsK62idaOPPgzKPGHVqdKzpZofDgcvl4v3336ekpIT4+Hjsdju1tbWRkcoBAwawYMEC6urqSElJwWQyMXHiRO666y7q6upwuVyR2lGCcKY5UTmx69evp23btvTo0SPq+ksuuYTFixezY8eOqODJbDaTmpqKXn/o8SwWC4899hiPPvooI0eORFEUzGYz48aNo0OHDk19qpolETwJQjPUOsnKg0Nas2RzKat3VzD/m/zIajpV07Bb9Fx+bgqXdE4iOe74+WzHm25OSEiI5Mf9/DZJknA6nVHTvnq9nszMzKY+PYJw2rj55pu54YYbov6OAHr06MFHH31ETExM1PXnnXce77777hHpFF26dOHNN99kz549+Hw+WrZsKfIJTyIRPAlCM5UYa+SGfulc0jmR/WUNlNf7QYMEm4GWLguuWMMR5QkEQTi1jtUjUlGUI/KXgKik8J+Lj4+nZ8+eTf2UzgoieBKEZkyWwkFUYqxYLSkIgnCiiMpZgnAmk0BCjB6dTqTwiyIIQjMmRp4E4UwlQUiF8p/aqmiIYpNNTUKi3O0npIIivpoKQrMlgqfj8AdVKur9uGKM6JTwV8laT5BaT4BYs55Yc/j0hVSNino//qBKgs2A2dC86mpomobX60Wn00Wt8BCamAaVDQEe+mhP+IP6TImdfhot09DOuGOGxkM+xrH/FNBWNgRwWcXfiiA0VyJ4OgpNgzpvkC+3l7FiZzmjh+WQGGtke0Edr6/Oo7ohQJxFz4i+6XROj2Xx5hIW/9TiIjvRysgBmThjDE39NE6YhoYGnnzySfr378/QoUOb+nAEwvWcnLaffsckzqggRNOg1hckxqiEq52f7scugapCtSeALIV7kxl1Mjr5UDClaUSCQUUGl1WP0yYS8gWhuRLB01HUe4O89OUBNuXVIMvhEvyqpvHF1lJ0isyoC1vy7rcFfLyhCFesgRU7K+iXk0B6gpmXloW3G9zx0NLuYDBIZWUlcXFxVFdXU11djcvlwuFwRO7j8/koLCzE7XaTmJhIYmIigUCAiooK4uPjI+1T/H4/lZWV2O12vF5vpIlvaWkpTqeThIQEampqKCoqwmazkZqaGumJpGkaJSUlke2Tk5ORJAlVVamsrMRkMuHxeCgrKyMhIYGkpCQ0TSMvL4+lS5diMpno06cPDocDWZYpKyujpKQEq9VKWloaBkPzCRhPd3aLjsmXt0E9A/vCfbWnivc2FnN1t2QGtrH/9h2eZBISxbU+/rFkHwZFwmHRE2fWkWDVkxhjICnGSFKsAZfNwOF1RmVJwm4Rb7GC0ByJv+yjMBsUhvdOwxljYMXOciD8zbJXth271UBOspVl28ooq/Nh0suMGpSFxaiwNb8Wq0nB9bOVTbm5udxxxx306NGDdevWRXqFPfHEE1xwwQVUVVXx1FNP8dlnn6GqKjabjdGjR9OjRw9uvvlmbr31Vm644QYAFi1axIwZM3j11VeZP38+a9euxWAwsH37dlJSUrjppptYsmQJmzdvBmDs2LFce+21BINBXn31VV5++WW8Xi8Gg4E77riD2267jYaGBu6///5IQJSbm4vFYuHJJ5+kV69ejB49mh07dlBSUsLu3bt5/vnnWb16NVOmTKGmpgaAyy67jDFjxog2G6eILEkknIHTQit+rGLlj1UMyLaz8scqEmMMXND69A+gimt9pMYauaZ7Eh6/SnGdn0q3n/0VHr47UEtI03hyaGvizeItVRDOBiKl8Sh0ikSm00xSnDHSRFWRJfq2dtDKZeHDdUVsK6jjgnZOHFYDrZOsFFZ5+c/3hUB4WP9wwWCQbdu2sWLFCh544AHmzJmDxWLh8ccfp6Kigk2bNrFnzx4ef/xx3njjDVq1asXTTz+NXq+nRYsWLFq0CL/fTygUYvHixSQkJJCSkkJFRQVff/01l1xyCc899xwNDQ08/PDDnH/++bz00kukpaXx0ksvUV9fz9dff82UKVMYPnw477zzDldddRVTpkzh22+/RZIk8vPz+f777xk1ahSvvvoqCQkJzJgxA1mWGTt2LG3btuWGG25g0qRJhEIhJk+eTNu2bXn//fd55JFH2LZtG3v27Gnql044jX21p5L564v5U9dE/nZBBn/qmsj89cV8taeyqQ/tvyqq9eG06emeEcuFbR2M6JHMXRdk8H+/y+Lqc5PQy2J67mzjD6oUVXujWrLUeoLkV3qo9QQj14VUjdJaH/mVHjz+0HH3uXfvXj788EOqqqqOerumaaxfv54PP/yQ2traI24/ePAgr776Kk888QSvvvoqRUVFTX2ami3xNek4ft4/qNYT5K01B9mSX8t1fdIY3NGF2xeioMpDmyQrf7+0DVMW7WH1rgpykm1R2xoMBkaOHMlll10GhDte33LLLWzZsoV+/frRqlUrvF4vtbW1tGnThnXr1qFpGn/4wx944oknyMvLw2w2s27dOu655x5MJhOaptGzZ09GjBiBxWJh9erVfPbZZ1x33XXY7XauuOKKyEjTsmXLMJvNdO7cmfr6+kiX7VWrVtGlSxc0TWPYsGFcfvnlAPzpT3/ihRdewO/307p1a2w2G2lpaWRmZlJVVYVerycvL48DBw4wcOBAhgwZgs1m+wVnVTgbfbWnknc2lHDNuUkMbBOerm78/zsbSqIun45K6/zEmnQYfraEzqDIeAIhHFY9Jp34Lno2OFk5saqq8uKLLzJ79mxefvllrrvuuqjb6+rqeO2115g2bRqqqvL5559HjfTv3LmTu+++m/LyclJTU3njjTf4z3/+w4svvij6R54EIng6Do1wvlOjTzeV8OX2Mi7pkoTdamB3cT0Wg8LMpfu56BwXWU4LgaCK7ihvohaLhZYtW0YuZ2RkoNPpqKysZNu2bYwdO5aDBw9it9uprq4mGAyiaRr9+/fHarWyevVqYmNjkSSJgQMHho9P04iLi4s0YjWZTFit1sjlxn835k4VFBTwz3/+E1mWI9tarVZUVUVRlKj2AFarNfIYqqqiaVokmLTb7UycOJHnnnuO+++/H5PJxB//+Ef+9re/ReVxCYKmwYofK3lvY3Tg1Kjx8vsbwwHUBa0dnI451hXuwDGnSUtqw4HVz0echebpROfENiosLGTFihXExsayaNEirrzySozGcAqIqqrMmDGD9957j969e/Pdd99F8l0BQqEQs2fPxu1289Zbb9G6dWtWrVrFmDFj+O6770TwdBKI4Ok4zHqFBJsBRZbwBlTyKhqwGnWs31/Nun3VtHCYufPCLHq3svPpDyVoQIbTwqD2ziP25fF4OHDgQOTywYMHCYVCxMXFMXfuXA4ePMisWbNo164d8+fPZ+rUqaiqSmpqKgMGDGDx4sWYzWZ69+5Nenp6ZD/aURKGf36dXq/H4XDQpk0bXnrpJex2O6FQiIqKChISEqL+CI+1D03TCIXCQ87BYJCOHTsyd+5cysrKWLhwIZMmTSIzM5ObbrqpqV824TRS5wvy3sYSzk2PPebIUr9Wdr49UMP7G0vonh57RNf5puYNqNR6g3RIsR719uMFVkLzc6JzYhutXLmSYDDIQw89xCuvvMKePXs455xzgHBwlJWVxZw5c6ioqGDDhg1R79ElJSUsX76cUaNGkZiYyLZt28jOzj5qbzzhxDi93qVOM/1yHJybFU+sWYcsSdwxKCtqfluRJeIteq7pncbA9k48gRBJscYj3vwlScLv9zN37lxatGhBfHw8Tz/9NOnp6XTo0IH//Oc/qKpKMBhk+/btfPTRR3i93sj2l112GbfccgsAs2bNiowsHT4adKzLjYHRhRdeyFtvvcX777/PH/7wB77//nvefPNNHnnkEXr37n3EtofvT6fTYTAYWLFiBRdffDEWi4W7776bnj17cu2115KWlobJZEI6HYcMhCYVY9RxSXsny3dXklvpJdMR3V2+wR/inQ3FFNX4ual3Kjbj6feW5A2qVLoDmPUK/pAaNXXnD4UDq/bJ1t/wCMKZ5Hg5sf6gGsmJvbpXKg6rAYfVwLr91cfMiYXwKupPPvmEc889N5KX+vnnn0eCJ71ez4gRI5BlmUWLFh3xXl1WVobX62Xbtm0MHz6csrIyVFXl1ltv5a677mrqU9YsnX7vVKcRk17BpD9U8DLecvRvlzpFIs1uOuZ+NE0jNjaW9u3b889//pOysjISExMZP348KSkp3HLLLezYsYNRo0aRnJxMTk4OgUAgEiR17dqV9PR0fD4fvXr1iuy3sVxBo9jYWBITEyOlCaxWKykpKQCcf/75PPTQQ8ydO5e33noLWZYZNmxYpIlkUlJS1Px547ayLBMTE8P111/P9OnTefTRR5k9ezYXX3wxc+fO5b333kOSJK6++mouvfTSpn7JhNOMJMElHRLIr/by6jcF3D8ok7ifVqSV1ft59ZtCqhoC3HVBOq1dlqY+3KNSNQ1/SOOd9cUs311JrClcpiApxoBZr1Ba5yepGdV1E36ZE5kT++OPP7JhwwYeeeQRHA4HPXv2ZPHixdx+++2R9+XG9/Wjqauro6KigrVr1zJu3Djat2/Pu+++y9SpU2nTpg1/+MMfmvp0NTsieDoFNE1DlmVuuOEGOnfuTGVlJUlJSZH8oF69evH+++9TUlJCfHw8drud2tpanM7w9F9FRQUej4fLL788ch3AvffeSygUitRXuummm7jmmmsi+UqXXXYZF1xwQaQu06hRo7j88supqKggNjaW1NRUdDodqqry/PPPR+bXAS666CLOO++8SB7UzTffzJAhQwiFQrhcLu68807++Mc/Ul5eHtmXqPMkHI1ekRnRI4Xpy3N5e10Rt5/XgrxKD3PXFmC36HngwkxcttP3dyferGPskFaU1PooqfNTWuenwh1gX4WHKncAVYMk0Xj5rHMic2KXLl3KwYMHefPNN1m0aBF79+4lLy+PzZs3079///96LHFxceh0OoYPH84VV1wBwN13381nn33GqlWrRPB0Eojg6RSQZRmTyYRerycpKYmkpKQj7pOQkBCVsG02mwFYvHgxkyZNQqfTcc0110RtExcXF3U5JiYman7bYrFgsRz6Ni9JEikpKZHRqMOP7/Cg7Gjb6nQ6UlNTo+6Tmpp6xHWCcDRxZh0j+6QyY3keM1fkkVvlpUuajWvOTcZymrczkiWJpBjDEaNL3oCKN6iiapqo73QWOlE5sXV1dXz66acMHDiQYcOGoaoq/fr149VXX2XRokW/KHhKTEwkKSnpiPxVSZJEOsVJIv7iT4GUlBQmT55Mhw4dfvW2cXFxXHHFFQwePJicnJymfiqC8D/LdJgZ0TOFf31byCXtnVzcISHS4uRMZNLLUfkrGnDmPhvh1zpRObE//PADO3fuZNasWVGpDzU1NXz88cfcc889R3zh/fmUYWJiIldddRXz58+nc+fOdOjQgX//+9/s37+fRx55pKlPVbMkgqdTICYmhosvvvh/2va8887jvPPOa+qnIAgnROdUG3/p34KcROsZHTj9XJ03yOLt5VzQxiHyn84SJyondv369bRt25YePXpEXX/JJZewePFiduzYERU8mc1mUlNTo5q0S5LEnXfeSXl5OQ8//HAkP+rBBx/kd7/7XVOfqmZJBE+CIJwyZfUB3viuiP/7XVazWt6vV2T2V3gorStmVP909ErzCQyFk+vmm2/mhhtuiErbAOjRo8dRSw2cd955vPvuu0ekWrhcLqZMmcL+/fspLy+nRYsWZGRkHDfRXPjfieBJEIRTpsYbwB9SaUaDTkB4Cu+6HilMXXaAFT9W8ru2Cb99p8JZwW4/em9HRVFITk4+4nqTyXTU6wGMRiPt2rVr6qd0VhAhqSAIp0ytN4TFoKBXmt9bT4bdxB+7JLJgcxn7yz1NfTiCIJxEYuRJEIRTptYTxKSTm+20Vr9WdsrqAtR4g799Z4IgnLZE8CQIwilj1MtkJZibVbL44fSKxJVdE5HF8vDmRQJJrKVsElL45IeXs55GRPB0DEFVo84TJKRq6HUSsSY9vqCK2xeMLEm2GBTMBgVVgzpPgEBIQ5ElYs06lF/44aCqKl6vF6PRGKkofjyBQIBAIIDZbBb1O4QzTt+sOHplxv3iv48zUXN+bmclCUIqlLv9AGin26d4MyYhUe72E1LhdJvpF8HTUQRVjY83FLN4cwlef4h4i57r+6XT4Avy5tcHCaoaEhLtUm3cdkEme0rczF+bT3VDAJNeYUiXRC4/N+UXvYnm5eUxefJk7rvvvl+U6LdixQo+/fRTnnjiiah2KoJwJjDoTrN3QEH4bzSobAjw0Ed7wh/gInY6dX4KXCsbArhOs9W54p3sKOo8QRZvLsGgSPTOtlPdEGD59jKqGwJUe4K0S42hbaqN9Qeq+X5fNV/tKKfGE6B3tp1zs+LQNAiEoiu9hkIhDh48yJYtWygqKkLTNAKBALt27eKzzz5j+/btVFdXR+5fUVHBtm3b+PHHH/F4wsmnDQ0NrF+/nqVLl7Jv3z7cbjeBQICSkhL8fn9k2+rqaqqqqiKXa2tr2bFjB7t27cLtdjf16RWEs0ZxrY9Ve6uiiicKZw5ZknDaDLisehE4NQUtPOLksupx2gyn1XS4GHk6ipCq4fWH6JJtZ3jvNPIqPHgDKiFVQydLZCSE25b8kFuD2xfE6w+R7rAwckAmVqOCpsHhr7HX62XmzJm8/fbbBAIBDAYDd911F+3bt+fxxx+nqKiIRx55hOuvv55HH32U5cuX89RTT1FeXk4oFOL8889n8uTJLFmyhFmzZlFeXs7IkSMZPXo0HTt25O6772batGl07doVVVWZPHkyoVCIp59+mk2bNjFu3Dj27duHpml06tSJp556iuzs7KY+zYLQ7PmCKu9tKEGWJPq1im/qwxF+JbtFx+TL26BqImpqarIkYbecPiHL6XMkpxMpnLfw/b5q8io8HChvoGNaDBISwZDGhgPVAARDWiRIkqRDuQ4/D463bt3KCy+8wN13383QoUN59913Wbp0Kb///e8ZPXo0999/P2PHjuX3v/89Pp+PxYsX061bN2688UZ27drFww8/TJ8+fRg+fDg//vgj77//PjNmzKBLly7s2bOHgoICfD5f5PEqKioIBoP4/X5eeuklKioqmDdvHm63m+nTp/Pdd9+J4Ek45YKqRn61lySbAfNp3s/uRMl0mBnSwcn7G0tomWAmNU40ED6TyJLUrIq5CieOCJ6OQeNQQCRFrtPQKRLdMsMNefMrPciShCRDtTvAxtxqjHoZo04hJ9kWWY6tKAqSJLFr1y7OO+88/vznP2M0GomPj6eyshKTyUSbNm1ITk5G0zTGjBlDXV0d9fX1OBwOHA4HeXl5xMTEkJ6ejsVioWPHjpHGwLIsRyWPy7IcqSprMBioqKhgx44d9O/fn1deeQWr1drUp1c4C9V5g7z8dQG39kkl22X57Ts8Qwxu62BniZt/ryvmrwPSMetFtoQgnOlE8HQU0k8/vbLtDO+VxjOLfwTC30KCIY1PNhYDEGfW0zbFhiegsmB9ITM+24ssSfRt46B1ohV+Cp7OOeccJkyYwCuvvMItt9xCYmIit912G9dff32kC3bj/71eL3PnzuXdd9/FYDBgtVrJz8+PHNvP738smqah1+u55557UFWVqVOn8s9//pP+/fvzwAMP0LZt26Y+zcJZxh/SqHQHMJ0lo06NDDqZa7on8/b3RVTU+2lxnD5ngiCcGUTwdBRWo46b+meQEm8k3qLnyu4pyLKEw6bHZtKhqhqSJJHpNNMuJYZMp4WWTjM1niBmvcI56TEYD/t2GQwGueSSSxgyZAh5eXm8+OKLjBs3ju7duyPLMpqmRYKh7du388ILL3D77bdz++234/V6GTFiRFQX7VAoFPm3oiiEQqFIUnkwGKSyspLY2FiCwSBOp5MJEyZQX1/P119/zWOPPYbZbGbatGmi55FwSrl9IfSKhOksXHGXGmfkbxeki9WGgtBMiODpKEx6mQs7HGq62Cv7UO+hVq4jp7xiTDr65Ry7l9W3337LU089xS233ELfvn1JSUmJ1HSyWCx4PB4WLVpEdnZ2JEhSVZXa2lqWLFnCjh07uPjiiwGw2WwUFhayZMkShg0bRlJSEjqdjrfffpv4+HjWr1/PqlWrGDp0KD6fj8cff5z6+nruueceUlNTj2gyKQinSq03iFEvN9sCmf+NWX92jbgJQnMmgqdToFOnTnTq1InJkyejKAoGg4EHH3yQtm3bEggEGD58OP/5z3/Q6/X8/e9/57bbbmP+/PksXLiQ9u3b079//0h+U9++fTnvvPOYOHEiiqIwYsQI7rnnHp577jnWrl1LTk4O559/Pna7HYvFwpAhQ5g4cSI33HADkiTRvn177rjjDjHqJJxyOlmibaJVjL4IgnDGkzTt7F6DWVbv5463twMwZ0QHXDbDSXkcv99PQUEB9fX1OJ1OkpKSIgGM1+ulpKQEs9lMYmIifr+f/Px8AoEAqampBINBFEWJFMWsra2lvLychIQE4uLiCIVCFBQU0NDQQHJyMpIkoapqpFt3RUUFxcXF6PV60tLSTsuE8VP1OghNJ6hqBEIaJr181je6KKzx4Q+qZCWYm/pQBEH4H4iRp1PEYDDQsmXLo95mMpnIzMyMum+rVq2Oua/Y2Nio6uKKopCRkXHM+yckJJCQcOxpRUE4FXSydNZO2f3c9mI3S3dW8ODgTPFFQRDOQGL8XBAE4RQ7r2UcsWYd720sIaie1YP/gnBGEsGTIAjCKWYxKFzfI5mdxW5W7Kn67TsUBOGUEsFTIyncwVloGlL4BRCaKVXTOFDhodoTaOpDOW1kOsxc0TmR73JrcPtDv32HgiCcMiLnCSKdm8vd4ea6muj+eEpJSJS7/YTUcBNIofnxBlT+vb6YQW3s9GkZ39SHc9o4v7WdTqk2UXVcEM4wIngC0KCyIcBDH+0RnbObwk/Ba2VDAJfoI9UsBUIaVQ0BTKLWURS9IuGKEQnjgnCmOeuDJ1mScDaudpEQgVNT0MIjTi6rHqfNgCyJ+bvmJqhqeAMqsaaz/i1HEIRm4Kx/J7NbdEy+vA3q2V3u6rQhSxJ2y1n/a9nseAMh/CEVq1GMPB2LBpTV+bEaFaxnWf8/QTjTnPWfUrIkkSCmigThpJIkic6pMSK35zhUVeOjzaUYFJmbeqeIEVhBOI2JdzJBEE665FgDt/ZNI8Z41n9fOyZFlhjQ2s66vBq+PVDT1IcjCMJxiOBJEISTTpakcFsWMZhyXO2SrFzSwcl7G0ooqvE19eEIgnAMIngSBEE4jfy+XQIt7Ca+2FmBSMUUhNPTWd8YWBAE4XRT7vbj9oXIdIjGwYJwOhLBkyAIJ92BCg9GvUxKrLGpD0UQBOE3E9N2giCcVCFVY+HWMr7PrW3qQxEEQTghRPAkCMJJFVQ1aj1BTKJMwf9E06DeF0IVcwSCcNoQ72aCIJxUgZCGJ6ASJ6qL/0/qfUFmrzrIpoK6pj4UQRB+IoInQRBOqkBIxe0PESOqi/9PrEYdGQ4T89cVU+EONPXhCIKACJ4EQTjJFFmibZL1UA9J4VeRJRh2jotYk8J7G0sIivk7QWhyYrWdIAgnlaaBP6RiUESRzN9iX7mHZ5fncn3PFHpnxTX14QjCWU0ET4IgCGeITfl1xJp1tEwQ9Z8EoSmJ4EkQBEEQBOFXEDlPgiAIgiAIv4IIngRBOKnyqrzsr/A09WE0O5qGSB4XhCYigidBEE6qL3dXsnx3ZVMfRrOTV+XhtW8KqfEEm/pQBOGsI4InQRBOqjpvEKNOvNWcaPFmPbmVHhZsLhXVxwXhFBPvaIIgnDSN1cVjRXXxEy7OrGNEzxS+za1hXV5NUx+OIJxVRPAkCMJJE1RV3L4QMSZRXfxkaJ9k5eL2Cby7oYSyen9TH44gnDXE10FBEE4aCYm2SRbS4k1NfSjN1u/aJgDhUT5BEE4NUedJEISTKhDSUGSQRXlxQRCaCRE8CYIgCIIg/Aoi50kQBEEQBOFXEMGTIAhCM7K5oI5luyoRcwqCcPKI4EkQhJOmqNbHjmI3qvgkP2U04IMfSthSWNfUhyIIzZYIngRBOGk25NWyZHu5KOJ4CnVOi+H81nb+va6YqoZAUx+OIDRLolSBIAgnTbUniE6R0Mlipd2pIgHDznGxu7SB9zaWcGvftFN6/lVNo6ohKEYbTxOyJGG36MRq1xNMBE+CIJw09b4QFoMokHmqWY0KI3oks2JPFd6Ais146l6DqoYgjyzYQ3m9H8QHdtPSNJw2A5Mvb0OCVd/UR9OsiOBJEISTQtU03P4QLeKNTX0oZ6XWLgtZDjM65dQGMKqmUV7vp6w+gN2sIAYdm4aqQZUn9NO/xSjgiSaCJ0EQTgpNg5xEC2lxInhqKqc6cIqQJOxmhccuTMZh1qEhPrxPJQmJSk+Qp74sFqN/J4kIngRBOCkUWWJIB6d47z5LyRI4zDpcVh2qCJ5OKZnwH50Y9Tt5RPAkCMJJo4h379OCpsGmgjriLTqyHOZT97hoqGii5tQppkqaGO07yUSpAkEQhOZOgh3Fbl5dW0idN9jUR3Nin5r0K3+a+oCFZkGMPAmCIDRzEjCko5OtRfUs2FLG9T1SmsV0akjVqPephDTtFwdFRp2MxSDGDYTfRgRPgiCcFJXuAAcqPXRKjUHfVInLQkS8WceIHsnMWnmQnEQLvTLjmvqQfpOQqvHFzhq+2l2DL6j+4u1S4wxc091JZoIxajpR+ima1MQco/ALiOBJEISTYk9ZA59uK6dtohW9Imo9nQ46pti4qH0CO4rddE+PPWNz0iQJ6n0qX+2uoaDa94sLQGpAeX2AtklmshJMUXlBXq8XAKNRrA4V/jsRPAmCcFLUeoMYFKnplssLR3VZRxe+kHrGBk6NQpqGLxh+HopyaBpOAlRVQ9W08HM8PLDSNPxBDV/wyITqt99+G6/Py6hRo1Dk6GBfkiQ0TUPTNCRJihqlahypkg57nMZ/q2r0iJgsHzrOn98mnFlE8CQIwklR6w1iNiiiNctpRqdI6JrBSGDjb5Uz3kRmUkxU8JJfVk95tYe2GXbMxkMfcx5fkB25VZHtNcIBUGVlJd98+w1er5ehlw0lKSkJr9eLqqmgQWlpKampqcTExFBXV0dxcTGqqpKcnExcXByaplFTUxMJrkpKSjCbzaSkpKDThR8/GAxSUFBATU0NDoeDxMTEqGBKOLOI4EkQhJOixhPEqJPP+BEO4fSlaWAx6kl2WCIDTBJQVeelQpJwxhmJtRjQfrq+tiGALEePEPn9fl588UWWLVsGwN13382ECRP44osvWLV6FYqiUFNTw+RJk4mPj2f8P8azZ/ceQmqIzIxMHnvsMbp27crcuXPZsHEDRqORH3/8Eb/fzy0338Jtt91GKBTi5bkv85///IdgMIhBb+CWkbcw4roRKM0gkD0bibBXEISTopXTTOc0W1MfhnAcQVVjd2kDDf5QUx/K/0SSoK7BT25JXeTnQEk9te4AqqpRWNHAgZL6yPWFFW5CoUPTdZqmodfrufnmm7lgwAX07t2biZMmkp2dTVVVFevWraNfv35MnjSZ1q1bs3LlShRF4emnn+bpp5+mvKKc119/nUAgQE1NDWvWrKFv377MemEWgwYNYu4rc8nPz2fXrl288sorDL96OK+9+hqXXnopq1atoqamJmrETDhziJEnQRBOigGt7U19CMJ/4Q+qvLO+mI4pNq7smtjUh/M/qan34/EGoq4LhjRUVSO3qC6qyraqhVfpHU6SJFq0aIEjwYGnwUO7tu3Q6XSomkrPnj358+1/JiYmhlAoxJVXXsmgQYNoaGigrr6OjIwM8gvy8fl8aGh07dqV6669DrvdTigUYunSpRQVFREbF4skSez5cQ89e/bkxptuxGgwEhMTI1b3naFE8CQIwknxS1dACU3HYlC4tKOTed8UkJNo4ZzUM2ukUNOgfYqZQW3ioqbtVu+rY3tRA1d2TcBp1UWm7SrcQd7fWHGU/YQTvzW0Q4ncGsTFxaEoCqqqomkaXy7/kpdefAmvz0t8fDy5ubm0bds2cn97vB2dTkcoFMJisaDICoFAgPbt2vPomEd58603uevuu3A6ndxw/Q1ceeWVGAyGpj6Nwv9ABE+CIAhnsXPTY9lV4ubtdUX8/XdZOCz6pj6kX0xDIynGQO+WMZERJkmS2FfhY3eJhy4tLKTbw/WcJAkOVvlZsLnymK1L1JB61Gk0SZKorq5m5syZZGRkMGb0GOx2O08+9SRFRUWH3TH62BqFQiF+97vf8bvf/Y78/Hxe+9dr/POf/6RTp0506tRJrLw7A4mcJ0EQhLOYJMGwzi6sRoX1ebVNfTi/iixJFNX4Wf1jLasaf/bUkl/lIxDSWJ/nZtWeQ9dvyKvHH1JRJInDIx1ZlrFarWzespm1a9fi8XjQ0NDUI4MsVVXx+X2sWbOGr1d/HS5jwE8jV4ffXwNVU5FlmXXr1zFy5Eg++/wzLBYLyUnJyIr4+D2TiZEnQRBOOLc/xMaDtfTIiMOkFx8Sp7sYo46/9E8/c8pKaGAxyHRIsbA+r57cCm/UqE9IBVXTWLi58udlnrAZFLJdpvBOfiJJEhdddBHfffcdT014imemPIPD7sDr9UZqPMXHx/OXUX/h+eefZ9Qdo8jMyqTbud0wGU3IkkxcfBwerydyf71eT3JSMgaDgbZt29K+Q3tmzJiBoigYDAb+eudfycnJEaNOZyhJE9lqgiCcYPvKPTz3VR5jh7QiwXrmTAMJv11ZvZ87/r0DNRRiyqVp4Zyjk/QpU+sNsbfMizegRve2a7zw88eVwBWjJ8thPKKEhqZpVFZV4q53k5SUhM/nIxQKER8fH1X0sqSkhNraWlwuFwaDAb/fj91up66uLur+wWCQyspK4uLiMJlM+Hw+ioqKcLvdOBIcJLoSURTlpCSMSxKUu4P836cFyIrCnOva47KJ3KoTSYw8CYJwwtV5gxh10pkzkiGckeJMCt0zrPCL2wIDaBxlNg5JknAmOHE5XaiqislkCt/7sOBGlmXS0tJIS0uLul7TNOLi4qLur9PpSEpKiiSjG41GWrZs2XgIqJoqVtqdwUTwJAjCCVfrC2LSK6Ih8BnKH1Sp9QZJsBo4nRdNhiuEN/7rBOzvsHYrxwpsjjXNdrT7/zzAEsFS8yGSEQRBOOFqPEFMeln0tTtDFdf6eXZ5Hj+WNTT1oQjCaUmMPAmCcMKlxZsw62X0onfXGSk13khWgpm31xXx4OAsbMb/rYWIhISMhCqJEZdTSUZC+lVTmcKvJYInQRBOuK4tYkDjtJ7yEY5NJ0v8qWsiU5Ye4OMtpVzbPYVfm74W0qC8IRguPClip1NKlqCiIURIE9NLJ4sIngRBOOGkyH+EM5Xdoue6HsnMW1tIz8w42rgsv3hbCaj3q8z5vgK9Iotcn1NMkiQCIZV6v4pDJxoPnwwieBIEQRCOqmOKjVH9WpD4K5e5a2jEmnQ89PtWOG16MfJ0iskSlNcHeHjBnmNWUxd+GxE8CYIgCEclSxLtkq2/fkMNFBlcNgNOm6jz1RQkJBSZE7UQUfgZMR0qCMIJ5QuqrNpbRVVD4LfvTDhzaYhRjyakhV8A4SQRwZMgCCdUvS/EextKqGoINvWhCCdYIKThC4p2IoIggidBEE4oX1AlqGpY/8fl7cLpa/3BWuauKcATCDX1oQhCkxLBkyAIJ1S4NYuMQRTIbHayHCb2l3v4bEdFUx+KIDQpETwJgnBC1XjCwZOoLt78JMcauaZ7Ml/srGB7cX1TH85pSdM0du3axfr16wkGjz513dDQQE1NDYGAyAs8U4ngSRCEE8ppMzCwjR2jTry9NEc9MmLpkxXHu+tLcPt/3fSdP6hSVO0lGDqUyVzrCZJf6aHWcyjQCKkapbU+8is9eI7xGB6Ph5qaGvx+f1OfkihVVVWMGjWKq6++mm3bth15Dvx+pk6dytVXX83XX3/d1Icr/I9EqQJBEE6oVk4zrZzmpj4M4SSRJPhDp0Q2Hqz9xXVQNS08nfvl9jJW7Cxn9LAcEmONbC+o4/XVeVQ3BIiz6BnRN53O6bEs3lzC4k0lhFSN7EQrIwdk4owxHLY/jRdffJFPPvmEv//97wwZMqSpT0uE0WikW7duOJ1O7Hb7Uc6FxubNm1m2bBm33nprUx+u8D8SwZMgCILwq8SZdQzMcQAQDASodvvQFD0Woy7cU00iapl8vTfIS18eYFNeDbIMqgaqpvHF1lJ0isyoC1vy7rcFfLyhCFesgRU7K+iXk0B6gpmXloW3G9zRBYSDj9zcXFatWsWXX35Jv3796NSpEy6Xi927dxMIBMjIyGD37t1YrVY6d+5MaWkp27Zto7a2ltTUVDp27IjVaiUQCLBz506CwSCZmZns3r2bqqoqOnbsSEZGBgChUIg9e/awZ88eJEmibdu2ZGdnIx+jb6PRaOS6667D7XbjdDoBcLvdbN++HZ/PR1ZWFoqioCgKkuhfdMYSwZMgCILwPymvrOJfSzeyen89AXRkpSVyfod0Qmq4SGYjs0FheO80nDEGVuwsB8KjUb2y7ditBnKSrSzbVkZZnQ+TXuEvF7bEYlTYml+H1aTgijVG9uX1ehk/fjwLFy4EYMqUKWzevJmpU6dy1113kZubS4cOHVi5ciXXXXcd1113HWPHjmXr1q2oqorRaGT48OFMnjyZQCDA3/72N/Lz8+natStfffUVPp+Prl278tJLL9GhQwdmz57NtGnTqKmpQVVVHA4H48eP5/rrrz9q8FNTU8PDDz9MQUEBH3zwAWlpaTz00EN88MEHBAIBunXrhsfjOWbwJZwZxKsnCIIg/GrBQIB/Ld3Iv1buYeW/n2fp1Dv595RHmP7ecqo9ofAI1E90ikSm00xSnDHSLFqRJfq2dtDKZeHDdUVsK6jjgnZOHBYdrawe9u3bzzvLfgBNw6Q/VPZCr9czZMgQOnXqBMDvfvc7rr76avR6PdXV1eTm5rJv3z5GjhzJBRdcwOeff055eTm33norTz31FHFxcbz++uusXbsWgOrqavbv3095eTm33347ycnJrFmzhoULF1JSUsKzzz5LaWkpY8eOZfz48cTHx7N8+XLcbvdRz4uqqlRVVVFeXk4oFOLDDz9k3rx5GI1G/vKXv5CcnMzmzZvFqNMZTow8CYJwwgRDGt/m1pDpMNEi3tTUhyOcRNVuH6v311Ow+n0qNy0FwFeWR57RQMurxoAt5ohtft4guNYT5K01B9mSX8t1fdMY3N5JffEeChdNxlZTzrVBKwvUa/h6t4Ocn9rE6HQ6rr76apYtW8bGjRu54ooruP766ykrKwPAbDbzj3/8g+HDhwNQWlrKsGHDqKqqoq6ujuTkZHJzcykuLkaSJCRJwmw28+CDD3L55ZdjMBiYMGECRUVFhEIhFEXB5/OxdetW+vfvzzPPPEP79u2xWo/dtkaSJGRZxu/3s3btWlRV5bbbbuPJJ5+kqKiIvXv3smXLlqZ+CYXfQARPgiCcMN6gyqfbyhnWySWCp2ZOU/QE0OEu3B11vVJXghTyw1HSyTWIahL86aYSvtxexiVdknBYjWzdcwD9ysmkdmiF3nIOWZ4G1NXv0CC1jtpPKBRCVcOVzhv/r2kamqZhsVho165d5H7vvvsuzz77LF6vF4vFQllZGZIkRQK5xm2ysrIASE1NBSAYDJKUlMTYsWOZPn0677zzDm+88QbJycnccccdPPjgg5hMx/8dDwQC1NTUIEkSrVq1AiA+Pp6MjAw2b97c1C+h8BuIaTtBEE6YYEjFGwgRaxLVxZs7s0EhMzURS0qbyHWKLJPd4wIMlphwUtPPt9ErJNgMKLKEN6CSV9GA1ahj/f5qXlmZywff5dPgqcaQ2RGl5bmQ1p7UmCB9s+OOeRx1dXUAR50GKysr4/nnn6eoqIiJEyeyYMEC+vTpEwm4Dne07T0eD926deP5559n4cKFPPTQQ5SUlPDCCy+Qn5//X8+RwWDA5XKhaRpbtmwhEAhQUFAQST4Xzlxi5EkQhBMmoGp4AyoxRvHW0tzZjDr+1DubbX+4g50GPXJdCY7256Hr/Ad86tEDg345Ds7NiifWrEOWJO4YlHWo5pMkobnLqP2qBZKuNZq5JZ6q3VidqSTERo/w6HQ64uPjAZg7dy5Go5Fhw4ZFRp8aR5VkWcZgMOD3+1mxYgUrV67km2++AQ5NIaqqGrVN4/8lSeLgwYNcf/31uN1ubr75Znw+H5qmkZCQgNl87HIcqqqiqioGg4GBAwcyb948XnnlFUpLSyksLGT37t0IZzYx8iQIwgnj9oXQALNevLWcDQa0jufxm37PiP97mgvvn8nFN9zF0J6tiDEpaEe5v0mvYLfqUWQJSYJ4ix5njCH8Y9PjSkoh9YK/UfjFy2hlP+Je/RrJA/6Kzuo8Yl9XX301F198MdXV1SxfvpxQKERqaippaWkYDOGaUE6nkwcffJDWrVuzcOFCDhw4wPnnn096ejo2mw1FUY7YJiYmhtTUVOLj48nOzubPf/4zer2eZ599ltdee43u3bvz1FNPkZaWdtRzotfrSUlJIS0tDZ1Ox9ChQ3n44YdxOp0sW7YMl8vFFVdcQVpaGhaLpalfQuF/JGmapv323QiCIEBZvZ/vDtRwYVsHZr2YujtbuP0qvqCKSSdR5wvxl/k7QNOYM6IDLpvhV+3LV1PK5tceJLXXIAq/W07nW6ZijEs86n1ra2upqanBZDJht9uprKwkGAzicrnQ6/VAeBSoqKgIt9tNYmIikiRRV1eHw+HAZDJRVlZGKBSKbON2u6mqqsJmsxEfH4+qqhQXF1NcXIxOp6NFixZYLBbeffddcnNzo6bfFEVhyJAhtGjRAr/fH9lnIBCguLiYQCBAUlISgUAAt9uNw+E47gjWb1FW7+eOt7cD/E+vg3B8YmxdEIQTxmUzcNk5rqY+DOEUsxpkrIbwaKPbHzpqvtMv1aAZWVDTBdMaP153F1prRozHuG9sbCyxsbGRy4mJRwZZsiwfMUoUF3cohyopKSn6uVitUSvpZFkmNTU1kkgO4fIG7733HmvWrEFRwl8SNE3DYDDQqlUrunbtGrVPvV5Penp61HWN047CmUkET4IgCMJpw2w206NXb9as38Z5vXqftJGZ3yImJoaZM2fS0NAQGXnSNA1ZlklJSWnqwxNOARE8CYJwQhzepsNsULCJpHHhf2A06LlkUG8u6NsVs8mI0aBv6kM6gqIoZGZmNvVhCE1IvLsJgvCb/bxNR2ZqIn/qnc2A1vHoZLEk+6wkEVVl/BdvJkmYjAZMRpGj81scrcegcOKI4EkQhN/k8DYdBavfx124G0tKG7b94Q7G3fR7BrWx//YHEc4sEoTUcNKyhhZVGFM4+WQJyusDR/QYFE4cETwJgvCbHKtNx069noWd2tMrMy6STCycHSQkar0Bnll2AL0ii8GPU0wCAiGVWm8Qh+X0m/ZsDkTwJAjCb3LMNh31JZRW1+ELqiJ4OstoaMSadPx9cBZOm16MPJ1ijSNPDy/YgyZC15NCBE+CIPwmh7fp8JXlAWDQKbTpOZD0JCdGnch5Outo4ekily1c/FI49SSk8JSdiJ1OChE8CYLwm9iMOq7qk832y0exVafH4C4hp9dAWvS/ios6uLAaRLHMs5KGGPVoQlr4BRBOEhE8CcIpoGoaVQ1B1GZa0L9dooW/XDGAjzNbUVZdR0ayk9+3d9Eu0UJZvb+pD++oZEnCbgn3WBMEQfg1RPAkCKdAVUOQRxbsobzeD830w1oC6v0SPp2NvCo/76wvZv764qY+rKPTNJw2A5Mvb0OCVUwrCYLw64jgSRBOAVXTKK/3U1YfwG5WaK6ljyw6CYsuPE0XCoWa+nCOStWgyhP66d/NcyRQEISTSwRPgnCqSBJ2s8JjFybjMOtEPkgTkJCo9AR56sviZjsCKJzZAoEAqqpiNB69o5/f70eWZXQ68fHdlMTZF4RTSJbAYdbhsupQRfB0ysk/VbxuriN/pzt/UKWi3o8rxohOCb8ItZ4gtZ4AsWY9sebwR1JI1aio9+MPqiTYDJibwaIDn8+HpmmYTKZj3kdVVV588UXy8vJ44oknohoUA3g8HqZNm0aHDh344x//2NRP6awmgidBOMU0NFS039J4XvgfqZImRvyagKZBnTfIl9vLWLGznNHDckiMNbK9oI7XV+dR3RAgzqJnRN90OqfHsnhzCYs3lRBSNbITrYwckIkz5sxu1zJv3jy8Xi/33nsvsnzsumeSJB3z9mAwyJdffomqqiJ4amIieBKEZuZXz0aJFc3CSVbvDfLSlwfYlFeDLIfzzlRN44utpegUmVEXtuTdbwv4eEMRrlgDK3ZW0C8ngfQEMy8tC283uKMrap+qqlJcXExFRQXx8fGkpKRETWVVV1dTVFSEwWAgLS0tasSnoaGBwsJCgsEgKSkpxMXFRd1WVFQUuS02NhYIT5dVVVVht9sxGAyRx9A0DbvdTk1NDZqmIUkSRUVFWCwW0tLSUBSF8vJyVq9ejcfj4corryQlJSWyj8PJssy1116L3+/HYrEA4RGrgoICNE0jJiYGnU533OBLODVE8CQIzUhI1aj3qYQ07Re3ZDXqZCwnqQK4JEloYojtrGc2KAzvnYYzxsCKneVAeDSqV7Ydu9VATrKVZdvKKKvzYdLLjBqUhcWosDW/FqtJwRUbnf8TCASYO3cuc+bMwe/3I0kSN954I/feey8mk4nly5czceJECgsLCYVC9OvXjyeeeIL09HT27NnD+PHj+eGHHwgGg7Rs2ZJx48bRp08fdu/ezfjx49m0aRMAGRkZjB07lr59+7Jz507uu+8+pk2bRteuXVFVlcmTJxMKhXj66aeZOXMm33//PUajkV27duH3+xk1ahS3334706dPZ8mSJQCMHDkyso+jmTt3Lvv27eP555+nrq6O8ePHs3TpUiwWC507d6a8vBxJ5Os1ORE8CUIzEVI1vthZw1e7a/AF1V+8XWqcgWu6O8lMMJ7QqURN0/D5fOj1evFN+SynUyQynWaS4oyRkVFFlujb2oE/qPLhuiK2FdQxvHcaDqsBh9XA+gM1fLCuCAnpiJynwsJCvvrqK2644QZ+//vf8+GHHzJ79mx+//vfk5yczOjRo8nIyOAf//gHubm5PPXUU7z++us8+OCDTJgwgV27djFlyhT0ej1Tpkxh6tSpzJ49m4kTJ7J3716mTZuGzWZj0qRJPPbYY7z33nsEAgEKCgrw+XyR46ioqCAYDKJpGlVVVaxYsYKnnnqKRx99lHnz5jFz5kyGDBnCX//6V/bs2YPX62XChAlkZ2cf81xVVlZSWlqKqqq89tprLFy4kHHjxtGpUyf+9a9/sXXrVq666qqmfknPeiJ4EoRmQJKg3qfy1e4aCqp9v7jwo0a4B1bbJDNZCaYTlg8kSRJlZWXMeG4G115zLZ07d0ZVf3lAJzRPPx+FrPUEeWvNQbbk1zK8VwpdU/TkFpZT6wkSZ1AY0d3By8sP8Pn6XFpd0g7lpyA8LS2NZ599FrfbTW1tLdnZ2WiaRnFxMQUFBZSVlfHSSy/RpUsX+vbtS05ODpqmkZ+fz5o1axg9ejRDhgwBIDs7mwMHDlBWVsaaNWt49NFHueiiiwB4+OGHuemmm9i6dSsxMTHIshw16nP4ZU3T6N69OzfffDM2m42bb76ZTz/9lKKiIi644AKcTicNDQ107NjxF+U81dfXs3TpUoYOHcrIkSMBcLlcfP7552I09zQggidBaCZCmoYvqKLIEopy6M1ZAlRVQ9U0FFmKTorSNPxBDV/w6InUkiRFfTg0vmkf/gHSODXXmO/R+Obvdrv5/PPPGTRwUOT+v3Z/QvOiQVST4E83lfDl9jIu7ZqMQfNz97hXQA2BLGNQZCQJymu9fLbVwPA+d+NyhHOTysrKGDduHN9++20kD6ihoSFym9VqJTk5OfI45557LgAbNmxA0zSysrIit7Vs2ZKWLVtGbsvIyIjclp6ejk6no7y8nJiYmP/6/BwOB3p9uOiqxWJBURSCwWD4uf/0Ox0Khf7rSKwkSfh8Pqqrq6OO1W63k5qaKv42TgMieBKEZqIx/HDGm8hMiokKSPLL6imv9tA2w47ZeOjP3uMLsiO3KrL94W/JkiRRXV1NaWkpBoOB5ORkTCYTmqZRU1ODqqmgQWlpKampqcTGxlJbW0txcTFWq5VgMIiiKFGBU1VVFaWlpZjNZpKTkzEYDMfcX0xMjPiQaGbMeoUEmwFFlvAGVPIqGrAadazbV82q+lpq3F7+ef+V6BSFQDCITpbRJIkX3lqOeljUtWjRIj7++GOef/55Bg4cyO7du7nxxhtRVZXExETcbjdFRUUkJSUBsHXrVkKhEHFxcUiSxP79+xk0aBAAeXl55OfnY7fbkSSJvLy8yOMcPHiQYDCI0+lEURRCoRAejwcIr3yrrKyMJJT/Er8kcIJwoGUwGIiPjyc3NzdyfWMSvMh5anoieBKEZkTTwGLUk+ywRAaYJKCqzkuFJOGMMxJrMaD9dH1tQwD5GEWPVqxYwbMznqW0pBQk6N69O//39/8jMzOTuXPn8vWar1EUhZqaGiZPmozFYuHJp57kxx9/xG6307lzZwKBwKH9rVzBs88+S1lZGZIkMXjwYO679z7sdvsR+5s0cRI9evQQwVMz0y/HwblZ8cSawz0F7xiURTAUHrEsLqvgyR0rkCSFsVPeobismo45GfzfnVeQmuRCpxxZ6ykUClFcXMxbb71FZWUlmqbRo0cPEhMTmTBhAg8++CAFBQX84x//4KqrruL//u//6N+/P7NmzSI1NRWTycSUKVMwm83Mnj2bvn37Mnv2bFJTU7HZbDz99NNkZWXRsWNHfD4fOp2Ot99+m/j4eNavX8+qVasYOnQowBGjpZqmoapq5DqbzcbKlStZuXIlffr0wWw2H/UcNW4XExPD4MGDeeGFF+jRowedOnXi9ddfZ//+/U39MgqI4EkQmhVJgroGP7kldYfNzknUugOoqkZhRQOVdX74KXzy+oOEQtEBiizL5B3M46kJT5GZmcmjjz5KWWkZkyZPYtasWTz55JPU1NSwbt06HnjgAS4YcAFpaWk8+tijFBcXM3HCRIwmI88//zyVFZUoikJBQQGTJk2iXdt2PPXkU+zevZtJkyeRkZHB7bfdTnVNdWR/A84fQOvWrUXg1AyZ9Aom/aEgKN5yqK9gwGNAliQa/CpFpTWYTEauueICrDExJLkSUA4LnoYMGcKKFSsYN24cdrudbt260bVrV4xGIykpKUycOJEJEyZw2223oaoqvXr14qabbsJkMjFmzBieeOIJHnzwQVRVJT09nTFjxuByuRgzZgzjx4/n/vvvB8LTdhMmTCAhIYFQKMQ999zDc889x9q1a8nJyeH888/HbrcD4Sm1xlEpAL1eT0pKSqREwtChQ1mzZg1jxozhxRdfpEuXLkc9R3a7HZfLhSzL3HLLLRw4cIBJkyZhtVrp1q0bF1988S+aQhROLhE8CUIzU1Pvx+MNRF0XDGmoqkZuUV1UdW1VC6/SO5wkSWz6YROVFZU8O/3ZyJv8gdwDvP3221RWVgLQs2dP/nz7n4mLi+PHH39k48aNPHD/A1x88cUA+Lw+tm/fDsCmTZsoKCjgtltvw+fzkZqaSlZmFitXruT6EdeDdmh/MTExUd/YhbOD9lO9sZCmo22bDK65YiCfLP0eg9GCKyEBne5Q8JSWlsbs2bMpKCiITCnX19djs9kAGDRoEN26daOoqAi9Xk9aWlpkpKd169bMmTOHwsJCAoEAKSkpxMfHA9C2bVvmzp0bKXGQnJwcqQGlKAp//vOfufTSS2loaCA5ORlJklBVFVmWueeeewiFQpH6TZmZmbzzzjuRfQ8YMIAFCxbgdrvJz8/nySefRFXVyBScqqp07tyZO+64AwCDwYDL5WLq1KkUFBQAkJKSgtfrjeRVCU1HBE+C0IxoGrRPMTOoTVzUtN3qfXVsL2rgyq4JOK26yLRdhTvI+xsrovYhSRIVFRVYLBZcLhfBYBBZlmnRogVerzeSmBsXF4eiKKiqSnV1NRD+pt4Y+GRkZEQ+sCoqKqitreVf//pX5MPF3eAmIzMj0kD48P2JwOns5A+ECIQk7rztT9jjbAwzmpn71hIuHND7iBWkNpuNtm3bRi7/fBosPj4+Erj8nMVioXXr1r/6NkVRohLKD3d4oU0AnU4XybmC8N+V0+nE6XRSVlaGqqpRK1AbL8fHx0eNsplMpqjSBo3FM4WmJYInQWhGNDSSYgz0bhkTGWGSJIl9FT52l3jo0sJCuj1cz0mS4GCVnwWbK6NW2mmaRkJCAg2eBsrKykhNTQUgPz8fk9GExWI5YmVe4wdHfn5+JCH2YP7ByDSG3WHHYXcwZswY2rdvTygUoqamBr1eH0lCF85uOp2C0aDnrQ+/IDXJRbLLicvp4MIBvdm6Yzeei7piMZ/ZLVoa9ejRgx49ejT1YQi/gQieBKEZkSWJoho/q3+sPWzkSSK/ykcgpLE+z82Bcl9k5KmyIYg/pKJIEo3r7TRNo0uXLjgcDp6d8Sx/+ctfKCst49///jf9+/fH4XCER4d+mu5TVZWkpCS6dOnCK/NeITk5GaPRyJw5c6irq0PTNLp26YrT6eTtt99m1F9GUVZaxpyX53DhhRdyx5/vQEOL7E84OzniY5jxxJ1oqoaiKCiKgk6nIEsSnou6Eh9na+pDFIQIETwJQnOggcUg0yHFwvq8enIrvBzenyWkhnuJLdxc+fMyT9gMCtkuE42FClRVpUWLFjz66KM8++yz3HPPPUC4Vs6df70Tg8FAXFwcXq83kq9htVp54P4HeGrCUzwy+hHi4+Pp1bMX7no3eoOeFi1aMHrMaJ599lnuvPPOSH7H7wb/DlmWiY+Lj9qfcPZRZDlSx+nnmsuIk9B8iOBJEJoBjXCPumu6O+mRYcMbUKN720mH3fFn17ti9GQ5jPx84GfgBQPp0rkLZWVl6PV6kpOTMZvNhEIhRt0xilAohF6vjyzR7tixIy+9+BIlJSWYzWacTid1dXWRBPALB11It67dKCkpiaxEslgshEIh7rjjjqj9CYIgnM5E8CQIzUicSaF7hhV+cVtgAI2jzZg1dot3OByRy42BTWOO08/r2sTGxkbd1pjP1Hi/X7M/4ezgD6p8vrWU8jo/CTYDOck2slwWjDrRD1E4fYngSRCaEQ1+au57YoKQY7VJOVaQ89/aqvza/QnNk8cfijT7DYQ0Vu+qZPPBmp/qQMmcmxXP5d2TaZMk8pyE05MI7QVBEIRT5oe8GqYu/pFNeTWR6zRNIyPBwp8HZdGjZTzf7avimU9/ZN3+6l+831AohM/nE4G4cEqI4EkQTjEJCRkJ6aceveLn1P3ISEi/akpTOJHyKjy88lUuX++pZPaX+9l8sBa9ItGxRSy9s+0M7uDk7ouyuev3rfAHVeZ+dYC9pe5ftO/vvvuOxx57LFJz7Hh8Ph9er7epT4dwBhPTdoJwCoU0KG8Ioh0jz0g4uWQJKhpChDTxzfFUC4Y0Fm4sorTWx6Vdkli/v5pZS/dx5+CWXNe3BZqmodfJSMCAtglomsbML/bz8YZi7vp9S/TK8V+xvLw8Pv30U+67775Iy5RjmTdvHl6vl3vvvfcXNeoVhJ8TwZMgnCISUO9XmfN9BXpFFtMLTUCSJAIhlXq/ikOn/PYdCr9YYbWX7/ZV0yUzjj8PzKRbZhwvLT/A7GX7+evvWtE5PTbq/ue1cfDt3irWH6jmYKWXVq4jK2uXl5dTVlZGYmIikiShKEqk3IXP56OwsBC3201iYiIulwtJkigvL2f16tV4PB6uvPJKUlJSMBgMBAIBCgsLaWhoICkpKbKwQRCORgRPgnCKaGjEmnQ89PtWOG16MfLUBGQJyusDPLxgzxFV0oWTa2+pG7cvyLmZ8SiyTO/s8OjQnOUHIiNQXTLCqy4DPzWrPjcznu/2VvFjcf0RwdOiRYuYMGECNTU1pKWlkZKSAoQD5JqaGv7xj3/w2WefoaoqNpuNRx55hMsuu4zp06ezZMkSAEaOHMn06dNp2bIlkyZNYvHixYRCIVwuF48++iiDBw9u6tMmnKZE8CQIp4oGigwumwGnTTT2bCoSEorMiVqQKPxClfV+FEkixqxj9rL9tEq0MLRrMgAvfXmAf3+TT5bLQpxZz9KtpewsqqdPazuKLFHp9kft68CBAzz++OO0adOG+++/n4MHDzJu3Dh8Ph+yLPPDDz+wZ88eHn/8cbKzs5kyZQpTpkzhggsu4M4772TPnj14vV4mTJhA69atefnll/n4448ZP348bdu2ZerUqYwbN44OHTpEgjJBOJwIngThVNIQIx5NTAu/CMIpJkmNpTQ0HFY9NmP446dfTgI6RSakqpHrbCYdjp++YGhwRFPgDRs2UFVVxZgxY+jcuTO9e/dm165dvPbaa6iqSt++fZk5cyZer5fa2lratGnDunXr8Hg8tGjRAqfTSUNDAx07dsTj8bBkyRLat29Peno6Xq+X/v37s3TpUrZt2yaCJ+GoRPAkCIIgnHTOGCOqqlHpDnBDv/TItLUE9MmOTvDun5PA+W0T+HRTCSFVwxljjLq9vLwcm81GcnJy5LqWLVtiNBqRJImtW7cybtw4Dh48iN1up7q6mmAwGLlvY70xTdPw+XxUVlaya9cuxo4di6qqqKpKVlaWyEsUjkkET4IgCMJJ1zrJSpxFz3d7qxjcwYXVeChhvzFGiTSzlqDBH+K7fVXEmHS0SbZG7SshIQG3201xcTGJiYkA5Obm4vf7CQQCvPLKKxw8eJBZs2bRrl075s+fz9SpU6P2EQqFkCQJo9FIfHw8nTp1YtKkSUiShM/ni+RSCcLRiDWagiAIwkmXHGekX04C2wpq+XxLKepPEVNI1Vi0qYSFPxQT/Gk4StNg2bYyNufVcl6bBFLjTVH76t69O3FxcUyaNInvvvuODz74gLfffptQKPTT9hqqqhIMBtm+fTsfffRRVF0nm83Gxo0bWbFiBYqicPHFF7Ny5UqWLVtGcXExr7zyCg8//DCVlZVNfdqE05QYeRIEIUowGMTtdqPT6bBYLJGl37+Vpmns3r2b+vp6unTpgk535NtPQ0MDgUAAi8WCXi+S6psTWZK4tEsSOwvrmP9tPpqm8ftOiVgMCpX1fkKqFi7n4Q2ydFsZ73xTQMtEC0O7JaHI0b+DWVlZjB8/nokTJzJy5EhSU1MZNGgQu3fvxmQyMXLkSHbs2MGoUaNITk4mJyeHQCCAooRHu4YOHcqaNWsYM2YMs2fPZuTIkRQWFjJhwgQ0TcNisTBq1ChatGjR1KdNOE2J4EkQmpg/qFJR78cVY0SnhD8kaj1Baj0BYs16Ys3hP9OQqlFR78cfVEmwGSK9wU60zZs3M3bsWDp06MATTzyB1Wr97TsFqqqqGDVqFHl5eXz44Yd06dIl+jz4/UydOpVVq1YxZswYBg4cePJOutAkkuOM3DEoi5e/OsAbaw7y/f5qureMp4UjPLL00foi1h+oZkdhHa0Tbfx5UOYRo06Nhg0bRp8+fSgvLychIYGYmBjq6upwOBy4XC7ef/99SkpKiI+Px263U1tbi9PpBGDAgAEsWLCAuro6UlJSMJlMTJw4kbvuuou6ujpcLlekdpQgHI0IngShiWga1HmDfLm9jBU7yxk9LIfEWCPbC+p4fXUe1Q0B4ix6RvRNp3N6LIs3l7D4pwTa7EQrIwdk4owxnPDjqqysZPny5Xg8nqgk29/KaDTSrVs3nE7nUStAa5rG5s2bWbZsGbfeeutJPfdC02mdZOXBIa1ZsrmU1bsrmP9NfmQ1napp2C16Lj83hUs6J5EcZzzuvlwuFy6XK3LZbDZH/p2QkEBCQsJRb5MkCafTGQmmAPR6PZmZmU19eoQzhAieBKGJ1HuDvPTlATbl1SDLoGrhD48vtpaiU2RGXdiSd78t4OMNRbhiDazYWUG/nATSE8y8tCy83eCOriP2e+DAAXbv3o2qquTk5NCyZUskSaKkpIT9+/eTmppKMBjkwIEDdOvWDbvdTm5uLnv37iUtLS0yvSHLcuSbdyAQYNeuXezfv5/4+Hg6duyIw+FA0zT27dtHRUUFGRkZlJaWUlNTQ+/evTEYogM7o9HIddddh9vtjnxoud1utm/fjs/nIysrC0VRoqpEC81TYqyRG/qlc0nnRPaXNVBe7wcNEmwGWrosuGINR5QnEITTiQieBKGJmA0Kw3un4YwxsGJnORAejeqVbcduNZCTbGXZtjLK6nyY9Ap/ubAlFqPC1vw6rCYFV2z0t3JVVfn3v//NxIkTycvLAyA1NZWHH36YW2+9lYULF/Lwww/TrVs3CgoKqK6u5v3336empoaHH36Y/fv3Y7fb6dmzZ2QlEoTzkCZPnswrr7yCx+MBoE+fPkyZMoV27drx7LPP8t5779GtWzc2btxIWloaixcvjqyCatT4OAUFBXzwwQekpaXx0EMP8cEHHxAIBOjWrRsej0f0GjtLyFI4iEqMNf72nQnCKSaCJ0FoIjpFItNpJinOGFmircgSfVs78AdVPlxXxLaCOq7ulYrDosNOLWt2l/HOqnwUWwImfXTO05YtWxg7diwlJSX85S9/QafTMXv2bB5//HG6desWqWfz9ddfc8kll9C1a1cURWHChAls3bqVyy67jC5duvD+++9HgiRZllm4cCFPP/00HTt25O677+brr79m7ty5pKSkMGPGDOrr6ykpKWH9+vVcdtlldOrUKWqKpJGqqlRVVVFeXk4oFOLDDz9k3rx5JCUlcdttt5Gbm8uCBQvEqJMgCKc9ETwJQhP7eSG+Wk+Qt9YcZEt+Ldf1TWNweyf1xXsoXDQZW0051watLFCv4evdDnIOq3/z7bffsn//fq644gqeeuopFEUhLy+P+fPns2bNmsiIzqBBg3jllVdwOBysXbuW7du307JlS6ZNm0ZOTg4pKSncc889QDiJ+6uvvsLn85GWloYkSSQmJmI0Glm1ahWVlZWR/d52222Rxz0WSZKQZRm/38/atWtRVZXbbruNJ598kqKiIvbu3cuWLVua+iURBEE4LhE8CUIT0yCqSfCnm0r4cnsZl3RJwmE1snXPAfQrJ5PaoRV6yzlkeRpQV79Dg9Q6aj+NNWnS09MjIz8ZGRmR2xrzjLKzsyMJ2zU1Nfj9fpKSkiLTbNnZ2ZHt/X4/FRUVAGzatIkDBw4A0KpVK5KSkiIJ5ZIk0bZt2+MGTocLBALU1NQgSRKtWrUCID4+noyMDDZv3tzUL4kgCMJxieBJEJqYWa+QYDOgyBLegEpeRQNWo471+6tZt7+GRKmaYZ5qDJkdkW12gjUVpMZswpUdF7WfpKQkJEli9+7dVFdXo9Pp2LVrV+S2xgKCh0+LOZ1OTCYT+fn57Nu3j27durFp0yYaGhqAcJJ342qmW2+9NbKUe9euXej1epxO5//UwsJgMOByudA0jS1bthAIBCgoKGDPnj1i2k4QhNOeCJ4EoYn1y3FwblY8sWYdsiRxx6AsgqFD/So0dxm1X7VA0rVGM7fEU7UbqzOVhNjo+jf9+vWjY8eOfPnll9x5553odDoWL15MTk4OF1xwAUuXLgWipwmzs7Pp0aMHn3/+OXfeeSft27dn2bJlkfvp9XouuugiXn/9dd58800ADh48yCeffMJFF11Et27dovqE/TeNfcMMBgMDBw5k3rx5vPLKK5SWllJYWMju3bub+uUQBEH4r8SyFkFoYia9gt2qR5ElJAniLXqcMYbwj02PKymF1Av+RuEXL6OV/Yh79WskD/grOqszaj85OTk888wznHfeeXzxxRcsXryYnj178swzz9C2bVusVispKSlRNZbsdjvjxo1j8ODBHDhwgA0bNnDVVVfRrl27yIjTJZdcwoQJE9Dr9Tz33HN8/PHH9OzZk7vvvpvY2FgcDgfp6enYbLbjPk+9Xk9KSgppaWnodDqGDh3Kww8/jNPpZNmyZbhcLq644grS0tKwWCxN/bIIJ1hQ1ahyByiv81PjCaBp4A2EC8SW1/upqPfj8YdHR1UNahrC961yBwipRwbmPp8vquWKIJxKkibaRgvCSVdW7+eOt7cDMGdEB1y2X1fc0ldTyubXHiS11yAKv1tO51umYoxLPOp9q6qqKCoqQtM0UlJScDgcANTX11NdXY3NZiM+Pj5qm+rqasrKyoiNjSUuLo7KykoMBgMOhwNZllFVlZKSEoqLizGZTLRo0YKYmJjI47nd7sh93333XXJzc6Om3xRFYciQIbRo0QK/34/L5UKv1xMIBCguLiYQCJCUlEQgEIjs62gr9k6H10I4vqOd36Cq8fGGYhZvLsHrDxFv0XN9v3QafEHe/PogQVVDQqJdqo3bLshkT4mb+WvzqW4IYNIrDOmSyOXnpkS1aZk9ezZer5d7771XlLc4CvF7fnKJaTtBOAM0aEYW1HTBtMaP192F1pqRY1XHsdvtR63gbbPZjjk6FB8fHxVQpaamRt0uyzIpKSmkpKQc9/Gqq6t57733WLNmTSR5XNM0DAYDrVq1omvXrlHb6vV60tPTjzgWoXmp8wRZvLkEgyLRJdvOt3urWL69jLYpNqo9QXq0jAdg/YFqOqfH8UNeDTWeAL2z7SiyhKZBIKSiyAqaplFRUcHq1avxeDxceeWVJCQkUF9fT3x8PCZTeDrb7/dTWVmJ3W7H6/VGfg8LCwvR6/WkpqZG9U9saGigsLAQTdNITU09YW2JhOZJBE+CcAYwm8306NWbNeu3cV6v3idtVOa3iomJYebMmTQ0NERGnjRNiwRfwtkppGp4/SG6ZNsZ3juNvAoP3oBKSNXQyRIZCeFp2h9ya3D7gnj9IdIdFkYOyMRqVNA0IrXQAoEA06dPZ8mSJUB4IcN9993HjBkzuOWWW7jhhhsAWLRoETNmzGDevHnMnz+fzZs3Y7PZ2LBhA16vl8svv5zRo0cTGxvL7t27GT9+PFu2bEHTNM455xzGjx9PTk5OU5864TQlgidBOAMYDXouGdSbC/p2xWwyYjTof/tOTwJFUUR/MOFIUrgA7Pf7qsmr8HCgvIGOaTFISARDGhsOVAMQDGmRIEn6aZvGfzfS6/WMGjWKPXv24PV6mThxIi1atODdd99l0aJFDB8+HEVRWLx4MQkJCaSmplJVVcWCBQt44IEHmDt3LmvXrmXSpEm0adOGG2+8kUmTJlFUVMTs2bNRVZUxY8bwzDPPMHPmzCPaDAkCiIRxQTi1JJD49UvxJUnCZDRgj4vBZDSI5fy/gRR+EYRTTONQQCRFrtPQKRLdMuPolhmHTpGQJQlJhhpPgI251WzIrWZbQR2Bn1agSpJERkYGTqcTh8NBhw4diI+PZ9iwYWzZsoW8vDyKi4tZt24dw4YNw2Qyoaoq55xzDvfffz/nnnsud9xxBwMGDGDZsmXs3buX1atX069fPwwGAyaTiZ49e7Jy5cpIjTNB+Dkx8iQIp4oEITWcyKmhoYqlGqecLEF5fYCQCor46njKSD/99Mq2M7xXGs8s/hEAWQqPPH2ysRiAOLOetik2PAGVBesLmfHZXmRJom8bB60TraAcmgpu/AmFQsiyTP/+/bFaraxevZrY2FgkSWLgwIGR+2dkZERy/vR6PZmZmWzcuJHS0lLcbjeffPIJ33zzDUCkUXVjEVhB+DkRPAnCKSIhUesN8MyyA+gVGRE7nXoS4cTjWm8Qh+X0nPpsjqxGHTf1zyAl3ki8Rc+V3VOQZQmHTY/NpENVNSQp3OuxXUoMmU4LLZ1majxBzHqFc9JjMOqPjHYbAyeAlJQUBgwYwOLFizGbzfTu3TuyGEGSJPLy8qivr8dkMhEMBsnNzSUhIYHExERsNhu33347I0aMQFVV6uvr8Xq9JCUlNfWpE05TIngShFNEQyPWpOPvg7Nw2vRi5KkJNI48PbxgD5oIX08Zk17mwg6H6pL1yj60GrSV68hVbTEmHf1yEo65P0mSsNlsrFy5kpUrV9KnTx/MZjOXXXYZt9xyCwCzZs2KrPiUZZktW7Ywffp0rrrqKtauXcuqVasYP348rVq1ok+fPrzzzjuRptZz5sxBr9czZcoUkfMkHJUIngThVNHCU0UuW7j4pdA0JKTwlJ2Inc5oQ4cOZc2aNYwZM4ZZs2bRrVs3unbtSnp6Oj6fj169ekXuq2kaXbt2Ze/evdx66634fD6uv/56rrrqKgwGA2PGjGHcuHH87W9/i5QqGDNmjChXIByTCJ4E4VTSECMeTUwLvwjCGW7AgAEsWLCAurq6SBmMiooKPB4Pl19+eaQRNoTbAmVmZvLCCy9QWVmJTqejRYsWkTpP7dq1Y968eRQWFhIMBklJSRH1xoTjEsGTIAiCcMaRJAmn0xkJkhYvXsykSZPQ6XRcc801UffV6/UYDAZiYmJISDj6dKDVaqVNmzZN/bSEM4QIngRBEIQzXlxcHFdccQWDBw8+orjliBEj8Hg86HTiI084McRvkiAIgnDGO++88zjvvPOOeluXLl2a+vCEZkZUOhEE4bQXCATw+XzHvN3v94uaPIIgnDIieBKEJuYPqhRVewmGDmUx13qC5Fd6qPUcCghCqkZprY/8Sg8ef6ipD/uE8Pl8eL3e495HVVVefPFFHnvsMdxu9xG3ezwepkyZwsKFC5v66QiCcJYQ03aC0EQ0Deq8Qb7cXsaKneWMHpZDYqyR7QV1vL46j+qGAHEWPSP6ptM5PZbFm0tYvKmEkKqRnWhl5IBMnDFndg2aefPm4fV6uffeeyPFDo9GkqRj3h4MBvnyyy9RVZU//vGPTf2UBEE4C4jgSRCaSL03yEtfHmBTXg2yDKoGqqbxxdZSdIrMqAtb8u63BXy8oQhXrIEVOyvol5NAeoKZl5aFtxvc0RW1T1VVKS4upqKigvj4eFJSUqKSZKurqykqKsJgMJCWlobJZIrc1tDQELVUOy4uLuq2oqKiyG2xsbFAeLqsqqoKu90eKSZYXV2NpmnY7XZqamrQtHD16KKiIiwWC2lpaSiKQnl5OatXr8bj8XDllVeSkpJy1IKEsixz7bXX4vf7sVgsQHjEqqCgAE3TiImJQafTHTf4EgRBOJFE8CQITcRsUBjeOw1njIEVO8uB8GhUr2w7dquBnGQry7aVUVbnw6SXGTUoC4tRYWt+LVaTgivWGLW/QCDA3LlzmTNnDn6/H0mSuPHGG7n33nsxmUwsX76ciRMnUlhYSCgUol+/fjzxxBOkp6ezZ88exo8fzw8//EAwGKRly5aMGzeOPn36sHv3bsaPH8+mTZsAyMjIYOzYsfTt25edO3dy3333MW3aNLp27YqqqkyePJlQKMTTTz/NzJkz+f777zEajezatQu/38+oUaO4/fbbmT59OkuWLAFg5MiRkX0czdy5c9m3bx/PP/88dXV1jB8/nqVLl2KxWOjcuTPl5eWiWbJw2vB6vSiKEqkjJTQ/4quaIDQRnRLu5ZUUZ6Txc1+RJfq2dtDKZeHDdUVsK6hjYHsXDquB1klWiqp9fLCuCAkJs0GJ2l9hYSFfffUVN9xwA//+97+5+uqrmT17Ntu3b6ewsJDRo0djt9uZO3cuTzzxBN9++y2vv/46Xq+XCRMmsGvXLqZMmcLMmTNRVZWpU6dSXl7OxIkT2bt3L9OmTWPOnDkoisJjjz1GZWUlgUCAgoKCqGTuiooKysvL0TSNqqoqVqxYwYABA3j99de56KKLmDlzJgUFBfz1r39l8ODB9OvXjxkzZhyxvPxwlZWVlJaWoqoqr732GgsXLuShhx7ipZdewmazsXXrVhE8neaCqkaVO0B5nZ8aTwBNA29ApaLeT3m9n4p6fySXT9WgpiF83yp3gNBp3MtI0zQ8Hg+BQACAuro6HnroIV577bWmPjThJBIjT4LQxDQt+oOh1hPkrTUH2ZJfy/BeKXRN0ZNbWE6tJ0icQWFEdwcvLz/A5+tzaXVJO5SfpqvS0tJ49tlncbvd1NbWkp2djaZpFBcXU1BQQFlZGS+99BJdunShb9++5OTkoGka+fn5rFmzhtGjRzNkyBAAsrOzOXDgAGVlZaxZs4ZHH32Uiy66CICHH36Ym266ia1btxITE4Msy1GBy+GXNU2je/fu3HzzzdhsNm6++WY+/fRTioqKuOCCC3A6nTQ0NNCxY8dflPNUX1/P0qVLGTp0KCNHjgTA5XLx+eefH3EehdNHUNX4eEMxizeX4PWHiLfoub5fOg2+IG9+fZCgqiEh0S7Vxm0XZLKnxM38tflUNwQw6RWGdEnk8nNTUOTTL0BuaGjgySefpH///gwdOhTgiL8JofkRwZMgNDENopoEf7qphC+3l3Fp12QMmp+7x70CaghkGYMiI0lQXuvls60Ghve5G5cjnJtUVlbGuHHj+PbbbyN5QA0NDZHbrFYrycnJkcc599xzAdiwYQOappGVlRW5rWXLlrRs2TJyW0ZGRuS29PR0dDod5eXlxMTE/Nfn53A4ItMXFosFRVEiZQU0TUPTNEKh0H/NWZIkCZ/PR3V1ddSx2u12UlNTRfB0GqvzBFm8uQSDItEl2863e6tYvr2Mtik2qj1BerSMB2D9gWo6p8fxQ14NNZ4AvbPtKLKEpkEgpKLI0aOt1dXVFBcXYzAYSE1NjeTwNebaGQwGCgsL0ev1pKamRk2jNeb4Nfaya+xj19DQQENDAyaTicLCQuLj40lMTKSuro7CwkJUVSU1NZW4uDhUVSUvL4+lS5diMpno06cP8fHx/N///R9msznyWIFAgKKiIurr63G5XLhc4VzFYDBIZWUlNpuNyspK6urqIvsWTm8ieBKEJmbWKyTYDCiyhDegklfRgNWoY92+albV11Lj9vLP+69EpygEgkF0sowmSbzw1nLUw6KuRYsW8fHHH/P8888zcOBAdu/ezY033oiqqiQmJuJ2uykqKiIpKQmArVu3EgqFiIuLQ5Ik9u/fz6BBgwDIy8sjPz8fu92OJEnk5eVFHufgwYMEg0GcTieKohAKhfB4PMChD4PGhPJf4pcETkDkwzA+Pp7c3NzI9Y1J8OKb/ukrpGp4/SG6ZNsZ3juNvAoP3oBKSNXQyRIZCeGFAD/k1uD2BfH6Q6Q7LIwckInVqKBp8POXd9myZUyaNIni4mIkSaJ37948/vjjZGRk8Pzzz7N161ZsNhsbNmzA6/Vy+eWXM3r0aGJjYyN5fFu2bEHTNM455xzGjx9PTk4OX3zxBdOmTSMxMZFdu3bx4IMPcv755/PQQw+xY8cOQqEQLVu2ZNKkSWRmZjJ69Gh27NhBSUkJu3fv5p///CePPfYYPXr04O6776aqqoqnn36aTz/9FFVViYmJ4a677uK6664jLy+P22+/nZycHLZv305JSQmtW7fmmWeeoX379k39sgnHIXKeBKGJ9ctxMPbytjiseow6mTsGZfHMdefwjz+158FLW5MQY0KSFMZOeYe/jnmFGfM+w2gwkZrkQqcoR+wvFApRXFzMW2+9RWVlZWTqLDExkQkTJvDNN9/wn//8h+uvv56PP/6YtLQ0+vfvz6xZs1iyZAlfffUVd955J9OmTcPpdNK3b19mz57NF198wdq1a3n66afJysqiY8eOOJ1OdDodb7/9Nps2beLNN99k1apVUdN2h48IaZqGqqqR62w2Gxs3bmTlypWRAOxoGreLiYlh8ODBLFy4kH/9619s2LCBadOmsX///qZ+GYXjkcL5fN/vq+aZT3/kQHkDsgQSEsGQxoYD1Ww4UE0wpEWCJOmnbRr/fbi8vDzGjBmDy+Vi3rx5TJgwge+//56pU6cSCoWoqalhwYIFJCUlMXfuXP72t7/xxhtv8P777xMIBJg0aRJFRUXMnj2bWbNmkZ+fzzPPPIOqqjQ0NLBhwwYcDgcvvPACF110EUuXLkVRFF544QVmzZpFWVkZc+bMwWq18thjj9G2bVtuuOEGJk2ahM1mo7CwkJqaGgD+9a9/8e6773L//ffz+uuv07dvX5544gk2btyIqqps376d/Px8Jk2axPTp0/nxxx956623mvoVE/4LMfIkCE3MpFcw6Q8FQfGWQ1MLAY8BWZJo8KsUldZgMhm55ooLsMbEkORKQDkseBoyZAgrVqxg3Lhx2O12unXrRteuXTEajaSkpDBx4kQmTJjAbbfdhqqq9OrVi5tuugmTycSYMWN44oknePDBB1FVlfT09MiH05gxYxg/fjz3338/EJ62mzBhAgkJCYRCIe655x6ee+451q5dS05ODueffz52ux0IT6kdHhTp9XpSUlIi0ytDhw5lzZo1jBkzhhdffPGYbTTsdjsulwtZlrnllls4cOAAkyZNwmq10q1bNy6++OJfNIUoNB2NQwGRFLlOQ6dIdMsMT1PlV3qQJQlJhmp3gI251Rj1MkadQk6yDb0S3nL9+vWUl5czd+5cOnXqBMC+ffuYN28e5eXhlavnnHMO999/P06nk06dOvH111+zbNkyzjvvPFavXs21114bKY3Rs2dPPv3008i2KSkpPPTQQ2RnZwNw7bXXctFFF0XyCVu2bEleXh7BYJA2bdpgs9lIS0sjMzOTuro6JEmKTDN/9tlnXHrppdxyyy2RfS9fvpwVK1bwhz/8AavVys0330y/fv0AWLBgAfv27cPv9x+1dIdwehDBkyCcxjQt/KET0nS0bZPBNVcM5JOl32MwWnAlJKDTHQqe0tLSmD17NgUFBRgMBpKTk6mvr8dmswEwaNAgunXrRlFREXq9nrS0tEheRuvWrZkzZw6FhYUEAgFSUlKIj48HoG3btsydOzdS4iA5OTmSk6EoCn/+85+59NJLaWhoIDk5GUmSUFUVWZa55557CIVCkQ+BzMxM3nnnnci+BwwYwIIFC3C73eTn5/Pkk0+iqmpk5EpVVTp37swdd9wBgMFgwOVyMXXqVAoKCoDwh5HX6xXLwk9j0k8/vbLtDO+VxjOLfwRAlsIjT59sLAYgzqynbYoNT0BlwfpCZny2F1mS6NvGQetEK/wUPDXm8CUmJkYeIzMzE6/XS0NDQyRPr/F3X6/Xk5mZycaNGyktLcXtdvPJJ5/wzTffAOG6YVlZWYRC4dV+Vqs1kgOlaRqfffYZzz77LF6vF4fDwb59++jQoQNAZCT15zl3jcFTVVUVmZmZkettNhsul4uysjJUVcVgMOBwOCK3W61WqqqqUFW1qV824ThE8CQIpzl/IEQgJHHnbX/CHmdjmNHM3LeWcOGA3sg/m8+w2Wy0bds2cvnwpFWA+Pj4SODycxaLhdatW//q2xRFiUooP9zPE191Ol0k5wrCHzBOpxOn0xn5MDn8Q6Pxcnx8fNQom8lkiowKNB6fcPqyGnXc1D+DlHgj8RY9V3ZPQZYlHDY9NpMOVQ0XUs10mmmXEkOm00JLp5kaTxCzXuGc9BiM+kNZJi6XC7fbTWlpaeT3KTc3F5PJhMViieTp1dfXYzKZCAaD5ObmkpCQQGJiIjabjdtvv50RI0agqir19fV4vV6SkpIiQVDj/6uqqpgyZQotW7bkySefJCEhgdGjR5Ofnx85nsZFD4fTNA2j0Yjdbo/K0auvr6esrAyn0ykKu57BRPAkCKcxnU7BaNDz1odfkJrkItnlxOV0cOGA3mzdsRvPRV2xmJvH0H6PHj3o0aNHUx+GcBKY9DIXdnBGLvfKtkf+3cplPeL+MSYd/XISjrm/7t2743Q6mTRpEvfffz/FxcW89tprDBo0CKfTiSRJbNmyhenTp3PVVVexdu1aVq1axfjx42nVqhV9+vThnXfeoVOnTpjNZubMmYNer2f69OkARx31UVUVn8/HihUrWL58OW3btkXTNHQ6HQaDgRUrVnDRRReRkpISGYkyGo1cfPHFPP/88/To0YMuXbrw5ptvUl9fz8CBAyNfDn6eFyhWjp7+RPAkCKcxR3wMM564E03VUBQFRVHQ6RRkScJzUVfi42xNfYiCcMplZGQwceJEJk6cGKn31bt3bx544AEURUFVVbp27crevXu59dZb8fl8XH/99Vx11VUYDAbGjBnDuHHj+Nvf/hYpVTBmzBiMRiMWi4WUlJTISKfdbue+++7j6aefZsSIEWRnZ9OrVy9MJhOSJGGz2bj++uuZPn06Y8eOZfr06SQnJ0dWnN58880UFxczdepUNE3DZrPxxBNP0K1bN/bv309qamrUCLHdbsfr9YrVo6c5SRMhriCcdGX1fu54ezsAc0Z0wGVrHqNFZyLxWpxcp/L8VlVVUVJSckSdpwceeICCggJmzZpFZWUlOp2OFi1aROXFud3uqF6OjdPZDQ0N1NfXk5BwaEGGqqoUFRVRU1NDUlISRqMRn8+Hw+FAkiSCwSClpaWEQiFSUlKorq7GaDRGFjEcr85TYx9KozHcbqmmpoZQKBQpE3ImvA5nIzHyJAiCIJyR7HZ7ZGXn4fR6PQaDgZiYGBISjj79Z7VaadOmzRHXWyyWI3LoZFkmLS2NtLS0yHWNyegQzuVLTU2NXHY6nVHb6/X6o+YF/jwHEBAFMs8QIngSBEEQmpURI0bg8XjQ6cRHnHByiN8sQRAEoVk5Vr0wQThRxDpJQWgmNE3D5/MdsWT6RAgGg/j9/qZ+ioIgCKcFETwJQhMKqhpV7gDldX5qPAE0DbwBlYp6P+X1firq/Xj84WBI1aCmIXzfKneAkBq91qOyspLRo0ezYcOGE36cH374IdOmTcPr9f7ibXw+36+6vyAIwplCTNsJQhMJqhofbyhm8eYSvP4Q8RY91/dLp8EX5M2vDxJUNSQk2qXauO2CTPaUuJm/Np/qhgAmvcKQLolcfm5KpP+Xx+Nh0aJFnH/++fTs2fOEHuvmzZv57rvvuOuuu37xNvPmzcPr9XLvvfeKYoCCIDQrIngShCZS5wmyeHMJBkWiS7adb/dWsXx7GW1TbFR7gvRoGQ/A+gPVdE6P44e8Gmo8AXpn21FkCU2DQEhFkQ9V3m5cWl1RUUFpaSkulytq5Y/P56OwsBC3201iYiIulyuy1LqyshKbzUZlZSV1dXWkpqZGVv7IshxV4bu2tpa6ujoSExOPaIuiaRoVFRWsXr0aj8fDlVdeSUpKCgaDAU3TKC0tpaKigri4OJKTk6P2KwiCcCYQwZMgNJGQquH1h+iSbWd47zTyKjx4AyohVUMnS2QkhJdL/5Bbg9sXxOsPke6wMHJAJlajgqYd2W0eYOHChcyaNYvCwkLi4+MZO3Ysl1xyCVVVVTz11FN89tlnqKqKzWbjkUce4corryQvL4/bb7+dnJwctm/fTklJCa1bt+aZZ56hffv2kX0risKBAwd48MEHSUpKYuLEiUe0ewkEAkyfPp0lS5YAMHLkSKZNm0anTp2YN28eL7/8Mh6PB0VRuOqqq7jvvvuiln0LgiCc7sRYuiA0lZ86zH+/r5pnPv2RA+UNyBJIhJulbjhQzYYD1QRDWiRIauxK3/jvqN1JEvX19axfv56//vWvvPLKK6SkpPD4449TWFjI5s2b2bNnD48//jhvvPEGrVq1YsqUKVRXVxMMBtm+fTv5+flMmjSJ6dOn8+OPP/LWW29F9i/LMvv27eO+++7D7/fz97///ah98vR6PaNGjWLw4MH069ePGTNm0L59e1atWsXEiRMZMmQIb7zxBqNGjeLll1/m/fffb+pXQjhF/EGVomovwdChfL1aT5D8Sg+1nmDkupCqUVrrI7/SE8n5O9NomobH4yEQCDT1oQgngRh5EoQmpHEoIJIi12noFIlumeEps/xKD7IkIclQ7Q6wMbcao17GqFPISbah/6nTvKaFW7jceOON/PGPfwRgzJgxXHXVVWzYsIGLL76Yli1b4vV6qa2tpU2bNqxbt46GhgYkScJqtXLzzTfTr18/ABYsWMC+ffvQNA1ZlsnPz+eee+7BYDDw4osvRnWKP5wkSWRkZOB0OmloaKBjx47IsszSpUtp0aIF9913H3a7nXPOOYevv/6azz77jOuuuy5SYVlofjQN6rxBvtxexoqd5YwelkNirJHtBXW8vjqP6oYAcRY9I/qm0zk9lsWbS1i8qYSQqpGdaGXkgEycMWdWheyGhgaefPJJ+vfvz9ChQ5v6cIQTTARPgtBEpJ9+emXbGd4rjWcW/wiALIVHnj7ZWAxAnFlP2xQbnoDKgvWFzPhsL7Ik0beNg9aJVlAODUEZjUaysrIil1NSUjCZTFRUVLBt2zbGjh3LwYMHsdvtkREnCAdeBoMBh8MR2dZqtVJVVYWqqsiyzLZt2zAajQwbNizqfkfT2NxU0zRUVUWSJMrKykhLS8NqDTeC1el0ZGZm8u233+L3+0Xw1IzVe4O89OUBNuXVIMvhlaOqpvHF1lJ0isyoC1vy7rcFfLyhCFesgRU7K+iXk0B6gpmXloW3G9zRFbVPVVUpLi6OtDdJSUlBp9NF8vesVivl5eWoqkpaWhqKokTy/dLS0iKtUyAc6BQVFUVatTT2pXO73TQ0NJCQkIAsy6iqSkVFRaQKeUVFBSaTCY/HQ1lZGQkJCSQlJaFpGnl5eSxduhSTyUSfPn2w2+0iv68ZEcGTIDQRq1HHTf0zSIk3Em/Rc2X3FGRZwmHTYzPpUFUNSZLIdJpplxJDptNCS6eZGk8Qs17hnPQYjPromXefz8eBAwcil4uKivB6vcTFxTF37lwOHjzIrFmzaNeuHfPnz2fq1Km/6FhVVaV79+7ccccdTJgwgWeffZbRo0f/1wrOoVAISZKQJAmXy8X27dtpaGjAYDAQCoXIy8vD5XJhMJxZowrCr2M2KAzvnYYzxsCKneVAeDSqV7Ydu9VATrKVZdvKKKvzYdLLjBqUhcWosDW/FqtJwRUbHVgHAgHmzp3LnDlz8Pv9SJLEjTfeyP33309BQQG33XYbrVu3ZsuWLVRVVXHVVVcRGxvLRx99RHFxMX369GHatGkkJyeze/duxo8fz6ZNm4Bw0+GxY8fSt29fPvroI9577z3mzZuHw+GgpqaGUaNG8cc//pE//elP3H///ciyTFlZGbm5uVgsFp588kl69erF6NGj2bFjByUlJezatYsXXnjhv37pEM4cIudJEJqISS9zYQcn7VNj0CkSvbLt9GgZTyuXlYs7JTKkSxKXdE6kfWoMkgQxJh39chK4tEsSgzo4ccVEf6A0rpp78803+eijj/juu++YPHkyTqeTrl27oqoqqqpG8ps++uijqDpMqqpyeJ/wxpGjxtscDgfDhw/ngQceYM6cObzzzjvHfG6N3eY3btzIypUr8fv9DB48mPz8fGbMmMGmTZuYM2cOK1eu5OKLLxajTs2cTgl/CUiKM0Zy9RRZom9rB61cFj5cV8S2gjouaOfEYTXQOslKYZWX/3xfCIT/Vg5XWFjIV199xQ033MC///1vrr766v9v787Do6rvxY+/z5yZyWyBTDJZJmNIICHBRpF9F1kUxYpe69LbslgqSu2iIvWnAcKiJlCQRUEoPJTignKv9RGxaOsFBap4FeVChbBVhJBlsi9kmSQz5/z+SHNgAK1pkQD9vJ6H5+HMzDlnzswk88nn+/l+vqxatYoDBw4QCoXIy8ujvLycxYsXM378eJ577jk++ugjFi5cyPTp09m6dSvbt28nGAySk5PDl19+yZIlS1izZg2qqjJr1iyqqqqoq6vD7/ejaRpwOtt16tQpdF2noKCA3bt3M3XqVH7/+98TExPDc889h8lkIjs7m4yMDCZMmMD8+fONbJa4MkjmSYgrhMlkIiMjg8zMTJYvX47f7ycqKoqnnnqKlJQUfvKTn3Dw4EGmTp1KQkIC6enptLS0oKoqFouFxMRE7Ha7cTy3200gEEBRFDp37ozH40FVVe6//36++uor1q1bx6BBg0hNTT3v87ntttvYtWsXM2bMYOXKlQwfPpysrCyjSNxkMjFlyhTuvvvujn7pxEVyZnAOrcXiG3ad5IuCWn40yMfozFjqm0IUVjXSPd7Jr2/tzqItR/nwcAXpCadnZPp8PpYtW0Z9fT21tbWkpqai6zqFhYX06NEDl8vFpEmTGDJkCElJSbzyyivcfvvtDBs2jKuvvpr169dTUlJCcXExH3/8MTNnzmTMmDEAPPHEE0yaNIkDBw5gMplQzpqZcea2ruuMGzeOO+64A4C77rqLF154gebmZtLS0nC5XPh8vrChdHFlkOBJiCtEXFwcr776Kp06daKmpobKysqwPk8DBgzgD3/4AyUlJURFReF2u6mtrcXj8aDrOhs3bgybPffII48QCoWMIKe5uRmbzYaiKDz99NMUFBTwxz/+kerqauMLRdd1bDYb9957LzfccANvvfUWp06dwuv1oqoqDzzwALfffrvR56ntdvHvQae13qnNO/tKeD+vjFuui8fttHLEX4fDqrJi61eMuSaWFI+DlqCG2RyeeSorK2POnDl88sknREZGYjabaWhoMO63WCxGTZPZbMZut+NwtLb+MJlMRt1dVVUVuq7TpUsXY9+kpCTMZjNlZWXnBE5nU1WVmJgYY7vtuG21fmdmb8WVRYInIa4QqqoSFxcHgM1mIz4+/pzHxMTEhP2yPzPTdPbj2xpkAucMOdjtdpKSkrDb7VRUVIQFT2cO/3k8nrAmnYqikJCQQEJCQke/XKID2C0qMS4rqkkh0KKRX9GAM8LM519V89mxaq6KtvPQqBQGdnPzzt4SdKCLx8HIqz1hx9myZQubN29m+fLljBgxgiNHjjBx4sR2BSq6ruN2u1EUhfz8fOP2kydPEgwG8Xg8VFdXEwgEjPUim5qaqKmp+dqg6uzz67r+naw1KTqeBE9CiH+KzWbjwQcf7OinIS4jQ9Oj6ZMSRSe7GZOi8ODIlLCeT6pJIcph4YcDfYy42kNjS4j4ThFE2s7/VRUKhfD7/WzYsIHKykrj9rPr9863rWkaXq+XQYMGsWrVKhITE3G5XCxcuJCUlBQyMzNpamqitLSUjRs3MmLECF5//XXy8/PD/lg4X8Ck6zpmsxmr1cqOHTu46aab6NGjh2RZryBSMC6EEOKisFlU3E5La18zBaIcFjyRVuOf22lBUVoLzH1uG2lxzvMGTmPHjuWmm25izpw5PPDAA+i6Tq9evbDb7ZjN5rD6PVVV8Xq9xpCayWQiPj7eGO6bOXMm3bp1Y9q0aTzwwAO0tLSQk5NDdHQ0AwcO5J577mHFihX89Kc/paCggMGDB+N0OlEUhfj4+LCsrNPpxOv1YjKZiIyMZPz48Rw9epTs7Gxqamo6+uUXF5Ciy4CsEN+5srpmHnw1D4A1P/4esS6Zmt9R5L34bl2s17euro7CwkKsVisJCQnU1dUZAVFb76eIiAhCoRAVFRW4XC4cDofRq8lutxvLAjU0NFBUVEQoFCIhISFsyDoQCHDy5EkURcHr9RIIBLDZbEafp4iICKO+qqGhgbq6OmJiYlBVlWAwSGlpKaFQiMTExIuaeZLP+XdLhu2EEEJcdlwuFxkZGcb219XvnVkLCK2Zp9jY8IabDoeDtLS0857HZrPRvXt3Y7stgwWE1fO1HaetMB0wsmDiyiPDdkIIIYQQ7SDBkxBCCCFEO0jwJIRFQkqZAAAxj0lEQVQQQgjRDhI8CdHBmoMaxdWBsCnbtY1BCiobqW0MGreFNJ3S2iYKKhtpbL4yesc0NTWFLRHzdTRNo6GhQXrmCCEuCVIwLkQH0XU4FQjyfl4ZOw6VkzUunbhOEeQVnuKlD/Opbmihs8PCjwcn0TOpE+/+tYR395UQ0nRS45xMHp6MJ/LynkGzbt06AoEAjzzyCCbT1/8tl5+fz4IFC3j00Ufp0aNHRz9tIcS/Ock8CdFB6gJBVr9/nD98WkRFXTOaDpqu8z/7SzGrJqaO6opJUdi8p5jimgA7DlUwND2G8UOT2Jdfy778c/vGaJpGUVERX3zxhdEp+UzV1dUcPHiQL7/88pyMT0NDA3/72984dOjQOT1pGhoa+PLLLzl8+DC1tbXG7c3NzZSUlNDc3Bx2jqqqKgBqamqorq6mpqaGQ4cOkZ+fb2SPysvL+fDDD/nLX/7CyZMnw45xppaWFg4fPsyf//xn8vLyqK6uDjvXoUOHOHbs2LfKYAkhxIUgmSchOojdqnLvQB+eSCs7DpUDrdmoAalu3E4r6QlOth0oo+xUEzaLiakjU3BEqOwvqMVpU4ntFBF2vJaWFtauXcuaNWtobm5GURQmTpzII488gs1m44MPPiA3N9foZzN06FDmzp1LUlISR48eZd68eezdu5dgMEjXrl2ZM2cOgwYN4siRI8ybN499+/YB0KVLF7Kzsxk8eDCHDh3i0UcfZcmSJfTq1QtN01iwYAGhUIiFCxeyYsUKdu/eTUREBIcPH6a5uZmpU6cyZcoUli5dyp/+9CcAJk+ebBzjbHv37mX27NkUFxfz5JNPMn78eGbOnMnOnTvJzc3F7/ejKAoDBw4kOzub5OTkjn5rxXdM13Wam5sxm83t7p30r+wrRBvJPAnRQcyqQrLHTnznCNqWylJNCoPToukW6+DNz4o5UHiKG3p4iHZaSYt3UlQV4I3dRQDYLOE/vkVFRWzfvp0JEybw2muvcc8997Bq1Sry8vIoKioiKysLt9vN2rVrmTt3Lp988gkvvfQSgUCAnJwcDh8+zKJFi1ixYgWaprF48WLKy8vJzc3lyy+/ZMmSJaxZswZVVZk1axaVlZW0tLRQWFhIU1OT8TwqKiooLy9H13WqqqrYsWMHw4cP56WXXmLMmDGsWLGCwsJCfv7znzN69GiGDh3Kc889R3p6+nlfp2uuuYYnn3wSr9dLdnY2P/vZzygsLCQrK4vY2FjWrVtHTk4Ou3fvZsmSJbS0tHT0Wyu+xoWq76usrCQrK4s9e/a0+zn8K/sK0UYyT0J0sLOb/Nc2Btmw6yRfFNTyo0E+RmfGUt8UorCqke7xTn59a3cWbTnKh4crSE9wGfv5fD6WLVtGfX09tbW1pKamous6fr+fwsJCysrKWL16Nddddx2DBw8mPT0dXdcpKChg165dZGVlMXbsWABSU1M5fvw4ZWVl7Nq1i5kzZzJmzBgAnnjiCSZNmsT+/fuJjIzEZDKFLZR65rau6/Tt25f77rsPl8vFfffdxzvvvENxcTE33HADHo+HhoYGMjMzv7bmyW63061bN6NZYXx8PG+++Sbl5eWsXbuWa6+9FoBjx46xbt06KioqZOHhS8yFru9rbGxky5YtXH/99fTv379dz+Vf2VeINhI8CdHBdEA7I356Z18J7+eVcct18bidVo7463BYVVZs/Yox18SS4nHQEtQwm8ODjbKyMubMmcMnn3xiLFPR0NBg3Od0OsOCij59+gCwZ88edF0nJSXFuK9r16507drVuK9Lly7GfUlJSZjNZsrLy41lKb5JdHQ0FosFaO3A3LZsBZxeRDUUCn1jwXhbgKlpWtj1nNk5Ojk5mUAgYFyzuHS01ffty6/BZOK89X3//Ukhm/cUE9vJatT3JcXYWb2tdb/RmeFdwduG3CoqKigtLSU2Njas43dTUxNFRUXU19cTFxdHbGysEdSrqmr8X9M0/H6/saSL1+vFbDajaRqVlZXYbDYaGxspKysjJiYmrHu5ruuUlpZSXl5Op06dzlmCpaqqCr/fj8PhIDEx0fg5EJc/CZ6E6GB2i0qMy4pqUgi0aORXNOCMMPP5V9V8dqyaq6LtPDQqhYHd3LyztwQd6OJxMPLq8KUhtmzZwubNm1m+fDkjRozgyJEjTJw4EU3TiIuLo76+nuLiYuOX//79+wmFQnTu3BlFUfjqq68YOXIk0Dq7raCgALfbjaIo5OfnG+dpK0T3eDyoqkooFKKxsRGAYDBIZWVl2GKp/8g/Cpza6LpuBE+xsbHU19dTWlpqXM+JEyeMNcfEpeVC1/e1efvtt1m5ciVFRUVERUWRnZ3NLbfcQlVVFc888wx//vOf0TQNl8vFk08+yQ9+8IOw/XVdZ/Xq1efUCT766KM0Nzczbdo0TCYTZWVlnDhxAofDwVNPPcXYsWMJBoO8+OKLrF69mvr6ehRF4T//8z+ZNm0aTqeT999/n9zcXEpLS4HWxYyzsrKIiorq6LdDXAASPAnRwYamR9MnJYpOdjMmReHBkSlhNSGqSSHKYeGHA32MuNpDY0uI+E4R511tHlqDEb/fz4YNG6isrETXdfr160dcXBw5OTlMnz6dwsJCnnrqKe6++24ef/xxhg0bxsqVK0lMTMRms7Fo0SLsdjurVq1i8ODBrFq1isTERFwuFwsXLiQlJYXMzEyampowm828+uqrREVF8fnnn/OXv/yF2267DTidWWrTFgC13eZyudi5cyc7d+5k0KBBYeuTncnhcBjDLd26daNPnz54PB7mz5/PtGnT8Pv9rF+/npEjRxITE9PRb6k4yzfV9zUHNaO+754BiUQ7rUQ7rXz2VfXX1vcpikJdXR2ff/45c+fOxev18uyzzzJ79mx69uzJ0aNHOXr0KLNnzyY1NZVFixaxaNEiRo0aZWScFEWhsLDQqBO86aabePPNN1m1ahU33XQT3bt3p6CggJKSEubPn4/X62X27Nk8//zz3HDDDezevZunn36aCRMmcMcdd7B9+3bWrFlDr1696NOnD7NmzSIzM5OlS5dy8OBBsrOzSUlJ4aGHHurot0NcABI8CdHBbBYVm+V0qj/Kcf7UvllV8LltX3ucsWPHsmPHDubMmYPb7aZ379706tWLiIgIvF4vubm55OTkcP/996NpGgMGDGDSpEnYbDZmzJjB3LlzmT59OpqmkZSUxIwZM4iNjWXGjBnMmzePadOmAa3Ddjk5OcTExBAKhXj44Yd5/vnn+fjjj0lPT+f666/H7XYD4Ha7jawUgMViwev1YrO1Xsdtt93Grl27mDFjBr/97W+57rrrznttPp+Pe++9lzfeeAOz2cycOXPIzc0lNzeXyZMnAzBw4EAee+wxGRq5hF2o+j5d11FVlYkTJ3LnnXcCMGPGDO6++2727NnDzTffTNeuXQkEAtTW1tK9e3c+++wzGhoawurxvq5OsLCw0KgJHDduHHfccQcAd911Fy+88AL19fVs3boVn8/HY489RnR0NL169aJ///506dKF3bt3c/LkSX7xi18QCAS46qqr6NatG++//z6TJ082Pv/i8iXBkxBXCJ/Px6pVqygsLMRqtZKQkEBdXR0uV+uXzsiRI+nduzfFxcVYLBZ8Pp+R6UlLS2PNmjUUFRXR0tKC1+s1hhcyMjJYu3at0eIgISGBzp07A621Iw888AC33norDQ0NJCQkoCgKmqZhMpl4+OGHCYVCWK2txb7Jycn813/9l3Hs4cOH89Zbb1FfX09BQQFPP/00mqaF1aNce+21/Md//AfPPPMMv/zlL7Hb7ZjNZkaPHk2fPn0oKSnBarUaWTNx6bpQ9X0AERERYXV6bUF5RUUFBw4cIDs7m5MnT+J2u6murj6n55miKN9YJwitn+8zM5lOpxNFUWhubqa8vJykpCTj58tisTBixAgA3n//fWpra1m9ejUREa1DjnV1dXTt2lW65F8hJHgS4gricrnIyMgwts8eBouKivramguHw0FaWlq771NVNayg/ExtQVYbs9kcVnCrKAoejwePx0NZWRmaphl1TYAxxKfrOhEREef0cHK73UaWS1z6LlR9H7QWhB8/ftzYLi4uJhAI0LlzZ9auXcvJkydZuXIlPXr0YOPGjSxevBhd18OKxr+uTvDsDFmbttstFgtxcXHs27ePuro6oqOjCQaDfPrpp/h8PjweD9HR0TzzzDNcc801aJpGdXU1ZrP5a4emxeVFgichxCWhX79+9OvXr6OfhvgOXaj6PkVRCAaDvPLKK6SlpZGYmMizzz6Lx+OhV69evPfee2iaRjAYJC8vj02bNhEIBMIymmcGSGfXCbY5u2avbV+AG2+8kZdeeonFixdz1113sXPnTlatWsWiRYvo378/cXFx/P73v+fRRx+lpKSE559/nptvvplf/epXHf02iAtAgichhBAXxYWq7zOZTGRkZJCZmcny5cvx+/1ERUXx1FNPkZKSwk9+8hMOHjzI1KlTSUhIID09nZaWFqMHWWJiIhEREYwdO5b333//nDpBu92OyWQiPj4+bOao0+nE6/WiKApDhgxh1qxZ/Pa3v2XTpk0oisKPfvQjRo4cSWRkJM888wzz589nwoQJ6LpO7969jT5q4vKn6F+XnxRCXDBldc08+GoeAGt+/D1iXZf3gr6XM3kvvlsX4/UNhUJUVFTQqVMnampqqKysPKfPU0VFBSUlJURFReF2u6mtrTXub+vLZLfbqaurO2+dYFv9VEREhNHPrKGhgbq6OmJiYlBV1ejzVFZWZvR5MptP5yQqKyvx+/1YLBauuuqqizpkJ5/z75ZknoQQQlxWVFU1GqTabLawOro2MTExYcXeZwYuZz7+m+oEzwzGoLX278w+YoqiEB8ff97zQ2uD2Ojo6I5+ucR3QNa2E0IIIYRoBwmehBBCCCHaQYInIYQQQoh2kOBJiA7WHNQorg6ETdmubQxSUNlIbePpxn4hTae0tomCykYamy/PRnu6rtPY2EhLS0tHPxUhhPinScG4EB1E1+FUIMj7eWXsOFRO1rh04jpFkFd4ipc+zKe6oYXODgs/HpxEz6ROvPvXEt7dV0JI00mNczJ5eDKeyMtrBk1DQwNPP/00w4YNM9a/E0KIy40ET0J0kLpAkNXvH2dffg0mU+uyFZqu8z/7SzGrJqaO6sp/f1LI5j3FxHaysuNQBUPTY0iKsbN6W+t+ozNjw46paRp+v5+KigqioqLwer2YzWaCwSCVlZU4nU7Ky8vRNA2fz4eqqhQVFVFfX4/P5zOmZENroFNcXEwwGMTr9Rr9burr62loaCAmJgaTyYSmaVRUVBgzkSoqKrDZbDQ2NlJWVkZMTAzx8fHouk5+fj5bt27FZrMxaNAg3G43qqq263UTQoiOJsGTEB3EblW5d6APT6SVHYfKgdZs1IBUN26nlfQEJ9sOlFF2qgmbxcTUkSk4IlT2F9TitKnEdooIO15LSwtr165lzZo1NDc3oygKEydOZNq0aRQWFnL//feTlpbGF198QVVVFXfffTedOnVi06ZN+P1+Bg0axJIlS0hISODIkSPMmzePffv2AdClSxeys7MZPHgwmzZt4vXXX2fdunVER0dTU1PD1KlTufPOO7nrrruYNm0aJpOJsrIyTpw4gcPh4Omnn2bAgAFkZWVx8OBBSkpKOHz4MC+88IJM5Rbtpus6zc3NmM3mSyr4bm5uxmQyhfV6+rY0TaOlpQWr1Wp0QheXLql5EqKDmFWFZI+d+M4RtP2uVE0Kg9Oi6Rbr4M3PijlQeIobeniIdlpJi3dSVBXgjd1FANgs4T++RUVFbN++nQkTJvDaa69xzz33sGrVKg4cOEAoFCIvL4/y8nIWL17M+PHjee655/joo49YuHAh06dPZ+vWrWzfvp1gMEhOTg5ffvklS5YsYc2aNaiqyqxZs6iqqqKurg6/328sU9GW7Tp16hS6rlNQUMDu3buZOnUqv//974mJieG5557DZDKRnZ1NRkYGEyZMYP78+WHdm8WVLajpVNW3UH6qmZrGFnQdAi0aFXXNlNc1U1HXbNTyaTrUNLQ+tqq+hZAW3su5srKSrKws9uzZ09GXZWhqamLp0qW88cYb/9T+e/fuJSsrK2x5GHHpksyTEB3s7Cb/tY1BNuw6yRcFtfxokI/RmbHUN4UorGqke7yTX9/anUVbjvLh4QrSE1zGfj6fj2XLllFfX09tbS2pqanouk5hYSE9evTA5XIxadIkhgwZQlJSEq+88gq33347w4YN4+qrr2b9+vWUlJRQXFzMxx9/zMyZMxkzZgwATzzxBJMmTeLAgQPGEhdnOnNb13XGjRvHHXfcAcBdd93FCy+8QHNzM2lpabhcLnw+HykpKR390ouLJKjpbN7j592/lhBoDhHlsDB+aBINTUFe+egkQU1HQaFHoov7b0jmaEk9Gz8uoLqhBZtFZex1cdzRx4tqav2cNTY2smXLFq6//nr69+/f0ZfXeo3BINu3b6dPnz788Ic/bPf+BQUF/PGPf+TRRx8Na+4pLk0SPAnRwXRa/9Ju886+Et7PK+OW6+JxO60c8dfhsKqs2PoVY66JJcXjoCWoYTaHZ57KysqYM2cOn3zyCZGRkZjNZhoaGoz7LRaLUdPUtrp7W7dkk8mE0+kEoKqqCl3X6dKli7FvUlISZrOZsrKyfzikoKpq2C//tuPqum4syCqrQv17OdUY5N2/lmBVFa5LdfPJl1V8kFdGhtdFdWOQfl2jAPj8eDU9kzqzN7+GmsYWBqa6UU0Kug4tIQ3VdHqITlVV47MYCoUoLS3FZrPhdru/9nnU1tZSWFiIyWTiqquuwul0UlVVhaZpREdHoygKuq5TVVUFQGRkJFVVVd+6VlBVVUwmE/X19Zw8eZLIyEi8Xi8m0+mf1erqavx+P1arlcTERGy21jX8FEUJuyZxaZPgSYgOZreoxLisqCaFQItGfkUDzggzn39VzWfHqrkq2s5Do1IY2M3NO3tL0IEuHgcjrw5fOmLLli1s3ryZ5cuXM2LECI4cOcLEiRPbFajouo7b7UZRFPLz843bT548STAYxOPxUF1dTSAQIBRqHWJpamqipqbma3/pn31+XdeNfcW/h5CmE2gOcV2qm3sH+sivaCTQohHSdMwmhS4xrUH83hM11DcFCTSHSIp2MHl4Ms4IFV2H83282j5z69evZ926dcyePZubb775vM9h7969zJkzh2PHjqHrOtdeey25ubls3ryZrVu38uKLLxIdHc2pU6d46KGH6NOnD/fccw9Tpkz5h7WCS5cupVOnTphMJvbt28f9999PXl7runIPPPAAP/vZz7BYLGzbto358+fj9/tRFIWBAweSnZ1NcnJyR79Fop0keBKigw1Nj6ZPShSd7GZMisKDI1PCej6pJoUoh4UfDvQx4moPjS0h4jtFEGk7/49vKBTC7/ezYcOGsPqJtqzPN21rmobX62XQoEGsWrWKxMREXC4XCxcuJCUlhczMTJqamigtLWXjxo2MGDGC119/nfz8fOOL7HyZpbbbzGYzVquVHTt2cNNNN9GjR49LquBXfEeU1s/x7mPV5Fc0cry8gUxfJAoKwZDOnuPVAARDuhEkKX/fp+3/5xxSUQiFQrz44ossXryYxx57jNGjR5/39KFQiNWrV1NRUcG6deuor69n6dKlfPrpp/Tr14/nn3+effv2MXLkSA4fPsyePXuYMmUKmqaRl5dHVFQUixcvZtu2bSxcuJBRo0axcOFC9u3bx7x58/jggw+48847MZlM7Nq1i9mzZ/PEE0/whz/8gUWLFtGzZ0/S0tKYMWMG3bp1Izc3F7/fT3Z2NkuWLGHZsmUd/Q6JdpLgSYgOZrOo2CynA4goh+W8jzOrCj637WuPM3bsWHbs2MGcOXNwu9307t2bXr16YbfbMZvNJCYmGoueqqqK1+s1htRMJhPx8fHGcN/MmTOZN28e06ZNA1qH7XJycoiOjmbgwIHcc889rFixgpdeeolrr72WwYMH43Q6jYVSzywEdzqdxtBFZGQk48ePZ+nSpWRnZ7N27VqZbfdvQud0QKQYt+mYVYXeyZ0BKKhsxKQoKCaorm/h/05UE2ExEWFWSU9wYVFPR1GaprFhwwb279/P448/zk9/+tOw4bGzWa1WKioqOHjwIMOGDeN3v/sdLpfLqMXbunUrI0eOZNu2bfh8Pvr3709paem3qhVsyySFQiFGjx7N1KlTsVgsdOnShW3btrFz505qamooLy9n7dq1XHvttQAcO3aMdevWUV5eLsN1lxkJnoS4Qvh8PlatWkVhYSFWq5WEhATq6uqMgGjjxo1ERUUBrSvOv/zyy7hcrQXnkZGRrFy50giuMjIyWLt2LUVFRYRCIRISEujcubPx2AULFvCLX/wCRVHwer0EAgFsNht2u53ly5cTEXG6jcKYMWMYMmSIUQd13333MXbsWEKhkHFMcWVT/v5vQKqbewf4ePbdvwFgUlozT3/8Pz8Ane0WMrwuGls03vq8iOf+/CUmRWFw92jS4pygtmWiFBobG3nvvfdwOBz4fL5vDJxUVeVXv/oVmqaxePFifvOb3zBs2DAee+wxMjIyuOWWW9i0aRPHjx9n586d3HjjjURFRVFSUvKtagXbMq26rpOcnIzF0voHkNPpJDExkYqKCvx+P06nk7i4OON5JScnEwgEaGhokODpMiPBkxBXEJfLRUZGhrHdFgwBxMfHG/9XVTXsl7jJZCI2NrzhpsPhIC0t7bznsdlsdO/e3dhuy2ABeDyec47T9mUDGFkw8e/DGWFm0rAueKMiiHJY+EFfLyaTQrTLgstmRtN0FKW1dUcPbyTJHgddPXZqGoPYLSrXJEUScUZrDl3XsVqtzJw5k0OHDjFr1iy6dOlCZmbmec+vaRoej4ecnBzq6ur46KOPmDVrFna7nWXLljFmzBhefvllNm7ciN/v55ZbbjHO0x6KonDixAlaWlqwWCzU19dTVFRE7969SUhIoL6+ntLSUuNn8cSJE9hsNhwOh0yiuMxI8CSEEOI7ZbOYGPW900H1gNTTM+K6xTrPeXykzczQ9G+erq+qKpmZmYwfP57x48fzxBNPsHbtWhISEs55bCAQYPbs2dTX1/Pwww+TmJhoZJN0Xad79+707NmTxYsXM3r0aL73ve8Z+36bWsG2bZPJxNatW1mzZg1Dhw7ljTfeoKioiOHDh5OWlobH42H+/PlMmzYNv9/P+vXrGTlyJB6Px5iNKi4P0iRTCCHEZaWtZs9qtZKUlMSCBQsoKyvjtddeO+/jHQ4Ht956K0ePHmXChAk89NBDpKam8uCDD6IoClarlRtvvJGGhgZuvPFGI1NqsVi+Va1gW41fXFwc48aNY/v27UyaNIm33nqLxx9/nCFDhuDz+cjNzaWkpITJkyeTlZVF3759eeyxx1AUBbvdTmJiokyguExI5kkIIcRlJS4ujtdee80IWoYMGcKWLVvYvXs38+bNC6sf0jSNnj17cvvtt9O/f3/8fj8WiwWfz2cEQcFgEL/fT7du3Rg1apSxb3Jy8reuFbRYLCxYsICIiAjjeGf3eRo9ejR9+vShpKTknD5Pw4YNY+PGjecMe4tLkwRPQgghLiuqqobV8EFrrV1bHd+ZfcTaWnBAa/Bzdvfumpoa5syZw9tvv82UKVPCOt+bzeZ21Qqeeey2gOtsbrf7vI08bTabEUiJS58ET0IIIa4Iffv2pW/fvu3aR1VVMjIyGDRoEN///ve/cdaeEG0keBJCCPFvy+Vy8dBDD3X00xCXGQmxhbhC6LpOU1PTJbf0SXNzM8Fg8J/aV9M0mpqaZBq3EOKSIsGTEB0oqOlU1bdQfqqZmsYWdB0CLRoVdc2U1zVTUddMY3NrMKTpUNPQ+tiq+hZCWnhAUVlZSVZWFnv27OnoyzI0NTWxdOlS3njjjX9q/71795KVlRW2zIwQQnQ0GbYTooMENZ3Ne/y8+9cSAs0hohwWxg9NoqEpyCsfnSSo6Sgo9Eh0cf8NyRwtqWfjxwVUN7Rgs6iMvS6OO/p4jfW/Ghsb2bJlC9dffz39+/fv6MtrvcZgkO3bt9OnTx9++MMftnv/goIC/vjHP/Loo4+eU+grhBAdRYInITrIqcYg7/61BKuqcF2qm0++rOKDvDIyvC6qG4P06xoFwOfHq+mZ1Jm9+TXUNLYwMNWNalLQdWgJaaim031hVFU1pmmHQiFKS0ux2Wznnd3Tpra2lsLCQkwmE1dddRVOp5Oqqio0TSM6OhpFUdB1naqqKqB1enZVVRVOp5Py8nI0TcPn86GqKkVFRdTX1+Pz+YwmhKqqYjKZqK+v5+TJk+dM3waorq7G7/efM31bUZSwaxJCiEuBBE9CdJCQphNoDnFdqpt7B/rIr2gk0KIR0nTMJoUuMa2N+vaeqKG+KUigOURStIPJw5NxRqjo+tevNg+wfv161q1bx+zZs7n55pvP+xz27t3LnDlzOHbsGLquc+2115Kbm8vmzZvZunUrL774ItHR0Zw6dYqHHnqIPn36cM899zBlyhTS0tL44osvqKqq4u6776ZTp05s2rQJv9/PoEGDWLp0KZ06dcJkMrFv3z7uv/9+8vLyAHjggQf42c9+hsViYdu2bcyfP99YXHXgwIFkZ2eTnJzc0W+RuETpuk5zczNms/mCN5UMBoNomobVau3oyxSXMKl5EqKj/H2F+d3Hqnn2nb9xvLwBkwIKrYul7jlezZ7j1QRDuhEkta1K3/b/cw7595XdX3zxRRYvXszkyZMZPXr0eU8fCoVYvXo1FRUVrFu3jhUrVtDQ0MCnn35Kv379yMvLY9++fQAcPnyYPXv20KdPHzRNIy8vj/LychYvXsz48eN57rnn+Oijj1i4cCHTp09n69atfPDBB5hMJkwmE//7v//LsGHDePHFFxk3bhyLFi1i165dFBYWMmPGDGJjY1m3bh05OTns3r2bJUuWSJH4FeZyqe978803WbJkCYFAoKNfMnEJk8yTEB1I53RApBi36ZhVhd7JnQEoqGzEpCgoJqiub+H/TlQTYTERYVZJT3BhUcO7KW/YsIH9+/fz+OOP89Of/vQb+9ZYrVYqKio4ePAgw4YN43e/+x0ul4vm5mbS0tLYunUrI0eOZNu2bfh8Pvr3709paSkul4tJkyYxZMgQkpKSeOWVV7j99tsZNmwYV199NevXrzcySaFQiNGjRzN16lQsFgtdunRh27Zt7Ny5k5qaGsrLy1m7di3XXnstAMeOHWPdunWUl5fLcN0V4nKq7/vrX//Kp59+yi9/+cuOftnEJUyCJyE6iPL3fwNS3dw7wMez7/4NAJPSmnn64//5Aehst5DhddHYovHW50U89+cvMSkKg7tHkxbnBLUtE6XQ2NjIe++9h8PhwOfzfWPgpKoqv/rVr9A0jcWLF/Ob3/yGYcOG8dhjj5GRkcEtt9zCpk2bOH78ODt37uTGG28kKiqKkpISLBaLUdNkNpux2+3GemAmkwmn02lkjnRdJzk5GYvFAoDT6SQxMZGKigr8fj9OpzOsa3NycjKBQICGhgYJnq4Q31V9H0BFRQWlpaXExsaGLW3S1NRk1ODFxcURGxuLoigEg0EqKytxuVxUVlZy6tQpEhMT6dy59Y8Vk8kUNhRYW1vLqVOniIuLMz7DQkjwJEQHcUaYmTSsC96oCKIcFn7Q14vJpBDtsuCymdE0HUVRSPbY6eGNJNnjoKvHTk1jELtF5ZqkSCIsp4MjXdexWq3MnDmTQ4cOMWvWLLp06UJmZuZ5z69pGh6Ph5ycHOrq6vjoo4+YNWsWdrudZcuWMWbMGF5++WU2btyI3+/nlltuMc7THoqicOLECVpaWrBYLNTX11NUVETv3r1JSEigvr6e0tJSYxmMEydOYLPZcDgcMnR3hfiu6vvefvttVq5cSVFREVFRUWRnZ3PLLbdQVVXFM888w5///Gc0TcPlcvHkk0/ygx/8gPz8fKZMmUJ6ejp5eXmUlJSQlpbGs88+y9VXX20cW1VVjh8/zvTp04mPjyc3N/drl1wR/34keBKig9gsJkZ97/RfygNST8+I6xbrPOfxkTYzQ9O/ebq+qqpkZmYyfvx4xo8fzxNPPMHatWtJSEg457GBQIDZs2dTX1/Pww8/TGJiopFN0nWd7t2707NnTxYvXszo0aP53ve+Z+yraVpYYPNN2yaTia1bt7JmzRqGDh3KG2+8QVFREcOHDyctLQ2Px8P8+fOZNm0afr+f9evXM3LkSDweD7quG+uSicvYGfV9+RWNHC9vINMXGVbfB3zr+j5FUairq+Pzzz9n7ty5eL1enn32WWbPnk3Pnj05evQoR48eZfbs2aSmprJo0SIWLVrEqFGjCAaD5OXl4XA4mD9/PjU1NUybNo0NGzbwzDPPAK2f2WPHjjFz5kxCoRC//vWvJXASYSR4EuIKoaoqXq8Xq9VKUlISCxYsYNq0abz22mtMmzbtnMc7HA5uvfVWcnNzmTBhAoqicPXVV/Pggw+iKApWq5Ubb7yR119/nRtvvNEYlrNYLCQmJmK328PO27ZCvclkIj4+3ljxPi4ujnHjxrF9+3ZWr14NwOOPP86QIUOwWCzk5uaSm5vL5MmTARg4cCCPPfYYiqJgt9tJTEy84DOqxMV3Iev7dF1HVVUmTpzInXfeCcCMGTO4++672bNnDzfffDNdu3YlEAhQW1tL9+7d+eyzz4yhYKfTyX333cfQoUMBeOutt4wZpyaTiYKCAh5++GGsViu//e1vZeanOIcET0JcIeLi4njttdeMoGXIkCFs2bKF3bt3M2/evLD6IU3T6NmzJ7fffjv9+/fH7/djsVjw+XxGEBQMBvH7/XTr1o1Ro0YZ+yYnJ7Nx40bjL/GYmBhefvllXC4X0NoHauXKldjtdiwWCwsWLCAiIsI43tl9nkaPHk2fPn0oKSk5p8/TsGHD2LhxY1gti7j8XOj6PoCIiAhSUlKMba/Xi81mo6KiggMHDpCdnc3Jkydxu91UV1cbSwS1DW9HR0cb+57Z28xkMnHgwAEiIiIYN25c2OOEaCPBkxBXCFVVjbqhNh6PxyjGPnPNO03TjOGwmJiYc7p319TUMGfOHN5++22mTJkS9iVlNpvDzqOqaljBt8lkIjY21tg+89hfN/ThdrvP28jTZrMZgZS4fF3o+j5oLQg/fvy4sV1cXEwgEKBz586sXbuWkydPsnLlSnr06MHGjRtZvHjxt3qumqbRt29fHnzwQXJycli2bBlZWVmYzfJ1KU6TT4MQV7i+ffvSt2/fdu2jqioZGRkMGjSI73//+984a0+If+RC1/e1zZp75ZVXSEtLIzExkWeffRaPx0OvXr1477330DTNqG/atGlTWN+ms2v0dF03tts669977700NjayYMECunXrxvjx4zv6ZRSXEAmehBDncLlcPPTQQx39NIQ4L5PJREZGBpmZmSxfvhy/309UVBRPPfUUKSkp/OQnP+HgwYNMnTqVhIQE0tPTaWlpQVXVc2r2oDXzGQgEUBSFzp074/F4UFWV+++/n6+++orf/e539OvXj4yMjI6+dHGJkOBJiIvp7x3ERcdRWt+E1gpmcVmKi4vj1VdfpVOnTtTU1FBZWRnW52nAgAH84Q9/oKSkhKioKNxuN7W1tcYMzjNr9gAeeeQRQqEQJpOJKVOm0NzcjM1mQ1EUnn76aSorK79xfUjx70eCJyEuFgVCGpTXNwOtM43ExaWgUF7fTEgDVUYiL1tn1tnZbLZzav3g3Fq+MzNNZz++rUEmYEy4OHM/n8/X0ZcsLjESPAlxsehQ2dDC/9t0tPWLW2Kni+/vAWxlQwuxTukWLYT450jwJMRFYFIUPK6/r9IuQ0YdR2/NOMU6LXhcVkyy/IsQ4p8gwZMQF4HbYWbBHd3RZLmRS4ZJUXA75FegEKL95DeHEBeBSVGIkWEiIYS4IkjJpBBCCCFEO0jwJIQQQgjRDhI8CSGEEEK0gwRPQgghLormoEZxdYBg6PTEidrGIAWVjdQ2Bo3bQppOaW0TBZWNNDaH/plTXXKamprClogRlzcpGBdCCPGd0nU4FQjyfl4ZOw6VkzUunbhOEeQVnuKlD/Opbmihs8PCjwcn0TOpE+/+tYR395UQ0nRS45xMHp6MJ9La0ZfxL1m3bh2BQIBHHnlE1oq8AkjwJIQQ4jtVFwiy+v3j7MuvwWQCTQdN1/mf/aWYVRNTR3Xlvz8pZPOeYmI7WdlxqIKh6TEkxdhZva11v9GZsWHH1DQNv99PRUUFUVFReL1ezObTX2nV1dUUFxdjtVrx+XzYbDbjvoaGBoqKiggGg3i93rAO4w0NDRQXFxv3tXUcb25upqqqCrfbjdVqNc6h6zput5uamhp0XUdRFIqLi3E4HPh8PlRVpby8nA8//JDGxkZ+8IMf4PV6jWOIy5MET0IIIb5TdqvKvQN9eCKt7DhUDrRmowakunE7raQnONl2oIyyU03YLCamjkzBEaGyv6AWp00ltlNE2PFaWlpYu3Yta9asobm5GUVRmDhxIo888gg2m40PPviA3NxcioqKCIVCDB06lLlz55KUlMTRo0eZN28ee/fuJRgM0rVrV+bMmcOgQYM4cuQI8+bNY9++fQB06dKF7OxsBg8ezKFDh3j00UdZsmQJvXr1QtM0FixYQCgUYuHChaxYsYLdu3cTERHB4cOHaW5uZurUqUyZMoWlS5fypz/9CYDJkycbxxCXL8kdCiGE+E6ZVYVkj534zhG0NXVXTQqD06LpFuvgzc+KOVB4iht6eIh2WkmLd1JUFeCN3UUA2CzhX1VFRUVs376dCRMm8Nprr3HPPfewatUq8vLyKCoqIisrC7fbzdq1a5k7dy6ffPIJL730EoFAgJycHA4fPsyiRYtYsWIFmqaxePFiysvLyc3N5csvv2TJkiWsWbMGVVWZNWsWlZWVtLS0UFhYSFNTk/E8KioqKC8vR9d1qqqq2LFjB8OHD+ell15izJgxrFixgsLCQn7+858zevRohg4dynPPPUd6enpHvyXiXySZJyGEEBeFflaH/drGIBt2neSLglp+NMjH6MxY6ptCFFY10j3eya9v7c6iLUf58HAF6QkuYz+fz8eyZcuor6+ntraW1NRUdF3H7/dTWFhIWVkZq1ev5rrrrmPw4MGkp6ej6zoFBQXs2rWLrKwsxo4dC0BqairHjx+nrKyMXbt2MXPmTMaMGQPAE088waRJk9i/fz+RkZGYTCaUM5b0OXNb13X69u3Lfffdh8vl4r777uOdd96huLiYG264AY/HQ0NDA5mZmVLzdAWQ4EkIIcRFodNa79TmnX0lvJ9Xxi3XxeN2Wjnir8NhVVmx9SvGXBNLisdBS1DDbA4PNsrKypgzZw6ffPIJkZGRmM1mGhoajPucTicJCQnG4/v06QPAnj170HWdlJQU476uXbvStWtX474uXboY9yUlJWE2mykvLycyMvIfXl90dDQWS+tKAg6HA1VVCQZbZxHquo6u64RCIQmergASPAkhhLgo7BaVGJcV1aQQaNHIr2jAGWHm86+q+exYNVdF23loVAoDu7l5Z28JOtDF42Dk1Z6w42zZsoXNmzezfPlyRowYwZEjR5g4cSKaphEXF0d9fT3FxcXEx8cDsH//fkKhEJ07d0ZRFL766itGjhwJQH5+PgUFBbjdbhRFIT8/3zjPyZMnCQaDeDweVFUlFArR2NgIQDAYpLKy0igo/zYkcLpySPAkhBDiohiaHk2flCg62c2YFIUHR6aE9XxSTQpRDgs/HOhjxNUeGltCxHeKINJ2/q+qUCiE3+9nw4YNVFZWous6/fr1Iy4ujpycHKZPn05hYSFPPfUUd999N48//jjDhg1j5cqVJCYmYrPZWLRoEXa7nVWrVjF48GBWrVpFYmIiLpeLhQsXkpKSQmZmJk1NTZjNZl599VWioqL4/PPP+ctf/sJtt90GnM4stdF1HU3TjNtcLhc7d+5k586dDBo0CLvd3tFvh/gXSPAkhBDiorBZVGwW1diOcpx/sWyzquBz2772OGPHjmXHjh3MmTMHt9tN79696dWrFxEREXi9XnJzc8nJyeH+++9H0zQGDBjApEmTsNlszJgxg7lz5zJ9+nQ0TSMpKYkZM2YQGxvLjBkzmDdvHtOmTQNah+1ycnKIiYkhFArx8MMP8/zzz/Pxxx+Tnp7O9ddfj9vtBsDtdhtZKQCLxYLX6zVaJNx2223s2rWLGTNmsHLlSnr37t3Rb4f4Fyj62RV8QgghxD+prK6ZB1/NA2DNj79HrOu76WdUV1dHYWEhVquVhIQE6urqcLlcRkanrc+TxWLB5/OFZXra+jy1tLTg9XqJioo6575QKERCQkJYD6hQKERhYSENDQ0kJCSgKAqaphl9nkKhkDH8FwwGjR5UERER6LpORUUFp06dCguqLvf34d+VZJ6EEEJcdlwuFxkZGcb22cNgUVFRYUHRmRwOB2lpae2+T1XVsILyM50ZZAGYzWaj5gpAURQ8Hg8ejwdx+ZPKNSGEEEKIdpDgSQghhBCiHSR4EkIIceEpoKD868cR/xSl9Q0Q3xGpeRJCCHFhKRDSoLy+GQAdmZd0MSkolNc3E9JAlRTJd0KCJyGEEBeWDpUNLfy/TUdbv7wldrq4/h68Vja0EOu0/OvHE+eQ4EkIIcQFY1IUPG3T4hUkcOoIemvGKdZpweOyYlJk/O5Ckz5PQgghLhhN16lqCKLJV8slwaQouB1mCaAuMAmehBBCCCHaQUrJhBBCCCHaQYInIYQQQoh2kOBJCCGEEKIdJHgSQgghhGgHCZ6EEEIIIdpBgichhBBCiHaQ4EkIIYQQoh0keBJCCCGEaAcJnoQQQggh2kGCJyGEEEKIdpDgSQghhBCiHSR4EkIIIYRoBwmehBBCCCHaQYInIYQQQoh2kOBJCCGEEKIdJHgSQgghhGgHCZ6EEEIIIdpBgichhBBCiHb4/9DkIbVOJZGmAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEyLTA1VDE0OjIwOjI4KzAwOjAwy4iGlQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMi0wNVQxNDoxOTo0NCswMDowMN7tEBEAAAAodEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTlYSzXXAAAAF3RFWHRpY2M6ZGVzY3JpcHRpb24ARGlzcGxheRcblbgAAAAASUVORK5CYII=", - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": { - "image/png": { - "width": 500 - } - }, - "output_type": "execute_result" - } - ], - "source": [ - "Image(\"assets/loans-schema.png\", width=500)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Population table\n", - "\n", - "- Information on the loan itself (duration, amount, date, ...)\n", - "- Geo-information about the branch where the loans was granted (A**)\n", - "- Column `status` contains binary target. Levels [A, C] := _loan paid back_ and [B, D] := _loan default_;\n", - " we recoded status to our binary target: `default`" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "population_train.set_role(\"date_loan\", \"time_stamp\")\n", - "population_test.set_role(\"date_loan\", \"time_stamp\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name date_loanaccount_iddefaultfrequency duration payments amount loan_id district_iddate_account status
role time_stamp join_key targetcategorical numericalnumericalnumericalunused_floatunused_floatunused_stringunused_string
unittime stamp, comparison only money
01996-04-2919\n", - " 1 \n", - " POPLATEK MESICNE\n", - " 12 \n", - " \n", - " 2523 \n", - " \n", - " 30276 \n", - " \n", - " 4961 \n", - " \n", - " 21 \n", - " 1995-04-07B
11998-10-1437\n", - " 1 \n", - " POPLATEK MESICNE\n", - " 60 \n", - " \n", - " 5308 \n", - " \n", - " 318480 \n", - " \n", - " 4967 \n", - " \n", - " 20 \n", - " 1997-08-18D
21998-04-1938\n", - " 0 \n", - " POPLATEK TYDNE\n", - " 48 \n", - " \n", - " 2307 \n", - " \n", - " 110736 \n", - " \n", - " 4968 \n", - " \n", - " 19 \n", - " 1997-08-08C
31997-08-1097\n", - " 0 \n", - " POPLATEK MESICNE\n", - " 12 \n", - " \n", - " 8573 \n", - " \n", - " 102876 \n", - " \n", - " 4986 \n", - " \n", - " 74 \n", - " 1996-05-05A
41996-11-06132\n", - " 0 \n", - " POPLATEK PO OBRATU\n", - " 12 \n", - " \n", - " 7370 \n", - " \n", - " 88440 \n", - " \n", - " 4996 \n", - " \n", - " 40 \n", - " 1996-05-11A
......\n", - " ... \n", - " ...\n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " ......
2181995-12-0411042\n", - " 0 \n", - " POPLATEK MESICNE\n", - " 36 \n", - " \n", - " 6032 \n", - " \n", - " 217152 \n", - " \n", - " 7243 \n", - " \n", - " 72 \n", - " 1995-01-29A
2191996-08-2011054\n", - " 0 \n", - " POPLATEK TYDNE\n", - " 60 \n", - " \n", - " 2482 \n", - " \n", - " 148920 \n", - " \n", - " 7246 \n", - " \n", - " 59 \n", - " 1996-02-01C
2201994-01-3111111\n", - " 0 \n", - " POPLATEK MESICNE\n", - " 36 \n", - " \n", - " 3004 \n", - " \n", - " 108144 \n", - " \n", - " 7259 \n", - " \n", - " 1 \n", - " 1993-05-20A
2211998-11-2211317\n", - " 0 \n", - " POPLATEK MESICNE\n", - " 60 \n", - " \n", - " 5291 \n", - " \n", - " 317460 \n", - " \n", - " 7292 \n", - " \n", - " 50 \n", - " 1997-07-11C
2221996-12-2711362\n", - " 0 \n", - " POPLATEK MESICNE\n", - " 24 \n", - " \n", - " 5392 \n", - " \n", - " 129408 \n", - " \n", - " 7308 \n", - " \n", - " 67 \n", - " 1995-10-14A
\n", - "\n", - "

\n", - " 223 rows x 11 columns
\n", - " memory usage: 0.02 MB
\n", - " name: population_test
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name date_loan account_id default frequency ... amount loan_id district_id\n", - "role time_stamp join_key target categorical ... numerical unused_float unused_float\n", - "unit time stamp, comparison only ... money \n", - " 0 1996-04-29 19 1 POPLATEK MESICNE ... 30276 4961 21\n", - " 1 1998-10-14 37 1 POPLATEK MESICNE ... 318480 4967 20\n", - " 2 1998-04-19 38 0 POPLATEK TYDNE ... 110736 4968 19\n", - " 3 1997-08-10 97 0 POPLATEK MESICNE ... 102876 4986 74\n", - " 4 1996-11-06 132 0 POPLATEK PO OBRATU ... 88440 4996 40\n", - " ... ... ... ... ... ... ...\n", - " 218 1995-12-04 11042 0 POPLATEK MESICNE ... 217152 7243 72\n", - " 219 1996-08-20 11054 0 POPLATEK TYDNE ... 148920 7246 59\n", - " 220 1994-01-31 11111 0 POPLATEK MESICNE ... 108144 7259 1\n", - " 221 1998-11-22 11317 0 POPLATEK MESICNE ... 317460 7292 50\n", - " 222 1996-12-27 11362 0 POPLATEK MESICNE ... 129408 7308 67\n", - "\n", - "name date_account status \n", - "role unused_string unused_string\n", - "unit \n", - " 0 1995-04-07 B \n", - " 1 1997-08-18 D \n", - " 2 1997-08-08 C \n", - " 3 1996-05-05 A \n", - " 4 1996-05-11 A \n", - " ... ... \n", - " 218 1995-01-29 A \n", - " 219 1996-02-01 C \n", - " 220 1993-05-20 A \n", - " 221 1997-07-11 C \n", - " 222 1995-10-14 A \n", - "\n", - "\n", - "223 rows x 11 columns\n", - "memory usage: 0.02 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "population_test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Peripheral tables\n", - "\n", - "- `meta`\n", - " - Meta info about the client (card_type, gender, ...)\n", - " - Geo-information about the client\n", - "- `order`\n", - " - Permanent orders related to a loan (amount, balance, ...)\n", - "- `trans`\n", - " - Transactions related to a given loan (amount, ...)\n", - "\n", - "While the contents of `meta` and `order` are omitted for brevity, here are contents of `trans`:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name dateaccount_idtype k_symbol bank operation amount balance trans_id account
role time_stamp join_keycategoricalcategoricalcategoricalcategorical numericalnumericalunused_floatunused_float
unittime stamp, comparison only money
01995-03-241PRIJEMNULLNULLVKLAD\n", - " 1000 \n", - " \n", - " 1000 \n", - " \n", - " 1 \n", - " \n", - " nan \n", - "
11995-04-131PRIJEMNULLABPREVOD Z UCTU\n", - " 3679 \n", - " \n", - " 4679 \n", - " \n", - " 5 \n", - " \n", - " 41403269 \n", - "
21995-05-131PRIJEMNULLABPREVOD Z UCTU\n", - " 3679 \n", - " \n", - " 20977 \n", - " \n", - " 6 \n", - " \n", - " 41403269 \n", - "
31995-06-131PRIJEMNULLABPREVOD Z UCTU\n", - " 3679 \n", - " \n", - " 26835 \n", - " \n", - " 7 \n", - " \n", - " 41403269 \n", - "
41995-07-131PRIJEMNULLABPREVOD Z UCTU\n", - " 3679 \n", - " \n", - " 30415 \n", - " \n", - " 8 \n", - " \n", - " 41403269 \n", - "
..................\n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - "
10563151998-08-3110451PRIJEMUROKNULLNULL\n", - " 62 \n", - " \n", - " 17300 \n", - " \n", - " 3682983 \n", - " \n", - " nan \n", - "
10563161998-09-3010451PRIJEMUROKNULLNULL\n", - " 49 \n", - " \n", - " 13442 \n", - " \n", - " 3682984 \n", - " \n", - " nan \n", - "
10563171998-10-3110451PRIJEMUROKNULLNULL\n", - " 34 \n", - " \n", - " 10118 \n", - " \n", - " 3682985 \n", - " \n", - " nan \n", - "
10563181998-11-3010451PRIJEMUROKNULLNULL\n", - " 26 \n", - " \n", - " 8398 \n", - " \n", - " 3682986 \n", - " \n", - " nan \n", - "
10563191998-12-3110451PRIJEMUROKNULLNULL\n", - " 42 \n", - " \n", - " 13695 \n", - " \n", - " 3682987 \n", - " \n", - " nan \n", - "
\n", - "\n", - "

\n", - " 1056320 rows x 10 columns
\n", - " memory usage: 63.38 MB
\n", - " name: trans
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - " name date account_id type k_symbol ... operation amount balance\n", - " role time_stamp join_key categorical categorical ... categorical numerical numerical\n", - " unit time stamp, comparison only ... money\n", - " 0 1995-03-24 1 PRIJEM NULL ... VKLAD 1000 1000\n", - " 1 1995-04-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 4679\n", - " 2 1995-05-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 20977\n", - " 3 1995-06-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 26835\n", - " 4 1995-07-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 30415\n", - " ... ... ... ... ... ... ...\n", - "1056315 1998-08-31 10451 PRIJEM UROK ... NULL 62 17300\n", - "1056316 1998-09-30 10451 PRIJEM UROK ... NULL 49 13442\n", - "1056317 1998-10-31 10451 PRIJEM UROK ... NULL 34 10118\n", - "1056318 1998-11-30 10451 PRIJEM UROK ... NULL 26 8398\n", - "1056319 1998-12-31 10451 PRIJEM UROK ... NULL 42 13695\n", - "\n", - " name trans_id account\n", - " role unused_float unused_float\n", - " unit \n", - " 0 1 nan \n", - " 1 5 41403269 \n", - " 2 6 41403269 \n", - " 3 7 41403269 \n", - " 4 8 41403269 \n", - " ... ...\n", - "1056315 3682983 nan \n", - "1056316 3682984 nan \n", - "1056317 3682985 nan \n", - "1056318 3682986 nan \n", - "1056319 3682987 nan \n", - "\n", - "\n", - "1056320 rows x 10 columns\n", - "memory usage: 63.38 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trans" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1.3 Define relational model\n", - "\n", - "To start with relational learning, we need to specify an abstract data model. Here, we use the [high-level star schema API](https://getml.com/latest/reference/data/star_schema) that allows us to define the abstract data model and construct a [container](https://getml.com/latest/reference/data/container) with the concrete data at one-go. While a simple `StarSchema` indeed works in many cases, it is not sufficient for more complex data models like schoflake schemas, where you would have to define the data model and construct the container in separate steps, by utilzing getML's [full-fledged data model](https://getml.com/latest/reference/data/data_model) and [container](https://getml.com/latest/reference/data/container) APIs respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "data model\n", - "
\n", - "
diagram
\n", - "
transordermetapopulationaccount_id = account_iddate <= date_loanaccount_id = account_idaccount_id = account_id
\n", - "
\n", - "\n", - "
\n", - "
staging
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
data framesstaging table
0populationPOPULATION__STAGING_TABLE_1
1metaMETA__STAGING_TABLE_2
2orderORDER__STAGING_TABLE_3
3transTRANS__STAGING_TABLE_4
\n", - "
\n", - " \n", - "container\n", - "
\n", - "
\n", - "
population
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
subsetname rowstype
0trainpopulation_train459DataFrame
1testpopulation_test223DataFrame
\n", - "
\n", - "
\n", - "
peripheral
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name rowstype
0trans1056320DataFrame
1order6471DataFrame
2meta5369DataFrame
\n", - "
\n", - "
" - ], - "text/plain": [ - "data model\n", - "\n", - " population:\n", - " columns:\n", - " - frequency: categorical\n", - " - account_id: join_key\n", - " - duration: numerical\n", - " - payments: numerical\n", - " - amount: numerical\n", - " - ...\n", - "\n", - " joins:\n", - " - right: 'trans'\n", - " on: (population.account_id, trans.account_id)\n", - " time_stamps: (population.date_loan, trans.date)\n", - " relationship: 'many-to-many'\n", - " lagged_targets: False\n", - " - right: 'order'\n", - " on: (population.account_id, order.account_id)\n", - " relationship: 'many-to-many'\n", - " lagged_targets: False\n", - " - right: 'meta'\n", - " on: (population.account_id, meta.account_id)\n", - " relationship: 'many-to-many'\n", - " lagged_targets: False\n", - "\n", - " trans:\n", - " columns:\n", - " - type: categorical\n", - " - k_symbol: categorical\n", - " - bank: categorical\n", - " - operation: categorical\n", - " - account_id: join_key\n", - " - ...\n", - "\n", - " order:\n", - " columns:\n", - " - bank_to: categorical\n", - " - k_symbol: categorical\n", - " - account_id: join_key\n", - " - amount: numerical\n", - " - account_to: unused_float\n", - " - ...\n", - "\n", - " meta:\n", - " columns:\n", - " - type_disp: categorical\n", - " - type_card: categorical\n", - " - gender: categorical\n", - " - A3: categorical\n", - " - account_id: join_key\n", - " - ...\n", - "\n", - "\n", - "container\n", - "\n", - " population\n", - " subset name rows type \n", - " 0 train population_train 459 DataFrame\n", - " 1 test population_test 223 DataFrame\n", - "\n", - " peripheral\n", - " name rows type \n", - " 0 trans 1056320 DataFrame\n", - " 1 order 6471 DataFrame\n", - " 2 meta 5369 DataFrame" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "star_schema = getml.data.StarSchema(\n", - " train=population_train, test=population_test, alias=\"population\"\n", - ")\n", - "\n", - "star_schema.join(\n", - " trans,\n", - " on=\"account_id\",\n", - " time_stamps=(\"date_loan\", \"date\"),\n", - ")\n", - "\n", - "star_schema.join(\n", - " order,\n", - " on=\"account_id\",\n", - ")\n", - "\n", - "star_schema.join(\n", - " meta,\n", - " on=\"account_id\",\n", - ")\n", - "\n", - "star_schema" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nameaccount_idtype_disp type_card gender A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 disp_id client_id card_id district_idissued birth_date A2
role join_keycategoricalcategoricalcategoricalcategorical numericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalunused_floatunused_floatunused_floatunused_floatunused_stringunused_stringunused_string
01OWNERNULLFsouth Bohemia\n", - " 70699 \n", - " \n", - " 60 \n", - " \n", - " 13 \n", - " \n", - " 2 \n", - " \n", - " 1 \n", - " \n", - " 4 \n", - " \n", - " 65.3\n", - " \n", - " 8968 \n", - " \n", - " 2.8\n", - " \n", - " 3.35\n", - " \n", - " 131 \n", - " \n", - " 1740 \n", - " \n", - " 1910 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " nan \n", - " \n", - " 18 \n", - " NULL1970-12-13Pisek
12OWNERNULLMPrague\n", - " 1204953 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " 100 \n", - " \n", - " 12541 \n", - " \n", - " 0.2\n", - " \n", - " 0.43\n", - " \n", - " 167 \n", - " \n", - " 85677 \n", - " \n", - " 99107 \n", - " \n", - " 2 \n", - " \n", - " 2 \n", - " \n", - " nan \n", - " \n", - " 1 \n", - " NULL1945-02-04Hl.m. Praha
22DISPONENTNULLFPrague\n", - " 1204953 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " 100 \n", - " \n", - " 12541 \n", - " \n", - " 0.2\n", - " \n", - " 0.43\n", - " \n", - " 167 \n", - " \n", - " 85677 \n", - " \n", - " 99107 \n", - " \n", - " 3 \n", - " \n", - " 3 \n", - " \n", - " nan \n", - " \n", - " 1 \n", - " NULL1940-10-09Hl.m. Praha
33OWNERNULLMcentral Bohemia\n", - " 95616 \n", - " \n", - " 65 \n", - " \n", - " 30 \n", - " \n", - " 4 \n", - " \n", - " 1 \n", - " \n", - " 6 \n", - " \n", - " 51.4\n", - " \n", - " 9307 \n", - " \n", - " 3.8\n", - " \n", - " 4.43\n", - " \n", - " 118 \n", - " \n", - " 2616 \n", - " \n", - " 3040 \n", - " \n", - " 4 \n", - " \n", - " 4 \n", - " \n", - " nan \n", - " \n", - " 5 \n", - " NULL1956-12-01Kolin
43DISPONENTNULLFcentral Bohemia\n", - " 95616 \n", - " \n", - " 65 \n", - " \n", - " 30 \n", - " \n", - " 4 \n", - " \n", - " 1 \n", - " \n", - " 6 \n", - " \n", - " 51.4\n", - " \n", - " 9307 \n", - " \n", - " 3.8\n", - " \n", - " 4.43\n", - " \n", - " 118 \n", - " \n", - " 2616 \n", - " \n", - " 3040 \n", - " \n", - " 5 \n", - " \n", - " 5 \n", - " \n", - " nan \n", - " \n", - " 5 \n", - " NULL1960-07-03Kolin
...............\n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " \n", - " ... \n", - " .........
536411349OWNERNULLFPrague\n", - " 1204953 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " 100 \n", - " \n", - " 12541 \n", - " \n", - " 0.2\n", - " \n", - " 0.43\n", - " \n", - " 167 \n", - " \n", - " 85677 \n", - " \n", - " 99107 \n", - " \n", - " 13647 \n", - " \n", - " 13955 \n", - " \n", - " nan \n", - " \n", - " 1 \n", - " NULL1945-10-30Hl.m. Praha
536511349DISPONENTNULLMPrague\n", - " 1204953 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " 100 \n", - " \n", - " 12541 \n", - " \n", - " 0.2\n", - " \n", - " 0.43\n", - " \n", - " 167 \n", - " \n", - " 85677 \n", - " \n", - " 99107 \n", - " \n", - " 13648 \n", - " \n", - " 13956 \n", - " \n", - " nan \n", - " \n", - " 1 \n", - " NULL1943-04-06Hl.m. Praha
536611359OWNERclassicMsouth Moravia\n", - " 117897 \n", - " \n", - " 139 \n", - " \n", - " 28 \n", - " \n", - " 5 \n", - " \n", - " 1 \n", - " \n", - " 6 \n", - " \n", - " 53.8\n", - " \n", - " 8814 \n", - " \n", - " 4.7\n", - " \n", - " 5.74\n", - " \n", - " 107 \n", - " \n", - " 2112 \n", - " \n", - " 2059 \n", - " \n", - " 13660 \n", - " \n", - " 13968 \n", - " \n", - " 1247 \n", - " \n", - " 61 \n", - " 1995-06-131968-04-13Trebic
536711362OWNERNULLFnorth Moravia\n", - " 106054 \n", - " \n", - " 38 \n", - " \n", - " 25 \n", - " \n", - " 6 \n", - " \n", - " 2 \n", - " \n", - " 6 \n", - " \n", - " 63.1\n", - " \n", - " 8110 \n", - " \n", - " 5.7\n", - " \n", - " 6.55\n", - " \n", - " 109 \n", - " \n", - " 3244 \n", - " \n", - " 3079 \n", - " \n", - " 13663 \n", - " \n", - " 13971 \n", - " \n", - " nan \n", - " \n", - " 67 \n", - " NULL1962-10-19Bruntal
536811382OWNERNULLFnorth Moravia\n", - " 323870 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 0 \n", - " \n", - " 1 \n", - " \n", - " 1 \n", - " \n", - " 100 \n", - " \n", - " 10673 \n", - " \n", - " 4.7\n", - " \n", - " 5.44\n", - " \n", - " 100 \n", - " \n", - " 18782 \n", - " \n", - " 18347 \n", - " \n", - " 13690 \n", - " \n", - " 13998 \n", - " \n", - " nan \n", - " \n", - " 74 \n", - " NULL1953-08-12Ostrava - mesto
\n", - "\n", - "

\n", - " 5369 rows x 25 columns
\n", - " memory usage: 1.10 MB
\n", - " name: meta
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name account_id type_disp type_card gender ... card_id district_id issued \n", - "role join_key categorical categorical categorical ... unused_float unused_float unused_string\n", - " 0 1 OWNER NULL F ... nan 18 NULL \n", - " 1 2 OWNER NULL M ... nan 1 NULL \n", - " 2 2 DISPONENT NULL F ... nan 1 NULL \n", - " 3 3 OWNER NULL M ... nan 5 NULL \n", - " 4 3 DISPONENT NULL F ... nan 5 NULL \n", - " ... ... ... ... ... ... ... \n", - "5364 11349 OWNER NULL F ... nan 1 NULL \n", - "5365 11349 DISPONENT NULL M ... nan 1 NULL \n", - "5366 11359 OWNER classic M ... 1247 61 1995-06-13 \n", - "5367 11362 OWNER NULL F ... nan 67 NULL \n", - "5368 11382 OWNER NULL F ... nan 74 NULL \n", - "\n", - "name birth_date A2 \n", - "role unused_string unused_string \n", - " 0 1970-12-13 Pisek \n", - " 1 1945-02-04 Hl.m. Praha \n", - " 2 1940-10-09 Hl.m. Praha \n", - " 3 1956-12-01 Kolin \n", - " 4 1960-07-03 Kolin \n", - " ... ... \n", - "5364 1945-10-30 Hl.m. Praha \n", - "5365 1943-04-06 Hl.m. Praha \n", - "5366 1968-04-13 Trebic \n", - "5367 1962-10-19 Bruntal \n", - "5368 1953-08-12 Ostrava - mesto\n", - "\n", - "\n", - "5369 rows x 25 columns\n", - "memory usage: 1.10 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "meta" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Predictive modeling\n", - "\n", - "We loaded the data, defined the roles, units and the abstract data model. Next, we create a getML pipeline for relational learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.1 getML Pipeline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "__Set-up of feature learners, selectors & predictor__" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "mapping = getml.preprocessors.Mapping(min_freq=100)\n", - "\n", - "fast_prop = getml.feature_learning.FastProp(\n", - " aggregation=getml.feature_learning.FastProp.agg_sets.All,\n", - " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", - " num_threads=1,\n", - ")\n", - "\n", - "feature_selector = getml.predictors.XGBoostClassifier(n_jobs=1)\n", - "\n", - "# the population is really small, so we set gamma to mitigate overfitting\n", - "predictor = getml.predictors.XGBoostClassifier(gamma=2, n_jobs=1,)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Build the pipeline__" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "pipe = getml.pipeline.Pipeline(\n", - " data_model=star_schema.data_model,\n", - " preprocessors=[mapping],\n", - " feature_learners=[fast_prop],\n", - " feature_selectors=[feature_selector],\n", - " predictors=predictor,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2 Model training" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Checking data model...\n",
-                            "
\n" - ], - "text/plain": [ - "Checking data model\u001b[33m...\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K⠧ Staging... 0% • --:--" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
OK.\n",
-                            "
\n" - ], - "text/plain": [ - "OK.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Trying 808 features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K XGBoost: Training as feature selector... ━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
Trained pipeline.\n",
-                            "
\n" - ], - "text/plain": [ - "Trained pipeline.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time taken: 0:00:01.070034.\n", - "\n" - ] - }, - { - "data": { - "text/html": [ - "
Pipeline(data_model='population',\n",
-                            "         feature_learners=['FastProp'],\n",
-                            "         feature_selectors=['XGBoostClassifier'],\n",
-                            "         include_categorical=False,\n",
-                            "         loss_function='CrossEntropyLoss',\n",
-                            "         peripheral=['meta', 'order', 'trans'],\n",
-                            "         predictors=['XGBoostClassifier'],\n",
-                            "         preprocessors=['Mapping'],\n",
-                            "         share_selected_features=0.5,\n",
-                            "         tags=['container-CE93xg'])
" - ], - "text/plain": [ - "Pipeline(data_model='population',\n", - " feature_learners=['FastProp'],\n", - " feature_selectors=['XGBoostClassifier'],\n", - " include_categorical=False,\n", - " loss_function='CrossEntropyLoss',\n", - " peripheral=['meta', 'order', 'trans'],\n", - " predictors=['XGBoostClassifier'],\n", - " preprocessors=['Mapping'],\n", - " share_selected_features=0.5,\n", - " tags=['container-CE93xg'])" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe.fit(star_schema.train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.3 Model evaluation" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "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", - "
date time set usedtarget accuracy auccross entropy
02024-09-12 21:48:14traindefault0.99781.0.0671
12024-09-12 21:48:15testdefault0.96860.94650.13814
" - ], - "text/plain": [ - " date time set used target accuracy auc cross entropy\n", - "0 2024-09-12 21:48:14 train default 0.9978 1. 0.0671 \n", - "1 2024-09-12 21:48:15 test default 0.9686 0.9465 0.13814" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe.score(star_schema.test)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.4 Studying features" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Visualizing the learned features__\n", - "\n", - "The feature with the highest importance is:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "```sql\n", - "DROP TABLE IF EXISTS \"FEATURE_1_21\";\n", - "\n", - "CREATE TABLE \"FEATURE_1_21\" AS\n", - "SELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\n", - " t1.rowid AS rownum\n", - "FROM \"POPULATION__STAGING_TABLE_1\" t1\n", - "INNER JOIN \"TRANS__STAGING_TABLE_4\" t2\n", - "ON t1.\"account_id\" = t2.\"account_id\"\n", - "WHERE t2.\"date\" <= t1.\"date_loan\"\n", - "GROUP BY t1.rowid;\n", - "```" - ], - "text/plain": [ - "'DROP TABLE IF EXISTS \"FEATURE_1_21\";\\n\\nCREATE TABLE \"FEATURE_1_21\" AS\\nSELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\\n t1.rowid AS rownum\\nFROM \"POPULATION__STAGING_TABLE_1\" t1\\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\\nON t1.\"account_id\" = t2.\"account_id\"\\nWHERE t2.\"date\" <= t1.\"date_loan\"\\nGROUP BY t1.rowid;'" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "by_importances = pipe.features.sort(by=\"importances\")\n", - "by_importances[0].sql" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Feature correlations__\n", - "\n", - "We want to analyze how the features are correlated with the target variable." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABmAAAAOkCAYAAACxvPtEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDGklEQVR4nOzdeZid8/k/8Hsmk0z2BNkjMsSSIEQTfBNLLCFIbUVRRYIoaYqSalCJpSRatXyp2KNVam1VLamIrUgFaWqphEaCisSSbxaJBDOf3x8u8zOyiPGZOWbyel3Xua6cZ7vv55zznGXe+TxPUUopBQAAAAAAANkUF7oBAAAAAACA+kYAAwAAAAAAkJkABgAAAAAAIDMBDAAAAAAAQGYCGAAAAAAAgMwEMAAAAAAAAJkJYAAAAAAAADITwAAAAAAAAGQmgAEAAAAAAMhMAAMAAGuRZ599Nvr16xfNmjWLoqKimDZtWqFbYhXOOeecKCoqyrrNxx57LIqKiuKxxx7Lul0AAGBFJYVuAAAAqB2ffPJJHHLIIdG4ceO49NJLo2nTptG1a9fsdebMmRPXXnttHHDAAdGrV6/s2+erXXXVVdG0adMYPHhwoVsBAIC1lgAGAADWEjNnzow33ngjrrvuujjuuONqrM6cOXPi3HPPjbKyMgFMgVx11VXRpk2bFQKYnXfeOT766KNo1KhRYRoDAIC1iFOQAQDAWuLdd9+NiIjWrVsXtpFqWrZsWVRUVBS6jdWqqKiIZcuWrXTekiVLarmbFRUXF0fjxo2juNhPQQAAqGm+dQMAwFpg8ODB0b9//4iIOOSQQ6KoqCh22WWXyvnTp0+Pgw8+ONZdd91o3Lhx9OnTJ+69994q25g/f36MGDEievbsGc2bN4+WLVvG3nvvHf/6178ql3nsscdi2223jYiIIUOGRFFRURQVFcVNN90UERFlZWUrPS3WLrvsUqWfz69Vctttt8UvfvGL6Ny5czRt2jQWLVoUERHPPPNM7LXXXtGqVato2rRp9O/fP5566qk1eiyWLVsW55xzTmy66abRuHHj6NixY3zve9+LmTNnVi6zZMmSOO2006JLly5RWloam222WVx88cWRUqqyraKiohg+fHjccsstscUWW0RpaWlMmDAhbrrppigqKorHH388hg0bFu3atYv111+/cr0HH3wwdtppp2jWrFm0aNEiBg0aFC+//PJX9j5+/PjYbbfdol27dlFaWhqbb755jBs3rsoyZWVl8fLLL8fjjz9e+fh//tiu6howd955Z/Tu3TuaNGkSbdq0iR/+8Ifx9ttvV1lm8ODB0bx583j77bfjgAMOiObNm0fbtm1jxIgRUV5eXmXZ2267LXr37h0tWrSIli1bRs+ePePyyy//yv0DAID6xCnIAABgLfCjH/0oOnfuHBdeeGGcdNJJse2220b79u0jIuLll1+OHXbYITp37hwjR46MZs2axR133BEHHHBA3H333XHggQdGRMTrr78e99xzTxxyyCGx4YYbxrx58+Kaa66J/v37x7///e/o1KlT9OjRI84777wYNWpUHH/88bHTTjtFRES/fv2q1ff5558fjRo1ihEjRsTy5cujUaNG8cgjj8Tee+8dvXv3jtGjR0dxcXFlMPH3v/89tttuu1Vur7y8PL773e/GpEmT4rDDDouTTz45Fi9eHBMnToyXXnopunXrFiml2G+//eLRRx+NY489Nnr16hV/+9vf4mc/+1m8/fbbcemll1bZ5iOPPBJ33HFHDB8+PNq0aRNlZWUxbdq0iIgYNmxYtG3bNkaNGlU5Aubmm2+Oo48+OgYOHBgXXXRRLF26NMaNGxc77rhj/POf/4yysrJV9j9u3LjYYostYr/99ouSkpL461//GsOGDYuKior48Y9/HBERl112WfzkJz+J5s2bx1lnnRURUflcr8xNN90UQ4YMiW233TbGjBkT8+bNi8svvzyeeuqp+Oc//1llxFR5eXkMHDgwtt9++7j44ovj4Ycfjt/85jfRrVu3OPHEEyMiYuLEiXH44YfH7rvvHhdddFFERLzyyivx1FNPxcknn7zKPgAAoN5JAADAWuHRRx9NEZHuvPPOKtN333331LNnz7Rs2bLKaRUVFalfv35pk002qZy2bNmyVF5eXmXdWbNmpdLS0nTeeedVTnv22WdTRKTx48ev0EPXrl3T0UcfvcL0/v37p/79+6/Q60YbbZSWLl1apa9NNtkkDRw4MFVUVFROX7p0adpwww3THnvssdrH4MYbb0wRkS655JIV5n2+vXvuuSdFRPrlL39ZZf7BBx+cioqK0n/+85/KaRGRiouL08svv1xl2fHjx6eISDvuuGP69NNPK6cvXrw4tW7dOg0dOrTK8nPnzk2tWrWqMn306NHpyz/ZvvhYfG7gwIFpo402qjJtiy22qPJ4fu7zx/XRRx9NKaX08ccfp3bt2qUtt9wyffTRR5XL3XfffSki0qhRoyqnHX300SkiqjzXKaW0zTbbpN69e1feP/nkk1PLli2r7DcAAKyNnIIMAADWYvPnz49HHnkkvv/978fixYvj/fffj/fffz8++OCDGDhwYLz22muVp6IqLS2tvHZIeXl5fPDBB9G8efPYbLPNYurUqTXS39FHHx1NmjSpvD9t2rR47bXX4gc/+EF88MEHlf0uWbIkdt9993jiiSdWe52Yu+++O9q0aRM/+clPVphXVFQUEREPPPBANGjQIE466aQq80877bRIKcWDDz5YZXr//v1j8803X2m9oUOHRoMGDSrvT5w4MRYsWBCHH354Ze/vv/9+NGjQILbffvt49NFHV/t4fPGxWLhwYbz//vvRv3//eP3112PhwoWrXXdlnnvuuXj33Xdj2LBh0bhx48rpgwYNiu7du8f999+/wjonnHBClfs77bRTvP7665X3W7duHUuWLImJEyd+7X4AAKA+cQoyAABYi/3nP/+JlFKcffbZcfbZZ690mXfffTc6d+4cFRUVcfnll8dVV10Vs2bNqnLdj/XWW69G+ttwww2r3H/ttdci4rNgZlUWLlwY66yzzkrnzZw5MzbbbLMoKVn1T6E33ngjOnXqFC1atKgyvUePHpXzV9fjmvS/2267rXT5li1brnJbERFPPfVUjB49OiZPnhxLly6tMm/hwoXRqlWr1a7/ZZ/vy2abbbbCvO7du8eTTz5ZZVrjxo2jbdu2Vaats8468X//93+V94cNGxZ33HFH7L333tG5c+fYc8894/vf/37stddeX6s3AACo6wQwAACwFvt8tMiIESNi4MCBK11m4403joiICy+8MM4+++w45phj4vzzz4911103iouL45RTTlntqJMv+nyUyZeVl5dXGSnyuS+O+Phiv7/+9a+jV69eK91W8+bN16iXXL7c4+rmfd7/zTffHB06dFhh+dUFQzNnzozdd989unfvHpdcckl06dIlGjVqFA888EBceumla/wcfBMre46+rF27djFt2rT429/+Fg8++GA8+OCDMX78+DjqqKPid7/7XY33CAAA3xYCGAAAWItttNFGERHRsGHDGDBgwGqXveuuu2LXXXeNG264ocr0BQsWRJs2bSrvrypkifhstMSCBQtWmP7GG29U9rI63bp1i4jPRop8Vb+rWv+ZZ56JTz75JBo2bLjSZbp27RoPP/xwLF68uMoomOnTp1fOr67P+2/Xrt3X7v+vf/1rLF++PO69997YYIMNKqev7LRlq3sOvujzfZkxY8YKo3JmzJhR7X1t1KhR7LvvvrHvvvtGRUVFDBs2LK655po4++yzKwM9AACo71wDBgAA1mLt2rWLXXbZJa655pp45513Vpj/3nvvVf67QYMGkVKqMv/OO++svEbM55o1axYRsdKgpVu3bvGPf/wjPv7448pp9913X7z11ltr1G/v3r2jW7ducfHFF8eHH3642n5X5qCDDor3338/rrzyyhXmfb5v++yzT5SXl6+wzKWXXhpFRUWx9957r1GvKzNw4MBo2bJlXHjhhfHJJ598rf4/H33yxedg4cKFMX78+BWWbdas2Uof/y/r06dPtGvXLq6++upYvnx55fQHH3wwXnnllRg0aNBXbuPLPvjggyr3i4uLY6uttoqIqFIDAADqOyNgAABgLffb3/42dtxxx+jZs2cMHTo0Ntpoo5g3b15Mnjw5/vvf/8a//vWviIj47ne/G+edd14MGTIk+vXrFy+++GLccsstK4xc6datW7Ru3TquvvrqaNGiRTRr1iy233772HDDDeO4446Lu+66K/baa6/4/ve/HzNnzow//OEPlSNDvkpxcXFcf/31sffee8cWW2wRQ4YMic6dO8fbb78djz76aLRs2TL++te/rnL9o446Kn7/+9/HqaeeGlOmTImddtoplixZEg8//HAMGzYs9t9//9h3331j1113jbPOOitmz54dW2+9dTz00EPxl7/8JU455ZQ17nVlWrZsGePGjYsjjzwyvvOd78Rhhx0Wbdu2jTfffDPuv//+2GGHHVYaDkVE7LnnnpUjS370ox/Fhx9+GNddd120a9duhfCsd+/eMW7cuPjlL38ZG2+8cbRr126l151p2LBhXHTRRTFkyJDo379/HH744TFv3ry4/PLLo6ysLH76059+7X087rjjYv78+bHbbrvF+uuvH2+88UZcccUV0atXr8rr6AAAwNpAAAMAAGu5zTffPJ577rk499xz46abbooPPvgg2rVrF9tss02MGjWqcrkzzzwzlixZErfeemvcfvvt8Z3vfCfuv//+GDlyZJXtNWzYMH73u9/FGWec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2rRp3HjjjStd/vLLL4+99torfvazn0WPHj3i/PPPj+985ztx5ZVX1liPAAAAAAAA1Qpgdtttt7j33nsjImLIkCHx05/+NPbYY4849NBD48ADD8za4Oc+/vjjeP7552PAgAGV04qLi2PAgAExefLkla4zefLkKstHRAwcOHCVy0dELF++PBYtWlTlBgAAAAAA8HUUpWoMWamoqIiKioooKSmJiIjbbrstnn766dhkk03iRz/6UTRq1Ch7o3PmzInOnTvH008/HX379q2cfvrpp8fjjz8ezzzzzArrNGrUKH73u9/F4YcfXjntqquuinPPPTfmzZu30jrnnHNOnHvuuStMX7hwYbRs2TLDntQfZSPvr7Ftzx47qMa2/XXU1D5+W/avEGr7Ma3t16nj4pv5NjymhXgO6/txUQj1/TH1Oq079VZXs7b5XsPXtTa8t1H3eZ3ydfkelb/m2nBcrA2PaX15nX5bjgvqv0WLFkWrVq2+Mjcoqc7Gi4uLo7j4/w+eOeyww+Kwww6rzqa+dc4444w49dRTK+8vWrQounTpUsCOAAAAAACAumaNA5gXXnhhjTe61VZbVauZ1WnTpk00aNBghZEr8+bNiw4dOqx0nQ4dOnyt5SMiSktLo7S09Js3DAAAAAAArLXWOIDp1atXFBUVxVedsayoqCjKy8u/cWNf1qhRo+jdu3dMmjQpDjjggIj47FRokyZNiuHDh690nb59+8akSZPilFNOqZw2ceLEKqcwAwAAAAAAyG2NA5hZs2bVZB9r5NRTT42jjz46+vTpE9ttt11cdtllsWTJkhgyZEhERBx11FHRuXPnGDNmTEREnHzyydG/f//4zW9+E4MGDYrbbrstnnvuubj22msLuRsAAAAAAEA9t8YBTNeuXWuyjzVy6KGHxnvvvRejRo2KuXPnRq9evWLChAnRvn37iIh48803q1ybpl+/fnHrrbfGL37xizjzzDNjk002iXvuuSe23HLLQu0CAAAAAACwFljjAObLbr755rj66qtj1qxZMXny5OjatWtcdtllseGGG8b++++fs8cqhg8fvspTjj322GMrTDvkkEPikEMOqbF+AAAAAAAAvqz4qxdZ0bhx4+LUU0+NffbZJxYsWFB5zZfWrVvHZZddlrM/AAAAAACAOqdaAcwVV1wR1113XZx11lnRoEGDyul9+vSJF198MVtz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1Kkxa9asyvs333xz7LDDDtGlS5fYcccd47bbbste85133olRo0bFbrvtFj169Igtttgi9t1337jhhhuivLw8e72v8tZbb8UxxxxTY9ufM2dOjB49Oo444ogYMWJETJ8+PXuNK6+8Mo466qjK5+vmm2+OzTffPLp37x5nnnlm1h8S++67b9x88821+qX2q9TEc/j+++/Hr371qzjwwAOjb9++0bdv3zjwwAPj17/+dY186a3N5zAi4ic/+Un8/e9/z7rNr/LRRx/Fk08+Gf/+979XmLds2bL4/e9/n63W8uXLY8SIEbHzzjvHRRddFBERv/zlL6N58+bRokWL+MEPfhCLFi3KVu9ztf3+9q9//SuOOuqo2GijjaJJkybRrFmz6NmzZ5x99tk1sn+rUxPHYW0fFxERr7zySowfP77yvXr69Olx4oknxjHHHBOPPPJI9nors9lmm8Vrr71W43WWLFkS48ePj7POOiuuvPLK+OCDD7LXePfdd6vcnzZtWhx99NGxww47xMEHHxyPPfZY9ppfVBv7WJufF4X43hZR+5+Jtfl58WW18ZqZMGFCvPjiixERUVFREeeff3507tw5SktLY/3114+xY8dm/5H9zjvvxB/+8Id44IEH4uOPP64yb8mSJXHeeedlrbcypaWl8corr9TItgtxbEycODFGjx5d+dnwxBNPxN577x277bZbjB8/Pnu91cn9GdyzZ884//zz46233sq2zTVRm6/TQh2Htf07uL7/plmZPffcM2bPnl0j277pppti8uTJEfHZ59Gxxx4bzZo1i0033TSaN28eJ5xwQvYg5v7774+dd945mjVrFp06dYoOHTpE69at48gjj4w333wza62IiH//+98xbNiw2GabbaJjx47RsWPH2GabbWLYsGEr/Vz+pmr7u/f8+fPj4IMPjg022CBOPPHEKC8vj+OOOy46duwYnTt3jn79+sU777yTve6X1eRn4vXXXx9HH3105WfR7bffHj169IiNNtooRo8eXSM16/vrZnVq+m+Kn6vJ1wwrkSCjrbbaKk2cODGllNJ1112XmjRpkk466aQ0bty4dMopp6TmzZunG264IVu9Z599NrVq1Sr17t077bjjjqlBgwbpyCOPTIceemhq3bp16tevX1q0aFG2emti2rRpqbi4ONv2mjRpkt59992UUkovv/xyatWqVdp4443TIYcckrp3756aNm2a/vWvf2Wrd/7556cWLVqkgw46KHXo0CGNHTs2rbfeeumXv/xluvDCC1Pbtm3TqFGjstUrKipKJSUlqVWrVumEE05Izz33XLZtV1fu53DKlClpnXXWSZ07d05HH310Ov3009Ppp5+ejj766LT++uunddddNz377LPZ6tX2c5jSZ89jcXFx2mSTTdLYsWPTO++8k3X7XzZjxozUtWvXyro777xzmjNnTuX8uXPnZn0Of/rTn6ZOnTql0047LfXo0SMNGzYsbbDBBukPf/hDuvXWW9PGG2+cfvKTn2Srl1Ltv79NmDAhNWnSJB100EHphz/8YWratGkaPnx4+vnPf5423njj1K1btxp/Xr8o93FYiOPiwQcfTI0aNUrrrrtuaty4cXrwwQdT27Zt04ABA9Juu+2WGjRokCZNmpSt3oEHHrjSW3FxcRowYEDl/Vx69OiRPvjgg5RSSm+++WYqKytLrVq1Sttuu21ad911U7t27dLrr7+erV5KKRUXF6d58+allFJ66qmnUsOGDVP//v3Tz372s7THHnukkpKS9Pjjj2erV9v7WNufF7X9vS2l2t/H2v68KMRxsdlmm6UnnngipZTShRdemNZbb710ySWXpAcffDBddtllqX379mns2LHZ6k2ZMiW1bt06tWzZMjVp0iRtvPHG6aWXXqqcXxOfwSu7FRcXp6OOOqryfk61fWzcfPPNqaSkJH3nO99JzZs3T+PHj0+tW7dOxx13XDrmmGNSo0aN0p133pmt3lfJ/RlcVFSU1ltvvdSgQYM0cODAdNddd6VPPvkk2/ZXprZfp7V9HBbid3B9/02zzTbbrPRWVFSUevToUXk/pw033DD94x//SCmlNGLEiFRWVpb+9Kc/pVdeeSXdc889adNNN00/+9nPstX7/e9/n1q0aJFOO+20dNZZZ6UOHTqkkSNHpnHjxqX+/funNm3apFdffTVbvQceeCA1atQo/c///E8aPXp0uuqqq9JVV12VRo8enfr165dKS0vThAkTstWr7e/eKaV0zDHHpC233DJdccUVqX///mn//fdPW221VXryySfT008/nbbddtt01FFHZatX25+Jl156aWrWrFn63ve+lzp27Jh++ctfVh6H5557bmrZsmW65pprstVLae143axO7s/gQnyPYkUCGLJq0qRJmj17dkrpsy8w1157bZX5t9xyS9p8882z1dthhx3SOeecU3n/5ptvTttvv31KKaX58+enXr16pZNOOilbvZRS+stf/rLa26WXXpr9B8vnf2zaf//907777lv5g6W8vDwddthh6bvf/W62et26dUt33313SumzN/4GDRqkP/zhD5Xz//SnP6WNN944W72ioqL08ssvp0svvTT17NkzFRcXp6233jpdccUVaf78+dnqfFFtP4fbb799Ov7441NFRcUK8yoqKtLxxx+f/ud//idbvdp+DlP67Hl8+OGH08knn5zatGmTGjZsmPbbb7/017/+NZWXl2etlVJKBxxwQBo0aFB677330muvvZYGDRqUNtxww/TGG2+klPL/qO7SpUvlH2JmzpyZiouL0z333FM5/6GHHkpdu3bNVi+l2n9/69WrVxo3blzl/Yceeih17949pZTSxx9/nHbfffc0ePDgbPVq+zgsxHHRt2/fdNZZZ6WUUvrjH/+Y1llnnXTmmWdWzh85cmTaY489stUrKipK/fv3T4MHD65yKy4uTgcccEDl/Zz1Pv98OuKII1K/fv3SggULUkopLV68OA0YMCAdfvjh2ep9ueYee+yRjjnmmCrzTz755LTbbrvVSL3a2Mfa/ryo7e9tKdX+Ptb250UhjovS0tLK/dlyyy3THXfcUWX+fffdl/X9bcCAAWnIkCGpvLw8LVq0KJ144olpvfXWS1OnTk0p1cxj2qtXr7TLLrtUuRUVFaVtt9027bLLLmnXXXfNVi+l2j82evXqlS6//PKUUkoPP/xwatKkSbrkkksq51988cVphx12yFavEL9n3n777fTnP/857bvvvqmkpCS1bds2nXbaaenf//53tjpfVNuv09o+DgvxO7i+/6YpKSlJe+21VzrnnHMqb6NHj07FxcVp2LBhldNy+uLrZtNNN00PPvhglfmPP/542mCDDbLV6969e7rtttsq7z/77LNp/fXXr3xODz300Kz/WWerrbZKZ5999irnjx49OvXs2TNbvdr+7p1SSh07dkxPPfVUSumz95WioqL00EMPVc5/8sknU+fOnbPVq+3PxO7du6dbbrklpZTS1KlTU0lJSbr++usr519//fWpd+/e2eqlVP9fN4X4DK7t71GsSABDVuutt17lCIZ27dqladOmVZn/n//8JzVp0iRbvSZNmqSZM2dW3i8vL08NGzZMc+fOTSl99gfETp06ZauX0v//n/5FRUWrvNXUD/kuXbpU/s+qz02dOjV17NgxW70mTZpUfglMKaWGDRtW+d9is2fPTk2bNs1W74v7l1JKzzzzTDr++ONTq1atUpMmTdLhhx+e/X8b1PZz2Lhx4/TKK6+scv4rr7ySGjdunK1ebT+HKVV9Hj/++ON0++23p4EDB6YGDRqkTp06pTPPPDO99tpr2eq1a9cuvfDCC5X3Kyoq0gknnJA22GCDNHPmzOw/qr/qMZ01a1b2x7S2398aN26cZs2aVXm/oqIiNWzYsPJ/ij/xxBOpbdu22erV9nFYiOOiZcuWla/78vLyVFJSUvmHn5RSevHFF1P79u2z1fvjH/+Y1l9//XTjjTdWmV5SUpJefvnlbHU+98XjfqONNqryYzOlz0aodOnSpcZqduzYMU2ePLnK/Jdeeim1adOmRurVxj7W9udFbX9vS6n297G2Py8KcVx88Vho3759lfeZlFJ69dVXsz6P66yzTpoxY0aVaWPGjEnrrLNOmjJlSvbHdMyYMWnDDTdc4ftgTb23pVT7x0azZs2qjIxq2LBhlRHur7zySlpvvfWy1Svk75mUUpozZ0668MIL0yabbJKKi4tT3759s4+2q+3XaW0fh4X4HVzff9M8+eSTqVu3bmnUqFFV/gNZTb7XdO3aNT3yyCMppZQ6d+68wgiif//736lZs2bZ6jVp0qTK9/2UPtu/t99+O6X02W/x1q1bZ6vXuHHjNH369FXOnz59etbXTG1/904ppaZNm1YG9il99jp98cUXK++//vrrWZ/D2v5M/PJxWFpaWuU4fO2117K+ZlKq/6+b2v4MLsT3KFbkGjBktffee8e4ceMiIqJ///5x1113VZl/xx13xMYbb5ytXrt27aqcT3PevHnx6aefRsuWLSMiYpNNNon58+dnqxcR0bFjx/jTn/4UFRUVK71NnTo1a72ioqIoKiqKiIji4uJo1apVlfmtW7eO//u//8tWr0OHDpXn1HzttdeivLy8yjk2X3755WjXrl22el+23XbbxTXXXBNz5syJq666Kt56663YY489stao7eewQ4cOMWXKlFXOnzJlSrRv3z5rvUI+hw0bNozvf//7MWHChHj99ddj6NChccstt8Rmm22WrcZHH30UJSUllfeLiopi3Lhxse+++0b//v3j1VdfzVYrImKDDTaoPD/zs88+G0VFRVWe02eeeSY6d+6ctWZtv7917tw5ZsyYUXl/5syZUVFREeutt15ERKy//vrx4YcfZqtXiOOwEMfFF9+/GzduXOU9vEWLFrFw4cJstQ477LD4+9//HjfccEMcdNBBWT8bVuXz/Vu2bFl07NixyrzOnTvXyPngFy9eHIsWLYrGjRtHaWlplXmNGzeOpUuXZq1Xm/tY258Xtf29LaL297G2Py8+rxFRe8fFgQceGBdccEGUl5fH/vvvH1dddVWVa01cccUV0atXr6w1ly1bVuX+yJEj48wzz4w999wznn766ay1Ro4cGbfffnuceOKJMWLEiPjkk0+ybn9lavvYaNiwYZVrlJSWlkbz5s2r3M95vcRC/J75cv0zzjgjXn311Zg0aVJ069YtTjrppKw1I2r3dVrbx2EhfgfX9980O+ywQzz//PPx6quvRr9+/WLmzJnZtr0qRxxxRJx11lmxYMGCOPLII+O8886r/L69dOnSOOecc2KHHXbIVq+srCyee+65yvtTp06N4uLiyudt3XXXzfoeW1ZWFvfff/8q599///3RtWvXbPUiave7d8Rnx9p9990XEREPPvhgNG7cOB566KHK+X/7299iww03zFavtj8TmzZtGkuWLKm837Zt2yqfTxGR/VpM9f11U9ufwYX4HsWKSr56EVhzF110Ueywww7Rv3//6NOnT/zmN7+Jxx57LHr06BEzZsyIf/zjH/HnP/85W70DDjggTjjhhPj1r38dpaWlcf7550f//v2jSZMmERExY8aM7H8U7d27dzz//POx//77r3R+UVFR1gssppRi0003jaKiovjwww/jhRdeiK222qpy/n/+85/o0KFDtnpHHHFEHHXUUbH//vvHpEmT4vTTT48RI0bEBx98EEVFRXHBBRfEwQcfnK3eqjRt2jQGDx4cgwcPzv7Hkdp+DkeMGBHHH398PP/887H77rtXfsGdN29eTJo0Ka677rq4+OKLs9X7tjyHEZ8FF+ecc06MHj06Hn744Wzb7d69ezz33HPRo0ePKtOvvPLKiIjYb7/9stWKiDjhhBNi8ODBcf3118fzzz8fF198cZx55pkxffr0KC4ujnHjxsVpp52WtWZtv78dddRRcdxxx8VZZ50VpaWlcckll8R+++0XjRo1iojPLnae88dDbR+HhTguysrK4rXXXotu3bpFRMTkyZNjgw02qJz/5ptvrvDH2Rw1n3jiiTj33HNj6623juuuu26FP3zltPvuu0dJSUksWrQoZsyYEVtuuWXlvDfeeKMywMtp0003jYjPPh+fe+652GabbSrnvfzyy9GpU6es9WpzH2v786K2v7dF1P4+1vbnRUTtHxcXXnhhDBgwILp37x59+/aNO++8MyZOnBibbrpp/Oc//4n58+fH3/72t2z1ttxyy3j66aerfB+N+Oy5raioiMMPPzxbrc9tu+228fzzz8ePf/zj6NOnT9xyyy01+t5W28fGxhtvHNOnT6/8zypvv/12tGjRonL+zJkzY/31189WrxC/Z1Zll112iV122SUWLVqUrV5E7b9Oa/s4LMTv4LXhN02rVq3ij3/8Y4wfPz523HHHOPfcc2v0vWb06NHx0ksvxUYbbRR9+vSJv//979G+ffvo3LlzzJkzJ9Zbb72YOHFitno//vGP47jjjotnn302GjduHNdff30ceeSR0aDB/2vv3qOjrs79j3++k5shCbeYAEYCoYZblxcqLYJobBdaezmeHjhLOIgQy1Fq7b2xtlZrtBC0LVZtK4q2aFGglnoUrZfVC1EB4aAkEFGLpNDQiigqYGpPDJPn94eL/AgkgZA9+/nuJ5/XWvyRDOY9e8/ee74yySQNwIffVHbwOsuFm266CdOnT0d1dTUmTZp0xJp56qmnsHTpUmc9jWvvq6++GrNmzcJtt92GnTt34oEHHsDXv/51rF+/HolEAg8//DBuvfVWp02fz4kjR47E5s2bW6+jdu7c2eb2V199FUOHDnXatL5ufD8HA/6vo6gdWj96Q3a9++67cs0118jo0aPlhBNOkMzMTBkyZIhMnz7d6S/lE/nwvbQvvvhiSU9PlyiKZMKECW1+fP/pp58+4v13u+vZZ5894r1ZD9XY2CjV1dXOevfdd1+bP4e/3cpNN93k9BdmJZNJmTdvnnz+85+XqqoqaWlpkWXLlsngwYMlPz9fysvLpbGx0VnvvPPOk3fffdfZ1zsWvh9DEZHly5fLuHHjWtdqFEWSnp4u48aNk9/85jdOW74fQxGRoUOHyp49e5x+zc5UVVXJZz7zmQ5vv/LKKyWKIqfNBx98UL7yla/I0qVLRURk1apVcs4558iZZ54plZWVzn/Xje/zrbm5Wb7zne/ISSedJPn5+TJ9+nR56623Wm9fv369019u7nsfauyLhQsXyuOPP97h7d/73vdk9uzZTpuHeu6556SkpEQSiURKfrz80PdIr6ysPOKXYVZUVMi0adOcNqurq9v8OfztZW677Tb50Y9+5KynMUafzxcifq/bDvI5Rt/PFxprRuTDt/9cuHChfPazn5WRI0fK8OHDpaysTK699lrZuXOn09Y999wjM2bM6PD2m2++WYYOHeq0eahly5bJgAEDUna2HeRzbzz88MOdPsfOnz9frrvuOmc938/B5eXlzn8h/NForFOf+1Dj/4NF7P8/zaG2bt0qH//4x1t/Z2kqPfnkk/LlL39ZLrzwQrngggtk1qxZsmjRopSM784775QJEybImWeeKddee63861//ar1t69atnb7N3PFYs2aNTJ06VYqLiyUzM1MyMzOluLhYpk6dKmvXrnXa0rr2Xr16tfzkJz9p/V0wW7ZskUsvvVSmTJki9913n/PeoVL9nLh69Wqpqanp8PZf/OIX8rOf/cx51/K60fj3qEP5uo6itiIRxy+rESn4v//7Pxw4cOCIH4Ukipvm5mbs2bMHAHDiiSciIyND+R5R3PF8o+5obGxEfX09Ro0a1frTTD3JsmXLcNFFFyEnJ0f7rnRZT3i+6AljpNT4+9//3vpd+Hx+tCfks9s3revEnnJ+t7S04L333kPv3r2P+G5xjXXqu8m96F4q5vTgc+KkSZPUHyuumTDs3LkTGzdujMWa6Sn4AgwRUQ9RXV2NcePGtb41ARGRdb1790ZtbS2GDRumfVfoKHw/R1nvNTU14e9//ztOPvnkI35XkoWeFp+PY0+Z0/bw7D5+vN73R2Od+m5a2Ytx2hdW5rQjqRpfT3hOjNM6JfcS2neA7Ln33nsxa9YsLF68GADwm9/8BqNGjcKwYcNwww03OG29+eabbT6ura3FrFmzcPbZZ+M///M/UV1d7bR30KZNmzB37lzceeedrd/5c9D+/fvxxS9+MSXd9rzyyitOn9y05rQjrsd3kM91CsRjzVxwwQXYsWNHyr6+7zHGYU4PStU6tTzGU089FT/84Q+PeB/hVNKYT99nTWdSsU7jNL72uPg+I5/rxve+iNNzfqqfoyz37rvvPjz//PMAPvxu+NmzZyMnJwfDhw9Hbm4uvvSlL6GpqSnYHhCfsyZVj6PvOY3T3m+Pj+8RTdW1m3YvlWeNxrqJy95vj8b3MvtuprpnYV90VWjXpl3lYnwa1xlxmNNUrdO4P+f3GEpvfUZG/fSnP5WcnByZPHmyDBo0SObOnSv5+fkyd+5cufHGG6V3795y9913O+slEgnZvXu3iHz4HpEZGRlSVlYmV199tZx//vmSnp7u9HcWiHz4frqZmZny0Y9+VIqLiyU/P1/+/Oc/t97+xhtvSCKRcNrsTG1trdOexpx2xvX4RPyvU99rZsyYMe3+iaJIRo0a1fqxS77HaH0fitgfYxRFkp+fL2lpafLpT39aVqxYIc3Nzc6+/uE05tP3WXM0rh/DuI2vPbm5uVJfX3/c/73vdeN7X2g85/t+jrLeExEpKSmRdevWiciHv2Nm6NCh8vDDD8srr7wijzzyiAwfPlyuvvrqYHsaZ43vx9H3nMbtev9w3T27j0Uqrt189jTOGt/rJu7XGT7WqXYz1T0L+6KrQrs27SoXa8b3c6L1f6+J+3N+T5Gu/QIQ2XL33Xdj0aJFmD59OmpqavCJT3wCd911F2bPng0AKCoqwsKFC3HFFVc46ckhr65XVlbi0ksvxS9/+cvWz33jG9/AjTfeiD/96U9Oegc7FRUVmDdvHkQEP/7xj3HRRRfht7/9LS688EJnnYO+9a1vdXr7W2+95bTne059jw/wv059r5m6ujpMmjQJZ511VuvnRASbNm3CJz/5SRQWFjpv+h6j9X0I9Iwxbt68Gf/7v/+LX/3qV5g2bRr69euHmTNnYvbs2Rg1apTTlu/5BPyfNb4fQ9/j06CxbnzuC43rKN/PUdZ7APD6669j0KBBAICVK1di4cKFretz5MiR6NevHy699FL86Ec/CrKncdb4fhx9z6nG3vfN93Oi757GWeN73fSE6wzresK+8E3j2tQ338+J1v+9pic85wfB44s91ANkZ2fL3/72t9aPs7Ky5KWXXmr9+LXXXpO+ffs660VR1PpK7qBBg+T5559vc/tLL70kJ554orOeiEjv3r1l27ZtbT734IMPSk5Ojjz22GPOXx1PJBLysY99TM4777x2/4wdO9b5d9/6nFPf4xPxv059r5nVq1fLRz7yEfnBD34gyWSy9fPp6emyZcsWZ51D+R6j9X0oYn+Mh541IiKvv/66VFVVSWlpqSQSCRk/frz88pe/dNbzPZ8i/s8a34+h7/Edj+5+F57vdeN7X2hcR/l+jrLeExEZMmRI63dqFhUVyYYNG9rc/vLLL0tOTk6wPY2zxvfj6HtONfZ+V7j4Dmrfz4m+expnje91E/frDP4EzNH1hH3RVaFdm3aVizXq+znR+r/XxP05v6fgCzDkVH5+vrz88sutH5988smyY8eO1o9fe+01yc3NddaLoki2bdsm+/btk5KSEtm4cWOb27dt2ya9evVy1hMRKSgokBdeeOGIzy9btkx69eolCxcudHo4Dx8+XJYsWdLh7TU1Nc7/8cfnnPoen4j/dep7zYiI7N27V6ZNmybjxo1rvZhI5YWn7zFa34ci9sd46I9CH27VqlUyY8YMpxfWGvvQ91nj+zH0Pb7j0d3/CfS9bnzvC43rKBH/z1HWe9dee62MHz9e3n33Xfnud78r//Zv/ybvvfeeiIj885//lIsvvlguuOCCYHtaZ43Px9H3nGrt/WPl4h/wfD8nalwr+j5rfK+buF9n8AWYo+sJ+6KrQrs27SoXa9T3c6L1f6+J+3N+T5HQ/gkcsmXkyJHYvHlz68c7d+7EkCFDWj9+9dVXMXToUKfN4cOHo1+/ftixYwdeeOGFNrdt2bIFJ510ktPeGWecgVWrVh3x+WnTpuHee+/F1772Nae9sWPH4sUXX+zw9iiKnP9yPJ9zqjE+3+vU95oBgD59+mDZsmWYM2cOJk6ciEWLFiGKIuedg3yPsSfsQ+tj7OxrnXfeeViyZAlef/11Zz2Nfej7rPH9GGo853fVkCFDkJGRcdz/ve9143tfAP6vowD/z1HWezfccAMKCgowbNgwvPjii/jDH/6AAQMGYPjw4SgsLMS6devws5/9LNie1lnj83H0PaeAzt4/Vt09uwH/z4ka14q+zxrA77qJ+3WGi3Ua92Z3ez1lX3RFaNemXeVijfp+TuwJ/14T5+f8noK/A4acuuWWW5CTk9Ph7Q0NDZgzZ46z3uGH5MH3iTxo+/btzt8T9sorr8Szzz7b7m3/9V//BRHBPffc46y3YMECNDU1dXj76aefjpaWFmc933Pqe3yA/3Xqe80c6rLLLsPEiRNxySWX4MCBAylpAP7HaH0fAvbHOGvWLGRnZ3f6d3r37u2sp7EPfZ81vh9D3+M7Hi+99FK3/nvf68b3vtC4jjqUr+co673MzEw8+uijeOqpp/DYY48hLS0NLS0tGDRoEM4++2xMnz69070a9572WePjcfQ9p9p7/2i6e3YD/p8TNa4VD/J11vheN9p7/2hcrNO4N7vb6wn7oqtCuzbtKhdr1PdzovV/r4n7c36P4fknbojaWLp0qTQ2NprtaTTZC7+Zil4ymZS9e/dKS0uLl97RWJjTOPU0muyF37TYq62tVX3bBYtz6qPn+znKeu9orKwb3704PY7Wetpnt4iNOY3TGtVoWlynvpvae9HivrA4p4fSHp+IjbNGe51q9noKvgBDqvLy8ry+h6nvnkaTvfCb1nsaTes9jSZ74Tct9mprayWKopQ2OmNxTjV7Gk3rPY2m9Z5G01pP++wWsTen2j2NpsV16rupvRetrRkR+3OqPT4Rm+umJ/V6Cr4FGakSx+/3GbeeRpO98JvWexpN6z2NJnvhN0PsTZ48udPb9+3bp/o+3yHOaZx7Gk3rPY2m9Z5GM7Re3M9uILw5jXtPoxniOvXdjPteDG3NAPbnNO7jA8JcN+z1PHwBhoiIiIiC8Nhjj+H888/HgAED2r09mUx6vkdERHQ0PLspBBrr1HeTe9E963NqfXxEvvAFGCIiIiIKwqhRozBlyhTMnj273dtra2vx+OOPe75XRETUGZ7dFAKNdeq7yb3onvU5tT4+Il8S2neAiIiIiOhYnHnmmdi4cWOHt2dlZaG4uNjjPSIioqPh2U0h0Finvpvci+5Zn1Pr4yPyhT8BQ0RERERBuOuuuzp9q4NRo0Zh+/btHu8REREdDc9uCoHGOvXd5F50z/qcWh8fkS/8CRhSNWTIEGRkZJjtaTTZC79pvafRtN7TaLIXfjPEXlZWFnr16nXMf//mm2/G3r17u9XsihDnNM49jab1nkbTek+jGVov7mc3EN6cxr2n0Qxxnfpuxn0vhrZmAPtzGvfxAWGuG/Z6nkhERPtOEBERERG51rt3b9TW1mLYsGHad4WIiI4Rz24KgcY69d3kXnTP+pxaHx/R8eJPwJBXmzZtQlpamtmeRpO98JvWexpN6z2NJnvhN6332pPq7zOyPqfcF+H3NJrWexpN673D+fgeUetzyn2Rehrfy+y7yeso96zN6eF4frNH7eMLMOSdtYuGODTZC79pvafRtN7TaLIXftN6T4P1OeW+CL+n0bTe02ha72mwPqfcFxQCrhn3OEb24t7ridK17wDZMnny5E5v37dvH6IoCran0WSPj2HcexpN6z2NJnt8DOPe02B9Trkvwu9pNK33NJrWexqszyn3hY11ah3XjHscY/jrxnqP2scXYMipxx57DOeffz4GDBjQ7u3JZDLonkaTPT6Gce9pNK33NJrs8TGMe0+D9Tnlvgi/p9G03tNoWu9psD6n3Bc21ql1XDPucYzhrxvrPeqAEDl06qmnyr333tvh7TU1NZJIJILtaTTZ42MY955G03pPo8keH8O4945Hbm6u1NfXH/d/b31OuS/C72k0rfc0mtZ7XdXds1vE/pxyX9hYp3Fv8jrKvdDmtKt4frNH7ePvgCGnzjzzTGzcuLHD27OyslBcXBxsT6PJHh/DuPc0mtZ7Gk32+BjGvXc8zjnnHGRnZx/3f299Trkvwu9pNK33NJrWe13V3bMbsD+n3Bc21mncm7yOci+0Oe0qnt/sUfsiEf6mHXKnqakJyWQSvXr1MtnTaLIXftN6T6NpvafRZC/8pvXe4err67F48WLU19fj9ttvR2FhIZ588kkUFxfjox/9qJOG9Tnlvgi/p9G03tNoWu8dysfZDdifU+6L1PK1TjWbvI5yz+KcHornN3t0/PgTMORUVlZWlzb1zTffjL179wbT02iy57an0bTe02ha72k02XPb02ha7x3qmWeewamnnor169fj4YcfRmNjIwBg06ZNuOGGG5w0APtzyn0Rfk+jab2n0bTeO8jX2Q3Yn1PuC/e9g3yuU60mr6Pc9A5ldU4P4vnNHnWT9nugUc+Wl5fn9T1Mffc0muyF37Te02ha72k02Qu/GXLvrLPOkgULFohI2/eaXr9+vRQVFTlpHI+Q5zSOPY2m9Z5G03pPoxlqL65nt0i4cxrXnkYz5HXquxnXvRjqmhGxP6dxHZ9I2OuGvZ6DPwFDqsTzO+D57mk02Qu/ab2n0bTe02iyF34z5F5dXR3+4z/+44jPFxYWYs+ePc46XRXynMaxp9G03tNoWu9pNEPtxfXsBsKd07j2NJohr1PfzbjuxVDXDGB/TuM6PiDsdcNez8EXYIiIiIgoKH379sWuXbuO+HxNTQ2KiooU7hERER0Nz24KgcY69d3kXnTP+pxaHx9RqvEFGCIiIiIKyrRp03DNNdfgjTfeQBRFaGlpwZo1a1BRUYGZM2dq3z0iImoHz24KgcY69d3kXnTP+pxaHx9RqvEFGCIiIiIKSlVVFUaOHInBgwejsbERo0ePxrnnnosJEybguuuu0757RETUDp7dFAKNdeq7yb3onvU5tT4+olRL174DRERERETHSkTwxhtv4I477sAPfvAD1NXVobGxEWPGjEFpaan23SMionbw7KYQaKxT303uRfesz6n18RH5wBdgSNU555yD7Oxssz2NJnvhN633NJrWexpN9sJvhtoTEZxyyinYsmULSktLMXjwYAf3zo1Q5zSuPY2m9Z5G03pPoxliL85nNxDmnMa5p9EMdZ36bsZ5L4a4ZgD7cxrn8QHhrhv2ehghSpFt27bJ97//fZk2bZrs3r1bRESeeOIJeemll0z0NJrshd+03tNoWu9pNNkLv2m9N3r0aHn++edT8rU7Yn1OuS/C72k0rfc0mpZ7Gme3iO051ehpNK2vU99NXke5Z31OeX6zR93DF2AoJaqrqyU7O1smTZokmZmZUl9fLyIi8+fPlylTpgTf02iy5571MXJOw+9pNNlzz/oYNeZ05cqVMnHiRKmrq0vJ1z+c9Tnlvgi/p9G03tNoWu/5PrtF7M8p94WNdeq7yeso96zPKc9v9qh7+AIMpcRZZ50lCxYsEBGR3Nzc1o29fv16KSoqCr6n0WTPPetj5JyG39Nosuee9TFqzGnfvn0lMzNTEomEnHDCCdKvX782f1yzPqfcF+H3NJrWexpN6z3fZ7eI/TnlvrCxTn03eR3lnvU55fnNHnUPfwcMpURdXR2WLl16xOcLCwuxZ8+e4HsaTfbcsz5Gzmn4PY0me+5ZH6PGnN52220p+bodsT6n3Bfh9zSa1nsaTes932c3YH9OuS9srFPfTV5HuWd9Tnl+s0fdwxdgKCX69u2LXbt2oaSkpM3na2pqUFRUFHxPo8mee9bHyDkNv6fRZM8962PUmNNZs2al5Ot2xPqccl+E39NoWu9pNK33fJ/dgP055b6wsU59N3kd5Z71OeX5zR51T0L7DpBN06ZNwzXXXIM33ngDURShpaUFa9asQUVFBWbOnBl8T6PJnnvWx8g5Db+n0WTPPetj1JjThoaGTv+4Zn1OuS/C72k0rfc0mtZ7vs9uwP6ccl/YWKe+m7yOcs/6nPL8Zo+6Sfs90MimpqYm+e///m9JT0+XKIokIyNDEomEzJgxQw4cOBB8T6PJnnvWx8g5Db+n0WTPPetj1JjTKIokkUh0+Mc163PKfRF+T6NpvafRtN7zfXaL2J9T7gsb69R3k9dR7lmfU57f7FH3RCIi2i8CkS0igp07d6KgoAB79uxBXV0dGhsbMWbMGJSWlgbf02iy5571MXJOw+9pNNlzz/oYNeYUADZt2tTm4+bmZtTU1ODWW2/FvHnzMHnyZGct63PKfRF+T6NpvafRtN4D/J7dgP055b6wsU41mryOcs/ynAI8v9mjbkvJyzrUoyWTScnIyJCtW7ea7Gk02Qu/ab2n0bTe02iyF37Teu9oHn/8cSkrK3P6Na3PKfdF+D2NpvWeRtN6rzOpOLtF7M8p94VfqVqncWryOso9C3PaGZ7f7NGx4e+AIecSiQRKS0vx9ttvm+xpNNkLv2m9p9G03tNoshd+03rvaEaMGIENGzY4/ZrW55T7IvyeRtN6T6NpvdeZVJzdgP055b7wK1XrNE5NXke5Z2FOO8Pzmz06RtqvAJFNK1eulIkTJ0pdXZ3JnkaTvfCb1nsaTes9jSZ74Tet90RE9u3b1+bP3r175ZVXXpGpU6fK6aef7rxnfU65L8LvaTSt9zSa1nu+z24R+3PKfeGexjr13eR1lHvW55TnN3vUPfwdMJQS/fr1w/vvv48DBw4gMzMT2dnZbW5/5513gu5pNNnjYxj3nkbTek+jyR4fw7j3gA+/iyuKojafExEMHjwYy5cvx/jx4532rM8p90X4PY2m9Z5G03rP99kN2J9T7gsb69R3k9dRvDbtKp7f7FH3pGvfAbLptttuM93TaLIXftN6T6NpvafRZC/8pvUeAKxatarNx4lEAgUFBTjllFOQnu7+8tb6nHJfhN/TaFrvaTSt93yf3YD9OeW+cE9jnfpu8jrKPetzyvObPeoe/gQMEREREQXl2WefxYQJE474H74DBw5g7dq1OPfcc5XuGRERdYRnN4VAY536bnIvumd9Tq2PjyjV+AIMpURDQ0OntxcXFwfd02iyx8cw7j2NpvWeRpM9PoZx7wFAWloadu3ahcLCwjaff/vtt1FYWIhkMum0Z31OuS/C72k0rfc0mtZ7vs9uwP6ccl/YWKe+m7yO4rVpV/H8Zo+6hy/AUEq09/6Qh3J9OPvuaTTZ42MY955G03pPo8keH8O49w42d+/ejYKCgjaf37p1K8aOHYv9+/c771meU+6L8HsaTes9jWZP6Pk8uw82rc8p94WNder7uobXUW71hDnl+c0eHT/+DhhKiZqamjYfNzc3o6amBrfeeivmzZsXfE+jyZ571sfIOQ2/p9Fkzz3rY/TZmzx5MgAgiiKUl5cjKyur9bZkMonNmzdjwoQJTpuA7TnV6Gk0rfc0mtZ7Gk2rPa2zG7A7p1o9jabldeq7yesoXpt2Fc9v9sgRIfLo8ccfl7KyMrM9jSZ74Tet9zSa1nsaTfbCb1rolZeXS3l5uURRJFOnTm39uLy8XK644gqpqqqSt956y2mzMxbmNE49jab1nkbTek+jGXovbme3SPhzGreeRtPCOvXdjNteDH3NiNif07iNT8TGuunJvZ6KL8CQV6+99pr06tXLbE+jyV74Tes9jab1nkaTvfCblnqVlZXS2NiYkq/dFZbmNA49jab1nkbTek+jaaUXl7NbxM6cxqWn0bS0Tn0347IXrawZEftzGpfxidhaNz2x11PxLcgoJQ5//0cRwa5du1BZWYnS0tLgexpN9tyzPkbOafg9jSZ77lkfo8ac3nDDDSn5uh2xPqfcF+H3NJrWexpN6z3fZzdgf065L2ysU99NXke5Z31OeX6zR93DF2AoJfr27XvEL3cSEQwePBjLly8PvqfRZM8962PknIbf02iy5571MWrMKQCsWLECDz30EBoaGvDBBx+0uW3jxo1OW9bnlPsi/J5G03pPo2m9B/g9uwH7c8p9YWOdajR5HeWe5TkFeH6zR93BF2AoJVatWtXm40QigYKCApxyyilIT3e/7Hz3NJrsuWd9jJzT8HsaTfbcsz5GjTm944478P3vfx/l5eV49NFHcdlll6G+vh4bNmzAVVdd5bxnfU65L8LvaTSt9zSa1nu+z27A/pxyX9hYp76bvI5yz/qc8vxmj7qpK+9XRnSsnnnmGWlubj7i883NzfLMM88E39Nosuee9TFyTsPvaTTZc8/6GDXmdMSIEbJ06VIREcnNzZX6+noREbn++uvlqquuct6zPqfcF+H3NJrWexpN6z3fZ7eI/TnlvrCxTn03eR3lnvU55fnNHnUPX4ChlEgkErJ79+4jPr9nzx5JJBLB9zSa7LlnfYyc0/B7Gk323LM+Ro05zc7Olh07doiISEFBgdTW1oqIyNatW6V///7Oe9bnlPsi/J5G03pPo2m95/vsFrE/p9wXNtap7yavo9yzPqc8v9mj7klo/wQO2SQiR7y3IAC8/fbbyMnJCb6n0WTPPetj5JyG39Nosuee9TFqzOnAgQPxzjvvAACKi4uxbt06AMD27dshIs571ueU+yL8nkbTek+jab3n++wG7M8p94WNdeq7yeso96zPKc9v9qh7+CZv5NTkyZMBAFEUoby8HFlZWa23JZNJbN68GRMmTAi2p9Fkj49h3HsaTes9jSZ7fAzj3jvUpz71KaxcuRJjxozBZZddhm9+85tYsWIFXnjhhdb75YL1OeW+CL+n0bTe02ha7x3k6+wG7M8p94WNdarV5HWUe1bn9CCe3+xR9/AFGHKqT58+AD58ZTUvLw/Z2dmtt2VmZuKss87C5ZdfHmxPo8keH8O49zSa1nsaTfb4GMa9d6hFixahpaUFAHDVVVchPz8fa9euxUUXXYQ5c+Y461ifU+6L8HsaTes9jab13kG+zm7A/pxyX9hYp1pNXke5Z3VOD+L5zR510zG9URlRF1VWVkpjY6PZnkaTvfCb1nsaTes9jSZ74Tet9zRYn1Pui/B7Gk3rPY2m9Z4G63PKfUEh4Jpxj2NkL+49aisSSdGb9RERERERpchzzz2Hu+++G/X19VixYgWKioqwZMkSlJSUYOLEidp3j4iI2sGzm0KgsU59N7kX3bM+p9bHR5RKfAsySpkVK1bgoYceQkNDAz744IM2t23cuDH4nkaTPfesj5FzGn5Po8mee9bH6Lv3u9/9DpdeeikuueQS1NTUoKmpCQCwb98+VFVV4YknnnDetD6n3Bfh9zSa1nsaTcs9jbMbsD2nGj2NpvV16rvJ6yhem3YVz2/2qHsS2neAbLrjjjtw2WWXYcCAAaipqcEnPvEJ5Ofn469//Ss+85nPBN/TaLLnnvUxck7D72k02XPP+hg15nTu3Lm46667cM899yAjI6P182effXZK/ufB+pxyX4Tf02ha72k0rfd8n92A/TnlvrCxTn03eR3lnvU55fnNHnWT9nugkU0jRoyQpUuXiohIbm6u1NfXi4jI9ddfL1dddVXwPY0me+5ZHyPnNPyeRpM996yPUWNOs7OzZfv27Uc06+vrJSsry3nP+pxyX4Tf02ha72k0rfd8n90i9ueU+8LGOvXd5HWUe9bnlOc3e9Q9fAGGUiI7O1t27NghIiIFBQVSW1srIiJbt26V/v37B9/TaLLnnvUxck7D72k02XPP+hg15rSkpET+8Ic/iEjb/4G4//77ZdSoUc571ueU+yL8nkbTek+jab3n++wWsT+n3Bc21qnvJq+j3LM+pzy/2aPu4VuQUUoMHDgQ77zzDgCguLgY69atAwBs374dIhJ8T6PJnnvWx8g5Db+n0WTPPetj1JjTyy+/HF//+texfv16RFGE119/HQ8++CAqKipw5ZVXOu9Zn1Pui/B7Gk3rPY2m9Z7vsxuwP6fcFzbWqe8mr6Pcsz6nPL/Zo25K0Qs71MPNnj1bKisrRUTk5z//uWRnZ8ukSZOkb9++8sUvfjH4nkaTPfesj5FzGn5Po8mee9bH6Ku3adMmSSaTrR/PnTtXcnJyJIoiiaJITjjhBLnuuuuc9Q5ldU61ehpN6z2NpvWeRtNiT/PsFrE5p5o9jabVdeq7yesoXpt2Fc9v9sidSIQvc5F7LS0taGlpQXp6OgBg+fLlWLt2LUpLSzFnzhxkZmYG3dNossfHMO49jab1nkaTPT6Gce2lpaVh165dKCwsxLBhw7Bhwwbk5eVh27ZtaGxsxOjRo5Gbm+ukdTirc6rV02ha72k0rfc0mhZ7mmc3YHNONXsaTavr1HeT11G8Nu0qnt/skTt8AYaIiIiIYi8/Px9PPPEExo0bh0Qigd27d6OgoED7bhERUSd4dlMINNap7yb3onvW59T6+Ih84u+AoZR57rnnMGPGDIwfPx7/+Mc/AABLlizB6tWrTfQ0muyF37Te02ha72k02Qu/abE3ZcoUlJWVoaSkBFEUYezYsRg2bFi7f1LB4pxq9jSa1nsaTes9jaa1nvbZDdibU+2eRtPiOvXd1N6L1tYMYH9OtccH2Fw3PalH/x9fgKGU+N3vfodPf/rTyM7ORk1NDZqamgAA+/btQ1VVVfA9jSZ77lkfI+c0/J5Gkz33rI/RV2/RokV45JFH8O1vfxsi0vrLQNv745rVOdXqaTSt9zSa1nsaTYs9zbMbsDmnmj2NptV16rvJ6yhem3YVz2/2yCGl3z1Dxp1xxhly//33i4hIbm6u1NfXi4jIxo0bZcCAAcH3NJrsuWd9jJzT8HsaTfbcsz5GjTktLy+X/fv3p+Rrt8f6nHJfhN/TaFrvaTSt93yf3SL255T7wsY69d3kdZR71ueU5zd71D3p2i8AkU1/+ctfcO655x7x+T59+mDv3r3B9zSa7LlnfYyc0/B7Gk323LM+Ro05Xbx4cUq+bkeszyn3Rfg9jab1nkbTes/32Q3Yn1PuC/c9jXXqu8nrKPeszynPb/aoe/gWZJQSAwcOxLZt2474/OrVq1Py/pC+expN9tyzPkbOafg9jSZ77lkfo8ac+mZ9Trkvwu9pNK33NJrWexqszyn3hY11ah3XjHscY/jrxnqPDqP9IzhkU1VVlYwePVrWrVsneXl58txzz8kDDzwgBQUFcscddwTf02iy5571MXJOw+9pNNlzz/oYNebUN+tzyn0Rfk+jab2n0bTe02B9TrkvbKxT67hm3OMYw1831nvUFl+AIWc2bdokyWSy9eO5c+dKTk6ORFEkURTJCSecINddd12wPY0me3wM497TaFrvaTTZ42MY954G63PKfRF+T6NpvafRtN7TYH1OuS9srFPruGbc4xjDXzfWe9QxvgBDziQSCdm9e7eIiJSUlMiePXukqalJtmzZIuvXr5f33nsv6J5Gkz0+hnHvaTSt9zSa7PExjHtPg/U55b4Iv6fRtN7TaFrvabA+p9wXNtapdVwz7nGM4a8b6z3qGF+AIWf69+8v69atExGRKIrkzTffNNXTaLIXftN6T6NpvafRZC/8pvWeButzyn0Rfk+jab2n0bTe02B9TrkvKARcM+5xjOzFvUcdS9f+HTRkx5QpU1BWVoZBgwYhiiKMHTsWaWlp7f7dv/71r8H1NJrsue1pNK33NJrWexpN9tz2NJrWexqszyn3Rfg9jab1nkbTek+D9TnlvnDfI/e4ZtzjGNsKcd1Y71HH+AIMObNo0SJMnjwZ27Ztw9e+9jVcfvnlyMvLM9PTaLIXftN6T6NpvafRZC/8pvWeButzyn0Rfk+jab2n0bTe02B9TrkvKARcM+5xjOzFvUed0P4RHLKpvLxc9u/fb7an0WQv/Kb1nkbTek+jyV74Tes9DdbnlPsi/J5G03pPo2m9p8H6nHJfUAi4ZtzjGNmLe4/aikREtF8EIiIiIiIiIiIiIiIisiShfQeIiIiIiIiIiIiIiIis4QswREREREREREREREREjvEFGCIiIiIiIiIiIiIiIsf4AgwREREREREREREREZFjfAGGiIiIiIjMEBFcccUV6N+/P6IoQm1trfZdIiIiIiKiHioSEdG+E0RERERERC48+eST+Pd//3dUV1dj2LBhOPHEE5Gent6tr1leXo69e/fikUcecXMniYiIiIioR+je/4kQERERERHFSH19PQYNGoQJEyZo35UjJJNJRFGERIJvREBERERE1BPwyp+IiIiIiEwoLy/HV7/6VTQ0NCCKIgwdOhQtLS2YP38+SkpKkJ2djdNPPx0rVqxo/W+SySRmz57devuIESNw++23t95eWVmJ+++/H48++iiiKEIURaiurkZ1dTWiKMLevXtb/25tbS2iKMKOHTsAAPfddx/69u2LlStXYvTo0cjKykJDQwOamppQUVGBoqIi5OTkYNy4caiurvY0S0RERERE5At/AoaIiIiIiEy4/fbb8ZGPfASLFi3Chg0bkJaWhvnz5+OBBx7AXXfdhdLSUjz77LOYMWMGCgoKUFZWhpaWFpx88sn47W9/i/z8fKxduxZXXHEFBg0ahIsvvhgVFRV45ZVXsH//fixevBgA0L9/f6xdu/aY7tP777+PW265Bffeey/y8/NRWFiIr3zlK3j55ZexfPlynHTSSfif//kfXHjhhairq0NpaWkqp4iIiIiIiDziCzBERERERGRCnz59kJeXh7S0NAwcOBBNTU2oqqrCH//4R4wfPx4AMGzYMKxevRp33303ysrKkJGRgRtvvLH1a5SUlOD555/HQw89hIsvvhi5ubnIzs5GU1MTBg4c2OX71NzcjDvvvBOnn346AKChoQGLFy9GQ0MDTjrpJABARUUFnnrqKSxevBhVVVUOZoKIiIiIiOKAL8AQEREREZFJ27Ztw/vvv4/zzz+/zec/+OADjBkzpvXjX/ziF/jVr36FhoYG/Otf/8IHH3yAM844w8l9yMzMxGmnndb6cV1dHZLJJIYPH97m7zU1NSE/P99Jk4iIiIiI4oEvwBARERERkUmNjY0AgN///vcoKipqc1tWVhYAYPny5aioqMCCBQswfvx45OXl4cc//jHWr1/f6ddOJD78dZoi0vq55ubmI/5ednY2oihqc5/S0tLw4osvIi0trc3fzc3N7cLoiIiIiIgo7vgCDBERERERmXToL74vKytr9++sWbMGEyZMwJe//OXWz9XX17f5O5mZmUgmk20+V1BQAADYtWsX+vXrBwCora096n0aM2YMkskk3nzzTZxzzjldGQ4REREREQWGL8AQEREREZFJeXl5qKiowDe/+U20tLRg4sSJ2LdvH9asWYPevXtj1qxZKC0txa9//Ws8/fTTKCkpwZIlS7BhwwaUlJS0fp2hQ4fi6aefxl/+8hfk5+ejT58+OOWUUzB48GBUVlZi3rx52Lp1KxYsWHDU+zR8+HBccsklmDlzJhYsWIAxY8bgrbfewp/+9Cecdtpp+NznPpfKKSEiIiIiIo8S2neAiIiIiIgoVX74wx/i+uuvx/z58zFq1ChceOGF+P3vf9/6AsucOXMwefJkTJ06FePGjcPbb7/d5qdhAODyyy/HiBEjMHbsWBQUFGDNmjXIyMjAsmXL8Oqrr+K0007DLbfcgrlz5x7TfVq8eDFmzpyJb3/72xgxYgS+8IUvYMOGDSguLnY+fiIiIiIi0hPJoW9aTERERERERERERERERN3Gn4AhIiIiIiIiIiIiIiJyjC/AEBEREREREREREREROcYXYIiIiIiIiIiIiIiIiBzjCzBERERERERERERERESO8QUYIiIiIiIiIiIiIiIix/gCDBERERERERERERERkWN8AYaIiIiIiIiIiIiIiMgxvgBDRERERERERERERETkGF+AISIiIiIiIiIiIiIicowvwBARERERERERERERETnGF2CIiIiIiIiIiIiIiIgc+39kyPAigkEJRwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "names, correlations = pipe.features[:50].correlations()\n", - "\n", - "fig, ax = plt.subplots(figsize=(20, 10))\n", - "\n", - "ax.bar(names, correlations)\n", - "\n", - "ax.set_title(\"feature correlations\")\n", - "ax.set_xlabel(\"feature\")\n", - "ax.set_ylabel(\"correlation\")\n", - "ax.tick_params(axis=\"x\", rotation=90)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Feature importances__\n", - "\n", - "Feature importances are calculated by analyzing the improvement in predictive accuracy on each node of the trees in the XGBoost predictor. They are then normalized, so that all importances add up to 100%." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABmYAAAOkCAYAAAC8oosDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACU1UlEQVR4nOzdfZSXdYH//9cMCAg4ICIzQKyDYt4kioJOmInJbKNZRpF32VdCw+ob3k36C1oDb9pgvQtbb9hu1Pa78sWs3XZTv+wqipaOqKCVph41lRIBlYVRWLmbz++PjlMToDDOXKPD43HOdZq5Pu/P+/2+PkPn7PY81+cqK5VKpQAAAAAAANDuyjt6AwAAAAAAADsKYQYAAAAAAKAgwgwAAAAAAEBBhBkAAAAAAICCCDMAAAAAAAAFEWYAAAAAAAAKIswAAAAAAAAURJgBAAAAAAAoiDADAAAAAABQEGEGAAB2UA8//HAOP/zw9OrVK2VlZXnsscc6ekuFeuGFF1JWVpabbrqpo7cCAADsQLp29AYAAIDibdiwISeccEJ69OiR7373u+nZs2f22GOPNl9n6dKl+f73v59x48ZlxIgRbT7/ju66665Lz54988UvfrGjtwIAAGyjslKpVOroTQAAAMV66qmnst9+++UHP/hBvvSlL7XbOo888kgOPfTQ3Hjjje+5eFAqlbJu3brstNNO6dKlS0dvp1UOOOCA9O/fPwsWLOjorQAAANvIV5kBAMAOaMWKFUmSvn37duxGWunNN99MU1PTu5qjrKwsPXr0eF9GmbVr13b0FgAAgFYSZgAAYAfzxS9+MWPGjEmSnHDCCSkrK8tRRx3V/PpTTz2Vz33uc+nXr1969OiRUaNG5T/+4z9azLFy5cqcf/75GT58eHr37p2Kiooce+yx+fWvf908ZsGCBTn00EOTJBMnTkxZWVmLZ7pUV1dv8S6ao446qsV+FixYkLKyssydOzcXXnhhBg8enJ49e6axsTFJsnDhwhxzzDHp06dPevbsmTFjxuT+++9/x89hS8+Y+eIXv5jevXtnyZIl+eQnP5nevXtn8ODBufbaa5Mkv/3tb3P00UenV69e2WOPPTJnzpwWc950000pKyvLfffdly9/+cvZbbfdUlFRkdNOOy3//d//vdkerrvuunzoQx9K9+7dM2jQoHzta1/LqlWrNvs8DjjggCxatChHHnlkevbsmW9+85uprq7OE088kXvvvbf5s33rc9uWv89ffrY/+clP8vd///f5wAc+kB49emTs2LF59tlnN9vvwoUL84lPfCK77rprevXqlQMPPDBXX311izHb8u9nw4YNufjii7P33nunR48e2W233XLEEUfkzjvvfNu/GQAAdAaeMQMAADuYL3/5yxk8eHC+853v5Oyzz86hhx6aysrKJMkTTzyRj3zkIxk8eHCmTJmSXr165Sc/+UnGjRuXn/3sZ/nMZz6TJPn973+fn//85znhhBMydOjQLF++PP/0T/+UMWPG5He/+10GDRqU/fbbL5dcckmmTZuWM888Mx/96EeTJIcffnir9n3ppZemW7duOf/887Nu3bp069Ytd999d4499tiMHDky06dPT3l5eW688cYcffTR+eUvf5nDDjtsu9fZtGlTjj322Bx55JG57LLLcvPNN2fy5Mnp1atX/u7v/i6nnnpqPvvZz2b27Nk57bTTMnr06AwdOrTFHJMnT07fvn1z0UUX5emnn87111+fF198sTmEJMlFF12Uiy++OLW1tfnqV7/aPO7hhx/O/fffn5122ql5vtdeey3HHntsTj755HzhC19IZWVljjrqqJx11lnp3bt3/u7v/i5Jmv+O2/L3+UszZ85MeXl5zj///KxevTqXXXZZTj311CxcuLB5zJ133plPfvKTGThwYM4555xUVVXlySefzG233ZZzzjknybb/+7nooosyY8aMfOlLX8phhx2WxsbGPPLII1m8eHH+9m//drv/ZgAA8L5SAgAAdjj33HNPKUnp1ltvbXF+7NixpeHDh5fefPPN5nNNTU2lww8/vLT33ns3n3vzzTdLmzZtavHe559/vtS9e/fSJZdc0nzu4YcfLiUp3XjjjZvtYY899ihNmDBhs/NjxowpjRkzZrO97rnnnqW1a9e22Nfee+9dqqurKzU1NTWfX7t2bWno0KGlv/3bv33bz+D555/fbG8TJkwoJSl95zvfaT733//936Wdd965VFZWVpo7d27z+aeeeqqUpDR9+vTmczfeeGMpSWnkyJGl9evXN5+/7LLLSklK//7v/14qlUqlFStWlLp161b6+Mc/3uJzvOaaa0pJSjfccEOLzyNJafbs2Ztdw4c+9KEWn9VbtvXv89Znu99++5XWrVvXfP7qq68uJSn99re/LZVKpdLGjRtLQ4cOLe2xxx6l//7v/24x719+9tv67+eggw4qHXfccZvtGwAAdgS+ygwAAEjyp6+/uvvuu3PiiSfm9ddfz6uvvppXX301r732Wurq6vLMM8/kpZdeSpJ079495eV/+n8nNm3alNdeey29e/fOPvvsk8WLF7fL/iZMmJCdd965+ffHHnsszzzzTD7/+c/ntddea97vmjVrMnbs2Nx3332tfg7Nl770peaf+/btm3322Se9evXKiSee2Hx+n332Sd++ffP73/9+s/efeeaZLe54+epXv5quXbvmjjvuSJLcddddWb9+fc4999zmzzFJJk2alIqKitx+++0t5uvevXsmTpy4zfvf3r/PxIkT061bt+bf37q76a1re/TRR/P888/n3HPP3ey5RG/dAbQ9/3769u2bJ554Is8888w2XxMAAHQWvsoMAABIkjz77LMplUr51re+lW9961tbHLNixYoMHjw4TU1Nufrqq3Pdddfl+eefz6ZNm5rH7Lbbbu2yv7/+urC3/kf9CRMmbPU9q1evzq677rpd6/To0SO77757i3N9+vTJBz7wgeYI8Zfnt/TsmL333rvF7717987AgQPzwgsvJElefPHFJH+KO3+pW7du2XPPPZtff8vgwYNbhJN3sr1/n7/5m79p8ftbn9lb1/bcc88lSQ444ICtrrk9/34uueSSfPrTn84HP/jBHHDAATnmmGPyv/7X/8qBBx64zdcIAADvV8IMAACQJM13l5x//vmpq6vb4phhw4YlSb7zne/kW9/6Vk4//fRceuml6devX8rLy3Puuedu810qfx053rJp06Z06dJls/N/ebfMX+738ssvz4gRI7Y4V+/evbdpL39pS2u/3flSqbTda2yvv772d7K9f5+2uLbt+fdz5JFH5rnnnsu///u/57/+67/ywx/+MN/97ncze/bsFncrAQBAZyTMAAAASZI999wzSbLTTjultrb2bcf+9Kc/zcc+9rH86Ec/anF+1apV6d+/f/PvW4svyZ/uyli1atVm51988cXmvbydvfbaK0lSUVHxjvst2jPPPJOPfexjzb+/8cYbefnll/OJT3wiSbLHHnskSZ5++ukW17p+/fo8//zz23w9W/t8t/Xvs63e+qwff/zxre5te/79JEm/fv0yceLETJw4MW+88UaOPPLIXHTRRcIMAACdnmfMAAAASZIBAwbkqKOOyj/90z/l5Zdf3uz1V155pfnnLl26bHY3xa233tr8DJG39OrVK0m2GGD22muvPPjgg1m/fn3zudtuuy1/+MMftmm/I0eOzF577ZUrrrgib7zxxtvut2jf//73s2HDhubfr7/++mzcuDHHHntskqS2tjbdunXL9773vRaf449+9KOsXr06xx133Dat06tXry1+ttv699lWhxxySIYOHZpZs2Zttt5b62zPv5/XXnutxWu9e/fOsGHDsm7dulbtDwAA3k/cMQMAADS79tprc8QRR2T48OGZNGlS9txzzyxfvjwNDQ354x//mF//+tdJkk9+8pO55JJLMnHixBx++OH57W9/m5tvvnmzO1322muv9O3bN7Nnz84uu+ySXr16paamJkOHDs2XvvSl/PSnP80xxxyTE088Mc8991z+5V/+pfnujHdSXl6eH/7whzn22GPzoQ99KBMnTszgwYPz0ksv5Z577klFRUV+8YtftPlntC3Wr1+fsWPH5sQTT8zTTz+d6667LkcccUSOP/74JMnuu++eqVOn5uKLL84xxxyT448/vnncoYcemi984QvbtM7IkSNz/fXX59vf/naGDRuWAQMG5Oijj97mv8+2Ki8vz/XXX59PfepTGTFiRCZOnJiBAwfmqaeeyhNPPJH//M//TLLt/37233//HHXUURk5cmT69euXRx55JD/96U8zefLkVu0PAADeT4QZAACg2f77759HHnkkF198cW666aa89tprGTBgQA4++OBMmzatedw3v/nNrFmzJnPmzMktt9ySQw45JLfffnumTJnSYr6ddtopP/7xjzN16tR85StfycaNG3PjjTdm6NChqaury5VXXpmrrroq5557bkaNGpXbbrstX//617d5v0cddVQaGhpy6aWX5pprrskbb7yRqqqq1NTU5Mtf/nKbfS7b65prrsnNN9+cadOmZcOGDTnllFPyve99r8VXj1100UXZfffdc8011+S8885Lv379cuaZZ+Y73/lOdtppp21aZ9q0aXnxxRdz2WWX5fXXX8+YMWNy9NFHb/PfZ3vU1dXlnnvuycUXX5wrr7wyTU1N2WuvvTJp0qTmMdv67+fss8/Of/zHf+S//uu/sm7duuyxxx759re/nQsuuKDV+wMAgPeLslIRT6oEAADYAdx0002ZOHFiHn744YwaNaqjtwMA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B+TXv/51hg4dmpqamlx22WXp1q1bvv/972fPPfds6z0CAAAAAAB0Cq0KMxdeeGHWrFmTJLnkkkvyyU9+Mh/96Eez2267Ze7cuW26QQAAAAAAgM6iVWGmrq6u+edhw4blqaeeysqVK7PrrrumrKyszTYHAAAAAADQmbTqGTOnn356Xn/99Rbn+vXrl7Vr1+b0009vk40BAAAAAAB0Nq0KMz/+8Y/zP//zP5ud/5//+Z/88z//87veFAAAAAAAQGe0XV9l1tjYmFKplFKplNdffz09evRofm3Tpk254447MmDAgDbfJAAAAAAAQGewXWGmb9++KSsrS1lZWT74wQ9u9npZWVkuvvjiNtscAAAAAABAZ7JdYeaee+5JqVTK0UcfnZ/97Gfp169f82vdunXLHnvskUGDBrX5JgEAAAAAADqD7QozY8aMycaNGzNhwoSMGjUqQ4YMaa99AQAAAAAAdDrl2/uGrl275qc//Wk2bdrUHvsBAAAAAADotLY7zCTJ0UcfnXvvvbet9wIAAAAAANCpbddXmb3l2GOPzZQpU/Lb3/42I0eOTK9evVq8fvzxx7fJ5gAAAAAAADqTVt0x87//9//O8uXLc9VVV+XUU0/NuHHjmo/PfOYz2zXXtddem+rq6vTo0SM1NTV56KGHtjr2iSeeyPjx41NdXZ2ysrLMmjWrVXO++eab+drXvpbddtstvXv3zvjx47N8+fLt2jcAAAAAAMD2alWYaWpq2uqxPc+eueWWW1JfX5/p06dn8eLFOeigg1JXV5cVK1ZscfzatWuz5557ZubMmamqqmr1nOedd15+8Ytf5NZbb829996bpUuX5rOf/ez2fQgAAAAAAADbqaxUKpU6avGampoceuihueaaa5L8KfgMGTIkZ511VqZMmfK2762urs65556bc889d7vmXL16dXbffffMmTMnn/vc55IkTz31VPbbb780NDTkwx/+8DbtvbGxMX369Mnq1atTUVGxnVfeuVVPub3d5n5h5nHtNjcAAAAAALTWtnaDVt0xkyT33ntvPvWpT2XYsGEZNmxYjj/++Pzyl7/c5vevX78+ixYtSm1t7Z83U16e2traNDQ0tGpP2zLnokWLsmHDhhZj9t133/zN3/zN2667bt26NDY2tjgAAAAAAAC2R6vCzL/8y7+ktrY2PXv2zNlnn52zzz47O++8c8aOHZs5c+Zs0xyvvvpqNm3alMrKyhbnKysrs2zZstZsa5vmXLZsWbp165a+fftu17ozZsxInz59mo8hQ4a0ao8AAAAAAMCOq2tr3vT3f//3ueyyy3Leeec1nzv77LNz1VVX5dJLL83nP//5Ntvge8XUqVNTX1/f/HtjY6M4AwAAAAAAbJdW3THz+9//Pp/61Kc2O3/88cfn+eef36Y5+vfvny5dumT58uUtzi9fvjxVVVWt2dY2zVlVVZX169dn1apV27Vu9+7dU1FR0eIAAAAAAADYHq0KM0OGDMn8+fM3O3/XXXdt810k3bp1y8iRI1vM09TUlPnz52f06NGt2dY2zTly5MjstNNOLcY8/fTTWbJkSavXBQAAAAAA2Bat+iqzr3/96zn77LPz2GOP5fDDD0+S3H///bnpppty9dVXb/M89fX1mTBhQkaNGpXDDjsss2bNypo1azJx4sQkyWmnnZbBgwdnxowZSZL169fnd7/7XfPPL730Uh577LH07t07w4YN26Y5+/TpkzPOOCP19fXp169fKioqctZZZ2X06NH58Ic/3JqPAwAAAAAAYJu0Ksx89atfTVVVVa688sr85Cc/SZLst99+ueWWW/LpT396m+c56aST8sorr2TatGlZtmxZRowYkXnz5qWysjJJsmTJkpSX//mmnqVLl+bggw9u/v2KK67IFVdckTFjxmTBggXbNGeSfPe73015eXnGjx+fdevWpa6uLtddd11rPgoAAAAAAIBtVlYqlUodvYn3o8bGxvTp0yerV6/2vJm/Uj3l9nab+4WZx7Xb3AAAAAAA0Frb2g1adcfMWx555JE8+eSTSZL9998/I0eOfDfTAQAAAAAAdGqtCjN//OMfc8opp+T+++9P3759kySrVq3K4Ycfnrlz5+YDH/hAW+4RAAAAAACgUyh/5yGb+9KXvpQNGzbkySefzMqVK7Ny5co8+eSTaWpqype+9KW23iMAAAAAAECn0Ko7Zu6999488MAD2WeffZrP7bPPPvnHf/zHfPSjH22zzQEAAAAAAHQmrbpjZsiQIdmwYcNm5zdt2pRBgwa9600BAAAAAAB0Rq0KM5dffnnOOuusPPLII83nHnnkkZxzzjm54oor2mxzAAAAAAAAnUlZqVQqbe+bdt1116xduzYbN25M165/+ja0t37u1atXi7ErV65sm52+xzQ2NqZP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hsNi/3/z5ZdforKyEp06dVI2PiIiIiIiIiIiIiIiopqMv5TZP//5TwwYMAAdO3bEmWeeiaeffho///wzrrvuOgBA//79kZKSgpEjRwIAbr/9duTk5GD06NG4+OKLMXXqVCxatAjjxo0DADiOgzvuuAPDhw9HRkYG0tPT8cADD6Bx48a4/PLLAQBZWVm48MILccMNN+CFF17AgQMHcOutt6JPnz6/+ytGREREREREREREREREf5TxGzO9e/fGjh078OCDD2Lbtm1o164dZsyYgYYNGwIAysrK4PEc+sWe7OxsTJ48Gffffz+GDh2KjIwMvPvuuzj11FP9/80999yDn3/+GYMHD8aePXvQtWtXzJgxA9HR0f7/ZtKkSbj11ltx3nnnwePxoFevXnj22Wf1DZwAVL1EXH5+/hEvE8eeO3ommrb3TDRt75losuf+pu09E0323N+0vWeiaXvPRJM99zdt75losuf+pu09E03beyaa7Lm/aWKMocwRETH9SRAREREREREREREREYUCo39jhoiIiIiIiIiIiIiIKJTwxgwREREREREREREREZEmvDFDRERERERERERERESkCW/MEBERERERERERERERacIbM0RERERERERERERERJrwxgyRZTZu3IiDBw+a/jQCRkRCqkvuU1FRgdLSUlRUVJj+VFzP5/Nh+/bt2LFjh+lPhYiI6JhsvvYGgKKiIvz666/aetu3b8e2bdu09Yj+CH59SHQkrgv1bL/GCHW8MUNBYfPmzRg4cKCyj1dcXIyNGzf63544cSK6dOmCpk2bomvXrpg6daqyVrVLLrkEEydO1PpFy9G0atUK69evD8jHXrp0Kfr374/mzZvD6/UiJiYGbdu2xQMPPIB9+/YFpHm4qKgorF69OiAfu6KiAnl5eTjnnHPw6KOPAgCGDx+O2NhYxMXF4ZprrgnoOLds2YL8/Hz07dsXeXl5WLNmjdKPb2JdAMDOnTvx2GOP4YorrkDnzp3RuXNnXHHFFXj88ccD8g331atXY8KECf75W7NmDYYMGYKBAwfiyy+/VNp69dVXMW/ePADAb7/9hkGDBiEmJgaZmZmIjY3FTTfdpPwGTdu2bfHII49g8+bNSj/usfzjH//ArFmztLSqffTRRzjnnHMQExODxo0bo1GjRoiPj0e/fv1QVlam9XNRvT9V070utm7digcffBDnnnsusrKy8Je//AWXXHIJXn75Zfh8PuW9X3/9FbNnz8aqVauOeOy3337D66+/rrz52WefIT8/37/OZ86ciYsuugjnnnsuJkyYoLz3/PPPo3///v7nzokTJ6JNmzZo3bo1hg4dqvyLKN29rVu34o033sDHH3+M/fv313rs559/xsMPP6y0d7iff/4ZEyZMwLBhw/D8889j165dyhu6x6j7GP6eQD2/VQv0MTRxXTNjxgwsX74cAFBZWYlHHnkEKSkpiIqKQpMmTTBq1Cil35T64Ycfar1dUlKCAQMGoEuXLrjyyitRVFSkrHU8559/PjZt2qT84+7evRtXXnklUlNTMWTIEPh8Plx//fVITk5GSkoKsrOzsXXrVuXdVatW4eabb0b79u2RnJyM5ORktG/fHjfffPNR961ACsQ61H2NAeh/ftN5vX8sgfy6FDBzHI8lEOep7mtF0+eMrusandf7RxPodaF7jDr3C93XGAAwfvx4DBgwwP+10ptvvomsrCw0b94c+fn5Slt0DEIUBEpKSsTj8Sj7eKeddpp89tlnIiLy0ksvidfrldtuu03Gjh0rd9xxh8TGxsrLL7+srCci4jiOhIeHS7169eSmm26SRYsWKf34h7viiiuO+s/j8Uj37t39b6syY8YM8Xq90qtXL7n22mulTp06cuutt8q9994rLVu2lBYtWsjWrVuV9e68886j/vN4PNK/f3//2yrdeeed0rhxY7nrrrskKytLbr75ZklNTZU33nhDJk+eLC1btpR//OMfynper1d++OEHERFZuXKl1KtXT1q2bCn/7//9P2ndurXUqVNHli5dqqxnYl188803Ur9+fUlJSZEBAwbIPffcI/fcc48MGDBAmjRpIg0aNJCFCxcq602fPl0iIyOlQYMGEh0dLdOnT5fExETp3r27nHvuuRIWFiZffPGFsl56errMnz9fRETy8vIkLS1N3nnnHVm9erW8++67kpmZKXfffbeynkjVc01CQoKEhYXJBRdcINOmTZMDBw4obRze83g8kpGRIaNGjVK6zo/m9ddfl7i4OLnrrrtk2LBh0qhRI7nvvvtk7NixkpOTI6eccoqsW7cuoJ9DTar3JxH962LhwoVSr1496dChg3Tt2lXCwsKkX79+0rt3b4mPj5fs7GzZt2+fst7atWulWbNm/nPnnHPOkS1btvgf37Ztm/I5nThxooSHh8tf//pXiY2NlQkTJkh8fLxcf/31MnDgQImMjJS3335bWe+RRx6RuLg46dWrlzRq1EhGjRolCQkJMnz4cCksLJTExER58MEHXdv75ptvJD4+XurWrSter1datmwpK1as8D8eiGOYlZUlu3btEhGRsrIySUtLk3r16skZZ5whDRo0kKSkJPn222+V9XSPUfcxPBGqn990H0MT1zWtWrWSmTNniohIYWGhJCQkyJNPPinTp0+Xp59+Who2bCijRo1S1vN4PLJ9+3YREZkzZ45ERERITk6O3H333dKjRw8JDw+Xr7/+Wlmvffv2R/3nOI5kZWX531Zl4MCBcuqpp8pzzz0nOTk5ctlll8lpp50ms2fPlrlz58oZZ5wh/fv3V9YTEfn4448lMjJSzjrrLMnPz5cxY8bImDFjJD8/X7KzsyUqKkpmzJihtHk8qteh7msMEf3Pb7qv9018XWriOB6P6vNU97Wi7nNGRP+eqPt638S60D1G3fuF7muMp556SmJiYqRnz56SnJwsw4cP9z93P/TQQ1K3bl158cUXlfXo6HhjhrR47733jvvvqaeeUrrxer1e2bRpk4hUfYExbty4Wo9PmjRJ2rRpo6wnUvXNy5UrV8pTTz0lbdu2FY/HI6effro899xzsnv3bqWt6l5OTo7k5ubW+ufxeOTyyy/3v61Ku3btZOzYsf63P/30U2ndurWIiOzfv1/OO+88pT3HcaRdu3bSrVu3Wv8cx5EzzjhDunXrJn/729+U9UREmjZt6v8Cv7S0VDwej7z77rv+xz/99FNp1qyZsp7jOP4vti+77DK55JJL/N9g9/l80qdPH/n73/+urGdiXXTq1EkGDx4slZWVRzxWWVkpgwcPlrPOOktZr3PnzjJs2DAREZkyZYrUr19fhg4d6n/8vvvukx49eijrRUVFyXfffSciIpmZmTJ9+vRaj3/99deSmpqqrCdSdd58//338t///lcuueQSCQ8Pl8TERLnrrrtk1apVSlvVvc8//1xuv/12OeWUUyQiIkIuvfRS+eCDD8Tn8ynvtW7dWqZOnep/e+HChdKkSRP/OdS7d2+lN511708i+tdFly5dpKCgwP/2xIkTpVOnTiIisnv3bmnXrp3cdtttynqXX365XHzxxbJjxw5Zv369XHzxxZKenu5fK4H4pn67du3kmWeeERGR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REREIeHPfSVCRERERETkAqWlpUhOTkZ2drbpT+UIPp8PjuPA4+ELGhARERERhQJe+RMRERERkdVyc3Pxj3/8A2VlZXAcB2lpaaisrMTIkSORnp4Or9eL008/HdOmTfP/Pz6fD4MGDfI/3qpVKzzzzDP+xwsKCvDaa6/hvffeg+M4cBwHRUVFKCoqguM42LNnj/+/LSkpgeM42LRpEwDg1VdfRXx8PN5//320adMGUVFRKCsrQ0VFBfLy8pCSkoKYmBh06tQJRUVFmmaJiIiIiIh04W/MEBERERGR1Z555hm0aNEC48aNw8KFCxEWFoaRI0fijTfewAsvvICMjAzMnDkT1157LRITE5GTk4PKyko0adIEb7/9NhISEjB37lwMHjwYycnJuOqqq5CXl4fVq1dj3759mDBhAgCgQYMGmDt37gl9Tr/88gseffRRjB8/HgkJCUhKSsKtt96KVatWYerUqWjcuDH++9//4sILL8Ty5cuRkZERyCkiIiIiIiKNeGOGiIiIiIisVq9ePcTFxSEsLAyNGjVCRUUFCgsL8fnnn6Nz584AgObNm2P27Nl48cUXkZOTg4iICDz00EP+j5Geno558+bhrbfewlVXXYXY2Fh4vV5UVFSgUaNGJ/05HThwAGPGjMHpp58OACgrK8OECRNQVlaGxo0bAwDy8vIwY8YMTJgwAYWFhQpmgoiIiIiIggFvzBARERERUUjZsGEDfvnlF/To0aPW+/fv34/27dv73/73v/+NV155BWVlZfj111+xf/9+tGvXTsnnEBkZidNOO83/9vLly+Hz+ZCZmVnrv6uoqEBCQoKSJhERERERBQfemCEiIiIiopBSXl4OAPjoo4+QkpJS67GoqCgAwNSpU5GXl4fRo0ejc+fOiIuLw+OPP44FCxYc92N7PFV/xlNE/O87cODAEf+d1+uF4zi1PqewsDAsXrwYYWFhtf7b2NjYkxgdEREREREFO96YISIiIiKikNKmTRtERUWhrKwMOTk5R/1v5syZg+zsbNx8883+95WWltb6byIjI+Hz+Wq9LzExEQCwdetW1K9fHwBQUlLyu59T+/bt4fP58MMPP+Dss88+meEQEREREZHL8MYMERERERGFlLi4OOTl5eHOO+9EZWUlunbtir1792LOnDmoW7cuBgwYgIyMDLz++uv45JNPkJ6ejokTJ2LhwoVIT0/3f5y0tDR88sknWLt2LRISElCvXj20bNkSTZs2RUFBAUaMGIF169Zh9OjRv/s5ZWZmom/fvujfvz9Gjx6N9u3bY8eOHfjiiy9w2mmn4eKLLw7klBARERERkUYe058AERERERGRbo888ggeeOABjBw5EllZWbjwwgvx0Ucf+W+83HjjjejZsyd69+6NTp06YdeuXbV+ewYAbrjhBrRq1QodO3ZEYmIi5syZg4iICEyZMgVr1qzBaaedhkcffRTDhw8/oc9pwoQJ6N+/P+666y60atUKl19+ORYuXIjU1FTl4yciIiIiInMcqfnix0RERERERERERERERBQw/I0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItKEN2aIiIiIiIiIiIiIiIg04Y0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItKEN2aIiIiIiIiIiIiIiIg04Y0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItLk/wMPGZIyYbgb1AAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "names, importances = pipe.features[:50].importances()\n", - "\n", - "fig, ax = plt.subplots(figsize=(20, 10))\n", - "\n", - "ax.bar(names, importances)\n", - "\n", - "ax.set_title(\"feature importances\")\n", - "ax.set_xlabel(\"feature\")\n", - "ax.set_ylabel(\"importance\")\n", - "ax.tick_params(axis=\"x\", rotation=90)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Column importances__\n", - "\n", - "Because getML uses relational learning, we can apply the principles we used to calculate the feature importances to individual columns as well.\n", - "\n", - "As we can see, a lot of the predictive power stems from the account balance. This is unsurprising: People with less money on their bank accounts are more likely to default on their loans." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAARECAYAAADshZc0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADyrUlEQVR4nOzde5hVddnw8XsPhwGEGUBgUJwcEU9ogoIQnlOMkiQti7QCQbHHTKxJX+FJIQ8JHsOSIk1TU9NE08cHQ99ITY0kQFDLEyKCBw6KzHBQ0Jn9/uHL1ATaj3FkbZzP57r2dTG/vfbe956FzDjfWWvl8vl8PgAAAAAAAPhQRVkPAAAAAAAAsC0QVQAAAAAAABKIKgAAAAAAAAlEFQAAAAAAgASiCgAAAAAAQAJRBQAAAAAAIIGoAgAAAAAAkEBUAQAAAAAASCCqAAAAAAAAJBBVAACgiVq0aFHkcrm44YYbsh6lQXK5XPzoRz/KegwAAKAJEVUAAAAycOutt8akSZOyHgMAANgCzbMeAAAAoCHefvvtaN582/1fmltvvTWefvrp+N73vpf1KAAAQCJHqgAAANukVq1abZNRZe3atVmPAAAANJCoAgAA25hXX301Tj755Nhxxx2juLg4dtlllzjttNNiw4YNddssXLgwvvrVr0bHjh2jTZs28ZnPfCamTZv2H5/78MMPj8MPP3yT9ZNOOikqKirqPt54PZbLL788Jk+eHN27d482bdrE5z73uViyZEnk8/m48MILY6eddorWrVvHl770pVi5cmW956yoqIgvfvGL8eijj0a/fv2iVatW0b1797jpppuSPg//fk2VH/3oR5HL5eL555+Pb37zm1FaWhqdO3eO8847L/L5fCxZsiS+9KUvRUlJSXTt2jWuuOKKes/30EMPRS6Xi9tvvz3++7//O7p27RrbbbddDBkyJJYsWbLJ699xxx3Rp0+faN26dXTq1Cm++c1vxquvvrrJ561t27bx4osvxtFHHx3t2rWLb3zjG3H44YfHtGnT4uWXX45cLhe5XK7u87thw4YYN25c9OnTJ0pLS2O77baLQw45JB588MF6z/2v++Caa66JXXfdNYqLi+OAAw6Iv/3tb5vM++yzz8bXvva16Ny5c7Ru3Tr22GOP+OEPf1hvm1dffTVGjhwZZWVlUVxcHHvvvXdcf/31mzzXz372s9h7772jTZs20aFDh+jbt2/ceuutH7q/AADgk2Db+7UuAABowl577bXo169frFq1Kk499dTYc88949VXX42pU6fGunXromXLlrFs2bI48MADY926dTF69OjYfvvt48Ybb4whQ4bE1KlT47jjjmu0eW655ZbYsGFDnHHGGbFy5cq49NJL42tf+1occcQR8dBDD8U555wTCxYsiJ/97Gdx1llnbfID+gULFsTxxx8fJ598cgwfPjyuv/76OOmkk6JPnz6x9957N2imoUOHxl577RUTJ06MadOmxUUXXRQdO3aMX/7yl3HEEUfEJZdcErfcckucddZZccABB8Shhx5a7/E//vGPI5fLxTnnnBPLly+PSZMmxcCBA2PevHnRunXriIi44YYbYsSIEXHAAQfEhAkTYtmyZXHVVVfFY489Fk888US0b9++7vnee++9GDRoUBx88MFx+eWXR5s2baJr165RVVUVr7zySvzkJz+JiIi2bdtGRER1dXX86le/ihNOOCFGjRoVq1evjuuuuy4GDRoUs2bNit69e9eb99Zbb43Vq1fHt7/97cjlcnHppZfGl7/85Vi4cGG0aNEiIiKefPLJOOSQQ6JFixZx6qmnRkVFRbz44otx7733xo9//OOIiFi2bFl85jOfiVwuF9/97nejc+fO8Yc//CFOPvnkqK6urjtN2bXXXhujR4+O448/Ps4888x455134sknn4zHH388TjzxxAbtMwAA2GbkAQCAbcawYcPyRUVF+b/97W+b3FdbW5vP5/P5733ve/mIyD/yyCN1961evTq/yy675CsqKvI1NTX5fD6ff+mll/IRkf/1r39dt91hhx2WP+ywwzZ57uHDh+d33nnnuo83PrZz5875VatW1a2PHTs2HxH5Xr165d9999269RNOOCHfsmXL/DvvvFO3tvPOO+cjIv/nP/+5bm358uX54uLi/A9+8IP/+LmIiPz48ePrPh4/fnw+IvKnnnpq3dp7772X32mnnfK5XC4/ceLEuvW33nor37p16/zw4cPr1h588MF8ROS7deuWr66urlv/3e9+l4+I/FVXXZXP5/P5DRs25Lt06ZLfZ5998m+//Xbddv/7v/+bj4j8uHHj6n3eIiI/ZsyYTeYfPHhwvc/pv868fv36emtvvfVWvqysLD9y5Mi6tY37YPvtt8+vXLmybv2ee+7JR0T+3nvvrVs79NBD8+3atcu//PLL9Z5349+ZfD6fP/nkk/M77LBD/o033qi3zde//vV8aWlpft26dfl8Pp//0pe+lN977703mRsAAJoCp/8CAIBtRG1tbdx9991xzDHHRN++fTe5P5fLRUTEfffdF/369YuDDz647r62bdvGqaeeGosWLYp//OMfjTbTV7/61SgtLa37uH///hER8c1vfrPe9U769+8fGzZs2OT0WD179oxDDjmk7uPOnTvHHnvsEQsXLmzwTKecckrdn5s1axZ9+/aNfD4fJ598ct16+/btP/B1hg0bFu3atav7+Pjjj48ddtgh7rvvvoiImD17dixfvjy+853vRKtWreq2Gzx4cOy5556bPc3aaaedljx/s2bNomXLlhHx/j5fuXJlvPfee9G3b9+YO3fuJtsPHTo0OnToUPfxxs/nxve2YsWK+POf/xwjR46MT33qU/Ueu/HvTD6fjzvvvDOOOeaYyOfz8cYbb9TdBg0aFFVVVXWv3b59+3jllVc2e4oxAAD4pBNVAABgG7FixYqorq6OffbZ50O3e/nll2OPPfbYZH2vvfaqu7+x/PsP6TcGlvLy8s2uv/XWWx/6+IiIDh06bLLdR52pVatW0alTp03WN/c6u+22W72Pc7lc9OjRIxYtWhQR//z8be5zvOeee27y+W3evHnstNNOW/Qebrzxxth3332jVatWsf3220fnzp1j2rRpUVVVtcm2//5+NwaWje9tY1z5sL83K1asiFWrVsU111wTnTt3rncbMWJEREQsX748IiLOOeecaNu2bfTr1y922223OP300+Oxxx7bovcHAADbKtdUAQAA6uRyucjn85us19TUbHb7Zs2abdH6vz936nZbYnPP+XG8Tqri4uIoKkr/fbabb745TjrppDj22GPj7LPPji5dukSzZs1iwoQJ8eKLL26yfWO8t9ra2oh4/wij4cOHb3abfffdNyLej3PPPfdc/O///m9Mnz497rzzzvj5z38e48aNi/PPPz/5NQEAYFskqgAAwDaic+fOUVJSEk8//fSHbrfzzjvHc889t8n6s88+W3f/B+nQocNmT4nVmEe3FLoXXnih3sf5fD4WLFhQFxU2fv6ee+65OOKII+pt+9xzz33o5/dfbTz11r+bOnVqdO/ePe66665624wfPz75Pfyr7t27R0R86N+bzp07R7t27aKmpiYGDhz4H59zu+22i6FDh8bQoUNjw4YN8eUvfzl+/OMfx9ixY+udEg0AAD5pnP4LAAC2EUVFRXHsscfGvffeG7Nnz97k/o1HJhx99NExa9asmDlzZt19a9eujWuuuSYqKiqiZ8+eH/gau+66azz77LOxYsWKurX58+c3qdM73XTTTbF69eq6j6dOnRqvv/56fOELX4iIiL59+0aXLl1iypQpsX79+rrt/vCHP8QzzzwTgwcPTnqd7bbbbrOn89p45Mm/Hmny+OOP19ufW6Jz585x6KGHxvXXXx+LFy+ud9/G12jWrFl85StfiTvvvHOz8eVf/z68+eab9e5r2bJl9OzZM/L5fLz77rsNmhEAALYVjlQBAIBtyMUXXxwPPPBAHHbYYXHqqafGXnvtFa+//nrccccd8eijj0b79u1jzJgx8dvf/ja+8IUvxOjRo6Njx45x4403xksvvRR33nnnh56KauTIkXHllVfGoEGD4uSTT47ly5fHlClTYu+9947q6uqt+E6z07Fjxzj44INjxIgRsWzZspg0aVL06NEjRo0aFRERLVq0iEsuuSRGjBgRhx12WJxwwgmxbNmyuOqqq6KioiK+//3vJ71Onz594vbbb4/Kyso44IADom3btnHMMcfEF7/4xbjrrrviuOOOi8GDB8dLL70UU6ZMiZ49e8aaNWsa9J5++tOfxsEHHxz7779/nHrqqbHLLrvEokWLYtq0aTFv3ryIiJg4cWI8+OCD0b9//xg1alT07NkzVq5cGXPnzo0//vGPsXLlyoiI+NznPhddu3aNgw46KMrKyuKZZ56Jq6++OgYPHhzt2rVr0HwAALCtEFUAAGAb0q1bt3j88cfjvPPOi1tuuSWqq6ujW7du8YUvfCHatGkTERFlZWXxl7/8Jc4555z42c9+Fu+8807su+++ce+99/7Hoyj22muvuOmmm2LcuHFRWVkZPXv2jN/85jdx6623xkMPPbQV3mH2/vu//zuefPLJmDBhQqxevTqOPPLI+PnPf173+Y2IOOmkk6JNmzYxceLEOOecc2K77baL4447Li655JJo37590ut85zvfiXnz5sWvf/3r+MlPfhI777xzHHPMMXHSSSfF0qVL45e//GXcf//90bNnz7j55pvjjjvuaPA+6NWrV/z1r3+N8847L37xi1/EO++8EzvvvHN87Wtfq9umrKwsZs2aFRdccEHcdddd8fOf/zy233772HvvveOSSy6p2+7b3/523HLLLXHllVfGmjVrYqeddorRo0fHueee26DZAABgW5LLb40rMwIAABS4hx56KD772c/GHXfcEccff3zW4wAAAAXINVUAAAAAAAASiCoAAAAAAAAJRBUAAAAAAIAErqkCAAAAAACQwJEqAAAAAAAACUQVAAAAAACABM2zHmBrq62tjddeey3atWsXuVwu63EAAAAAAIAM5fP5WL16dey4445RVPThx6I0uajy2muvRXl5edZjAAAAAAAABWTJkiWx0047feg2TS6qtGvXLiLe/+SUlJRkPA0AAAAAAJCl6urqKC8vr+sHH6bJRZWNp/wqKSkRVQAAAAAAgIiIpEuGuFA9AAAAAABAAlEFAAAAAAAggagCAAAAAACQQFQBAAAAAABIIKoAAAAAAAAkEFUAAAAAAAASiCoAAAAAAAAJRBUAAAAAAIAEogoAAAAAAEACUQUAAAAAACCBqAIAAAAAAJBAVAEAAAAAAEggqgAAAAAAACQQVQAAAAAAABKIKgAAAAAAAAlEFQAAAAAAgASiCgAAAAAAQAJRBQAAAAAAIEHmUWXy5MlRUVERrVq1iv79+8esWbM+dPtVq1bF6aefHjvssEMUFxfH7rvvHvfdd99WmhYAAAAAAGiqmmf54rfffntUVlbGlClTon///jFp0qQYNGhQPPfcc9GlS5dNtt+wYUMcddRR0aVLl5g6dWp069YtXn755Wjfvv3WHx4AAAAAAGhScvl8Pp/Vi/fv3z8OOOCAuPrqqyMiora2NsrLy+OMM86IMWPGbLL9lClT4rLLLotnn302WrRo0aDXrK6ujtLS0qiqqoqSkpKPND8AAAAAALBt25JukNnpvzZs2BBz5syJgQMH/nOYoqIYOHBgzJw5c7OP+Z//+Z8YMGBAnH766VFWVhb77LNPXHzxxVFTU/OBr7N+/fqorq6udwMAAAAAANhSmUWVN954I2pqaqKsrKzeellZWSxdunSzj1m4cGFMnTo1ampq4r777ovzzjsvrrjiirjooos+8HUmTJgQpaWldbfy8vJGfR8AAAAAAEDTkPmF6rdEbW1tdOnSJa655pro06dPDB06NH74wx/GlClTPvAxY8eOjaqqqrrbkiVLtuLEAAAAAADAJ0VmF6rv1KlTNGvWLJYtW1Zv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wQXxxS9+MQ455JDYfvvt47bbbmvUAQEAAAAAAApBg6LKoEGD6v7co0ePePbZZ2PlypXRoUOHyOVyjTYcAAAAAABAoWjQNVVGjhwZq1evrrfWsWPHWLduXYwcObJRBgMAAAAAACgkDYoqN954Y7z99tubrL/99ttx0003feShAAAAAAAACs0Wnf6ruro68vl85PP5WL16dbRq1aruvpqamrjvvvuiS5cujT4kAAAAAABA1rYoqrRv3z5yuVzkcrnYfffdN7k/l8vF+eef32jDAQAAAAAAFIotiioPPvhg5PP5OOKII+LOO++Mjh071t3XsmXL2HnnnWPHHXds9CEBAAAAAACytkVR5bDDDov33nsvhg8fHn379o3y8vKPay4AAAAAAICCssUXqm/evHlMnTo1ampqPo55AAAAAAAACtIWR5WIiCOOOCIefvjhxp4FAAAAAACgYG3R6b82+sIXvhBjxoyJp556Kvr06RPbbbddvfuHDBnSKMMBAAAAAAAUigZFle985zsREXHllVducl8ul3NqMAAAAAAA4BOnQVGltra2secAAAAAAAAoaA26pgoAAAAAAEBT0+Co8vDDD8cxxxwTPXr0iB49esSQIUPikUceadBzTZ48OSoqKqJVq1bRv3//mDVr1gdue9ddd0Xfvn2jffv2sd1220Xv3r3jN7/5TUPfBgAAAAAAQJIGRZWbb745Bg4cGG3atInRo0fH6NGjo3Xr1nHkkUfGrbfeukXPdfvtt0dlZWWMHz8+5s6dG7169YpBgwbF8uXLN7t9x44d44c//GHMnDkznnzyyRgxYkSMGDEi7r///oa8FQAAAAAAgCS5fD6f39IH7bXXXnHqqafG97///XrrV155ZVx77bXxzDPPJD9X//7944ADDoirr746It6/Xkt5eXmcccYZMWbMmKTn2H///WPw4MFx4YUXbnLf+vXrY/369XUfV1dXR3l5eVRVVUVJSUnynE1FxZhpWY+wzVs0cXDWIwAAAAAAkKi6ujpKS0uTukGDjlRZuHBhHHPMMZusDxkyJF566aXk59mwYUPMmTMnBg4c+M+Biopi4MCBMXPmzP/4+Hw+HzNmzIjnnnsuDj300M1uM2HChCgtLa27lZeXJ88HAAAAAACwUYOiSnl5ecyYMWOT9T/+8Y9bFC3eeOONqKmpibKysnrrZWVlsXTp0g98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u7r1o48+Ok488cQMJ2t6HnzwwaxH4D/4oK8va9asiVatWmUwERt90L6ZP39+dOzYMYOJmraf/vSnm11fvHhx/PrXv46uXbtGRMTo0aO35lhN3uzZs2PgwIHRo0ePaN26dbzwwgtx4oknxoYNG+Kss86K66+/PqZPn17v+wE+XpMmTar785tvvhkXXXRRDBo0KAYMGBARETNnzoz7778/zjvvvIwm5JRTTom99947Zs+eHR06dIiIiLfeeitOOumkOPXUU+Mvf/lLxhM2Tffee2984xvfiDVr1kRJSUm97wFyuZyo8gnlSBUKWteuXeP++++PXr16Rbt27WL+/PnRvXv3WLhwYey7776xZs2arEdsktq3bx/Tpk2Lgw46KOtRmryXX345edudd975Y5yEf7fffvtFLpeL+fPnx9577x3Nm//z9xhqamripZdeis9//vPxu9/9LsMpm67WrVvH888/H+Xl5TFs2LDYcccdY+LEibF48eLo2bOnry8ZKS0tjblz58auu+5a7+v+yy+/HHvssUe88847WY8ImausrIyIiKuuuipGjRoVbdq0qbuvpqYmHn/88WjWrFk89thjWY3YZG38Le+qqqpNfqhSU1MTa9asif/6r/+KyZMnZzhl01NUVBTdunWr971YxPvfR++4447RokWLyOVyjrbfyg4++OA46qijYvz48RERcfPNN8fVV18df/3rX+Ott96KI444Ig499NC46qqrMp60afrKV74Sn/3sZ+O73/1uvfWrr746/vjHP8bdd9+dzWBNXOvWrWP27Nmx995711t/+umn44ADDqg7ZT5b1+677x5HH310XHzxxfW+L+OTzZEqFLS1a9du9h+klStXRnFxcQYTEfH+/zD6LbvCIJQUrmOPPTYiIubNmxeDBg2Ktm3b1t3XsmXLqKiocDREhsrLy2PmzJnRsWPHmD59etx2220R8f5vevkN7+wUFxdv9hodG09rQHZWrVoV1113Xd11h/bee+8YOXKkI+4y8MQTT0TE+0dDPPXUU9GyZcu6+1q2bBm9evWKs846K6vxmrRJkyZFPp+PkSNHxvnnn1/vv4+NX/s3/sY3W8+pp54ajz/+eNx66631zn7QokWLeOCBB6Jnz54ZTtd0zZ07t95pPU888cQYOXJkLFu2LMrKyuLSSy+Nk046SVTJyP333x+XXHLJJuuf//znY8yYMRlMRMT7P7xftmzZJlFl+fLl0aNHj4ym4tVXX43Ro0cLKk2MqEJBO+SQQ+Kmm26KCy+8MCLeP2yutrY2Lr300vjsZz+b8XRN14UXXhjjxo2LG2+80ReNAvPiiy/GpEmT6n7o1bNnzzjzzDNj1113zXiypmfjb91VVFTE0KFD/aC+wHzve9+Lb3zjG9G2bdvYeeed4/DDD4+I908L9ulPfzrb4ZqwIUOGxAUXXFB3BFcul4vFixfHOeecI0JmaPbs2TFo0KBo3bp19OvXLyIirrzyyvjxj38cDzzwQOy///4ZT9i0bDw124gRI+Kqq66KkpKSjCdio+HDh0dExC677BIHHnhgtGjRIuOJiIiYMmVK/P73v49BgwbF//k//2eT37wnG126dInXX389unfvHhERy5Yti/fee6/u37TddtvNdTsytP3228c999wTP/jBD+qt33PPPbH99ttnNBUTJkyI0aNHx49+9KP4zGc+ExERf/3rX+OCCy6ISy65pN4vJ/n+YOsZNGhQzJ49u+7fM5oGp/+ioD399NNx5JFHxv777x9/+tOfYsiQIfH3v/89Vq5cGY899pgfFGdkv/32ixdffDHy+XxUVFRs8j+Mc+fOzWiypu3++++PIUOGRO/evetOzfbYY4/F/Pnz4957742jjjoq4wmbtg0bNmz2onWf+tSnMpqIOXPmxOLFi+Ooo46qO5Jo2rRp0aFDhzjwwAMznq5pqqqqiuOPPz5mz54dq1evjh133DGWLl0aAwYMiPvuuy+22267rEdskg455JDo0aNHXHvttXWnz3nvvffilFNOiYULF8af//znjCeEwlNbWxsLFizY7Nf+Qw89NKOpmrZXX301hg0bFi1btoxf//rXUV5eHvPnz3ekSka+973vxYwZM+Kyyy6L4uLiuPDCCyOfz9eF4/vvvz9OP/30WLBgQcaTNk033HBDnHLKKfGFL3wh+vfvHxERjz/+eEyfPj2uvfbaOOmkk7IdsIkqKiqq+/PGU0xu/LHuv37smqpb13XXXRcXXHBBjBgxIj796U9v8jOyIUOGZDQZHydRhYJXVVUVV199dcyfPz/WrFkT+++/f5x++umxww47ZD1ak3X++ed/6P0bf0OfrWu//faLQYMGxcSJE+utjxkzJh544AGxKyMvvPBCjBw5cpOLBvpmN1sXXHBBnHXWWZscbff222/HZZddFuPGjctoMiIiHn300XjyySfrvu4PHDgw65GatNatW8cTTzwRe+65Z731f/zjH9G3b99Yt25dRpM1bWvXro2JEyfGjBkzNvuDe9eHyM5f//rXOPHEE+Pll1+Of//fbV/7s5XP52PixInx05/+NFasWBFPPvmkqJKRNWvWxMknnxx33XVX1NTUxIABA+Lmm2+OXXbZJSIiHnjggaiqqoqvfvWrGU/adD3++OPx05/+tO4sCHvttVeMHj26LrKw9T388MPJ2x522GEf4yT8q3+NXf/O1/1PLlEF4BOiVatW8dRTT8Vuu+1Wb/3555+Pfffd1wWeM3LQQQdF8+bNY8yYMbHDDjvUu2htRESvXr0ymqxpa9asWbz++uvRpUuXeutvvvlmdOnSxTe+8C/KysriN7/5TXzuc5+rt37//ffHsGHDYtmyZRlN1rSdcMIJ8fDDD8e3vvWtzX59OfPMMzOajN69e8fuu+8e559//mb3jWsRZW/OnDnx6KOPxrBhw6JDhw5Zj9OkvfPOO/Hee+/Vu/4g2Xr33Xfj29/+dpx33nl1kQuA+lxThYL261//Otq2bbvJb6fccccdsW7durrzFpONOXPm1Ltg7X777ZfxRE1b586dY968eZtElXnz5m3yg2O2nnnz5sWcOXM2+Q1vsrXxSKF/N3/+/OjYsWMGE7HRjBkz4ic/+Um934r83ve+52iVDA0dOjROPvnkuPzyy+tOjffYY4/F2WefHSeccELG0zVdf/jDH2LatGl1p/ykcLzwwgsxdepUFw0uYH369Ik+ffpkPQYRm73uYD6fj+nTp8d1110XU6dOzWCqpq1FixZx5513xnnnnZf1KPyb6dOnR9u2bePggw+OiIjJkyfHtddeGz179ozJkyeLxLAVffDxSVAAJkyYEJ06ddpkvUuXLnHxxRdnMBEREcuXL48jjjgiDjjggBg9enSMHj06+vTpE0ceeWSsWLEi6/GarFGjRsWpp54al1xySTzyyCPxyCOPxMSJE+Pb3/52jBo1KuvxmqyePXvGG2+8kfUY/H8dOnSIjh07Ri6Xi9133z06duxYdystLY2jjjoqvva1r2U9ZpP185//PD7/+c9Hu3bt4swzz4wzzzwzSkpK4uijj47JkydnPV6Tdfnll8eXv/zlGDZsWFRUVERFRUWcdNJJcfzxx8cll1yS9XhN1sZ/zyg8/fv3dx2IbciSJUti5MiRWY9BRLz00ktx3nnnxac+9ak47rjjHGmfoWOPPTbuvvvurMfg35x99tl1F6N/6qmnorKyMo4++uh46aWXorKyMuPpmraHH344jjnmmOjRo0f06NEjhgwZEo888kjWY/ExcvovClqrVq3i2WefjYqKinrrixYtir322ivefvvtbAZr4oYOHRoLFy6Mm266Kfbaa6+IeP+86sOHD48ePXrEb3/724wnbJry+XxMmjQprrjiinjttdciImLHHXeMs88+O0aPHr3Z38rn4/enP/0pzj333Lj44os3e9G6kpKSjCZrmm688cbI5/MxcuTImDRpUr1TsLRs2TIqKipiwIABGU7YtO20004xZsyY+O53v1tvffLkyXHxxRfHq6++mtFkRESsW7cuXnzxxYiI2HXXXTe5JhFb18033xz33HNP3HjjjfZFgfn9738f5557bpx99tmb/dq/7777ZjQZmzN//vzYf//9nfozI+vXr4+pU6fGddddF48++mjU1NTE5ZdfHieffLLvkzN00UUXxRVXXBFHHnlk9OnTJ7bbbrt6948ePTqjyZq2tm3bxtNPPx0VFRXxox/9KJ5++umYOnVqzJ07N44++uhYunRp1iM2STfffHOMGDEivvzlL9cdQfzYY4/F73//+7jhhhvixBNPzHhCPg6iCgXtU5/6VFx99dUxZMiQeuv33HNPnH766fHKK69kNFnTVlpaGn/84x/jgAMOqLc+a9as+NznPherVq3KZjDqrF69OiIi2rVrl/EkbLxo3b9HLReqz9bDDz8cBx544CY/6CJbbdu2jXnz5m1yypwXXngh9ttvv1izZk1Gk7HRkiVLIiKivLw840nYb7/94sUXX4x8Ph8VFRWb/Hs2d+7cjCZjcxeszeVyvvZn5H/+538+9P6FCxfGD37wA/tlK5szZ05cd9118dvf/jZ69OgR3/rWt2Lo0KGx0047xfz586Nnz55Zj9ikfdi1VHK5XCxcuHArTsNGHTt2jEcffTR69uwZBx98cAwbNixOPfXUWLRo0f9j776jorz29YE/MyBFBAWVqBEpggoiltiNMZZEJRENsWIFNLaIIhKNiV0TK5aYaCLNkqDEkuCJBQtqJLHTVBTEhglWbIiKwPz+4DA/B1Dx3svsje/zWeus67zznrWedeYy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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "names, importances = pipe.columns.importances()\n", - "\n", - "fig, ax = plt.subplots(figsize=(20, 10))\n", - "\n", - "ax.bar(names, importances)\n", - "\n", - "ax.set_title(\"column importances\")\n", - "ax.set_xlabel(\"column\")\n", - "ax.set_ylabel(\"importance\")\n", - "ax.tick_params(axis=\"x\", rotation=90)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The most important feature looks as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "```sql\n", - "DROP TABLE IF EXISTS \"FEATURE_1_21\";\n", - "\n", - "CREATE TABLE \"FEATURE_1_21\" AS\n", - "SELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\n", - " t1.rowid AS rownum\n", - "FROM \"POPULATION__STAGING_TABLE_1\" t1\n", - "INNER JOIN \"TRANS__STAGING_TABLE_4\" t2\n", - "ON t1.\"account_id\" = t2.\"account_id\"\n", - "WHERE t2.\"date\" <= t1.\"date_loan\"\n", - "GROUP BY t1.rowid;\n", - "```" - ], - "text/plain": [ - "'DROP TABLE IF EXISTS \"FEATURE_1_21\";\\n\\nCREATE TABLE \"FEATURE_1_21\" AS\\nSELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\\n t1.rowid AS rownum\\nFROM \"POPULATION__STAGING_TABLE_1\" t1\\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\\nON t1.\"account_id\" = t2.\"account_id\"\\nWHERE t2.\"date\" <= t1.\"date_loan\"\\nGROUP BY t1.rowid;'" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe.features.to_sql()[pipe.features.sort(by=\"importances\")[0].name]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.5 Productionization\n", - "\n", - "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` and `spark` modules." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# Creates a folder named loans_pipeline containing\n", - "# the SQL code.\n", - "pipe.features.to_sql().save(\"loans_pipeline\", remove=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# Creates a folder named baseball_pipeline_spark containing\n", - "# the SQL code.\n", - "pipe.features.to_sql(dialect=getml.pipeline.dialect.spark_sql).save(\"loans_pipeline_spark\", remove=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "getml.engine.shutdown()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Conclusion" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "By applying getML to the PKDD'99 Financial dataset, we were able to show the power and relevance of Relational Learning on a real-world data set. Within a training time below 1 minute, we outperformed almost all approaches based on manually generated features. This makes getML the prime choice when dealing with complex relational data schemes. This result holds independent of the problem domain since no expertise in the financial sector was used in this analysis.\n", - "\n", - "The present analysis could be improved in two directions. By performing an extensive hyperparameter optimization, the out of sample AUC could be further improved. On the other hand, the hyperparameters could be tuned to produce less complex features that result in worse performance (in terms of AUC) but are better interpretable by humans." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " ## References\n", - "\n", - "Schulte, Oliver, et al. \"A hierarchy of independence assumptions for multi-relational Bayes net classifiers.\" 2013 IEEE Symposium on Computational Intelligence and Data Mining (CIDM). IEEE, 2013." - ] - } - ], - "metadata": { - "jupytext": { - "formats": "ipynb,py:percent" - }, - "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.11.4" - }, - "toc-autonumbering": false, - "vscode": { - "interpreter": { - "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" - } - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "state": {}, - "version_major": 2, - "version_minor": 0 - } - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Loans - Predicting loan default risk of Czech bank customers\n", + "\n", + "This notebook demonstrates the application of our relational learning algorithm to predict if a customer of a bank will default on his loan. We train the predictor on customer metadata, transaction history, as well as other successful and unsuccessful loans.\n", + "\n", + "Summary:\n", + "\n", + "- Prediction type: __Binary classification__\n", + "- Domain: __Finance__\n", + "- Prediction target: __Loan default__\n", + "- Source data: __8 tables, 78.8 MB__\n", + "- Population size: __682__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Background\n", + "\n", + "This notebook features a textbook example of predictive analytics applied to the financial sector. A loan is the lending of money to companies or individuals. Banks grant loans in exchange for the promise of repayment. Loan default is defined as the failure to meet this legal obligation, for example, when a home buyer fails to make a mortgage payment. A bank needs to estimate the risk it carries when granting loans to potentially non-performing customers.\n", + "\n", + "The analysis is based on the [financial](https://relational.fit.cvut.cz/dataset/Financial) dataset from the [the CTU Prague Relational Learning Repository](https://arxiv.org/abs/1511.03086) (Motl and Schulte, 2015) (Now residing at [relational-data.org](https://relational-data.org/dataset/Financial).)\n", + "." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get started with the analysis and set-up your session:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install -q \"getml==1.5.0\" \"matplotlib==3.9.2\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from IPython.display import Image\n", + "\n", + "import getml\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/user --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/user/.getML/getml-1.5.0-x64-linux...\n", + "Launched the getML Engine. The log output will be stored in /home/user/.getML/logs/20240912214744.log.\n", + "\u001b[2K Loading pipelines... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file + { + "data": { + "text/html": [ + "
Connected to project 'loans'.\n",
+       "
\n" + ], + "text/plain": [ + "Connected to project \u001b[32m'loans'\u001b[0m.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", + "getml.engine.set_project(\"loans\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Loading data\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.1 Download from source\n", + "\n", + "Downloading the raw data from the CTU Prague Relational Learning Repository into a prediction ready format takes time. To get to the getML model building as fast as possible, we prepared the data for you and excluded the code from this notebook. It will be made available in a future version." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "population_train, population_test, order, trans, meta = getml.datasets.load_loans(\n", + " roles=True, units=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.2 Prepare data for getML\n", + "\n", + "The `getml.datasets.load_loans` method took care of the entire data lifting:\n", + "* Downloads csv's from our servers in python\n", + "* Converts csv's to getML [DataFrames](https://getml.com/latest/reference/data/data_frame#dataframe)\n", + "* Sets [roles](https://getml.com/latest/user_guide/concepts/annotating_data#roles) to columns inside getML DataFrames\n", + "\n", + "The only thing left is to set [units](https://getml.com/latest/user_guide/concepts/annotating_data#annotating-units) to columns that the relational learning algorithm is allowed to compare to each other." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Data visualization__\n", + "\n", + "To simplify the notebook, original data model (image below) is condensed into 4 tables, by resolving the trivial one-to-one and many-to-one joins:\n", + "\n", + "- A population table `population_{train, test}`, consiting of `loan` and `account` tables\n", + "- Three peripheral tables: `order`, `trans`, and `meta`.\n", + "- Whereas `meta` is made up of `card`, `client`, `disp` and `district`" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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adasGW+++SZNmjThscceIzU1lR49erB27VqsVivNmzfn1VdfpVevXue9psLCQp599lnPd8TExDB+/Hi++uorHA4HV111FTab7bwjfoXapTZ9zbBhwzzHldtiRTtJSEhg1qxZvPfee9hsNgCuvvpq5syZQ/PmzXn99df5/PPP6datG1u3biU3N5eoqChee+01unXrxiOPPMKRI0eQZZmHHnqIsWPH8uKLL573uhU/VLPU5UFhQUEBv/32Gxs2bCA4OJj+/fvTuHFjUlNTycnJIS4ujqysLIqKimjZsiWPP/44fn5+aLVuMWe32zl48CAnTpzAZDLRqlUrIiIizttuQkKC53MVEQSBPn36EB8fT4sWLTyvnzx5kqNHjxITE4PD4UClUiGKYr21w1r38GqVQMNQAxEBOk/1eZUo0K1JMI3DjHy9NZ19qcX0bh5KsFFNY5ONY8eOs2L9TpBl9Brv0dLOnTuZNm0aGRkZPPLII4wcOZKTJ0/y4osvcvz4cX744Qdyc3N54IEHeOmllwgICOCjjz7i999/x+VykZeXx7Zt29BoNDz22GM0a9aMBQsWsG7dOhISEnjsscfIzc0lIyPjbzvZZrORl5eHxWKhrKyMt9566x+1c7lQ3X29fft25s6dS25uLnfccQe9evVi69atnvclSSI/P5+cnBwkSeL3339n6dKlBAQE8PrrrzNq1CgsFgubN2/2rLkfO3aMPXv2MGrUKDp16sTWrVt55ZVXKC4uPu81VfwOl8vF119/zdKlS9HpdDzyyCNERkaye/fuK6aP6zK16WtSU1O9BPO5trhq1SpeeeUVIiMjee2117jttttYs2YNr732GjabDYvF4pkhv+uuu2jfvj3Hjh3j448/BuCOO+4gPDwcvV7PnXfeSe/evau8bsUP1SzlorxfqzDEM/ewXJQP7xFLuzh/QsxaLGVOjyjv2zKMUodc5aDw9ddf5/rrr2fgwIHccMMNbNiwAfAeFI4aNYpjx45RXFzMs88+y0033cTDDz/M0KFD+c9//sO2bdv46KOPePXVVwH47rvvuO222zh8+DDz589n4MCBjBgxgv79+zN27Fj++OMPRo4cyaRJk7BYLFgsFiZPnkz//v258847GTRoEMOGDWPHjh2V2h08eDDHjx8/7/1xOp0sWrSI4cOHs27dOs9nbr75ZgYOHMj//d//sWTJElwuV722wVqfeSrn3CCxIpuT5b+eYs/pIu7sFkO/FqFYMg6TlvQy5sIc7nCa+Fa6nc2HgkmMPLs+umXLFk6fPs3tt9/OjBkzkGWZDh06kJ+fj16v58knn2TAgAHk5+dTXFxMZGQkJ0+eJD09HX9/fwAaNmzI4sWLad26NdnZ2Tz99NMYDAZeeOEF/vOf/7B582ZuueWWv92ZUm4IgiB4lPo/aedyo7r6euvWrWRmZnLzzTfz+uuvYzAYKCkpYenSpZ5jBEHw9IMoioiiSGFhIfv27aN9+/bcdtttNG/enNLSUsC9DPfcc89x++23s2XLFm688Ua2b99OZmYmfn5+570eQRAQRRG73c5vv/2GJEk8+OCDvPjii6Snp3P06FH27Nnj69uucIba8DVqtdrre8rtsNxONmzYQFlZGTExMQiCQHh4ODqdjl9++YW8vDyP8LrjjjuYPn06X331FXfffTepqalotVpGjRrFihUrsNvtPPbYY7Rv377K61X8UM1yIVFud0oeUT60SzTBRjVBFPHroWxW/HIalTmkykFhYWEhd999NwaDgU8//dTzflWDwpiYGCZPnsyePXtYtWoVv/zyC126dKFfv34kJSXRpk0b7rjjDkJCQiguLiYzM5Nt27Zx00030b59e9RqNdnZ2QQHBwPw9ddfM2/ePOLi4nj88cfZtWsXn3/+OXPnzuXBBx88b7tVUVxcTE5ODmVlZeTl5TFz5kz27t3LTTfdRLt27fjiiy88M7D1Fd+JJ/CqEbR6VyY/7c9mQLsIgk069h4+gWbjy0S3bIzG2Jp4WwnSphWUCN6Bkvn5+QDExsZ6phDvuecewG10Cxcu5PXXX6e0tBSj0Uh2djaCIHgcnSzLREVFeeJcHA4HhYWFGI1GEhISAGjUqBF+fn6UlZVd1LUJgoDD4aCgoOBftXO5UF19XVhYCEB8fDxmsxmAxo0bn/c7JUmie/fujBs3jmXLljF//nwAmjRpwgsvvECvXr2QZRmj0egJvo2LiyMgIID8/HyKior+9rrKbUUQBM95BAYGEhcXx+7du3192xXOUBu+Bqhy15DdbicvLw+AXbt2ceLECcBtuxEREZ6YD0EQPPFT0dHR6PV6JElClmVcLpen/b/bbVeO4odqlro2KExMTCQwMJCBAweSlJREly5deOaZZ3A6nZ5zffDBB3nppZdQqVT8/vvvnnbtdju//PILDoeDhx9+mGeffZbMzEyuueYaAgIC6N27N0ePHvVq90JUPNejR4964olfe+01EhMTiYqK4oknnvB1F/4rfCaeDBoVIWYtKlGg1CGRkluCSadm2/ECth4vJFwo4BZbAdqGrRDNQTgLc4n220VYQoBXOxEREQAcPHjQ88B7//33KSws5MYbb2TBggWkp6ezaNEiOnfuzLhx41i7dq1XGxXFlE6nIzQ0lLS0NHbu3Enbtm3Zs2ePxwFdDLIso9PpCAsL+1ftXC5UV1+Xr/fv37+frKwsjEYje/furfJ7S0tLGTRoEP3796eoqIiPP/6YTz75hHfffZerrroKURSxWCzs2LGDjh07sm/fPnJzczGbzRcVmKnVagkLC0OWZfbs2YPD4SA1NZXDhw/X6+noy42a9jUFBQU88MADVca5lfsCgAceeIDHH3/cs1lFo9EQGhrq8T8XshtBEHA6nVUuKZ+L4odqlro2KJw8eTJDhw71zCjKsuwR3+C2n2bNmlXaKFAungoKClCr1cTFxQFuex8zZoznuHLRXt7uxcZ1FhYWYrfbiYiIIDw8HICEhAQMBkO9TVMAPhRPPRKD6RAfiL9BjSgIjOwbfzYPiyAgW7Mp+rkBgroJsqERtvxDmEKjCfHXe7XTvXt3mjdvzg8//MAjjzyCLMv873//o127dgwaNAitVovdbic5OZmNGzfy+++/e31ekiSv6evAwED69evH1q1bmTp1Kj///DPbtm2jqKjogtsz4exIRJIkAgMDufbaa9myZcslt3O5UV193a1bN+Lj4/n5558ZMWIEBoPBs6Ze8d7LsowoiiQnJ/P444/TsGFDhg0b5hnhh4eHo9G4C3w6HA5efvllNm/ezLZt2ygoKGDAgAFERkZWeT3lNqPVaunTpw9Lly7lvffeIysri7S0NA4dOuTrW65QgZr2NW3btuXhhx/2ehCUP2AkSUKj0dC/f38++OADli1bBsCpU6dYtWoV/fv356qrrkKWZc+/cso/L8syGo2GgIAAioqKmDJlCk8//TQDBw487/Uqfqh2qIuDwptvvtkjwC0Wiycw+0KUi+zw8HCcTid//fUXAMePH+fDDz8kJCSEUaNGeY4vb/diduiVX59er+f06dMcO3aMq666il27dlFSUlKvB5k+E096jcpr7TfQeE61anMU5t6Pkbb2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", + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": { + "image/png": { + "width": 500 + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "Image(\"assets/loans-schema.png\", width=500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Population table\n", + "\n", + "- Information on the loan itself (duration, amount, date, ...)\n", + "- Geo-information about the branch where the loans was granted (A**)\n", + "- Column `status` contains binary target. Levels [A, C] := _loan paid back_ and [B, D] := _loan default_;\n", + " we recoded status to our binary target: `default`" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "population_train.set_role(\"date_loan\", \"time_stamp\")\n", + "population_test.set_role(\"date_loan\", \"time_stamp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name date_loanaccount_iddefaultfrequency duration payments amount loan_id district_iddate_account status
role time_stamp join_key targetcategorical numericalnumericalnumericalunused_floatunused_floatunused_stringunused_string
unittime stamp, comparison only money
01996-04-2919\n", + " 1 \n", + " POPLATEK MESICNE\n", + " 12 \n", + " \n", + " 2523 \n", + " \n", + " 30276 \n", + " \n", + " 4961 \n", + " \n", + " 21 \n", + " 1995-04-07B
11998-10-1437\n", + " 1 \n", + " POPLATEK MESICNE\n", + " 60 \n", + " \n", + " 5308 \n", + " \n", + " 318480 \n", + " \n", + " 4967 \n", + " \n", + " 20 \n", + " 1997-08-18D
21998-04-1938\n", + " 0 \n", + " POPLATEK TYDNE\n", + " 48 \n", + " \n", + " 2307 \n", + " \n", + " 110736 \n", + " \n", + " 4968 \n", + " \n", + " 19 \n", + " 1997-08-08C
31997-08-1097\n", + " 0 \n", + " POPLATEK MESICNE\n", + " 12 \n", + " \n", + " 8573 \n", + " \n", + " 102876 \n", + " \n", + " 4986 \n", + " \n", + " 74 \n", + " 1996-05-05A
41996-11-06132\n", + " 0 \n", + " POPLATEK PO OBRATU\n", + " 12 \n", + " \n", + " 7370 \n", + " \n", + " 88440 \n", + " \n", + " 4996 \n", + " \n", + " 40 \n", + " 1996-05-11A
......\n", + " ... \n", + " ...\n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " ......
2181995-12-0411042\n", + " 0 \n", + " POPLATEK MESICNE\n", + " 36 \n", + " \n", + " 6032 \n", + " \n", + " 217152 \n", + " \n", + " 7243 \n", + " \n", + " 72 \n", + " 1995-01-29A
2191996-08-2011054\n", + " 0 \n", + " POPLATEK TYDNE\n", + " 60 \n", + " \n", + " 2482 \n", + " \n", + " 148920 \n", + " \n", + " 7246 \n", + " \n", + " 59 \n", + " 1996-02-01C
2201994-01-3111111\n", + " 0 \n", + " POPLATEK MESICNE\n", + " 36 \n", + " \n", + " 3004 \n", + " \n", + " 108144 \n", + " \n", + " 7259 \n", + " \n", + " 1 \n", + " 1993-05-20A
2211998-11-2211317\n", + " 0 \n", + " POPLATEK MESICNE\n", + " 60 \n", + " \n", + " 5291 \n", + " \n", + " 317460 \n", + " \n", + " 7292 \n", + " \n", + " 50 \n", + " 1997-07-11C
2221996-12-2711362\n", + " 0 \n", + " POPLATEK MESICNE\n", + " 24 \n", + " \n", + " 5392 \n", + " \n", + " 129408 \n", + " \n", + " 7308 \n", + " \n", + " 67 \n", + " 1995-10-14A
\n", + "\n", + "

\n", + " 223 rows x 11 columns
\n", + " memory usage: 0.02 MB
\n", + " name: population_test
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name date_loan account_id default frequency ... amount loan_id district_id\n", + "role time_stamp join_key target categorical ... numerical unused_float unused_float\n", + "unit time stamp, comparison only ... money \n", + " 0 1996-04-29 19 1 POPLATEK MESICNE ... 30276 4961 21\n", + " 1 1998-10-14 37 1 POPLATEK MESICNE ... 318480 4967 20\n", + " 2 1998-04-19 38 0 POPLATEK TYDNE ... 110736 4968 19\n", + " 3 1997-08-10 97 0 POPLATEK MESICNE ... 102876 4986 74\n", + " 4 1996-11-06 132 0 POPLATEK PO OBRATU ... 88440 4996 40\n", + " ... ... ... ... ... ... ...\n", + " 218 1995-12-04 11042 0 POPLATEK MESICNE ... 217152 7243 72\n", + " 219 1996-08-20 11054 0 POPLATEK TYDNE ... 148920 7246 59\n", + " 220 1994-01-31 11111 0 POPLATEK MESICNE ... 108144 7259 1\n", + " 221 1998-11-22 11317 0 POPLATEK MESICNE ... 317460 7292 50\n", + " 222 1996-12-27 11362 0 POPLATEK MESICNE ... 129408 7308 67\n", + "\n", + "name date_account status \n", + "role unused_string unused_string\n", + "unit \n", + " 0 1995-04-07 B \n", + " 1 1997-08-18 D \n", + " 2 1997-08-08 C \n", + " 3 1996-05-05 A \n", + " 4 1996-05-11 A \n", + " ... ... \n", + " 218 1995-01-29 A \n", + " 219 1996-02-01 C \n", + " 220 1993-05-20 A \n", + " 221 1997-07-11 C \n", + " 222 1995-10-14 A \n", + "\n", + "\n", + "223 rows x 11 columns\n", + "memory usage: 0.02 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "population_test" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Peripheral tables\n", + "\n", + "- `meta`\n", + " - Meta info about the client (card_type, gender, ...)\n", + " - Geo-information about the client\n", + "- `order`\n", + " - Permanent orders related to a loan (amount, balance, ...)\n", + "- `trans`\n", + " - Transactions related to a given loan (amount, ...)\n", + "\n", + "While the contents of `meta` and `order` are omitted for brevity, here are contents of `trans`:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name dateaccount_idtype k_symbol bank operation amount balance trans_id account
role time_stamp join_keycategoricalcategoricalcategoricalcategorical numericalnumericalunused_floatunused_float
unittime stamp, comparison only money
01995-03-241PRIJEMNULLNULLVKLAD\n", + " 1000 \n", + " \n", + " 1000 \n", + " \n", + " 1 \n", + " \n", + " nan \n", + "
11995-04-131PRIJEMNULLABPREVOD Z UCTU\n", + " 3679 \n", + " \n", + " 4679 \n", + " \n", + " 5 \n", + " \n", + " 41403269 \n", + "
21995-05-131PRIJEMNULLABPREVOD Z UCTU\n", + " 3679 \n", + " \n", + " 20977 \n", + " \n", + " 6 \n", + " \n", + " 41403269 \n", + "
31995-06-131PRIJEMNULLABPREVOD Z UCTU\n", + " 3679 \n", + " \n", + " 26835 \n", + " \n", + " 7 \n", + " \n", + " 41403269 \n", + "
41995-07-131PRIJEMNULLABPREVOD Z UCTU\n", + " 3679 \n", + " \n", + " 30415 \n", + " \n", + " 8 \n", + " \n", + " 41403269 \n", + "
..................\n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + "
10563151998-08-3110451PRIJEMUROKNULLNULL\n", + " 62 \n", + " \n", + " 17300 \n", + " \n", + " 3682983 \n", + " \n", + " nan \n", + "
10563161998-09-3010451PRIJEMUROKNULLNULL\n", + " 49 \n", + " \n", + " 13442 \n", + " \n", + " 3682984 \n", + " \n", + " nan \n", + "
10563171998-10-3110451PRIJEMUROKNULLNULL\n", + " 34 \n", + " \n", + " 10118 \n", + " \n", + " 3682985 \n", + " \n", + " nan \n", + "
10563181998-11-3010451PRIJEMUROKNULLNULL\n", + " 26 \n", + " \n", + " 8398 \n", + " \n", + " 3682986 \n", + " \n", + " nan \n", + "
10563191998-12-3110451PRIJEMUROKNULLNULL\n", + " 42 \n", + " \n", + " 13695 \n", + " \n", + " 3682987 \n", + " \n", + " nan \n", + "
\n", + "\n", + "

\n", + " 1056320 rows x 10 columns
\n", + " memory usage: 63.38 MB
\n", + " name: trans
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + " name date account_id type k_symbol ... operation amount balance\n", + " role time_stamp join_key categorical categorical ... categorical numerical numerical\n", + " unit time stamp, comparison only ... money\n", + " 0 1995-03-24 1 PRIJEM NULL ... VKLAD 1000 1000\n", + " 1 1995-04-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 4679\n", + " 2 1995-05-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 20977\n", + " 3 1995-06-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 26835\n", + " 4 1995-07-13 1 PRIJEM NULL ... PREVOD Z UCTU 3679 30415\n", + " ... ... ... ... ... ... ...\n", + "1056315 1998-08-31 10451 PRIJEM UROK ... NULL 62 17300\n", + "1056316 1998-09-30 10451 PRIJEM UROK ... NULL 49 13442\n", + "1056317 1998-10-31 10451 PRIJEM UROK ... NULL 34 10118\n", + "1056318 1998-11-30 10451 PRIJEM UROK ... NULL 26 8398\n", + "1056319 1998-12-31 10451 PRIJEM UROK ... NULL 42 13695\n", + "\n", + " name trans_id account\n", + " role unused_float unused_float\n", + " unit \n", + " 0 1 nan \n", + " 1 5 41403269 \n", + " 2 6 41403269 \n", + " 3 7 41403269 \n", + " 4 8 41403269 \n", + " ... ...\n", + "1056315 3682983 nan \n", + "1056316 3682984 nan \n", + "1056317 3682985 nan \n", + "1056318 3682986 nan \n", + "1056319 3682987 nan \n", + "\n", + "\n", + "1056320 rows x 10 columns\n", + "memory usage: 63.38 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trans" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.3 Define relational model\n", + "\n", + "To start with relational learning, we need to specify an abstract data model. Here, we use the [high-level star schema API](https://getml.com/latest/reference/data/star_schema) that allows us to define the abstract data model and construct a [container](https://getml.com/latest/reference/data/container) with the concrete data at one-go. While a simple `StarSchema` indeed works in many cases, it is not sufficient for more complex data models like schoflake schemas, where you would have to define the data model and construct the container in separate steps, by utilzing getML's [full-fledged data model](https://getml.com/latest/reference/data/data_model) and [container](https://getml.com/latest/reference/data/container) APIs respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "data model\n", + "
\n", + "
diagram
\n", + "
transordermetapopulationaccount_id = account_iddate <= date_loanaccount_id = account_idaccount_id = account_id
\n", + "
\n", + "\n", + "
\n", + "
staging
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data framesstaging table
0populationPOPULATION__STAGING_TABLE_1
1metaMETA__STAGING_TABLE_2
2orderORDER__STAGING_TABLE_3
3transTRANS__STAGING_TABLE_4
\n", + "
\n", + " \n", + "container\n", + "
\n", + "
\n", + "
population
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
subsetname rowstype
0trainpopulation_train459DataFrame
1testpopulation_test223DataFrame
\n", + "
\n", + "
\n", + "
peripheral
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name rowstype
0trans1056320DataFrame
1order6471DataFrame
2meta5369DataFrame
\n", + "
\n", + "
" + ], + "text/plain": [ + "data model\n", + "\n", + " population:\n", + " columns:\n", + " - frequency: categorical\n", + " - account_id: join_key\n", + " - duration: numerical\n", + " - payments: numerical\n", + " - amount: numerical\n", + " - ...\n", + "\n", + " joins:\n", + " - right: 'trans'\n", + " on: (population.account_id, trans.account_id)\n", + " time_stamps: (population.date_loan, trans.date)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'order'\n", + " on: (population.account_id, order.account_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + " - right: 'meta'\n", + " on: (population.account_id, meta.account_id)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + "\n", + " trans:\n", + " columns:\n", + " - type: categorical\n", + " - k_symbol: categorical\n", + " - bank: categorical\n", + " - operation: categorical\n", + " - account_id: join_key\n", + " - ...\n", + "\n", + " order:\n", + " columns:\n", + " - bank_to: categorical\n", + " - k_symbol: categorical\n", + " - account_id: join_key\n", + " - amount: numerical\n", + " - account_to: unused_float\n", + " - ...\n", + "\n", + " meta:\n", + " columns:\n", + " - type_disp: categorical\n", + " - type_card: categorical\n", + " - gender: categorical\n", + " - A3: categorical\n", + " - account_id: join_key\n", + " - ...\n", + "\n", + "\n", + "container\n", + "\n", + " population\n", + " subset name rows type \n", + " 0 train population_train 459 DataFrame\n", + " 1 test population_test 223 DataFrame\n", + "\n", + " peripheral\n", + " name rows type \n", + " 0 trans 1056320 DataFrame\n", + " 1 order 6471 DataFrame\n", + " 2 meta 5369 DataFrame" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "star_schema = getml.data.StarSchema(\n", + " train=population_train, test=population_test, alias=\"population\"\n", + ")\n", + "\n", + "star_schema.join(\n", + " trans,\n", + " on=\"account_id\",\n", + " time_stamps=(\"date_loan\", \"date\"),\n", + ")\n", + "\n", + "star_schema.join(\n", + " order,\n", + " on=\"account_id\",\n", + ")\n", + "\n", + "star_schema.join(\n", + " meta,\n", + " on=\"account_id\",\n", + ")\n", + "\n", + "star_schema" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nameaccount_idtype_disp type_card gender A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 disp_id client_id card_id district_idissued birth_date A2
role join_keycategoricalcategoricalcategoricalcategorical numericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalnumericalunused_floatunused_floatunused_floatunused_floatunused_stringunused_stringunused_string
01OWNERNULLFsouth Bohemia\n", + " 70699 \n", + " \n", + " 60 \n", + " \n", + " 13 \n", + " \n", + " 2 \n", + " \n", + " 1 \n", + " \n", + " 4 \n", + " \n", + " 65.3\n", + " \n", + " 8968 \n", + " \n", + " 2.8\n", + " \n", + " 3.35\n", + " \n", + " 131 \n", + " \n", + " 1740 \n", + " \n", + " 1910 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " nan \n", + " \n", + " 18 \n", + " NULL1970-12-13Pisek
12OWNERNULLMPrague\n", + " 1204953 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " 100 \n", + " \n", + " 12541 \n", + " \n", + " 0.2\n", + " \n", + " 0.43\n", + " \n", + " 167 \n", + " \n", + " 85677 \n", + " \n", + " 99107 \n", + " \n", + " 2 \n", + " \n", + " 2 \n", + " \n", + " nan \n", + " \n", + " 1 \n", + " NULL1945-02-04Hl.m. Praha
22DISPONENTNULLFPrague\n", + " 1204953 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " 100 \n", + " \n", + " 12541 \n", + " \n", + " 0.2\n", + " \n", + " 0.43\n", + " \n", + " 167 \n", + " \n", + " 85677 \n", + " \n", + " 99107 \n", + " \n", + " 3 \n", + " \n", + " 3 \n", + " \n", + " nan \n", + " \n", + " 1 \n", + " NULL1940-10-09Hl.m. Praha
33OWNERNULLMcentral Bohemia\n", + " 95616 \n", + " \n", + " 65 \n", + " \n", + " 30 \n", + " \n", + " 4 \n", + " \n", + " 1 \n", + " \n", + " 6 \n", + " \n", + " 51.4\n", + " \n", + " 9307 \n", + " \n", + " 3.8\n", + " \n", + " 4.43\n", + " \n", + " 118 \n", + " \n", + " 2616 \n", + " \n", + " 3040 \n", + " \n", + " 4 \n", + " \n", + " 4 \n", + " \n", + " nan \n", + " \n", + " 5 \n", + " NULL1956-12-01Kolin
43DISPONENTNULLFcentral Bohemia\n", + " 95616 \n", + " \n", + " 65 \n", + " \n", + " 30 \n", + " \n", + " 4 \n", + " \n", + " 1 \n", + " \n", + " 6 \n", + " \n", + " 51.4\n", + " \n", + " 9307 \n", + " \n", + " 3.8\n", + " \n", + " 4.43\n", + " \n", + " 118 \n", + " \n", + " 2616 \n", + " \n", + " 3040 \n", + " \n", + " 5 \n", + " \n", + " 5 \n", + " \n", + " nan \n", + " \n", + " 5 \n", + " NULL1960-07-03Kolin
...............\n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " \n", + " ... \n", + " .........
536411349OWNERNULLFPrague\n", + " 1204953 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " 100 \n", + " \n", + " 12541 \n", + " \n", + " 0.2\n", + " \n", + " 0.43\n", + " \n", + " 167 \n", + " \n", + " 85677 \n", + " \n", + " 99107 \n", + " \n", + " 13647 \n", + " \n", + " 13955 \n", + " \n", + " nan \n", + " \n", + " 1 \n", + " NULL1945-10-30Hl.m. Praha
536511349DISPONENTNULLMPrague\n", + " 1204953 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " 100 \n", + " \n", + " 12541 \n", + " \n", + " 0.2\n", + " \n", + " 0.43\n", + " \n", + " 167 \n", + " \n", + " 85677 \n", + " \n", + " 99107 \n", + " \n", + " 13648 \n", + " \n", + " 13956 \n", + " \n", + " nan \n", + " \n", + " 1 \n", + " NULL1943-04-06Hl.m. Praha
536611359OWNERclassicMsouth Moravia\n", + " 117897 \n", + " \n", + " 139 \n", + " \n", + " 28 \n", + " \n", + " 5 \n", + " \n", + " 1 \n", + " \n", + " 6 \n", + " \n", + " 53.8\n", + " \n", + " 8814 \n", + " \n", + " 4.7\n", + " \n", + " 5.74\n", + " \n", + " 107 \n", + " \n", + " 2112 \n", + " \n", + " 2059 \n", + " \n", + " 13660 \n", + " \n", + " 13968 \n", + " \n", + " 1247 \n", + " \n", + " 61 \n", + " 1995-06-131968-04-13Trebic
536711362OWNERNULLFnorth Moravia\n", + " 106054 \n", + " \n", + " 38 \n", + " \n", + " 25 \n", + " \n", + " 6 \n", + " \n", + " 2 \n", + " \n", + " 6 \n", + " \n", + " 63.1\n", + " \n", + " 8110 \n", + " \n", + " 5.7\n", + " \n", + " 6.55\n", + " \n", + " 109 \n", + " \n", + " 3244 \n", + " \n", + " 3079 \n", + " \n", + " 13663 \n", + " \n", + " 13971 \n", + " \n", + " nan \n", + " \n", + " 67 \n", + " NULL1962-10-19Bruntal
536811382OWNERNULLFnorth Moravia\n", + " 323870 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 0 \n", + " \n", + " 1 \n", + " \n", + " 1 \n", + " \n", + " 100 \n", + " \n", + " 10673 \n", + " \n", + " 4.7\n", + " \n", + " 5.44\n", + " \n", + " 100 \n", + " \n", + " 18782 \n", + " \n", + " 18347 \n", + " \n", + " 13690 \n", + " \n", + " 13998 \n", + " \n", + " nan \n", + " \n", + " 74 \n", + " NULL1953-08-12Ostrava - mesto
\n", + "\n", + "

\n", + " 5369 rows x 25 columns
\n", + " memory usage: 1.10 MB
\n", + " name: meta
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name account_id type_disp type_card gender ... card_id district_id issued \n", + "role join_key categorical categorical categorical ... unused_float unused_float unused_string\n", + " 0 1 OWNER NULL F ... nan 18 NULL \n", + " 1 2 OWNER NULL M ... nan 1 NULL \n", + " 2 2 DISPONENT NULL F ... nan 1 NULL \n", + " 3 3 OWNER NULL M ... nan 5 NULL \n", + " 4 3 DISPONENT NULL F ... nan 5 NULL \n", + " ... ... ... ... ... ... ... \n", + "5364 11349 OWNER NULL F ... nan 1 NULL \n", + "5365 11349 DISPONENT NULL M ... nan 1 NULL \n", + "5366 11359 OWNER classic M ... 1247 61 1995-06-13 \n", + "5367 11362 OWNER NULL F ... nan 67 NULL \n", + "5368 11382 OWNER NULL F ... nan 74 NULL \n", + "\n", + "name birth_date A2 \n", + "role unused_string unused_string \n", + " 0 1970-12-13 Pisek \n", + " 1 1945-02-04 Hl.m. Praha \n", + " 2 1940-10-09 Hl.m. Praha \n", + " 3 1956-12-01 Kolin \n", + " 4 1960-07-03 Kolin \n", + " ... ... \n", + "5364 1945-10-30 Hl.m. Praha \n", + "5365 1943-04-06 Hl.m. Praha \n", + "5366 1968-04-13 Trebic \n", + "5367 1962-10-19 Bruntal \n", + "5368 1953-08-12 Ostrava - mesto\n", + "\n", + "\n", + "5369 rows x 25 columns\n", + "memory usage: 1.10 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Predictive modeling\n", + "\n", + "We loaded the data, defined the roles, units and the abstract data model. Next, we create a getML pipeline for relational learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.1 getML Pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "__Set-up of feature learners, selectors & predictor__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mapping = getml.preprocessors.Mapping(min_freq=100)\n", + "\n", + "fast_prop = getml.feature_learning.FastProp(\n", + " aggregation=getml.feature_learning.FastProp.agg_sets.All,\n", + " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", + " num_threads=1,\n", + ")\n", + "\n", + "feature_selector = getml.predictors.XGBoostClassifier(n_jobs=1)\n", + "\n", + "# the population is really small, so we set gamma to mitigate overfitting\n", + "predictor = getml.predictors.XGBoostClassifier(\n", + " gamma=2,\n", + " n_jobs=1,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Build the pipeline__" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "pipe = getml.pipeline.Pipeline(\n", + " data_model=star_schema.data_model,\n", + " preprocessors=[mapping],\n", + " feature_learners=[fast_prop],\n", + " feature_selectors=[feature_selector],\n", + " predictors=predictor,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.2 Model training" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K⠧ Staging... 0% • --:--" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
OK.\n",
+       "
\n" + ], + "text/plain": [ + "OK.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Trying 808 features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K XGBoost: Training as feature selector... ━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
Trained pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "Trained pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time taken: 0:00:01.070034.\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
Pipeline(data_model='population',\n",
+       "         feature_learners=['FastProp'],\n",
+       "         feature_selectors=['XGBoostClassifier'],\n",
+       "         include_categorical=False,\n",
+       "         loss_function='CrossEntropyLoss',\n",
+       "         peripheral=['meta', 'order', 'trans'],\n",
+       "         predictors=['XGBoostClassifier'],\n",
+       "         preprocessors=['Mapping'],\n",
+       "         share_selected_features=0.5,\n",
+       "         tags=['container-CE93xg'])
" + ], + "text/plain": [ + "Pipeline(data_model='population',\n", + " feature_learners=['FastProp'],\n", + " feature_selectors=['XGBoostClassifier'],\n", + " include_categorical=False,\n", + " loss_function='CrossEntropyLoss',\n", + " peripheral=['meta', 'order', 'trans'],\n", + " predictors=['XGBoostClassifier'],\n", + " preprocessors=['Mapping'],\n", + " share_selected_features=0.5,\n", + " tags=['container-CE93xg'])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe.fit(star_schema.train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.3 Model evaluation" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "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", + "
date time set usedtarget accuracy auccross entropy
02024-09-12 21:48:14traindefault0.99781.0.0671
12024-09-12 21:48:15testdefault0.96860.94650.13814
" + ], + "text/plain": [ + " date time set used target accuracy auc cross entropy\n", + "0 2024-09-12 21:48:14 train default 0.9978 1. 0.0671 \n", + "1 2024-09-12 21:48:15 test default 0.9686 0.9465 0.13814" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe.score(star_schema.test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.4 Studying features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Visualizing the learned features__\n", + "\n", + "The feature with the highest importance is:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "```sql\n", + "DROP TABLE IF EXISTS \"FEATURE_1_21\";\n", + "\n", + "CREATE TABLE \"FEATURE_1_21\" AS\n", + "SELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\n", + " t1.rowid AS rownum\n", + "FROM \"POPULATION__STAGING_TABLE_1\" t1\n", + "INNER JOIN \"TRANS__STAGING_TABLE_4\" t2\n", + "ON t1.\"account_id\" = t2.\"account_id\"\n", + "WHERE t2.\"date\" <= t1.\"date_loan\"\n", + "GROUP BY t1.rowid;\n", + "```" + ], + "text/plain": [ + "'DROP TABLE IF EXISTS \"FEATURE_1_21\";\\n\\nCREATE TABLE \"FEATURE_1_21\" AS\\nSELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\\n t1.rowid AS rownum\\nFROM \"POPULATION__STAGING_TABLE_1\" t1\\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\\nON t1.\"account_id\" = t2.\"account_id\"\\nWHERE t2.\"date\" <= t1.\"date_loan\"\\nGROUP BY t1.rowid;'" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "by_importances = pipe.features.sort(by=\"importances\")\n", + "by_importances[0].sql" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Feature correlations__\n", + "\n", + "We want to analyze how the features are correlated with the target variable." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABmAAAAOkCAYAAACxvPtEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDGklEQVR4nOzdeZid8/k/8Hsmk0z2BNkjMsSSIEQTfBNLLCFIbUVRRYIoaYqSalCJpSRatXyp2KNVam1VLamIrUgFaWqphEaCisSSbxaJBDOf3x8u8zOyiPGZOWbyel3Xua6cZ7vv55zznGXe+TxPUUopBQAAAAAAANkUF7oBAAAAAACA+kYAAwAAAAAAkJkABgAAAAAAIDMBDAAAAAAAQGYCGAAAAAAAgMwEMAAAAAAAAJkJYAAAAAAAADITwAAAAAAAAGQmgAEAAAAAAMhMAAMAAGuRZ599Nvr16xfNmjWLoqKimDZtWqFbYhXOOeecKCoqyrrNxx57LIqKiuKxxx7Lul0AAGBFJYVuAAAAqB2ffPJJHHLIIdG4ceO49NJLo2nTptG1a9fsdebMmRPXXnttHHDAAdGrV6/s2+erXXXVVdG0adMYPHhwoVsBAIC1lgAGAADWEjNnzow33ngjrrvuujjuuONqrM6cOXPi3HPPjbKyMgFMgVx11VXRpk2bFQKYnXfeOT766KNo1KhRYRoDAIC1iFOQAQDAWuLdd9+NiIjWrVsXtpFqWrZsWVRUVBS6jdWqqKiIZcuWrXTekiVLarmbFRUXF0fjxo2juNhPQQAAqGm+dQMAwFpg8ODB0b9//4iIOOSQQ6KoqCh22WWXyvnTp0+Pgw8+ONZdd91o3Lhx9OnTJ+69994q25g/f36MGDEievbsGc2bN4+WLVvG3nvvHf/6178ql3nsscdi2223jYiIIUOGRFFRURQVFcVNN90UERFlZWUrPS3WLrvsUqWfz69Vctttt8UvfvGL6Ny5czRt2jQWLVoUERHPPPNM7LXXXtGqVato2rRp9O/fP5566qk1eiyWLVsW55xzTmy66abRuHHj6NixY3zve9+LmTNnVi6zZMmSOO2006JLly5RWloam222WVx88cWRUqqyraKiohg+fHjccsstscUWW0RpaWlMmDAhbrrppigqKorHH388hg0bFu3atYv111+/cr0HH3wwdtppp2jWrFm0aNEiBg0aFC+//PJX9j5+/PjYbbfdol27dlFaWhqbb755jBs3rsoyZWVl8fLLL8fjjz9e+fh//tiu6howd955Z/Tu3TuaNGkSbdq0iR/+8Ifx9ttvV1lm8ODB0bx583j77bfjgAMOiObNm0fbtm1jxIgRUV5eXmXZ2267LXr37h0tWrSIli1bRs+ePePyyy//yv0DAID6xCnIAABgLfCjH/0oOnfuHBdeeGGcdNJJse2220b79u0jIuLll1+OHXbYITp37hwjR46MZs2axR133BEHHHBA3H333XHggQdGRMTrr78e99xzTxxyyCGx4YYbxrx58+Kaa66J/v37x7///e/o1KlT9OjRI84777wYNWpUHH/88bHTTjtFRES/fv2q1ff5558fjRo1ihEjRsTy5cujUaNG8cgjj8Tee+8dvXv3jtGjR0dxcXFlMPH3v/89tttuu1Vur7y8PL773e/GpEmT4rDDDouTTz45Fi9eHBMnToyXXnopunXrFiml2G+//eLRRx+NY489Nnr16hV/+9vf4mc/+1m8/fbbcemll1bZ5iOPPBJ33HFHDB8+PNq0aRNlZWUxbdq0iIgYNmxYtG3bNkaNGlU5Aubmm2+Oo48+OgYOHBgXXXRRLF26NMaNGxc77rhj/POf/4yysrJV9j9u3LjYYostYr/99ouSkpL461//GsOGDYuKior48Y9/HBERl112WfzkJz+J5s2bx1lnnRURUflcr8xNN90UQ4YMiW233TbGjBkT8+bNi8svvzyeeuqp+Oc//1llxFR5eXkMHDgwtt9++7j44ovj4Ycfjt/85jfRrVu3OPHEEyMiYuLEiXH44YfH7rvvHhdddFFERLzyyivx1FNPxcknn7zKPgAAoN5JAADAWuHRRx9NEZHuvPPOKtN333331LNnz7Rs2bLKaRUVFalfv35pk002qZy2bNmyVF5eXmXdWbNmpdLS0nTeeedVTnv22WdTRKTx48ev0EPXrl3T0UcfvcL0/v37p/79+6/Q60YbbZSWLl1apa9NNtkkDRw4MFVUVFROX7p0adpwww3THnvssdrH4MYbb0wRkS655JIV5n2+vXvuuSdFRPrlL39ZZf7BBx+cioqK0n/+85/KaRGRiouL08svv1xl2fHjx6eISDvuuGP69NNPK6cvXrw4tW7dOg0dOrTK8nPnzk2tWrWqMn306NHpyz/ZvvhYfG7gwIFpo402qjJtiy22qPJ4fu7zx/XRRx9NKaX08ccfp3bt2qUtt9wyffTRR5XL3XfffSki0qhRoyqnHX300SkiqjzXKaW0zTbbpN69e1feP/nkk1PLli2r7DcAAKyNnIIMAADWYvPnz49HHnkkvv/978fixYvj/fffj/fffz8++OCDGDhwYLz22muVp6IqLS2tvHZIeXl5fPDBB9G8efPYbLPNYurUqTXS39FHHx1NmjSpvD9t2rR47bXX4gc/+EF88MEHlf0uWbIkdt9993jiiSdWe52Yu+++O9q0aRM/+clPVphXVFQUEREPPPBANGjQIE466aQq80877bRIKcWDDz5YZXr//v1j8803X2m9oUOHRoMGDSrvT5w4MRYsWBCHH354Ze/vv/9+NGjQILbffvt49NFHV/t4fPGxWLhwYbz//vvRv3//eP3112PhwoWrXXdlnnvuuXj33Xdj2LBh0bhx48rpgwYNiu7du8f999+/wjonnHBClfs77bRTvP7665X3W7duHUuWLImJEyd+7X4AAKA+cQoyAABYi/3nP/+JlFKcffbZcfbZZ690mXfffTc6d+4cFRUVcfnll8dVV10Vs2bNqnLdj/XWW69G+ttwww2r3H/ttdci4rNgZlUWLlwY66yzzkrnzZw5MzbbbLMoKVn1T6E33ngjOnXqFC1atKgyvUePHpXzV9fjmvS/2267rXT5li1brnJbERFPPfVUjB49OiZPnhxLly6tMm/hwoXRqlWr1a7/ZZ/vy2abbbbCvO7du8eTTz5ZZVrjxo2jbdu2Vaats8468X//93+V94cNGxZ33HFH7L333tG5c+fYc8894/vf/37stddeX6s3AACo6wQwAACwFvt8tMiIESNi4MCBK11m4403joiICy+8MM4+++w45phj4vzzz4911103iouL45RTTlntqJMv+nyUyZeVl5dXGSnyuS+O+Phiv7/+9a+jV69eK91W8+bN16iXXL7c4+rmfd7/zTffHB06dFhh+dUFQzNnzozdd989unfvHpdcckl06dIlGjVqFA888EBceumla/wcfBMre46+rF27djFt2rT429/+Fg8++GA8+OCDMX78+DjqqKPid7/7XY33CAAA3xYCGAAAWItttNFGERHRsGHDGDBgwGqXveuuu2LXXXeNG264ocr0BQsWRJs2bSrvrypkifhstMSCBQtWmP7GG29U9rI63bp1i4jPRop8Vb+rWv+ZZ56JTz75JBo2bLjSZbp27RoPP/xwLF68uMoomOnTp1fOr67P+2/Xrt3X7v+vf/1rLF++PO69997YYIMNKqev7LRlq3sOvujzfZkxY8YKo3JmzJhR7X1t1KhR7LvvvrHvvvtGRUVFDBs2LK655po4++yzKwM9AACo71wDBgAA1mLt2rWLXXbZJa655pp45513Vpj/3nvvVf67QYMGkVKqMv/OO++svEbM55o1axYRsdKgpVu3bvGPf/wjPv7448pp9913X7z11ltr1G/v3r2jW7ducfHFF8eHH3642n5X5qCDDor3338/rrzyyhXmfb5v++yzT5SXl6+wzKWXXhpFRUWx9957r1GvKzNw4MBo2bJlXHjhhfHJJ598rf4/H33yxedg4cKFMX78+BWWbdas2Uof/y/r06dPtGvXLq6++upYvnx55fQHH3wwXnnllRg0aNBXbuPLPvjggyr3i4uLY6uttoqIqFIDAADqOyNgAABgLffb3/42dtxxx+jZs2cMHTo0Ntpoo5g3b15Mnjw5/vvf/8a//vWviIj47ne/G+edd14MGTIk+vXrFy+++GLccsstK4xc6datW7Ru3TquvvrqaNGiRTRr1iy233772HDDDeO4446Lu+66K/baa6/4/ve/HzNnzow//OEPlSNDvkpxcXFcf/31sffee8cWW2wRQ4YMic6dO8fbb78djz76aLRs2TL++te/rnL9o446Kn7/+9/HqaeeGlOmTImddtoplixZEg8//HAMGzYs9t9//9h3331j1113jbPOOitmz54dW2+9dTz00EPxl7/8JU455ZQ17nVlWrZsGePGjYsjjzwyvvOd78Rhhx0Wbdu2jTfffDPuv//+2GGHHVYaDkVE7LnnnpUjS370ox/Fhx9+GNddd120a9duhfCsd+/eMW7cuPjlL38ZG2+8cbRr126l151p2LBhXHTRRTFkyJDo379/HH744TFv3ry4/PLLo6ysLH76059+7X087rjjYv78+bHbbrvF+uuvH2+88UZcccUV0atXr8rr6AAAwNpAAAMAAGu5zTffPJ577rk499xz46abbooPPvgg2rVrF9tss02MGjWqcrkzzzwzlixZErfeemvcfvvt8Z3vfCfuv//+GDlyZJXtNWzYMH73u9/FGWec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2rRp3HjjjStd/vLLL4+99torfvazn0WPHj3i/PPPj+985ztx5ZVX1liPAAAAAAAA1Qpgdtttt7j33nsjImLIkCHx05/+NPbYY4849NBD48ADD8za4Oc+/vjjeP7552PAgAGV04qLi2PAgAExefLkla4zefLkKstHRAwcOHCVy0dELF++PBYtWlTlBgAAAAAA8HUUpWoMWamoqIiKioooKSmJiIjbbrstnn766dhkk03iRz/6UTRq1Ch7o3PmzInOnTvH008/HX379q2cfvrpp8fjjz8ezzzzzArrNGrUKH73u9/F4YcfXjntqquuinPPPTfmzZu30jrnnHNOnHvuuStMX7hwYbRs2TLDntQfZSPvr7Ftzx47qMa2/XXU1D5+W/avEGr7Ma3t16nj4pv5NjymhXgO6/txUQj1/TH1Oq079VZXs7b5XsPXtTa8t1H3eZ3ydfkelb/m2nBcrA2PaX15nX5bjgvqv0WLFkWrVq2+Mjcoqc7Gi4uLo7j4/w+eOeyww+Kwww6rzqa+dc4444w49dRTK+8vWrQounTpUsCOAAAAAACAumaNA5gXXnhhjTe61VZbVauZ1WnTpk00aNBghZEr8+bNiw4dOqx0nQ4dOnyt5SMiSktLo7S09Js3DAAAAAAArLXWOIDp1atXFBUVxVedsayoqCjKy8u/cWNf1qhRo+jdu3dMmjQpDjjggIj47FRokyZNiuHDh690nb59+8akSZPilFNOqZw2ceLEKqcwAwAAAAAAyG2NA5hZs2bVZB9r5NRTT42jjz46+vTpE9ttt11cdtllsWTJkhgyZEhERBx11FHRuXPnGDNmTEREnHzyydG/f//4zW9+E4MGDYrbbrstnnvuubj22msLuRsAAAAAAEA9t8YBTNeuXWuyjzVy6KGHxnvvvRejRo2KuXPnRq9evWLChAnRvn37iIh48803q1ybpl+/fnHrrbfGL37xizjzzDNjk002iXvuuSe23HLLQu0CAAAAAACwFljjAObLbr755rj66qtj1qxZMXny5OjatWtcdtllseGGG8b++++fs8cqhg8fvspTjj322GMrTDvkkEPikEMOqbF+AAAAAAAAvqz4qxdZ0bhx4+LUU0+NffbZJxYsWFB5zZfWrVvHZZddlrM/AAAAAACAOqdaAcwVV1wR1113XZx11lnRoEGDyul9+vSJF198MVtz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1Kkxa9asyvs333xz7LDDDtGlS5fYcccd47bbbste85133olRo0bFbrvtFj169Igtttgi9t1337jhhhuivLw8e72v8tZbb8UxxxxTY9ufM2dOjB49Oo444ogYMWJETJ8+PXuNK6+8Mo466qjK5+vmm2+OzTffPLp37x5nnnlm1h8S++67b9x88821+qX2q9TEc/j+++/Hr371qzjwwAOjb9++0bdv3zjwwAPj17/+dY186a3N5zAi4ic/+Un8/e9/z7rNr/LRRx/Fk08+Gf/+979XmLds2bL4/e9/n63W8uXLY8SIEbHzzjvHRRddFBERv/zlL6N58+bRokWL+MEPfhCLFi3KVu9ztf3+9q9//SuOOuqo2GijjaJJkybRrFmz6NmzZ5x99tk1sn+rUxPHYW0fFxERr7zySowfP77yvXr69Olx4oknxjHHHBOPPPJI9nors9lmm8Vrr71W43WWLFkS48ePj7POOiuuvPLK+OCDD7LXePfdd6vcnzZtWhx99NGxww47xMEHHxyPPfZY9ppfVBv7WJufF4X43hZR+5+Jtfl58WW18ZqZMGFCvPjiixERUVFREeeff3507tw5SktLY/3114+xY8dm/5H9zjvvxB/+8Id44IEH4uOPP64yb8mSJXHeeedlrbcypaWl8corr9TItgtxbEycODFGjx5d+dnwxBNPxN577x277bZbjB8/Pnu91cn9GdyzZ884//zz46233sq2zTVRm6/TQh2Htf07uL7/plmZPffcM2bPnl0j277pppti8uTJEfHZ59Gxxx4bzZo1i0033TSaN28eJ5xwQvYg5v7774+dd945mjVrFp06dYoOHTpE69at48gjj4w333wza62IiH//+98xbNiw2GabbaJjx47RsWPH2GabbWLYsGEr/Vz+pmr7u/f8+fPj4IMPjg022CBOPPHEKC8vj+OOOy46duwYnTt3jn79+sU777yTve6X1eRn4vXXXx9HH3105WfR7bffHj169IiNNtooRo8eXSM16/vrZnVq+m+Kn6vJ1wwrkSCjrbbaKk2cODGllNJ1112XmjRpkk466aQ0bty4dMopp6TmzZunG264IVu9Z599NrVq1Sr17t077bjjjqlBgwbpyCOPTIceemhq3bp16tevX1q0aFG2emti2rRpqbi4ONv2mjRpkt59992UUkovv/xyatWqVdp4443TIYcckrp3756aNm2a/vWvf2Wrd/7556cWLVqkgw46KHXo0CGNHTs2rbfeeumXv/xluvDCC1Pbtm3TqFGjstUrKipKJSUlqVWrVumEE05Izz33XLZtV1fu53DKlClpnXXWSZ07d05HH310Ov3009Ppp5+ejj766LT++uunddddNz377LPZ6tX2c5jSZ89jcXFx2mSTTdLYsWPTO++8k3X7XzZjxozUtWvXyro777xzmjNnTuX8uXPnZn0Of/rTn6ZOnTql0047LfXo0SMNGzYsbbDBBukPf/hDuvXWW9PGG2+cfvKTn2Srl1Ltv79NmDAhNWnSJB100EHphz/8YWratGkaPnx4+vnPf5423njj1K1btxp/Xr8o93FYiOPiwQcfTI0aNUrrrrtuaty4cXrwwQdT27Zt04ABA9Juu+2WGjRokCZNmpSt3oEHHrjSW3FxcRowYEDl/Vx69OiRPvjgg5RSSm+++WYqKytLrVq1Sttuu21ad911U7t27dLrr7+erV5KKRUXF6d58+allFJ66qmnUsOGDVP//v3Tz372s7THHnukkpKS9Pjjj2erV9v7WNufF7X9vS2l2t/H2v68KMRxsdlmm6UnnngipZTShRdemNZbb710ySWXpAcffDBddtllqX379mns2LHZ6k2ZMiW1bt06tWzZMjVp0iRtvPHG6aWXXqqcXxOfwSu7FRcXp6OOOqryfk61fWzcfPPNqaSkJH3nO99JzZs3T+PHj0+tW7dOxx13XDrmmGNSo0aN0p133pmt3lfJ/RlcVFSU1ltvvdSgQYM0cODAdNddd6VPPvkk2/ZXprZfp7V9HBbid3B9/02zzTbbrPRWVFSUevToUXk/pw033DD94x//SCmlNGLEiFRWVpb+9Kc/pVdeeSXdc889adNNN00/+9nPstX7/e9/n1q0aJFOO+20dNZZZ6UOHTqkkSNHpnHjxqX+/funNm3apFdffTVbvQceeCA1atQo/c///E8aPXp0uuqqq9JVV12VRo8enfr165dKS0vThAkTstWr7e/eKaV0zDHHpC233DJdccUVqX///mn//fdPW221VXryySfT008/nbbddtt01FFHZatX25+Jl156aWrWrFn63ve+lzp27Jh++ctfVh6H5557bmrZsmW65pprstVLae143axO7s/gQnyPYkUCGLJq0qRJmj17dkrpsy8w1157bZX5t9xyS9p8882z1dthhx3SOeecU3n/5ptvTttvv31KKaX58+enXr16pZNOOilbvZRS+stf/rLa26WXXpr9B8vnf2zaf//907777lv5g6W8vDwddthh6bvf/W62et26dUt33313SumzN/4GDRqkP/zhD5Xz//SnP6WNN944W72ioqL08ssvp0svvTT17NkzFRcXp6233jpdccUVaf78+dnqfFFtP4fbb799Ov7441NFRcUK8yoqKtLxxx+f/ud//idbvdp+DlP67Hl8+OGH08knn5zatGmTGjZsmPbbb7/017/+NZWXl2etlVJKBxxwQBo0aFB677330muvvZYGDRqUNtxww/TGG2+klPL/qO7SpUvlH2JmzpyZiouL0z333FM5/6GHHkpdu3bNVi+l2n9/69WrVxo3blzl/Yceeih17949pZTSxx9/nHbfffc0ePDgbPVq+zgsxHHRt2/fdNZZZ6WUUvrjH/+Y1llnnXTmmWdWzh85cmTaY489stUrKipK/fv3T4MHD65yKy4uTgcccEDl/Zz1Pv98OuKII1K/fv3SggULUkopLV68OA0YMCAdfvjh2ep9ueYee+yRjjnmmCrzTz755LTbbrvVSL3a2Mfa/ryo7e9tKdX+Ptb250UhjovS0tLK/dlyyy3THXfcUWX+fffdl/X9bcCAAWnIkCGpvLw8LVq0KJ144olpvfXWS1OnTk0p1cxj2qtXr7TLLrtUuRUVFaVtt9027bLLLmnXXXfNVi+l2j82evXqlS6//PKUUkoPP/xwatKkSbrkkksq51988cVphx12yFavEL9n3n777fTnP/857bvvvqmkpCS1bds2nXbaaenf//53tjpfVNuv09o+DgvxO7i+/6YpKSlJe+21VzrnnHMqb6NHj07FxcVp2LBhldNy+uLrZtNNN00PPvhglfmPP/542mCDDbLV6969e7rtttsq7z/77LNp/fXXr3xODz300Kz/WWerrbZKZ5999irnjx49OvXs2TNbvdr+7p1SSh07dkxPPfVUSumz95WioqL00EMPVc5/8sknU+fOnbPVq+3PxO7du6dbbrklpZTS1KlTU0lJSbr++usr519//fWpd+/e2eqlVP9fN4X4DK7t71GsSABDVuutt17lCIZ27dqladOmVZn/n//8JzVp0iRbvSZNmqSZM2dW3i8vL08NGzZMc+fOTSl99gfETp06ZauX0v//n/5FRUWrvNXUD/kuXbpU/s+qz02dOjV17NgxW70mTZpUfglMKaWGDRtW+d9is2fPTk2bNs1W74v7l1JKzzzzTDr++ONTq1atUpMmTdLhhx+e/X8b1PZz2Lhx4/TKK6+scv4rr7ySGjdunK1ebT+HKVV9Hj/++ON0++23p4EDB6YGDRqkTp06pTPPPDO99tpr2eq1a9cuvfDCC5X3Kyoq0gknnJA22GCDNHPmzOw/qr/qMZ01a1b2x7S2398aN26cZs2aVXm/oqIiNWzYsPJ/ij/xxBOpbdu22erV9nFYiOOiZcuWla/78vLyVFJSUvmHn5RSevHFF1P79u2z1fvjH/+Y1l9//XTjjTdWmV5SUpJefvnlbHU+98XjfqONNqryYzOlz0aodOnSpcZqduzYMU2ePLnK/Jdeeim1adOmRurVxj7W9udFbX9vS6n297G2Py8KcVx88Vho3759lfeZlFJ69dVXsz6P66yzTpoxY0aVaWPGjEnrrLNOmjJlSvbHdMyYMWnDDTdc4ftgTb23pVT7x0azZs2qjIxq2LBhlRHur7zySlpvvfWy1Svk75mUUpozZ0668MIL0yabbJKKi4tT3759s4+2q+3XaW0fh4X4HVzff9M8+eSTqVu3bmnUqFFV/gNZTb7XdO3aNT3yyCMppZQ6d+68wgiif//736lZs2bZ6jVp0qTK9/2UPtu/t99+O6X02W/x1q1bZ6vXuHHjNH369FXOnz59etbXTG1/904ppaZNm1YG9il99jp98cUXK++//vrrWZ/D2v5M/PJxWFpaWuU4fO2117K+ZlKq/6+b2v4MLsT3KFbkGjBktffee8e4ceMiIqJ///5x1113VZl/xx13xMYbb5ytXrt27aqcT3PevHnx6aefRsuWLSMiYpNNNon58+dnqxcR0bFjx/jTn/4UFRUVK71NnTo1a72ioqIoKiqKiIji4uJo1apVlfmtW7eO//u//8tWr0OHDpXn1HzttdeivLy8yjk2X3755WjXrl22el+23XbbxTXXXBNz5syJq666Kt56663YY489stao7eewQ4cOMWXKlFXOnzJlSrRv3z5rvUI+hw0bNozvf//7MWHChHj99ddj6NChccstt8Rmm22WrcZHH30UJSUllfeLiopi3Lhxse+++0b//v3j1VdfzVYrImKDDTaoPD/zs88+G0VFRVWe02eeeSY6d+6ctWZtv7917tw5ZsyYUXl/5syZUVFREeutt15ERKy//vrx4YcfZqtXiOOwEMfFF9+/GzduXOU9vEWLFrFw4cJstQ477LD4+9//HjfccEMcdNBBWT8bVuXz/Vu2bFl07NixyrzOnTvXyPngFy9eHIsWLYrGjRtHaWlplXmNGzeOpUuXZq1Xm/tY258Xtf29LaL297G2Py8+rxFRe8fFgQceGBdccEGUl5fH/vvvH1dddVWVa01cccUV0atXr6w1ly1bVuX+yJEj48wzz4w999wznn766ay1Ro4cGbfffnuceOKJMWLEiPjkk0+ybn9lavvYaNiwYZVrlJSWlkbz5s2r3M95vcRC/J75cv0zzjgjXn311Zg0aVJ069YtTjrppKw1I2r3dVrbx2EhfgfX9980O+ywQzz//PPx6quvRr9+/WLmzJnZtr0qRxxxRJx11lmxYMGCOPLII+O8886r/L69dOnSOOecc2KHHXbIVq+srCyee+65yvtTp06N4uLiyudt3XXXzfoeW1ZWFvfff/8q599///3RtWvXbPUiave7d8Rnx9p9990XEREPPvhgNG7cOB566KHK+X/7299iww03zFavtj8TmzZtGkuWLKm837Zt2yqfTxGR/VpM9f11U9ufwYX4HsWKSr56EVhzF110Ueywww7Rv3//6NOnT/zmN7+Jxx57LHr06BEzZsyIf/zjH/HnP/85W70DDjggTjjhhPj1r38dpaWlcf7550f//v2jSZMmERExY8aM7H8U7d27dzz//POx//77r3R+UVFR1gssppRi0003jaKiovjwww/jhRdeiK222qpy/n/+85/o0KFDtnpHHHFEHHXUUbH//vvHpEmT4vTTT48RI0bEBx98EEVFRXHBBRfEwQcfnK3eqjRt2jQGDx4cgwcPzv7Hkdp+DkeMGBHHH398PP/887H77rtXfsGdN29eTJo0Ka677rq4+OKLs9X7tjyHEZ8FF+ecc06MHj06Hn744Wzb7d69ezz33HPRo0ePKtOvvPLKiIjYb7/9stWKiDjhhBNi8ODBcf3118fzzz8fF198cZx55pkxffr0KC4ujnHjxsVpp52WtWZtv78dddRRcdxxx8VZZ50VpaWlcckll8R+++0XjRo1iojPLnae88dDbR+HhTguysrK4rXX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ZJQSAwcOxLZt2474/OrVq1Py/pC+expN9tyzPkbOafg9jSZ77lkfo8ac+mZ9Trkvwu9pNK33NJrWexqszyn3hY11ah3XjHscY/jrxnqPDqP9IzhkU1VVlYwePVrWrVsneXl58txzz8kDDzwgBQUFcscddwTf02iy5571MXJOw+9pNNlzz/oYNebUN+tzyn0Rfk+jab2n0bTe02B9TrkvbKxT67hm3OMYw1831nvUFl+AIWc2bdokyWSy9eO5c+dKTk6ORFEkURTJCSecINddd12wPY0me3wM497TaFrvaTTZ42MY954G63PKfRF+T6NpvafRtN7TYH1OuS9srFPruGbc4xjDXzfWe9QxvgBDziQSCdm9e7eIiJSUlMiePXukqalJtmzZIuvXr5f33nsv6J5Gkz0+hnHvaTSt9zSa7PExjHtPg/U55b4Iv6fRtN7TaFrvabA+p9wXNtapdVwz7nGM4a8b6z3qGF+AIWf69+8v69atExGRKIrkzTffNNXTaLIXftN6T6NpvafRZC/8pvWeButzyn0Rfk+jab2n0bTe02B9TrkvKARcM+5xjOzFvUcdS9f+HTRkx5QpU1BWVoZBgwYhiiKMHTsWaWlp7f7dv/71r8H1NJrsue1pNK33NJrWexpN9tz2NJrWexqszyn3Rfg9jab1nkbTek+D9TnlvnDfI/e4ZtzjGNsKcd1Y71HH+AIMObNo0SJMnjwZ27Ztw9e+9jVcfvnlyMvLM9PTaLIXftN6T6NpvafRZC/8pvWeButzyn0Rfk+jab2n0bTe02B9TrkvKARcM+5xjOzFvUed0P4RHLKpvLxc9u/fb7an0WQv/Kb1nkbTek+jyV74Tes9DdbnlPsi/J5G03pPo2m9p8H6nHJfUAi4ZtzjGNmLe4/aikREtF8EIiIiIiIiIiIiIiIisiShfQeIiIiIiIiIiIiIiIis4QswREREREREREREREREjvEFGCIiIiIiIiIiIiIiIsf4AgwREREREREREREREZFjfAGGiIiIiIjMEBFcccUV6N+/P6IoQm1trfZdIiIiIiKiHioSEdG+E0RERERERC48+eST+Pd//3dUV1dj2LBhOPHEE5Gent6tr1leXo69e/fikUcecXMniYiIiIioR+je/4kQERERERHFSH19PQYNGoQJEyZo35UjJJNJRFGERIJvREBERERE1BPwyp+IiIiIiEwoLy/HV7/6VTQ0NCCKIgwdOhQtLS2YP38+SkpKkJ2djdNPPx0rVqxo/W+SySRmz57devuIESNw++23t95eWVmJ+++/H48++iiiKEIURaiurkZ1dTWiKMLevXtb/25tbS2iKMKOHTsAAPfddx/69u2LlStXYvTo0cjKykJDQwOamppQUVGBoqIi5OTkYNy4caiurvY0S0RERERE5At/AoaIiIiIiEy4/fbb8ZGPfASLFi3Chg0bkJaWhvnz5+OBBx7AXXfdhdLSUjz77LOYMWMGCgoKUFZWhpaWFpx88sn47W9/i/z8fKxduxZXXHEFBg0ahIsvvhgVFRV45ZVXsH//fixevBgA0L9/f6xdu/aY7tP777+PW265Bffeey/y8/NRWFiIr3zlK3j55ZexfPlynHTSSfif//kfXHjhhairq0NpaWkqp4iIiIiIiDziCzBERERERGRCnz59kJeXh7S0NAwcOBBNTU2oqqrCH//4R4wfPx4AMGzYMKxevRp33303ysrKkJGRgRtvvLH1a5SUlOD555/HQw89hIsvvhi5ubnIzs5GU1MTBg4c2OX71NzcjDvvvBOnn346AKChoQGLFy9GQ0MDTjrpJABARUUFnnrqKSxevBhVVVUOZoKIiIiIiOKAL8AQEREREZFJ27Ztw/vvv4/zzz+/zec/+OADjBkzpvXjX/ziF/jVr36FhoYG/Otf/8IHH3yAM844w8l9yMzMxGmnndb6cV1dHZLJJIYPH97m7zU1NSE/P99Jk4iIiIiI4oEvwBARERERkUmNjY0AgN///vcoKipqc1tWVhYAYPny5aioqMCCBQswfvx45OXl4cc//jHWr1/f6ddOJD78dZoi0vq55ubmI/5ednY2oihqc5/S0tLw4osvIi0trc3fzc3N7cLoiIiIiIgo7vgCDBERERERmXToL74vKytr9++sWbMGEyZMwJe//OXWz9XX17f5O5mZmUgmk20+V1BQAADYtWsX+vXrBwCora096n0aM2YMkskk3nzzTZxzzjldGQ4REREREQWGL8AQEREREZFJeXl5qKiowDe/+U20tLRg4sSJ2LdvH9asWYPevXtj1qxZKC0txa9//Ws8/fTTKCkpwZIlS7BhwwaUlJS0fp2hQ4fi6aefxl/+8hfk5+ejT58+OOWUUzB48GBUVlZi3rx52Lp1KxYsWHDU+zR8+HBccsklmDlzJhYsWIAxY8bgrbfewp/+9Cecdtpp+NznPpfKKSEiIiIiIo8S2neAiIiIiIgoVX74wx/i+uuvx/z58zFq1ChceOGF+P3vf9/6AsucOXMwefJkTJ06FePGjcPbb7/d5qdhAODyyy/HiBEjMHbsWBQUFGDNmjXIyMjAsmXL8Oqrr+K0007DLbfcgrlz5x7TfVq8eDFmzpyJb3/72xgxYgS+8IUvYMOGDSguLnY+fiIiIiIi0hPJoW9aTERERERERERERERERN3Gn4AhIiIiIiIiIiIiIiJyjC/AEBEREREREREREREROcYXYIiIiIiIiIiIiIiIiBzjCzBERERERERERERERESO8QUYIiIiIiIiIiIiIiIix/gCDBERERERERERERERkWN8AYaIiIiIiIiIiIiIiMgxvgBDRERERERERERERETkGF+AISIiIiIiIiIiIiIicowvwBARERERERERERERETnGF2CIiIiIiIiIiIiIiIgc+39kyPAigkEJRwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "names, correlations = pipe.features[:50].correlations()\n", + "\n", + "fig, ax = plt.subplots(figsize=(20, 10))\n", + "\n", + "ax.bar(names, correlations)\n", + "\n", + "ax.set_title(\"feature correlations\")\n", + "ax.set_xlabel(\"feature\")\n", + "ax.set_ylabel(\"correlation\")\n", + "ax.tick_params(axis=\"x\", rotation=90)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Feature importances__\n", + "\n", + "Feature importances are calculated by analyzing the improvement in predictive accuracy on each node of the trees in the XGBoost predictor. They are then normalized, so that all importances add up to 100%." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABmYAAAOkCAYAAAC8oosDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACU1UlEQVR4nOzdfZSXdYH//9cMCAg4ICIzQKyDYt4kioJOmInJbKNZRpF32VdCw+ob3k36C1oDb9pgvQtbb9hu1Pa78sWs3XZTv+wqipaOqKCVph41lRIBlYVRWLmbz++PjlMToDDOXKPD43HOdZq5Pu/P+/2+PkPn7PY81+cqK5VKpQAAAAAAANDuyjt6AwAAAAAAADsKYQYAAAAAAKAgwgwAAAAAAEBBhBkAAAAAAICCCDMAAAAAAAAFEWYAAAAAAAAKIswAAAAAAAAURJgBAAAAAAAoiDADAAAAAABQEGEGAAB2UA8//HAOP/zw9OrVK2VlZXnsscc6ekuFeuGFF1JWVpabbrqpo7cCAADsQLp29AYAAIDibdiwISeccEJ69OiR7373u+nZs2f22GOPNl9n6dKl+f73v59x48ZlxIgRbT7/ju66665Lz54988UvfrGjtwIAAGyjslKpVOroTQAAAMV66qmnst9+++UHP/hBvvSlL7XbOo888kgOPfTQ3Hjjje+5eFAqlbJu3brstNNO6dKlS0dvp1UOOOCA9O/fPwsWLOjorQAAANvIV5kBAMAOaMWKFUmSvn37duxGWunNN99MU1PTu5qjrKwsPXr0eF9GmbVr13b0FgAAgFYSZgAAYAfzxS9+MWPGjEmSnHDCCSkrK8tRRx3V/PpTTz2Vz33uc+nXr1969OiRUaNG5T/+4z9azLFy5cqcf/75GT58eHr37p2Kiooce+yx+fWvf908ZsGCBTn00EOTJBMnTkxZWVmLZ7pUV1dv8S6ao446qsV+FixYkLKyssydOzcXXnhhBg8enJ49e6axsTFJsnDhwhxzzDHp06dPevbsmTFjxuT+++9/x89hS8+Y+eIXv5jevXtnyZIl+eQnP5nevXtn8ODBufbaa5Mkv/3tb3P00UenV69e2WOPPTJnzpwWc950000pKyvLfffdly9/+cvZbbfdUlFRkdNOOy3//d//vdkerrvuunzoQx9K9+7dM2jQoHzta1/LqlWrNvs8DjjggCxatChHHnlkevbsmW9+85uprq7OE088kXvvvbf5s33rc9uWv89ffrY/+clP8vd///f5wAc+kB49emTs2LF59tlnN9vvwoUL84lPfCK77rprevXqlQMPPDBXX311izHb8u9nw4YNufjii7P33nunR48e2W233XLEEUfkzjvvfNu/GQAAdAaeMQMAADuYL3/5yxk8eHC+853v5Oyzz86hhx6aysrKJMkTTzyRj3zkIxk8eHCmTJmSXr165Sc/+UnGjRuXn/3sZ/nMZz6TJPn973+fn//85znhhBMydOjQLF++PP/0T/+UMWPG5He/+10GDRqU/fbbL5dcckmmTZuWM888Mx/96EeTJIcffnir9n3ppZemW7duOf/887Nu3bp069Ytd999d4499tiMHDky06dPT3l5eW688cYcffTR+eUvf5nDDjtsu9fZtGlTjj322Bx55JG57LLLcvPNN2fy5Mnp1atX/u7v/i6nnnpqPvvZz2b27Nk57bTTMnr06AwdOrTFHJMnT07fvn1z0UUX5emnn87111+fF198sTmEJMlFF12Uiy++OLW1tfnqV7/aPO7hhx/O/fffn5122ql5vtdeey3HHntsTj755HzhC19IZWVljjrqqJx11lnp3bt3/u7v/i5Jmv+O2/L3+UszZ85MeXl5zj///KxevTqXXXZZTj311CxcuLB5zJ133plPfvKTGThwYM4555xUVVXlySefzG233ZZzzjknybb/+7nooosyY8aMfOlLX8phhx2WxsbGPPLII1m8eHH+9m//drv/ZgAA8L5SAgAAdjj33HNPKUnp1ltvbXF+7NixpeHDh5fefPPN5nNNTU2lww8/vLT33ns3n3vzzTdLmzZtavHe559/vtS9e/fSJZdc0nzu4YcfLiUp3XjjjZvtYY899ihNmDBhs/NjxowpjRkzZrO97rnnnqW1a9e22Nfee+9dqqurKzU1NTWfX7t2bWno0KGlv/3bv33bz+D555/fbG8TJkwoJSl95zvfaT733//936Wdd965VFZWVpo7d27z+aeeeqqUpDR9+vTmczfeeGMpSWnkyJGl9evXN5+/7LLLSklK//7v/14qlUqlFStWlLp161b6+Mc/3uJzvOaaa0pJSjfccEOLzyNJafbs2Ztdw4c+9KEWn9VbtvXv89Znu99++5XWrVvXfP7qq68uJSn99re/LZVKpdLGjRtLQ4cOLe2xxx6l//7v/24x719+9tv67+eggw4qHXfccZvtGwAAdgS+ygwAAEjyp6+/uvvuu3PiiSfm9ddfz6uvvppXX301r732Wurq6vLMM8/kpZdeSpJ079495eV/+n8nNm3alNdeey29e/fOPvvsk8WLF7fL/iZMmJCdd965+ffHHnsszzzzTD7/+c/ntddea97vmjVrMnbs2Nx3332tfg7Nl770peaf+/btm3322Se9evXKiSee2Hx+n332Sd++ffP73/9+s/efeeaZLe54+epXv5quXbvmjjvuSJLcddddWb9+fc4999zmzzFJJk2alIqKitx+++0t5uvevXsmTpy4zfvf3r/PxIkT061bt+bf37q76a1re/TRR/P888/n3HPP3ey5RG/dAbQ9/3769u2bJ554Is8888w2XxMAAHQWvsoMAABIkjz77LMplUr51re+lW9961tbHLNixYoMHjw4TU1Nufrqq3Pdddfl+eefz6ZNm5rH7Lbbbu2yv7/+urC3/kf9CRMmbPU9q1evzq677rpd6/To0SO77757i3N9+vTJBz7wgeYI8Zfnt/TsmL333rvF7717987AgQPzwgsvJElefPHFJH+KO3+pW7du2XPPPZtff8vgwYNbhJN3sr1/n7/5m79p8ftbn9lb1/bcc88lSQ444ICtrrk9/34uueSSfPrTn84HP/jBHHDAATnmmGPyv/7X/8qBBx64zdcIAADvV8IMAACQJM13l5x//vmpq6vb4phhw4YlSb7zne/kW9/6Vk4//fRceuml6devX8rLy3Puuedu810qfx053rJp06Z06dJls/N/ebfMX+738ssvz4gRI7Y4V+/evbdpL39pS2u/3flSqbTda2yvv772d7K9f5+2uLbt+fdz5JFH5rnnnsu///u/57/+67/ywx/+MN/97ncze/bsFncrAQBAZyTMAAAASZI999wzSbLTTjultrb2bcf+9Kc/zcc+9rH86Ec/anF+1apV6d+/f/PvW4svyZ/uyli1atVm51988cXmvbydvfbaK0lSUVHxjvst2jPPPJOPfexjzb+/8cYbefnll/OJT3wiSbLHHnskSZ5++ukW17p+/fo8//zz23w9W/t8t/Xvs63e+qwff/zxre5te/79JEm/fv0yceLETJw4MW+88UaOPPLIXHTRRcIMAACdnmfMAAAASZIBAwbkqKOOyj/90z/l5Zdf3uz1V155pfnnLl26bHY3xa233tr8DJG39OrVK0m2GGD22muvPPjgg1m/fn3zudtuuy1/+MMftmm/I0eOzF577ZUrrrgib7zxxtvut2jf//73s2HDhubfr7/++mzcuDHHHntskqS2tjbdunXL9773vRaf449+9KOsXr06xx133Dat06tXry1+ttv699lWhxxySIYOHZpZs2Zttt5b62zPv5/XXnutxWu9e/fOsGHDsm7dulbtDwAA3k/cMQMAADS79tprc8QRR2T48OGZNGlS9txzzyxfvjwNDQ354x//mF//+tdJkk9+8pO55JJLMnHixBx++OH57W9/m5tvvnmzO1322muv9O3bN7Nnz84uu+ySXr16paamJkOHDs2XvvSl/PSnP80xxxyTE088Mc8991z+5V/+pfnujHdSXl6eH/7whzn22GPzoQ99KBMnTszgwYPz0ksv5Z577klFRUV+8YtftPlntC3Wr1+fsWPH5sQTT8zTTz+d6667LkcccUSOP/74JMnuu++eqVOn5uKLL84xxxyT448/vnncoYcemi984QvbtM7IkSNz/fXX59vf/naGDRuWAQMG5Oijj97mv8+2Ki8vz/XXX59PfepTGTFiRCZOnJiBAwfmqaeeyhNPPJH//M//TLLt/37233//HHXUURk5cmT69euXRx55JD/96U8zefLkVu0PAADeT4QZAACg2f77759HHnkkF198cW666aa89tprGTBgQA4++OBMmzatedw3v/nNrFmzJnPmzMktt9ySQw45JLfffnumTJnSYr6ddtopP/7xjzN16tR85StfycaNG3PjjTdm6NChqaury5VXXpmrrroq5557bkaNGpXbbrstX//617d5v0cddVQaGhpy6aWX5pprrskbb7yRqqqq1NTU5Mtf/nKbfS7b65prrsnNN9+cadOmZcOGDTnllFPyve99r8VXj1100UXZfffdc8011+S8885Lv379cuaZZ+Y73/lOdtppp21aZ9q0aXnxxRdz2WWX5fXXX8+YMWNy9NFHb/PfZ3vU1dXlnnvuycUXX5wrr7wyTU1N2WuvvTJp0qTmMdv67+fss8/Of/zHf+S//uu/sm7duuyxxx759re/nQsuuKDV+wMAgPeLslIRT6oEAADYAdx0002ZOHFiHn744YwaNaqjtwMA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B+TXv/51hg4dmpqamlx22WXp1q1bvv/972fPPfds6z0CAAAAAAB0Cq0KMxdeeGHWrFmTJLnkkkvyyU9+Mh/96Eez2267Ze7cuW26QQAAAAAAgM6iVWGmrq6u+edhw4blqaeeysqVK7PrrrumrKyszTYHAAAAAADQmbTqGTOnn356Xn/99Rbn+vXrl7Vr1+b0009vk40BAAAAAAB0Nq0KMz/+8Y/zP//zP5ud/5//+Z/88z//87veFAAAAAAAQGe0XV9l1tjYmFKplFKplNdffz09evRofm3Tpk254447MmDAgDbfJAAAAAAAQGewXWGmb9++KSsrS1lZWT74wQ9u9npZWVkuvvjiNtscAAAAAABAZ7JdYeaee+5JqVTK0UcfnZ/97Gfp169f82vdunXLHnvskUGDBrX5JgEAAAAAADqD7QozY8aMycaNGzNhwoSMGjUqQ4YMaa99AQAAAAAAdDrl2/uGrl275qc//Wk2bdrUHvsBAAAAAADotLY7zCTJ0UcfnXvvvbet9wIAAAAAANCpbddXmb3l2GOPzZQpU/Lb3/42I0eOTK9evVq8fvzxx7fJ5gAAAAAAADqTVt0x87//9//O8uXLc9VVV+XUU0/NuHHjmo/PfOYz2zXXtddem+rq6vTo0SM1NTV56KGHtjr2iSeeyPjx41NdXZ2ysrLMmjWrVXO++eab+drXvpbddtstvXv3zvjx47N8+fLt2jcAAAAAAMD2alWYaWpq2uqxPc+eueWWW1JfX5/p06dn8eLFOeigg1JXV5cVK1ZscfzatWuz5557ZubMmamqqmr1nOedd15+8Ytf5NZbb829996bpUuX5rOf/ez2fQgAAAAAAADbqaxUKpU6avGampoceuihueaaa5L8KfgMGTIkZ511VqZMmfK2762urs65556bc889d7vmXL16dXbffffMmTMnn/vc55IkTz31VPbbb780NDTkwx/+8DbtvbGxMX369Mnq1atTUVGxnVfeuVVPub3d5n5h5nHtNjcAAAAAALTWtnaDVt0xkyT33ntvPvWpT2XYsGEZNmxYjj/++Pzyl7/c5vevX78+ixYtSm1t7Z83U16e2traNDQ0tGpP2zLnokWLsmHDhhZj9t133/zN3/zN2667bt26NDY2tjgAAAAAAAC2R6vCzL/8y7+ktrY2PXv2zNlnn52zzz47O++8c8aOHZs5c+Zs0xyvvvpqNm3alMrKyhbnKysrs2zZstZsa5vmXLZsWbp165a+fftu17ozZsxInz59mo8hQ4a0ao8AAAAAAMCOq2tr3vT3f//3ueyyy3Leeec1nzv77LNz1VVX5dJLL83nP//5Ntvge8XUqVNTX1/f/HtjY6M4AwAAAAAAbJdW3THz+9//Pp/61Kc2O3/88cfn+eef36Y5+vfvny5dumT58uUtzi9fvjxVVVWt2dY2zVlVVZX169dn1apV27Vu9+7dU1FR0eIAAAAAAADYHq0KM0OGDMn8+fM3O3/XXXdt810k3bp1y8iRI1vM09TUlPnz52f06NGt2dY2zTly5MjstNNOLcY8/fTTWbJkSavXBQAAAAAA2Bat+iqzr3/96zn77LPz2GOP5fDDD0+S3H///bnpppty9dVXb/M89fX1mTBhQkaNGpXDDjsss2bNypo1azJx4sQkyWmnnZbBgwdnxowZSZL169fnd7/7XfPPL730Uh577LH07t07w4YN26Y5+/TpkzPOOCP19fXp169fKioqctZZZ2X06NH58Ic/3JqPAwAAAAAAYJu0Ksx89atfTVVVVa688sr85Cc/SZLst99+ueWWW/LpT396m+c56aST8sorr2TatGlZtmxZRowYkXnz5qWysjJJsmTJkpSX//mmnqVLl+bggw9u/v2KK67IFVdckTFjxmTBggXbNGeSfPe73015eXnGjx+fdevWpa6uLtddd11rPgoAAAAAAIBtVlYqlUodvYn3o8bGxvTp0yerV6/2vJm/Uj3l9nab+4WZx7Xb3AAAAAAA0Frb2g1adcfMWx555JE8+eSTSZL9998/I0eOfDfTAQAAAAAAdGqtCjN//OMfc8opp+T+++9P3759kySrVq3K4Ycfnrlz5+YDH/hAW+4RAAAAAACgUyh/5yGb+9KXvpQNGzbkySefzMqVK7Ny5co8+eSTaWpqype+9KW23iMAAAAAAECn0Ko7Zu6999488MAD2WeffZrP7bPPPvnHf/zHfPSjH22zzQEAAAAAAHQmrbpjZsiQIdmwYcNm5zdt2pRBgwa9600BAAAAAAB0Rq0KM5dffnnOOuusPPLII83nHnnkkZxzzjm54oor2mxzAAAAAAAAnUlZqVQqbe+bdt1116xduzYbN25M165/+ja0t37u1atXi7ErV65sm52+xzQ2NqZP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hsNi/3/z5ZdforKyEp06dVI2PiIiIiIiIiIiIiIiopqMv5TZP//5TwwYMAAdO3bEmWeeiaeffho///wzrrvuOgBA//79kZKSgpEjRwIAbr/9duTk5GD06NG4+OKLMXXqVCxatAjjxo0DADiOgzvuuAPDhw9HRkYG0tPT8cADD6Bx48a4/PLLAQBZWVm48MILccMNN+CFF17AgQMHcOutt6JPnz6/+ytGREREREREREREREREf5TxGzO9e/fGjh078OCDD2Lbtm1o164dZsyYgYYNGwIAysrK4PEc+sWe7OxsTJ48Gffffz+GDh2KjIwMvPvuuzj11FP9/80999yDn3/+GYMHD8aePXvQtWtXzJgxA9HR0f7/ZtKkSbj11ltx3nnnwePxoFevXnj22Wf1DZwAVL1EXH5+/hEvE8eeO3ommrb3TDRt75losuf+pu09E0323N+0vWeiaXvPRJM99zdt75losuf+pu09E03beyaa7Lm/aWKMocwRETH9SRAREREREREREREREYUCo39jhoiIiIiIiIiIiIiIKJTwxgwREREREREREREREZEmvDFDRERERERERERERESkCW/MEBERERERERERERERacIbM0RERERERERERERERJrwxgyRZTZu3IiDBw+a/jQCRkRCqkvuU1FRgdLSUlRUVJj+VFzP5/Nh+/bt2LFjh+lPhYiI6JhsvvYGgKKiIvz666/aetu3b8e2bdu09Yj+CH59SHQkrgv1bL/GCHW8MUNBYfPmzRg4cKCyj1dcXIyNGzf63544cSK6dOmCpk2bomvXrpg6daqyVrVLLrkEEydO1PpFy9G0atUK69evD8jHXrp0Kfr374/mzZvD6/UiJiYGbdu2xQMPPIB9+/YFpHm4qKgorF69OiAfu6KiAnl5eTjnnHPw6KOPAgCGDx+O2NhYxMXF4ZprrgnoOLds2YL8/Hz07dsXeXl5WLNmjdKPb2JdAMDOnTvx2GOP4YorrkDnzp3RuXNnXHHFFXj88ccD8g331atXY8KECf75W7NmDYYMGYKBAwfiyy+/VNp69dVXMW/ePADAb7/9hkGDBiEmJgaZmZmIjY3FTTfdpPwGTdu2bfHII49g8+bNSj/usfzjH//ArFmztLSqffTRRzjnnHMQExODxo0bo1GjRoiPj0e/fv1QVlam9XNRvT9V070utm7digcffBDnnnsusrKy8Je//AWXXHIJXn75Zfh8PuW9X3/9FbNnz8aqVauOeOy3337D66+/rrz52WefIT8/37/OZ86ciYsuugjnnnsuJkyYoLz3/PPPo3///v7nzokTJ6JNmzZo3bo1hg4dqvyLKN29rVu34o033sDHH3+M/fv313rs559/xsMPP6y0d7iff/4ZEyZMwLBhw/D8889j165dyhu6x6j7GP6eQD2/VQv0MTRxXTNjxgwsX74cAFBZWYlHHnkEKSkpiIqKQpMmTTBq1Cil35T64Ycfar1dUlKCAQMGoEuXLrjyyitRVFSkrHU8559/PjZt2qT84+7evRtXXnklUlNTMWTIEPh8Plx//fVITk5GSkoKsrOzsXXrVuXdVatW4eabb0b79u2RnJyM5ORktG/fHjfffPNR961ACsQ61H2NAeh/ftN5vX8sgfy6FDBzHI8lEOep7mtF0+eMrusandf7RxPodaF7jDr3C93XGAAwfvx4DBgwwP+10ptvvomsrCw0b94c+fn5Slt0DEIUBEpKSsTj8Sj7eKeddpp89tlnIiLy0ksvidfrldtuu03Gjh0rd9xxh8TGxsrLL7+srCci4jiOhIeHS7169eSmm26SRYsWKf34h7viiiuO+s/j8Uj37t39b6syY8YM8Xq90qtXL7n22mulTp06cuutt8q9994rLVu2lBYtWsjWrVuV9e68886j/vN4PNK/f3//2yrdeeed0rhxY7nrrrskKytLbr75ZklNTZU33nhDJk+eLC1btpR//OMfynper1d++OEHERFZuXKl1KtXT1q2bCn/7//9P2ndurXUqVNHli5dqqxnYl188803Ur9+fUlJSZEBAwbIPffcI/fcc48MGDBAmjRpIg0aNJCFCxcq602fPl0iIyOlQYMGEh0dLdOnT5fExETp3r27nHvuuRIWFiZffPGFsl56errMnz9fRETy8vIkLS1N3nnnHVm9erW8++67kpmZKXfffbeynkjVc01CQoKEhYXJBRdcINOmTZMDBw4obRze83g8kpGRIaNGjVK6zo/m9ddfl7i4OLnrrrtk2LBh0qhRI7nvvvtk7NixkpOTI6eccoqsW7cuoJ9DTar3JxH962LhwoVSr1496dChg3Tt2lXCwsKkX79+0rt3b4mPj5fs7GzZt2+fst7atWulWbNm/nPnnHPOkS1btvgf37Ztm/I5nThxooSHh8tf//pXiY2NlQkTJkh8fLxcf/31MnDgQImMjJS3335bWe+RRx6RuLg46dWrlzRq1EhGjRolCQkJMnz4cCksLJTExER58MEHXdv75ptvJD4+XurWrSter1datmwpK1as8D8eiGOYlZUlu3btEhGRsrIySUtLk3r16skZZ5whDRo0kKSkJPn222+V9XSPUfcxPBGqn990H0MT1zWtWrWSmTNniohIYWGhJCQkyJNPPinTp0+Xp59+Who2bCijRo1S1vN4PLJ9+3YREZkzZ45ERERITk6O3H333dKjRw8JDw+Xr7/+Wlmvffv2R/3nOI5kZWX531Zl4MCBcuqpp8pzzz0nOTk5ctlll8lpp50ms2fPlrlz58oZZ5wh/fv3V9YTEfn4448lMjJSzjrrLMnPz5cxY8bImDFjJD8/X7KzsyUqKkpmzJihtHk8qteh7msMEf3Pb7qv9018XWriOB6P6vNU97Wi7nNGRP+eqPt638S60D1G3fuF7muMp556SmJiYqRnz56SnJwsw4cP9z93P/TQQ1K3bl158cUXlfXo6HhjhrR47733jvvvqaeeUrrxer1e2bRpk4hUfYExbty4Wo9PmjRJ2rRpo6wnUvXNy5UrV8pTTz0lbdu2FY/HI6effro899xzsnv3bqWt6l5OTo7k5ubW+ufxeOTyyy/3v61Ku3btZOzYsf63P/30U2ndurWIiOzfv1/OO+88pT3HcaRdu3bSrVu3Wv8cx5EzzjhDunXrJn/729+U9UREmjZt6v8Cv7S0VDwej7z77rv+xz/99FNp1qyZsp7jOP4vti+77DK55JJL/N9g9/l80qdPH/n73/+urGdiXXTq1EkGDx4slZWVRzxWWVkpgwcPlrPOOktZr3PnzjJs2DAREZkyZYrUr19fhg4d6n/8vvvukx49eijrRUVFyXfffSciIpmZmTJ9+vRaj3/99deSmpqqrCdSdd58//338t///lcuueQSCQ8Pl8TERLnrrrtk1apVSlvVvc8//1xuv/12OeWUUyQiIkIuvfRS+eCDD8Tn8ynvtW7dWqZOnep/e+HChdKkSRP/OdS7d2+lN511708i+tdFly5dpKCgwP/2xIkTpVOnTiIisnv3bmnXrp3cdtttynqXX365XHzxxbJjxw5Zv369XHzxxZKenu5fK4H4pn67du3kmWeeERGR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REREIeHPfSVCRERERETkAqWlpUhOTkZ2drbpT+UIPp8PjuPA4+ELGhARERERhQJe+RMRERERkdVyc3Pxj3/8A2VlZXAcB2lpaaisrMTIkSORnp4Or9eL008/HdOmTfP/Pz6fD4MGDfI/3qpVKzzzzDP+xwsKCvDaa6/hvffeg+M4cBwHRUVFKCoqguM42LNnj/+/LSkpgeM42LRpEwDg1VdfRXx8PN5//320adMGUVFRKCsrQ0VFBfLy8pCSkoKYmBh06tQJRUVFmmaJiIiIiIh04W/MEBERERGR1Z555hm0aNEC48aNw8KFCxEWFoaRI0fijTfewAsvvICMjAzMnDkT1157LRITE5GTk4PKyko0adIEb7/9NhISEjB37lwMHjwYycnJuOqqq5CXl4fVq1dj3759mDBhAgCgQYMGmDt37gl9Tr/88gseffRRjB8/HgkJCUhKSsKtt96KVatWYerUqWjcuDH++9//4sILL8Ty5cuRkZERyCkiIiIiIiKNeGOGiIiIiIisVq9ePcTFxSEsLAyNGjVCRUUFCgsL8fnnn6Nz584AgObNm2P27Nl48cUXkZOTg4iICDz00EP+j5Geno558+bhrbfewlVXXYXY2Fh4vV5UVFSgUaNGJ/05HThwAGPGjMHpp58OACgrK8OECRNQVlaGxo0bAwDy8vIwY8YMTJgwAYWFhQpmgoiIiIiIggFvzBARERERUUjZsGEDfvnlF/To0aPW+/fv34/27dv73/73v/+NV155BWVlZfj111+xf/9+tGvXTsnnEBkZidNOO83/9vLly+Hz+ZCZmVnrv6uoqEBCQoKSJhERERERBQfemCEiIiIiopBSXl4OAPjoo4+QkpJS67GoqCgAwNSpU5GXl4fRo0ejc+fOiIuLw+OPP44FCxYc92N7PFV/xlNE/O87cODAEf+d1+uF4zi1PqewsDAsXrwYYWFhtf7b2NjYkxgdEREREREFO96YISIiIiKikNKmTRtERUWhrKwMOTk5R/1v5syZg+zsbNx8883+95WWltb6byIjI+Hz+Wq9LzExEQCwdetW1K9fHwBQUlLyu59T+/bt4fP58MMPP+Dss88+meEQEREREZHL8MYMERERERGFlLi4OOTl5eHOO+9EZWUlunbtir1792LOnDmoW7cuBgwYgIyMDLz++uv45JNPkJ6ejokTJ2LhwoVIT0/3f5y0tDR88sknWLt2LRISElCvXj20bNkSTZs2RUFBAUaMGIF169Zh9OjRv/s5ZWZmom/fvujfvz9Gjx6N9u3bY8eOHfjiiy9w2mmn4eKLLw7klBARERERkUYe058AERERERGRbo888ggeeOABjBw5EllZWbjwwgvx0Ucf+W+83HjjjejZsyd69+6NTp06YdeuXbV+ewYAbrjhBrRq1QodO3ZEYmIi5syZg4iICEyZMgVr1qzBaaedhkcffRTDhw8/oc9pwoQJ6N+/P+666y60atUKl19+ORYuXIjU1FTl4yciIiIiInMcqfnix0RERERERERERERERBQw/I0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItKEN2aIiIiIiIiIiIiIiIg04Y0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItKEN2aIiIiIiIiIiIiIiIg04Y0ZIiIiIiIiIiIiIiIiTXhjhoiIiIiIiIiIiIiISBPemCEiIiIiIiIiIiIiItLk/wMPGZIyYbgb1AAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "names, importances = pipe.features[:50].importances()\n", + "\n", + "fig, ax = plt.subplots(figsize=(20, 10))\n", + "\n", + "ax.bar(names, importances)\n", + "\n", + "ax.set_title(\"feature importances\")\n", + "ax.set_xlabel(\"feature\")\n", + "ax.set_ylabel(\"importance\")\n", + "ax.tick_params(axis=\"x\", rotation=90)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Column importances__\n", + "\n", + "Because getML uses relational learning, we can apply the principles we used to calculate the feature importances to individual columns as well.\n", + "\n", + "As we can see, a lot of the predictive power stems from the account balance. This is unsurprising: People with less money on their bank accounts are more likely to default on their loans." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAARECAYAAADshZc0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADyrUlEQVR4nOzde5hVddnw8XsPhwGEGUBgUJwcEU9ogoIQnlOMkiQti7QCQbHHTKxJX+FJIQ8JHsOSIk1TU9NE08cHQ99ITY0kQFDLEyKCBw6KzHBQ0Jn9/uHL1ATaj3FkbZzP57r2dTG/vfbe956FzDjfWWvl8vl8PgAAAAAAAPhQRVkPAAAAAAAAsC0QVQAAAAAAABKIKgAAAAAAAAlEFQAAAAAAgASiCgAAAAAAQAJRBQAAAAAAIIGoAgAAAAAAkEBUAQAAAAAASCCqAAAAAAAAJBBVAACgiVq0aFHkcrm44YYbsh6lQXK5XPzoRz/KegwAAKAJEVUAAAAycOutt8akSZOyHgMAANgCzbMeAAAAoCHefvvtaN582/1fmltvvTWefvrp+N73vpf1KAAAQCJHqgAAANukVq1abZNRZe3atVmPAAAANJCoAgAA25hXX301Tj755Nhxxx2juLg4dtlllzjttNNiw4YNddssXLgwvvrVr0bHjh2jTZs28ZnPfCamTZv2H5/78MMPj8MPP3yT9ZNOOikqKirqPt54PZbLL788Jk+eHN27d482bdrE5z73uViyZEnk8/m48MILY6eddorWrVvHl770pVi5cmW956yoqIgvfvGL8eijj0a/fv2iVatW0b1797jpppuSPg//fk2VH/3oR5HL5eL555+Pb37zm1FaWhqdO3eO8847L/L5fCxZsiS+9KUvRUlJSXTt2jWuuOKKes/30EMPRS6Xi9tvvz3++7//O7p27RrbbbddDBkyJJYsWbLJ699xxx3Rp0+faN26dXTq1Cm++c1vxquvvrrJ561t27bx4osvxtFHHx3t2rWLb3zjG3H44YfHtGnT4uWXX45cLhe5XK7u87thw4YYN25c9OnTJ0pLS2O77baLQw45JB588MF6z/2v++Caa66JXXfdNYqLi+OAAw6Iv/3tb5vM++yzz8bXvva16Ny5c7Ru3Tr22GOP+OEPf1hvm1dffTVGjhwZZWVlUVxcHHvvvXdcf/31mzzXz372s9h7772jTZs20aFDh+jbt2/ceuutH7q/AADgk2Db+7UuAABowl577bXo169frFq1Kk499dTYc88949VXX42pU6fGunXromXLlrFs2bI48MADY926dTF69OjYfvvt48Ybb4whQ4bE1KlT47jjjmu0eW655ZbYsGFDnHHGGbFy5cq49NJL42tf+1occcQR8dBDD8U555wTCxYsiJ/97Gdx1llnbfID+gULFsTxxx8fJ598cgwfPjyuv/76OOmkk6JPnz6x9957N2imoUOHxl577RUTJ06MadOmxUUXXRQdO3aMX/7yl3HEEUfEJZdcErfcckucddZZccABB8Shhx5a7/E//vGPI5fLxTnnnBPLly+PSZMmxcCBA2PevHnRunXriIi44YYbYsSIEXHAAQfEhAkTYtmyZXHVVVfFY489Fk888US0b9++7vnee++9GDRoUBx88MFx+eWXR5s2baJr165RVVUVr7zySvzkJz+JiIi2bdtGRER1dXX86le/ihNOOCFGjRoVq1evjuuuuy4GDRoUs2bNit69e9eb99Zbb43Vq1fHt7/97cjlcnHppZfGl7/85Vi4cGG0aNEiIiKefPLJOOSQQ6JFixZx6qmnRkVFRbz44otx7733xo9//OOIiFi2bFl85jOfiVwuF9/97nejc+fO8Yc//CFOPvnkqK6urjtN2bXXXhujR4+O448/Ps4888x455134sknn4zHH388TjzxxAbtMwAA2GbkAQCAbcawYcPyRUVF+b/97W+b3FdbW5vP5/P5733ve/mIyD/yyCN1961evTq/yy675CsqKvI1NTX5fD6ff+mll/IRkf/1r39dt91hhx2WP+ywwzZ57uHDh+d33nnnuo83PrZz5875VatW1a2PHTs2HxH5Xr165d9999269RNOOCHfsmXL/DvvvFO3tvPOO+cjIv/nP/+5bm358uX54uLi/A9+8IP/+LmIiPz48ePrPh4/fnw+IvKnnnpq3dp7772X32mnnfK5XC4/ceLEuvW33nor37p16/zw4cPr1h588MF8ROS7deuWr66urlv/3e9+l4+I/FVXXZXP5/P5DRs25Lt06ZLfZ5998m+//Xbddv/7v/+bj4j8uHHj6n3eIiI/ZsyYTeYfPHhwvc/pv868fv36emtvvfVWvqysLD9y5Mi6tY37YPvtt8+vXLmybv2ee+7JR0T+3nvvrVs79NBD8+3atcu//PLL9Z5349+ZfD6fP/nkk/M77LBD/o033qi3zde//vV8aWlpft26dfl8Pp//0pe+lN977703mRsAAJoCp/8CAIBtRG1tbdx9991xzDHHRN++fTe5P5fLRUTEfffdF/369YuDDz647r62bdvGqaeeGosWLYp//OMfjTbTV7/61SgtLa37uH///hER8c1vfrPe9U769+8fGzZs2OT0WD179oxDDjmk7uPOnTvHHnvsEQsXLmzwTKecckrdn5s1axZ9+/aNfD4fJ598ct16+/btP/B1hg0bFu3atav7+Pjjj48ddtgh7rvvvoiImD17dixfvjy+853vRKtWreq2Gzx4cOy5556bPc3aaaedljx/s2bNomXLlhHx/j5fuXJlvPfee9G3b9+YO3fuJtsPHTo0OnToUPfxxs/nxve2YsWK+POf/xwjR46MT33qU/Ueu/HvTD6fjzvvvDOOOeaYyOfz8cYbb9TdBg0aFFVVVXWv3b59+3jllVc2e4oxAAD4pBNVAABgG7FixYqorq6OffbZ50O3e/nll2OPPfbYZH2vvfaqu7+x/PsP6TcGlvLy8s2uv/XWWx/6+IiIDh06bLLdR52pVatW0alTp03WN/c6u+22W72Pc7lc9OjRIxYtWhQR//z8be5zvOeee27y+W3evHnstNNOW/Qebrzxxth3332jVatWsf3220fnzp1j2rRpUVVVtcm2//5+NwaWje9tY1z5sL83K1asiFWrVsU111wTnTt3rncbMWJEREQsX748IiLOOeecaNu2bfTr1y922223OP300+Oxxx7bovcHAADbKtdUAQAA6uRyucjn85us19TUbHb7Zs2abdH6vz936nZbYnPP+XG8Tqri4uIoKkr/fbabb745TjrppDj22GPj7LPPji5dukSzZs1iwoQJ8eKLL26yfWO8t9ra2oh4/wij4cOHb3abfffdNyLej3PPPfdc/O///m9Mnz497rzzzvj5z38e48aNi/PPPz/5NQEAYFskqgAAwDaic+fOUVJSEk8//fSHbrfzzjvHc889t8n6s88+W3f/B+nQocNmT4nVmEe3FLoXXnih3sf5fD4WLFhQFxU2fv6ee+65OOKII+pt+9xzz33o5/dfbTz11r+bOnVqdO/ePe66665624wfPz75Pfyr7t27R0R86N+bzp07R7t27aKmpiYGDhz4H59zu+22i6FDh8bQoUNjw4YN8eUvfzl+/OMfx9ixY+udEg0AAD5pnP4LAAC2EUVFRXHsscfGvffeG7Nnz97k/o1HJhx99NExa9asmDlzZt19a9eujWuuuSYqKiqiZ8+eH/gau+66azz77LOxYsWKurX58+c3qdM73XTTTbF69eq6j6dOnRqvv/56fOELX4iIiL59+0aXLl1iypQpsX79+rrt/vCHP8QzzzwTgwcPTnqd7bbbbrOn89p45Mm/Hmny+OOP19ufW6Jz585x6KGHxvXXXx+LFy+ud9/G12jWrFl85StfiTvvvHOz8eVf/z68+eab9e5r2bJl9OzZM/L5fLz77rsNmhEAALYVjlQBAIBtyMUXXxwPPPBAHHbYYXHqqafGXnvtFa+//nrccccd8eijj0b79u1jzJgx8dvf/ja+8IUvxOjRo6Njx45x4403xksvvRR33nnnh56KauTIkXHllVfGoEGD4uSTT47ly5fHlClTYu+9947q6uqt+E6z07Fjxzj44INjxIgRsWzZspg0aVL06NEjRo0aFRERLVq0iEsuuSRGjBgRhx12WJxwwgmxbNmyuOqqq6KioiK+//3vJ71Onz594vbbb4/Kyso44IADom3btnHMMcfEF7/4xbjrrrviuOOOi8GDB8dLL70UU6ZMiZ49e8aaNWsa9J5++tOfxsEHHxz7779/nHrqqbHLLrvEokWLYtq0aTFv3ryIiJg4cWI8+OCD0b9//xg1alT07NkzVq5cGXPnzo0//vGPsXLlyoiI+NznPhddu3aNgw46KMrKyuKZZ56Jq6++OgYPHhzt2rVr0HwAALCtEFUAAGAb0q1bt3j88cfjvPPOi1tuuSWqq6ujW7du8YUvfCHatGkTERFlZWXxl7/8Jc4555z42c9+Fu+8807su+++ce+99/7Hoyj22muvuOmmm2LcuHFRWVkZPXv2jN/85jdx6623xkMPPbQV3mH2/vu//zuefPLJmDBhQqxevTqOPPLI+PnPf173+Y2IOOmkk6JNmzYxceLEOOecc2K77baL4447Li655JJo37590ut85zvfiXnz5sWvf/3r+MlPfhI777xzHHPMMXHSSSfF0qVL45e//GXcf//90bNnz7j55pvjjjvuaPA+6NWrV/z1r3+N8847L37xi1/EO++8EzvvvHN87Wtfq9umrKwsZs2aFRdccEHcdddd8fOf/zy233772HvvveOSSy6p2+7b3/523HLLLXHllVfGmjVrYqeddorRo0fHueee26DZAABgW5LLb40rMwIAABS4hx56KD772c/GHXfcEccff3zW4wAAAAXINVUAAAAAAAASiCoAAAAAAAAJRBUAAAAAAIAErqkCAAAAAACQwJEqAAAAAAAACUQVAAAAAACABM2zHmBrq62tjddeey3atWsXuVwu63EAAAAAAIAM5fP5WL16dey4445RVPThx6I0uajy2muvRXl5edZjAAAAAAAABWTJkiWx0047feg2TS6qtGvXLiLe/+SUlJRkPA0AAAAAAJCl6urqKC8vr+sHH6bJRZWNp/wqKSkRVQAAAAAAgIiIpEuGuFA9AAAAAABAAlEFAAAAAAAggagCAAAAAACQQFQBAAAAAABIIKoAAAAAAAAkEFUAAAAAAAASiCoAAAAAAAAJRBUAAAAAAIAEogoAAAAAAEACUQUAAAAAACCBqAIAAAAAAJBAVAEAAAAAAEggqgAAAAAAACQQVQAAAAAAABKIKgAAAAAAAAlEFQAAAAAAgASiCgAAAAAAQAJRBQAAAAAAIEHmUWXy5MlRUVERrVq1iv79+8esWbM+dPtVq1bF6aefHjvssEMUFxfH7rvvHvfdd99WmhYAAAAAAGiqmmf54rfffntUVlbGlClTon///jFp0qQYNGhQPPfcc9GlS5dNtt+wYUMcddRR0aVLl5g6dWp069YtXn755Wjfvv3WHx4AAAAAAGhScvl8Pp/Vi/fv3z8OOOCAuPrqqyMiora2NsrLy+OMM86IMWPGbLL9lClT4rLLLotnn302WrRo0aDXrK6ujtLS0qiqqoqSkpKPND8AAAAAALBt25JukNnpvzZs2BBz5syJgQMH/nOYoqIYOHBgzJw5c7OP+Z//+Z8YMGBAnH766VFWVhb77LNPXHzxxVFTU/OBr7N+/fqorq6udwMAAAAAANhSmUWVN954I2pqaqKsrKzeellZWSxdunSzj1m4cGFMnTo1ampq4r777ovzzjsvrrjiirjooos+8HUmTJgQpaWldbfy8vJGfR8AAAAAAEDTkPmF6rdEbW1tdOnSJa655pro06dPDB06NH74wx/GlClTPvAxY8eOjaqqqrrbkiVLtuLEAAAAAADAJ0VmF6rv1KlTNGvWLJYtW1Zv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wQXxxS9+MQ455JDYfvvt47bbbmvUAQEAAAAAAApBg6LKoEGD6v7co0ePePbZZ2PlypXRoUOHyOVyjTYcAAAAAABAoWjQNVVGjhwZq1evrrfWsWPHWLduXYwcObJRBgMAAAAAACgkDYoqN954Y7z99tubrL/99ttx0003feShAAAAAAAACs0Wnf6ruro68vl85PP5WL16dbRq1aruvpqamrjvvvuiS5cujT4kAAAAAABA1rYoqrRv3z5yuVzkcrnYfffdN7k/l8vF+eef32jDAQAAAAAAFIotiioPPvhg5PP5OOKII+LOO++Mjh071t3XsmXL2HnnnWPHHXds9CEBAAAAAACytkVR5bDDDov33nsvhg8fHn379o3y8vKPay4AAAAAAICCssUXqm/evHlMnTo1ampqPo55AAAAAAAACtIWR5WIiCOOOCIefvjhxp4FAAAAAACgYG3R6b82+sIXvhBjxoyJp556Kvr06RPbbbddvfuHDBnSKMMBAAAAAAAUigZFle985zsREXHllVducl8ul3NqMAAAAAAA4BOnQVGltra2secAAAAAAAAoaA26pgoAAAAAAEBT0+Co8vDDD8cxxxwTPXr0iB49esSQIUPikUceadBzTZ48OSoqKqJVq1bRv3//mDVr1gdue9ddd0Xfvn2jffv2sd1220Xv3r3jN7/5TUPfBgAAAAAAQJIGRZWbb745Bg4cGG3atInRo0fH6NGjo3Xr1nHkkUfGrbfeukXPdfvtt0dlZWWMHz8+5s6dG7169YpBgwbF8uXLN7t9x44d44c//GHMnDkznnzyyRgxYkSMGDEi7r///oa8FQAAAAAAgCS5fD6f39IH7bXXXnHqqafG97///XrrV155ZVx77bXxzDPPJD9X//7944ADDoirr746It6/Xkt5eXmcccYZMWbMmKTn2H///WPw4MFx4YUXbnLf+vXrY/369XUfV1dXR3l5eVRVVUVJSUnynE1FxZhpWY+wzVs0cXDWIwAAAAAAkKi6ujpKS0uTukGDjlRZuHBhHHPMMZusDxkyJF566aXk59mwYUPMmTMnBg4c+M+Biopi4MCBMXPmzP/4+Hw+HzNmzIjnnnsuDj300M1uM2HChCgtLa27lZeXJ88HAAAAAACwUYOiSnl5ecyYMWOT9T/+8Y9bFC3eeOONqKmpibKysnrrZWVlsXTp0g98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u7r1o48+Ok488cQMJ2t6HnzwwaxH4D/4oK8va9asiVatWmUwERt90L6ZP39+dOzYMYOJmraf/vSnm11fvHhx/PrXv46uXbtGRMTo0aO35lhN3uzZs2PgwIHRo0ePaN26dbzwwgtx4oknxoYNG+Kss86K66+/PqZPn17v+wE+XpMmTar785tvvhkXXXRRDBo0KAYMGBARETNnzoz7778/zjvvvIwm5JRTTom99947Zs+eHR06dIiIiLfeeitOOumkOPXUU+Mvf/lLxhM2Tffee2984xvfiDVr1kRJSUm97wFyuZyo8gnlSBUKWteuXeP++++PXr16Rbt27WL+/PnRvXv3WLhwYey7776xZs2arEdsktq3bx/Tpk2Lgw46KOtRmryXX345edudd975Y5yEf7fffvtFLpeL+fPnx9577x3Nm//z9xhqamripZdeis9//vPxu9/9LsMpm67WrVvH888/H+Xl5TFs2LDYcccdY+LEibF48eLo2bOnry8ZKS0tjblz58auu+5a7+v+yy+/HHvssUe88847WY8ImausrIyIiKuuuipGjRoVbdq0qbuvpqYmHn/88WjWrFk89thjWY3YZG38Le+qqqpNfqhSU1MTa9asif/6r/+KyZMnZzhl01NUVBTdunWr971YxPvfR++4447RokWLyOVyjrbfyg4++OA46qijYvz48RERcfPNN8fVV18df/3rX+Ott96KI444Ig499NC46qqrMp60afrKV74Sn/3sZ+O73/1uvfWrr746/vjHP8bdd9+dzWBNXOvWrWP27Nmx995711t/+umn44ADDqg7ZT5b1+677x5HH310XHzxxfW+L+OTzZEqFLS1a9du9h+klStXRnFxcQYTEfH+/zD6LbvCIJQUrmOPPTYiIubNmxeDBg2Ktm3b1t3XsmXLqKiocDREhsrLy2PmzJnRsWPHmD59etx2220R8f5vevkN7+wUFxdv9hodG09rQHZWrVoV1113Xd11h/bee+8YOXKkI+4y8MQTT0TE+0dDPPXUU9GyZcu6+1q2bBm9evWKs846K6vxmrRJkyZFPp+PkSNHxvnnn1/vv4+NX/s3/sY3W8+pp54ajz/+eNx66631zn7QokWLeOCBB6Jnz54ZTtd0zZ07t95pPU888cQYOXJkLFu2LMrKyuLSSy+Nk046SVTJyP333x+XXHLJJuuf//znY8yYMRlMRMT7P7xftmzZJlFl+fLl0aNHj4ym4tVXX43Ro0cLKk2MqEJBO+SQQ+Kmm26KCy+8MCLeP2yutrY2Lr300vjsZz+b8XRN14UXXhjjxo2LG2+80ReNAvPiiy/GpEmT6n7o1bNnzzjzzDNj1113zXiypmfjb91VVFTE0KFD/aC+wHzve9+Lb3zjG9G2bdvYeeed4/DDD4+I908L9ulPfzrb4ZqwIUOGxAUXXFB3BFcul4vFixfHOeecI0JmaPbs2TFo0KBo3bp19OvXLyIirrzyyvjxj38cDzzwQOy///4ZT9i0bDw124gRI+Kqq66KkpKSjCdio+HDh0dExC677BIHHnhgtGjRIuOJiIiYMmVK/P73v49BgwbF//k//2eT37wnG126dInXX389unfvHhERy5Yti/fee6/u37TddtvNdTsytP3228c999wTP/jBD+qt33PPPbH99ttnNBUTJkyI0aNHx49+9KP4zGc+ExERf/3rX+OCCy6ISy65pN4vJ/n+YOsZNGhQzJ49u+7fM5oGp/+ioD399NNx5JFHxv777x9/+tOfYsiQIfH3v/89Vq5cGY899pgfFGdkv/32ixdffDHy+XxUVFRs8j+Mc+fOzWiypu3++++PIUOGRO/evetOzfbYY4/F/Pnz4957742jjjoq4wmbtg0bNmz2onWf+tSnMpqIOXPmxOLFi+Ooo46qO5Jo2rRp0aFDhzjwwAMznq5pqqqqiuOPPz5mz54dq1evjh133DGWLl0aAwYMiPvuuy+22267rEdskg455JDo0aNHXHvttXWnz3nvvffilFNOiYULF8af//znjCeEwlNbWxsLFizY7Nf+Qw89NKOpmrZXX301hg0bFi1btoxf//rXUV5eHvPnz3ekSka+973vxYwZM+Kyyy6L4uLiuPDCCyOfz9eF4/vvvz9OP/30WLBgQcaTNk033HBDnHLKKfGFL3wh+vfvHxERjz/+eEyfPj2uvfbaOOmkk7IdsIkqKiqq+/PGU0xu/LHuv37smqpb13XXXRcXXHBBjBgxIj796U9v8jOyIUOGZDQZHydRhYJXVVUVV199dcyfPz/WrFkT+++/f5x++umxww47ZD1ak3X++ed/6P0bf0OfrWu//faLQYMGxcSJE+utjxkzJh544AGxKyMvvPBCjBw5cpOLBvpmN1sXXHBBnHXWWZscbff222/HZZddFuPGjctoMiIiHn300XjyySfrvu4PHDgw65GatNatW8cTTzwRe+65Z731f/zjH9G3b99Yt25dRpM1bWvXro2JEyfGjBkzNvuDe9eHyM5f//rXOPHEE+Pll1+Of//fbV/7s5XP52PixInx05/+NFasWBFPPvmkqJKRNWvWxMknnxx33XVX1NTUxIABA+Lmm2+OXXbZJSIiHnjggaiqqoqvfvWrGU/adD3++OPx05/+tO4sCHvttVeMHj26LrKw9T388MPJ2x522GEf4yT8q3+NXf/O1/1PLlEF4BOiVatW8dRTT8Vuu+1Wb/3555+Pfffd1wWeM3LQQQdF8+bNY8yYMbHDDjvUu2htRESvXr0ymqxpa9asWbz++uvRpUuXeutvvvlmdOnSxTe+8C/KysriN7/5TXzuc5+rt37//ffHsGHDYtmyZRlN1rSdcMIJ8fDDD8e3vvWtzX59OfPMMzOajN69e8fuu+8e559//mb3jWsRZW/OnDnx6KOPxrBhw6JDhw5Zj9OkvfPOO/Hee+/Vu/4g2Xr33Xfj29/+dpx33nl1kQuA+lxThYL261//Otq2bbvJb6fccccdsW7durrzFpONOXPm1Ltg7X777ZfxRE1b586dY968eZtElXnz5m3yg2O2nnnz5sWcOXM2+Q1vsrXxSKF/N3/+/OjYsWMGE7HRjBkz4ic/+Um934r83ve+52iVDA0dOjROPvnkuPzyy+tOjffYY4/F2WefHSeccELG0zVdf/jDH2LatGl1p/ykcLzwwgsxdepUFw0uYH369Ik+ffpkPQYRm73uYD6fj+nTp8d1110XU6dOzWCqpq1FixZx5513xnnnnZf1KPyb6dOnR9u2bePggw+OiIjJkyfHtddeGz179ozJkyeLxLAVffDxSVAAJkyYEJ06ddpkvUuXLnHxxRdnMBEREcuXL48jjjgiDjjggBg9enSMHj06+vTpE0ceeWSsWLEi6/GarFGjRsWpp54al1xySTzyyCPxyCOPxMSJE+Pb3/52jBo1KuvxmqyePXvGG2+8kfUY/H8dOnSIjh07Ri6Xi9133z06duxYdystLY2jjjoqvva1r2U9ZpP185//PD7/+c9Hu3bt4swzz4wzzzwzSkpK4uijj47JkydnPV6Tdfnll8eXv/zlGDZsWFRUVERFRUWcdNJJcfzxx8cll1yS9XhN1sZ/zyg8/fv3dx2IbciSJUti5MiRWY9BRLz00ktx3nnnxac+9ak47rjjHGmfoWOPPTbuvvvurMfg35x99tl1F6N/6qmnorKyMo4++uh46aWXorKyMuPpmraHH344jjnmmOjRo0f06NEjhgwZEo888kjWY/ExcvovClqrVq3i2WefjYqKinrrixYtir322ivefvvtbAZr4oYOHRoLFy6Mm266Kfbaa6+IeP+86sOHD48ePXrEb3/724wnbJry+XxMmjQprrjiinjttdciImLHHXeMs88+O0aPHr3Z38rn4/enP/0pzj333Lj44os3e9G6kpKSjCZrmm688cbI5/MxcuTImDRpUr1TsLRs2TIqKipiwIABGU7YtO20004xZsyY+O53v1tvffLkyXHxxRfHq6++mtFkRESsW7cuXnzxxYiI2HXXXTe5JhFb18033xz33HNP3HjjjfZFgfn9738f5557bpx99tmb/dq/7777ZjQZmzN//vzYf//9nfozI+vXr4+pU6fGddddF48++mjU1NTE5ZdfHieffLLvkzN00UUXxRVXXBFHHnlk9OnTJ7bbbrt6948ePTqjyZq2tm3bxtNPPx0VFRXxox/9KJ5++umYOnVqzJ07N44++uhYunRp1iM2STfffHOMGDEivvzlL9cdQfzYY4/F73//+7jhhhvixBNPzHhCPg6iCgXtU5/6VFx99dUxZMiQeuv33HNPnH766fHKK69kNFnTVlpaGn/84x/jgAMOqLc+a9as+NznPherVq3KZjDqrF69OiIi2rVrl/EkbLxo3b9HLReqz9bDDz8cBx544CY/6CJbbdu2jXnz5m1yypwXXngh9ttvv1izZk1Gk7HRkiVLIiKivLw840nYb7/94sUXX4x8Ph8VFRWb/Hs2d+7cjCZjcxeszeVyvvZn5H/+538+9P6FCxfGD37wA/tlK5szZ05cd9118dvf/jZ69OgR3/rWt2Lo0KGx0047xfz586Nnz55Zj9ikfdi1VHK5XCxcuHArTsNGHTt2jEcffTR69uwZBx98cAwbNixOPfXUWLRo0f9j776jorz29YE/MyBFBAWVqBEpggoiltiNMZZEJRENsWIFNLaIIhKNiV0TK5aYaCLNkqDEkuCJBQtqJLHTVBTEhglWbIiKwPz+4DA/B1Dx3svsje/zWeus67zznrWedeYy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "names, importances = pipe.columns.importances()\n", + "\n", + "fig, ax = plt.subplots(figsize=(20, 10))\n", + "\n", + "ax.bar(names, importances)\n", + "\n", + "ax.set_title(\"column importances\")\n", + "ax.set_xlabel(\"column\")\n", + "ax.set_ylabel(\"importance\")\n", + "ax.tick_params(axis=\"x\", rotation=90)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The most important feature looks as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "```sql\n", + "DROP TABLE IF EXISTS \"FEATURE_1_21\";\n", + "\n", + "CREATE TABLE \"FEATURE_1_21\" AS\n", + "SELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\n", + " t1.rowid AS rownum\n", + "FROM \"POPULATION__STAGING_TABLE_1\" t1\n", + "INNER JOIN \"TRANS__STAGING_TABLE_4\" t2\n", + "ON t1.\"account_id\" = t2.\"account_id\"\n", + "WHERE t2.\"date\" <= t1.\"date_loan\"\n", + "GROUP BY t1.rowid;\n", + "```" + ], + "text/plain": [ + "'DROP TABLE IF EXISTS \"FEATURE_1_21\";\\n\\nCREATE TABLE \"FEATURE_1_21\" AS\\nSELECT Q1( t2.\"balance\" ) AS \"feature_1_21\",\\n t1.rowid AS rownum\\nFROM \"POPULATION__STAGING_TABLE_1\" t1\\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\\nON t1.\"account_id\" = t2.\"account_id\"\\nWHERE t2.\"date\" <= t1.\"date_loan\"\\nGROUP BY t1.rowid;'" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe.features.to_sql()[pipe.features.sort(by=\"importances\")[0].name]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.5 Productionization\n", + "\n", + "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` and `spark` modules." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates a folder named loans_pipeline containing\n", + "# the SQL code.\n", + "pipe.features.to_sql().save(\"loans_pipeline\", remove=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates a folder named baseball_pipeline_spark containing\n", + "# the SQL code.\n", + "pipe.features.to_sql(dialect=getml.pipeline.dialect.spark_sql).save(\n", + " \"loans_pipeline_spark\", remove=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "getml.engine.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By applying getML to the PKDD'99 Financial dataset, we were able to show the power and relevance of Relational Learning on a real-world data set. Within a training time below 1 minute, we outperformed almost all approaches based on manually generated features. This makes getML the prime choice when dealing with complex relational data schemes. This result holds independent of the problem domain since no expertise in the financial sector was used in this analysis.\n", + "\n", + "The present analysis could be improved in two directions. By performing an extensive hyperparameter optimization, the out of sample AUC could be further improved. On the other hand, the hyperparameters could be tuned to produce less complex features that result in worse performance (in terms of AUC) but are better interpretable by humans." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "Schulte, Oliver, et al. \"A hierarchy of independence assumptions for multi-relational Bayes net classifiers.\" 2013 IEEE Symposium on Computational Intelligence and Data Mining (CIDM). IEEE, 2013." + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,py:percent" + }, + "kernelspec": { + "display_name": "enterprise", + "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.11.9" + }, + "toc-autonumbering": false, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/movie_lens.ipynb b/movie_lens.ipynb index 643ab67..3d0ce04 100644 --- a/movie_lens.ipynb +++ b/movie_lens.ipynb @@ -1,5716 +1,5707 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# MovieLens - Predicting a user's gender based on the movies they have watched\n", - "\n", - "In this notebook, we will apply getML to a dataset that is often used for benchmarking in the relational learning literature: The MovieLens dataset.\n", - "\n", - "Summary:\n", - "\n", - "- Prediction type: __Classification model__\n", - "- Domain: __Entertainment__\n", - "- Prediction target: __The gender of a user__ \n", - "- Population size: __6039__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Background\n", - "\n", - "The MovieLens dataset is often used in the relational learning literature has a benchmark for newly developed algorithms. Following the tradition, we benchmark getML's own algorithms on this dataset as well. The task is to predict a user's gender based on the movies they have watched.\n", - "\n", - "\n", - "It has been downloaded from the [CTU Prague relational learning repository](https://relational.fit.cvut.cz/dataset/MovieLens) (Motl and Schulte, 2015) (Now residing at [relational-data.org](https://relational-data.org/dataset/MovieLens).)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's get started with the analysis and set up your session:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -q \"getml==1.5.0\" \"matplotlib==3.9.2\" \"ipywidgets==8.1.5\"" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "getML API version: 1.5.0\n", - "\n" - ] - } - ], - "source": [ - "import os\n", - "\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import getml\n", - "\n", - "os.environ[\"PYARROW_IGNORE_TIMEZONE\"] = \"1\"\n", - "%matplotlib inline \n", - "\n", - "print(f\"getML API version: {getml.__version__}\\n\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/user --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/user/.getML/getml-1.5.0-x64-linux...\n", - "Launched the getML Engine. The log output will be stored in /home/user/.getML/logs/20240912151421.log.\n", - "\u001b[2K Loading pipelines... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
Connected to project 'MovieLens'.\n",
-                            "
\n" - ], - "text/plain": [ - "Connected to project \u001b[32m'MovieLens'\u001b[0m.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "getml.engine.launch(allow_remote_ips=True, token='token')\n", - "getml.engine.set_project('MovieLens')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Loading data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1.1 Download from source\n", - "\n", - "We begin by downloading the data from the source file:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Connection(dbname='imdb_MovieLens',\n", - " dialect='mysql',\n", - " host='db.relational-data.org',\n", - " port=3306)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "conn = getml.database.connect_mysql(\n", - " host=\"db.relational-data.org\",\n", - " dbname=\"imdb_MovieLens\",\n", - " port=3306,\n", - " user=\"guest\",\n", - " password=\"relational\"\n", - ")\n", - "\n", - "conn" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def load_if_needed(name):\n", - " \"\"\"\n", - " Loads the data from the relational learning\n", - " repository, if the data frame has not already\n", - " been loaded.\n", - " \"\"\"\n", - " if not getml.data.exists(name):\n", - " data_frame = getml.data.DataFrame.from_db(\n", - " name=name,\n", - " table_name=name,\n", - " conn=conn\n", - " )\n", - " data_frame.save()\n", - " else:\n", - " data_frame = getml.data.load_data_frame(name)\n", - " return data_frame" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "users = load_if_needed(\"users\")\n", - "u2base = load_if_needed(\"u2base\")\n", - "movies = load_if_needed(\"movies\")\n", - "movies2directors = load_if_needed(\"movies2directors\")\n", - "directors = load_if_needed(\"directors\")\n", - "movies2actors = load_if_needed(\"movies2actors\")\n", - "actors = load_if_needed(\"actors\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1.2 Prepare data for getML" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "getML requires that we define *roles* for each of the columns." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "users[\"target\"] = (users.u_gender == 'F')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name useridtargetoccupation ageu_gender
rolejoin_keytargetcategoricalnumericalunused_string
01\n", - " 1 \n", - " 2\n", - " 1 \n", - " F
151\n", - " 1 \n", - " 2\n", - " 1 \n", - " F
275\n", - " 1 \n", - " 2\n", - " 1 \n", - " F
386\n", - " 1 \n", - " 2\n", - " 1 \n", - " F
499\n", - " 1 \n", - " 2\n", - " 1 \n", - " F
...\n", - " ... \n", - " ...\n", - " ... \n", - " ...
60345658\n", - " 0 \n", - " 5\n", - " 56 \n", - " M
60355669\n", - " 0 \n", - " 5\n", - " 56 \n", - " M
60365703\n", - " 0 \n", - " 5\n", - " 56 \n", - " M
60375948\n", - " 0 \n", - " 5\n", - " 56 \n", - " M
60385980\n", - " 0 \n", - " 5\n", - " 56 \n", - " M
\n", - "\n", - "

\n", - " 6039 rows x 5 columns
\n", - " memory usage: 0.21 MB
\n", - " name: users
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name userid target occupation age u_gender \n", - "role join_key target categorical numerical unused_string\n", - " 0 1 1 2 1 F \n", - " 1 51 1 2 1 F \n", - " 2 75 1 2 1 F \n", - " 3 86 1 2 1 F \n", - " 4 99 1 2 1 F \n", - " ... ... ... ... ... \n", - "6034 5658 0 5 56 M \n", - "6035 5669 0 5 56 M \n", - "6036 5703 0 5 56 M \n", - "6037 5948 0 5 56 M \n", - "6038 5980 0 5 56 M \n", - "\n", - "\n", - "6039 rows x 5 columns\n", - "memory usage: 0.21 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "users.set_role(\"userid\", getml.data.roles.join_key)\n", - "users.set_role(\"age\", getml.data.roles.numerical)\n", - "users.set_role(\"occupation\", getml.data.roles.categorical)\n", - "users.set_role(\"target\", getml.data.roles.target)\n", - "\n", - "users.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name userid movieid rating
rolejoin_keyjoin_keynumerical
021964242\n", - " 1 \n", - "
122219779\n", - " 1 \n", - "
231856939\n", - " 1 \n", - "
342273044\n", - " 1 \n", - "
451681655\n", - " 1 \n", - "
......\n", - " ... \n", - "
99615460402560616\n", - " 5 \n", - "
99615560402564194\n", - " 5 \n", - "
99615660402581228\n", - " 5 \n", - "
99615760402581428\n", - " 5 \n", - "
99615860402593112\n", - " 5 \n", - "
\n", - "\n", - "

\n", - " 996159 rows x 3 columns
\n", - " memory usage: 15.94 MB
\n", - " name: u2base
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - " name userid movieid rating\n", - " role join_key join_key numerical\n", - " 0 2 1964242 1\n", - " 1 2 2219779 1\n", - " 2 3 1856939 1\n", - " 3 4 2273044 1\n", - " 4 5 1681655 1\n", - " ... ... ...\n", - "996154 6040 2560616 5\n", - "996155 6040 2564194 5\n", - "996156 6040 2581228 5\n", - "996157 6040 2581428 5\n", - "996158 6040 2593112 5\n", - "\n", - "\n", - "996159 rows x 3 columns\n", - "memory usage: 15.94 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "u2base.set_role([\"userid\", \"movieid\"], getml.data.roles.join_key)\n", - "u2base.set_role(\"rating\", getml.data.roles.numerical)\n", - "\n", - "u2base.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name movieidisEnglish country yearrunningtime
rolejoin_keycategoricalcategoricalnumerical numerical
01672052Tother\n", - " 3 \n", - " \n", - " 2 \n", - "
11672111Tother\n", - " 4 \n", - " \n", - " 2 \n", - "
21672580TUSA\n", - " 4 \n", - " \n", - " 3 \n", - "
31672716TUSA\n", - " 4 \n", - " \n", - " 2 \n", - "
41672946TUSA\n", - " 4 \n", - " \n", - " 0 \n", - "
.........\n", - " ... \n", - " \n", - " ... \n", - "
38272591814Tother\n", - " 4 \n", - " \n", - " 2 \n", - "
38282592334TUSA\n", - " 4 \n", - " \n", - " 2 \n", - "
38292592963FFrance\n", - " 2 \n", - " \n", - " 2 \n", - "
38302593112TUSA\n", - " 4 \n", - " \n", - " 1 \n", - "
38312593313Fother\n", - " 4 \n", - " \n", - " 3 \n", - "
\n", - "\n", - "

\n", - " 3832 rows x 5 columns
\n", - " memory usage: 0.11 MB
\n", - " name: movies
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name movieid isEnglish country year runningtime\n", - "role join_key categorical categorical numerical numerical\n", - " 0 1672052 T other 3 2\n", - " 1 1672111 T other 4 2\n", - " 2 1672580 T USA 4 3\n", - " 3 1672716 T USA 4 2\n", - " 4 1672946 T USA 4 0\n", - " ... ... ... ... ...\n", - "3827 2591814 T other 4 2\n", - "3828 2592334 T USA 4 2\n", - "3829 2592963 F France 2 2\n", - "3830 2593112 T USA 4 1\n", - "3831 2593313 F other 4 3\n", - "\n", - "\n", - "3832 rows x 5 columns\n", - "memory usage: 0.11 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies.set_role(\"movieid\", getml.data.roles.join_key)\n", - "movies.set_role([\"year\", \"runningtime\"], getml.data.roles.numerical)\n", - "movies.set_role([\"isEnglish\", \"country\"], getml.data.roles.categorical)\n", - "\n", - "movies.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name movieiddirectoridgenre
rolejoin_key join_keycategorical
0167211154934Action
11672946188940Action
21679461179783Action
31691387291700Action
4169330514663Action
.........
41362570825265215Other
41372572478149311Other
41382577062304827Other
41392590181270707Other
4140259181457348Other
\n", - "\n", - "

\n", - " 4141 rows x 3 columns
\n", - " memory usage: 0.05 MB
\n", - " name: movies2directors
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name movieid directorid genre \n", - "role join_key join_key categorical\n", - " 0 1672111 54934 Action \n", - " 1 1672946 188940 Action \n", - " 2 1679461 179783 Action \n", - " 3 1691387 291700 Action \n", - " 4 1693305 14663 Action \n", - " ... ... ... \n", - "4136 2570825 265215 Other \n", - "4137 2572478 149311 Other \n", - "4138 2577062 304827 Other \n", - "4139 2590181 270707 Other \n", - "4140 2591814 57348 Other \n", - "\n", - "\n", - "4141 rows x 3 columns\n", - "memory usage: 0.05 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies2directors.set_role([\"movieid\", \"directorid\"], getml.data.roles.join_key)\n", - "movies2directors.set_role( \"genre\", getml.data.roles.categorical)\n", - "\n", - "movies2directors.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namedirectoridd_qualityavg_revenue
role join_keynumerical numerical
067\n", - " 4 \n", - " \n", - " 1 \n", - "
192\n", - " 2 \n", - " \n", - " 3 \n", - "
2284\n", - " 4 \n", - " \n", - " 0 \n", - "
3708\n", - " 4 \n", - " \n", - " 1 \n", - "
4746\n", - " 4 \n", - " \n", - " 4 \n", - "
...\n", - " ... \n", - " \n", - " ... \n", - "
2196305962\n", - " 4 \n", - " \n", - " 4 \n", - "
2197305978\n", - " 4 \n", - " \n", - " 2 \n", - "
2198306168\n", - " 3 \n", - " \n", - " 2 \n", - "
2199306343\n", - " 4 \n", - " \n", - " 1 \n", - "
2200306351\n", - " 4 \n", - " \n", - " 1 \n", - "
\n", - "\n", - "

\n", - " 2201 rows x 3 columns
\n", - " memory usage: 0.04 MB
\n", - " name: directors
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - "name directorid d_quality avg_revenue\n", - "role join_key numerical numerical\n", - " 0 67 4 1\n", - " 1 92 2 3\n", - " 2 284 4 0\n", - " 3 708 4 1\n", - " 4 746 4 4\n", - " ... ... ...\n", - "2196 305962 4 4\n", - "2197 305978 4 2\n", - "2198 306168 3 2\n", - "2199 306343 4 1\n", - "2200 306351 4 1\n", - "\n", - "\n", - "2201 rows x 3 columns\n", - "memory usage: 0.04 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "directors.set_role(\"directorid\", getml.data.roles.join_key)\n", - "directors.set_role([\"d_quality\", \"avg_revenue\"], getml.data.roles.numerical)\n", - "\n", - "directors.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name movieid actorid cast_num
rolejoin_keyjoin_keynumerical
01672580981535\n", - " 0 \n", - "
116729461094968\n", - " 0 \n", - "
21673647149985\n", - " 0 \n", - "
31673647261595\n", - " 0 \n", - "
41673647781357\n", - " 0 \n", - "
......\n", - " ... \n", - "
1383442593313947005\n", - " 3 \n", - "
13834525933131090590\n", - " 3 \n", - "
13834625933131347419\n", - " 3 \n", - "
13834725933132099917\n", - " 3 \n", - "
13834825933132633550\n", - " 3 \n", - "
\n", - "\n", - "

\n", - " 138349 rows x 3 columns
\n", - " memory usage: 2.21 MB
\n", - " name: movies2actors
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - " name movieid actorid cast_num\n", - " role join_key join_key numerical\n", - " 0 1672580 981535 0\n", - " 1 1672946 1094968 0\n", - " 2 1673647 149985 0\n", - " 3 1673647 261595 0\n", - " 4 1673647 781357 0\n", - " ... ... ...\n", - "138344 2593313 947005 3\n", - "138345 2593313 1090590 3\n", - "138346 2593313 1347419 3\n", - "138347 2593313 2099917 3\n", - "138348 2593313 2633550 3\n", - "\n", - "\n", - "138349 rows x 3 columns\n", - "memory usage: 2.21 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "movies2actors.set_role([\"movieid\", \"actorid\"], getml.data.roles.join_key)\n", - "movies2actors.set_role( \"cast_num\", getml.data.roles.numerical)\n", - "\n", - "movies2actors.save()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We need to separate our data set into a training, testing and validation set:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name actorida_gender a_quality
rolejoin_keycategoricalnumerical
04M\n", - " 4 \n", - "
116M\n", - " 0 \n", - "
228M\n", - " 4 \n", - "
3566M\n", - " 4 \n", - "
4580M\n", - " 4 \n", - "
......\n", - " ... \n", - "
986852749162F\n", - " 3 \n", - "
986862749168F\n", - " 3 \n", - "
986872749204F\n", - " 3 \n", - "
986882749377F\n", - " 4 \n", - "
986892749386F\n", - " 4 \n", - "
\n", - "\n", - "

\n", - " 98690 rows x 3 columns
\n", - " memory usage: 1.58 MB
\n", - " name: actors
\n", - " type: getml.DataFrame
\n", - " \n", - "

\n" - ], - "text/plain": [ - " name actorid a_gender a_quality\n", - " role join_key categorical numerical\n", - " 0 4 M 4\n", - " 1 16 M 0\n", - " 2 28 M 4\n", - " 3 566 M 4\n", - " 4 580 M 4\n", - " ... ... ...\n", - "98685 2749162 F 3\n", - "98686 2749168 F 3\n", - "98687 2749204 F 3\n", - "98688 2749377 F 4\n", - "98689 2749386 F 4\n", - "\n", - "\n", - "98690 rows x 3 columns\n", - "memory usage: 1.58 MB\n", - "type: getml.DataFrame" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "actors.set_role(\"actorid\", getml.data.roles.join_key)\n", - "actors.set_role(\"a_quality\", getml.data.roles.numerical)\n", - "actors.set_role(\"a_gender\", getml.data.roles.categorical)\n", - "\n", - "actors.save()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "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", - "
0train
1train
2train
3test
4test
...
\n", - "\n", - "

\n", - " infinite number of rows
\n", - " \n", - " type: StringColumnView
\n", - " \n", - "

\n" - ], - "text/plain": [ - " \n", - " 0 train\n", - " 1 train\n", - " 2 train\n", - " 3 test \n", - " 4 test \n", - " ... \n", - "\n", - "\n", - "infinite number of rows\n", - "type: StringColumnView" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "split = getml.data.split.random(train=0.75, test=0.25)\n", - "split" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
\n", - "
population
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
subsetname rowstype
0testusers1511View
1trainusers4528View
\n", - "
\n", - "
\n", - "
peripheral
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name rowstype
0u2base996159DataFrame
1movies3832DataFrame
2movies2directors4141DataFrame
3directors2201DataFrame
4movies2actors138349DataFrame
5actors98690DataFrame
\n", - "
\n", - "
" - ], - "text/plain": [ - "population\n", - " subset name rows type\n", - "0 test users 1511 View\n", - "1 train users 4528 View\n", - "\n", - "peripheral\n", - " name rows type \n", - "0 u2base 996159 DataFrame\n", - "1 movies 3832 DataFrame\n", - "2 movies2directors 4141 DataFrame\n", - "3 directors 2201 DataFrame\n", - "4 movies2actors 138349 DataFrame\n", - "5 actors 98690 DataFrame" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "container = getml.data.Container(population=users, split=split)\n", - "\n", - "container.add(\n", - " u2base=u2base,\n", - " movies=movies,\n", - " movies2directors=movies2directors,\n", - " directors=directors,\n", - " movies2actors=movies2actors,\n", - " actors=actors,\n", - ")\n", - "\n", - "container" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Predictive modeling\n", - "\n", - "We loaded the data and defined the roles and units. Next, we create a getML pipeline for relational learning." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.1 Define relational model\n", - "\n", - "To get started with relational learning, we need to specify the data model." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
diagram
\n", - "
directorsmovies2directorsactorsmovies2actorsmoviesu2baseusersdirectorid = directoridRelationship: many-to-oneactorid = actoridRelationship: many-to-onemovieid = movieidRelationship: propositionalizationmovieid = movieidRelationship: propositionalizationmovieid = movieidRelationship: many-to-oneuserid = userid
\n", - "
\n", - "\n", - "
\n", - "
staging
\n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
data frames staging table
0usersUSERS__STAGING_TABLE_1
1movies2actors, actorsMOVIES2ACTORS__STAGING_TABLE_2
2movies2directors, directorsMOVIES2DIRECTORS__STAGING_TABLE_3
3u2base, moviesU2BASE__STAGING_TABLE_4
\n", - "
\n", - " " - ], - "text/plain": [ - "users:\n", - " columns:\n", - " - occupation: categorical\n", - " - userid: join_key\n", - " - age: numerical\n", - " - target: target\n", - " - u_gender: unused_string\n", - "\n", - " joins:\n", - " - right: 'u2base'\n", - " on: (users.userid, u2base.userid)\n", - " relationship: 'many-to-many'\n", - " lagged_targets: False\n", - "\n", - "u2base:\n", - " columns:\n", - " - userid: join_key\n", - " - movieid: join_key\n", - " - rating: numerical\n", - "\n", - " joins:\n", - " - right: 'movies'\n", - " on: (u2base.movieid, movies.movieid)\n", - " relationship: 'many-to-one'\n", - " lagged_targets: False\n", - "\n", - "movies:\n", - " columns:\n", - " - isEnglish: categorical\n", - " - country: categorical\n", - " - movieid: join_key\n", - " - year: numerical\n", - " - runningtime: numerical\n", - "\n", - " joins:\n", - " - right: 'movies2directors'\n", - " on: (movies.movieid, movies2directors.movieid)\n", - " relationship: 'propositionalization'\n", - " lagged_targets: False\n", - " - right: 'movies2actors'\n", - " on: (movies.movieid, movies2actors.movieid)\n", - " relationship: 'propositionalization'\n", - " lagged_targets: False\n", - "\n", - "movies2directors:\n", - " columns:\n", - " - genre: categorical\n", - " - movieid: join_key\n", - " - directorid: join_key\n", - "\n", - " joins:\n", - " - right: 'directors'\n", - " on: (movies2directors.directorid, directors.directorid)\n", - " relationship: 'many-to-one'\n", - " lagged_targets: False\n", - "\n", - "directors:\n", - " columns:\n", - " - directorid: join_key\n", - " - d_quality: numerical\n", - " - avg_revenue: numerical\n", - "\n", - "movies2actors:\n", - " columns:\n", - " - movieid: join_key\n", - " - actorid: join_key\n", - " - cast_num: numerical\n", - "\n", - " joins:\n", - " - right: 'actors'\n", - " on: (movies2actors.actorid, actors.actorid)\n", - " relationship: 'many-to-one'\n", - " lagged_targets: False\n", - "\n", - "actors:\n", - " columns:\n", - " - a_gender: categorical\n", - " - actorid: join_key\n", - " - a_quality: numerical" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dm = getml.data.DataModel(users.to_placeholder())\n", - "\n", - "dm.add(getml.data.to_placeholder(\n", - " u2base=u2base,\n", - " movies=movies,\n", - " movies2directors=movies2directors,\n", - " directors=directors,\n", - " movies2actors=movies2actors,\n", - " actors=actors,\n", - "))\n", - "\n", - "dm.population.join(\n", - " dm.u2base,\n", - " on='userid'\n", - ")\n", - "\n", - "dm.u2base.join(\n", - " dm.movies,\n", - " on='movieid',\n", - " relationship=getml.data.relationship.many_to_one\n", - ")\n", - "\n", - "dm.movies.join(\n", - " dm.movies2directors,\n", - " on='movieid',\n", - " relationship=getml.data.relationship.propositionalization\n", - ")\n", - "\n", - "dm.movies2directors.join(\n", - " dm.directors,\n", - " on='directorid',\n", - " relationship=getml.data.relationship.many_to_one\n", - ")\n", - "\n", - "dm.movies.join(\n", - " dm.movies2actors,\n", - " on='movieid',\n", - " relationship=getml.data.relationship.propositionalization\n", - ")\n", - "\n", - "dm.movies2actors.join(\n", - " dm.actors,\n", - " on='actorid',\n", - " relationship=getml.data.relationship.many_to_one\n", - ")\n", - "\n", - "dm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2 getML pipeline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "__Set-up the feature learner & predictor__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will set up two pipelines. One of them uses `FastProp`, the other one uses `Relboost`. Note that we have marked some of the joins in the data model with the `propositionalization` tag. This means that `FastProp` will be used for these relationships, even for the second pipeline. This can significantly speed up the training process." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "mapping = getml.preprocessors.Mapping()\n", - "\n", - "fast_prop = getml.feature_learning.FastProp(\n", - " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", - " num_threads=1,\n", - ")\n", - "\n", - "relboost = getml.feature_learning.Relboost(\n", - " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", - " num_subfeatures=50,\n", - " num_threads=1\n", - ")\n", - "\n", - "predictor = getml.predictors.XGBoostClassifier(\n", - " max_depth=5,\n", - " n_jobs=1,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Build the pipeline__" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Pipeline(data_model='users',\n",
-                            "         feature_learners=['FastProp'],\n",
-                            "         feature_selectors=[],\n",
-                            "         include_categorical=False,\n",
-                            "         loss_function='CrossEntropyLoss',\n",
-                            "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
-                            "                     'u2base'],\n",
-                            "         predictors=['XGBoostClassifier'],\n",
-                            "         preprocessors=['Mapping'],\n",
-                            "         share_selected_features=0.5,\n",
-                            "         tags=['fast_prop'])
" - ], - "text/plain": [ - "Pipeline(data_model='users',\n", - " feature_learners=['FastProp'],\n", - " feature_selectors=[],\n", - " include_categorical=False,\n", - " loss_function='CrossEntropyLoss',\n", - " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", - " 'u2base'],\n", - " predictors=['XGBoostClassifier'],\n", - " preprocessors=['Mapping'],\n", - " share_selected_features=0.5,\n", - " tags=['fast_prop'])" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe1 = getml.pipeline.Pipeline(\n", - " tags=['fast_prop'],\n", - " data_model=dm,\n", - " preprocessors=[mapping],\n", - " feature_learners=[fast_prop],\n", - " predictors=[predictor]\n", - ")\n", - "\n", - "pipe1" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Pipeline(data_model='users',\n",
-                            "         feature_learners=['Relboost'],\n",
-                            "         feature_selectors=[],\n",
-                            "         include_categorical=False,\n",
-                            "         loss_function='CrossEntropyLoss',\n",
-                            "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
-                            "                     'u2base'],\n",
-                            "         predictors=['XGBoostClassifier'],\n",
-                            "         preprocessors=['Mapping'],\n",
-                            "         share_selected_features=0.5,\n",
-                            "         tags=['relboost'])
" - ], - "text/plain": [ - "Pipeline(data_model='users',\n", - " feature_learners=['Relboost'],\n", - " feature_selectors=[],\n", - " include_categorical=False,\n", - " loss_function='CrossEntropyLoss',\n", - " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", - " 'u2base'],\n", - " predictors=['XGBoostClassifier'],\n", - " preprocessors=['Mapping'],\n", - " share_selected_features=0.5,\n", - " tags=['relboost'])" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe2 = getml.pipeline.Pipeline(\n", - " tags=['relboost'],\n", - " data_model=dm,\n", - " preprocessors=[mapping],\n", - " feature_learners=[relboost],\n", - " predictors=[predictor]\n", - ")\n", - "\n", - "pipe2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.3 Model training" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Checking data model...\n",
-                            "
\n" - ], - "text/plain": [ - "Checking data model\u001b[33m...\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:12\n", - "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
-                            "
\n" - ], - "text/plain": [ - "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "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", - "
typelabel message
0INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2DIRECTORS__STAGING_TABLE_3 over 'movieid' and 'movieid', there are no corresponding entries for 0.159513% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
1INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2ACTORS__STAGING_TABLE_2 over 'movieid' and 'movieid', there are no corresponding entries for 0.336492% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
" - ], - "text/plain": [ - " type label message \n", - "0 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB...\n", - "1 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB..." - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe1.check(container.train)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Checking data model...\n",
-                            "
\n" - ], - "text/plain": [ - "Checking data model\u001b[33m...\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
-                            "
\n" - ], - "text/plain": [ - "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
To see the issues in full, run .check() on the pipeline.\n",
-                            "
\n" - ], - "text/plain": [ - "To see the issues in full, run \u001b[1;35m.check\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m on the pipeline.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Trying 941 features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:34\n", - "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:18\n", - "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:02\n", - "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:03\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
Trained pipeline.\n",
-                            "
\n" - ], - "text/plain": [ - "Trained pipeline.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time taken: 0:00:59.177060.\n", - "\n" - ] - }, - { - "data": { - "text/html": [ - "
Pipeline(data_model='users',\n",
-                            "         feature_learners=['FastProp'],\n",
-                            "         feature_selectors=[],\n",
-                            "         include_categorical=False,\n",
-                            "         loss_function='CrossEntropyLoss',\n",
-                            "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
-                            "                     'u2base'],\n",
-                            "         predictors=['XGBoostClassifier'],\n",
-                            "         preprocessors=['Mapping'],\n",
-                            "         share_selected_features=0.5,\n",
-                            "         tags=['fast_prop', 'container-AA9NXV'])
" - ], - "text/plain": [ - "Pipeline(data_model='users',\n", - " feature_learners=['FastProp'],\n", - " feature_selectors=[],\n", - " include_categorical=False,\n", - " loss_function='CrossEntropyLoss',\n", - " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", - " 'u2base'],\n", - " predictors=['XGBoostClassifier'],\n", - " preprocessors=['Mapping'],\n", - " share_selected_features=0.5,\n", - " tags=['fast_prop', 'container-AA9NXV'])" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe1.fit(container.train)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Checking data model...\n",
-                            "
\n" - ], - "text/plain": [ - "Checking data model\u001b[33m...\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
-                            "
\n" - ], - "text/plain": [ - "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "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", - "
typelabel message
0INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2DIRECTORS__STAGING_TABLE_3 over 'movieid' and 'movieid', there are no corresponding entries for 0.159513% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
1INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2ACTORS__STAGING_TABLE_2 over 'movieid' and 'movieid', there are no corresponding entries for 0.336492% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
" - ], - "text/plain": [ - " type label message \n", - "0 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB...\n", - "1 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB..." - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe2.check(container.train)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Checking data model...\n",
-                            "
\n" - ], - "text/plain": [ - "Checking data model\u001b[33m...\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
-                            "
\n" - ], - "text/plain": [ - "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
To see the issues in full, run .check() on the pipeline.\n",
-                            "
\n" - ], - "text/plain": [ - "To see the issues in full, run \u001b[1;35m.check\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m on the pipeline.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:04\n", - "\u001b[2K Relboost: Training features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 11:48\n", - "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:05\n", - "\u001b[2K Relboost: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 06:18\n", - "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:03\n", - "\u001b[?25h" - ] - }, - { - "data": { - "text/html": [ - "
Trained pipeline.\n",
-                            "
\n" - ], - "text/plain": [ - "Trained pipeline.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time taken: 0:18:19.843564.\n", - "\n" - ] - }, - { - "data": { - "text/html": [ - "
Pipeline(data_model='users',\n",
-                            "         feature_learners=['Relboost'],\n",
-                            "         feature_selectors=[],\n",
-                            "         include_categorical=False,\n",
-                            "         loss_function='CrossEntropyLoss',\n",
-                            "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
-                            "                     'u2base'],\n",
-                            "         predictors=['XGBoostClassifier'],\n",
-                            "         preprocessors=['Mapping'],\n",
-                            "         share_selected_features=0.5,\n",
-                            "         tags=['relboost', 'container-AA9NXV'])
" - ], - "text/plain": [ - "Pipeline(data_model='users',\n", - " feature_learners=['Relboost'],\n", - " feature_selectors=[],\n", - " include_categorical=False,\n", - " loss_function='CrossEntropyLoss',\n", - " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", - " 'u2base'],\n", - " predictors=['XGBoostClassifier'],\n", - " preprocessors=['Mapping'],\n", - " share_selected_features=0.5,\n", - " tags=['relboost', 'container-AA9NXV'])" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe2.fit(container.train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.4 Model evaluation" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "lines_to_next_cell": 0 - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:19\n", - "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[?25h" - ] - }, - { - "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", - "
date time set usedtargetaccuracy auccross entropy
02024-09-12 15:15:36traintarget0.91390.96860.2788
12024-09-12 15:34:18testtarget0.7750.78590.4779
" - ], - "text/plain": [ - " date time set used target accuracy auc cross entropy\n", - "0 2024-09-12 15:15:36 train target 0.9139 0.9686 0.2788\n", - "1 2024-09-12 15:34:18 test target 0.775 0.7859 0.4779" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fastprop_score = pipe1.score(container.test)\n", - "fastprop_score" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", - "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:04\n", - "\u001b[2K Relboost: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 02:01\n", - "\u001b[?25h" - ] - }, - { - "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", - "
date time set usedtargetaccuracy auccross entropy
02024-09-12 15:33:57traintarget0.97550.99620.1488
12024-09-12 15:36:24testtarget0.80480.83770.4429
" - ], - "text/plain": [ - " date time set used target accuracy auc cross entropy\n", - "0 2024-09-12 15:33:57 train target 0.9755 0.9962 0.1488\n", - "1 2024-09-12 15:36:24 test target 0.8048 0.8377 0.4429" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "relboost_score = pipe2.score(container.test)\n", - "relboost_score" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.6 Studying features" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Column importances__\n", - "\n", - "Because getML uses relational learning, we can apply the principles we used to calculate the feature importances to individual columns as well.\n", - "\n", - "As we can see, most of the predictive accuracy is drawn from the roles played by the actors. This suggests that the text fields contained in this relational database have a higher impact on predictive accuracy than for most other data sets." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABl4AAARaCAYAAAAtuQ8oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD9nUlEQVR4nOzdfZyVdZ3/8fcMygAqA4oMguSAkDchUpAsptHaJBCldmOg7Q8ltdLMbFJXKlGzDVBzMTVdK03tRsst29JFXZLKJNkkl2601RbEO0BUGMWEZM7vjx7O7gSoDF89jDyfj8d5xLnO91zncw3XA7UX17lqKpVKJQAAAAAAAGyx2moPAAAAAAAA8HohvAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAO284x3vyDve8Y5qj/GqaWxszLHHHlvtMQAAgNcp4QUAADq5P/3pT/nYxz6WwYMHp1u3bunZs2fe9ra35eKLL86f//znao9HYbfcckvOOeecao8BAABswnbVHgAAAOi4m2++OUceeWTq6uoyZcqUDBs2LOvWrcudd96Z008/Pb///e9z5ZVXVnvMrcof//jH1NZ23r+Ddsstt+Syyy4TXwAAYCslvAAAQCe1ePHiTJ48OXvssUd++tOfZrfddmt77ROf+EQefPDB3HzzzVWccOtUV1dX7RE6ZM2aNdlhhx2qPQYAAPAyOu9f8wIAgG3c+eefn2effTbf+MY32kWXFw0ZMiSf+tSn2p6/8MILOe+887Lnnnumrq4ujY2N+exnP5u1a9e+5Od885vfTE1NTZYsWdJu+7x581JTU5N58+a1bXvHO96RYcOGZdGiRRk7dmx69OiRIUOG5MYbb0yS/OxnP8vo0aPTvXv37LXXXvmP//iPdvs855xzUlNTkwcffDDHHntsevXqlfr6+kydOjXPPfdcu7W33357DjrooPTq1Ss77rhj9tprr3z2s5992Z/b397j5cXju/POO3PKKadk1113Ta9evfKxj30s69aty6pVqzJlypT07t07vXv3zhlnnJFKpdL2/iVLlqSmpiYXXnhh/vmf/zl77LFHunfvnrFjx+Z3v/vdBp//05/+NAcffHB22GGH9OrVK4cffnjuu+++jf4c/vCHP+Too49O7969c9BBB+XYY4/NZZddliSpqalpe7zowgsvzIEHHphddtkl3bt3z8iRI9t+9v9XTU1NTj755Nx0000ZNmxY6urq8qY3vSlz5szZYO2jjz6a4447Lv37909dXV0GDRqUE088MevWrWtbs2rVqpx66qkZOHBg6urqMmTIkMyaNSutra3t9nX99ddn5MiR2WmnndKzZ8/st99+ufjii1/mdwwAADoXV7wAAEAn9eMf/ziDBw/OgQce+IrWH3/88bnmmmvywQ9+MJ/5zGdy9913Z8aMGbnvvvvywx/+sNhcTz/9dN7znvdk8uTJOfLII3P55Zdn8uTJ+fa3v51TTz01H//4x3P00UfnggsuyAc/+ME8/PDD2Wmnndrt40Mf+lAGDRqUGTNmZOHChfn617+evn37ZtasWUmS3//+93nPe96T4cOH5wtf+ELq6ury4IMP5pe//GWH5/7kJz+Zfv365dxzz82vfvWrXHnllenVq1fuuuuuvOENb8iXvvSl3HLLLbngggsybNiwTJkypd37r7322jzzzDP5xCc+keeffz4XX3xxDjnkkPz2t79NQ0NDkuQ//uM/MmHChAwePDjnnHNO/vznP+eSSy7J2972tixcuDCNjY3t9nnkkUdm6NCh+dKXvpRKpZI3v/nNeeyxx3L77bfnuuuu2+AYLr744hx22GH58Ic/nHXr1uX666/PkUcemZ/85CeZOHFiu7V33nlnfvCDH+Skk07KTjvtlK985Sv5wAc+kKVLl2aXXXZJkjz22GM54IADsmrVqnz0ox/N3nvvnUcffTQ33nhjnnvuuXTt2jXPPfdcxo4dm0cffTQf+9jH8oY3vCF33XVXpk2blscffzyzZ89O8tdQdtRRR+Wd73xn2+/jfffdl1/+8pftAiEAAHR6FQAAoNNZvXp1JUnl8MMPf0Xr77333kqSyvHHH99u+2mnnVZJUvnpT3/atm3s2LGVsWPHtj2/+uqrK0kqixcvbvfeO+64o5Kkcscdd7R7b5LKd77znbZt999/fyVJpba2tvKrX/2qbfutt95aSVK5+uqr27adffbZlSSVj3zkI+0+633ve19ll112aXv+z//8z5UklSeeeOIVHf//tccee1SOOeaYDY5v3LhxldbW1rbtY8aMqdTU1FQ+/vGPt2174YUXKrvvvnu7n8/ixYsrSSrdu3evPPLII23b77777kqSyqc//em2bSNGjKj07du38uSTT7Zt+6//+q9KbW1tZcqUKRv8HI466qgN5v/EJz5R2dR/yj333HPtnq9bt64ybNiwyiGHHNJue5JK165dKw8++GC7OZJULrnkkrZtU6ZMqdTW1lb+8z//c4PPevFndd5551V22GGHyn//93+3e/3MM8+sdOnSpbJ06dJKpVKpfOpTn6r07Nmz8sILL2x0dgAAeL3wVWMAANAJtbS0JMkGV4psyi233JIkaW5ubrf9M5/5TJIUvRfMjjvumMmTJ7c932uvvdKrV6/ss88+GT16dNv2F3/9P//zPxvs4+Mf/3i75wcffHCefPLJtuPu1atXkuRHP/rRBl9n1VHHHXdcu6/tGj16dCqVSo477ri2bV26dMmoUaM2OvMRRxyRAQMGtD0/4IADMnr06Laf/eOPP5577703xx57bHbeeee2dcOHD8+73vWutnX/19/+HF5O9+7d23799NNPZ/Xq1Tn44IOzcOHCDdY2NTVlzz33bDdHz549246ttbU1N910U9773vdm1KhRG7z/xZ/V97///Rx88MHp3bt3Vq5c2fZoamrK+vXr8/Of/zzJX3/P1qxZk9tvv32zjgkAADob4QUAADqhnj17JkmeeeaZV7T+oYceSm1tbYYMGdJue79+/dKrV6889NBDxWbbfffd2wWMJKmvr8/AgQM32Jb8NRD8rTe84Q3tnvfu3bvd2kmTJuVtb3tbjj/++DQ0NGTy5Mn53ve+t0UR5m8/88X5Njb3xmYeOnToBtve+MY3tt0b58Wf8V577bXBun322ScrV67MmjVr2m0fNGjQKz+AJD/5yU/yd3/3d+nWrVt23nnn7Lrrrrn88suzevXqDdb+7fEmf/05v3hsTzzxRFpaWjJs2LCX/MwHHnggc+bMya677tru0dTUlCRZsWJFkuSkk07KG9/4xkyYMCG77757PvKRj2z0njIAANDZuccLAAB0Qj179kz//v03evP2l/K3QWRL3rN+/fqNbu/Spctmba/8nxvVv9K13bt3z89//vPccccdufnmmzNnzpzccMMNOeSQQ3Lbbbdt8v0vZXPm3tjMr4b/ewXLy/nFL36Rww47LG9/+9vz1a9+Nbvttlu23377XH311fnOd76zwfrN+f14Ka2trXnXu96VM844Y6Ovv/GNb0yS9O3bN/fee29uvfXW/Pu//3v+/d//PVdffXWmTJmSa665ZrM+EwAAtmbCCwAAdFLvec97cuWVV2b+/PkZM2bMS67dY4890tramgceeCD77LNP2/bly5dn1apV2WOPPTb53hevNlm1alW77SWvkumI2travPOd78w73/nOXHTRRfnSl76Uz33uc7njjjvarrZ4LT3wwAMbbPvv//7vNDY2Jknbz/iPf/zjBuvuv//+9OnTJzvssMPLfs6mQti//uu/plu3brn11ltTV1fXtv3qq69+JeNvYNddd03Pnj1fNu7tueeeefbZZ1/Rz7xr165573vfm/e+971pbW3NSSedlH/5l3/JWWedtcHVWAAA0Fn5qjEAAOikzjjjjOywww45/vjjs3z58g1e/9Of/pSLL744SfLud787STJ79ux2ay666KIkycSJEzf5OS/eB+TFe3Ukf73a5corr9yi+bfEU089tcG2ESNGJEnWrl37Gk/zVzfddFMeffTRtucLFizI3XffnQkTJiRJdtttt4wYMSLXXHNNu4j1u9/9Lrfddlvb79HLeTHO/G0I69KlS2pqatpdibRkyZLcdNNNHTqe2traHHHEEfnxj3+cX//61xu8/uKVMR/60Icyf/783HrrrRusWbVqVV544YUkyZNPPrnB/ocPH56ker9nAADwanDFCwAAdFJ77rlnvvOd72TSpEnZZ599MmXKlAwbNizr1q3LXXfdle9///s59thjkyT7779/jjnmmFx55ZVZtWpVxo4dmwULFuSaa67JEUcckb//+7/f5Oe86U1vyt/93d9l2rRpeeqpp7Lzzjvn+uuvb/s/1KvhC1/4Qn7+859n4sSJ2WOPPbJixYp89atfze67756DDjqoKjMNGTIkBx10UE488cSsXbs2s2fPzi677NLuK7guuOCCTJgwIWPGjMlxxx2XP//5z7nkkktSX1+fc8455xV9zsiRI5Mkp5xySsaNG5cuXbpk8uTJmThxYi666KKMHz8+Rx99dFasWJHLLrssQ4YMyaJFizp0TF/60pdy2223ZezYsfnoRz+affbZJ48//ni+//3v584770yvXr1y+umn59/+7d/ynve8J8cee2xGjhyZNWvW5Le//W1uvPHGLFmyJH369Mnxxx+fp556Koccckh23333PPTQQ7nkkksyYsSIdldhAQBAZye8AABAJ3bY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AAAAAKBT6FB4efTRR3PKKaekR48epecBAAAAAADotDoUXsaNG5df//rXpWcBAAAAAADo1DoUXiZOnJjTTz8955xzTv71X/81//Zv/9busbkuu+yyNDY2plu3bhk9enQWLFiwybVf+9rXcvDBB6d3797p3bt3mpqaNlhfqVQyffr07LbbbunevXuamprywAMPbPZcAAAAAAAAm2O7jrzphBNOSJJ84Qtf2OC1mpqarF+//hXv64Ybbkhzc3OuuOKKjB49OrNnz864cePyxz/+MX379t1g/bx583LUUUflwAMPTLdu3TJr1qwceuih+f3vf58BAwYkSc4///x85StfyTXXXJNBgwblrLPOyrhx4/KHP/wh3bp168ghAwAAAAAAvKyaSqVSqeYAo0ePzlvf+tZceumlSZLW1tYMHDgwn/zkJ3PmmWe+7PvXr1+f3r1759JLL82UKVNSqVTSv3//fOYzn8lpp52WJFm9enUaGhryzW9+M5MnT37Zfba0tKS+vj6rV69Oz549t+wAX2caz7y52iNQ0JKZE1/Tz3P+vH681ucOAAAAAFTT5nSDDn3VWCnr1q3LPffck6amprZttbW1aWpqyvz581/RPp577rn85S9/yc4775wkWbx4cZYtW9Zun/X19Rk9evQm97l27dq0tLS0ewAAAAAAAGyuDn3VWJKsWbMmP/vZz7J06dKsW7eu3WunnHLKK9rHypUrs379+jQ0NLTb3tDQkPvvv/8V7eMf//Ef079//7bQsmzZsrZ9/O0+X3ztb82YMSPnnnvuK/o8AAAAAACATelQePnNb36Td7/73XnuueeyZs2a7Lzzzlm5cmV69OiRvn37vuLwsqVmzpyZ66+/PvPmzduie7dMmzYtzc3Nbc9bWloycODAEiMCAAAAAADbkA591dinP/3pvPe9783TTz+d7t2751e/+lUeeuihjBw5MhdeeOEr3k+fPn3SpUuXLF++vN325cuXp1+/fi/53gsvvDAzZ87MbbfdluHDh7dtf/F9m7PPurq69OzZs90DAAAAAABgc3UovNx77735zGc+k9ra2nTp0iVr167NwIEDc/755+ezn/3sK95P165dM3LkyMydO7dtW2tra+bOnZsxY8Zs8n3nn39+zjvvvMyZMyejRo1q99qgQYPSr1+/dvtsaWnJ3Xff/ZL7BAAAAAAA2FId+qqx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eVatWlXtUQAAYKsmvLBN22677fLxj388zz//fLVHoZO64447qj0CsI1atWpVvv71r2fatGl56qmnkiQLFy7Mo48+WuXJ2Nodc8wx+fnPf17tMeiEunTpkkMPPTRPP/10tUehE3vhhRfyH//xH/mXf/mXPPPMM0mSxx57LM8++2yVJ6MzePDBB3Prrbfmz3/+c5KkUqlUeSJgW+HPHzbXdtUeAKrtgAMOyL333ps99tij2qPQCY0fPz677757pk6dmmOOOSYDBw6s9kh0IpVKJTfeeGPuuOOOrFixIq2tre1e/8EPflClydjaLVq0KE1NTamvr8+SJUtywgknZOedd84PfvCDLF26NNdee221R2Qrtnr16jQ1NWWPPfZo++fXgAEDqj0WncSwYcPyP//zPxk0aFC1R6ETeuihhzJ+/PgsXbo0a9euzbve9a7stNNOmTVrVtauXZsrrrii2iOylXryySczadKk/PSnP01NTU0eeOCBDB48OMcdd1x69+6dL3/5y9Ueka3cAw88sMn/7po+fXqVpqIz8OcPHeWKF7Z5J510Upqbm3PppZdm/vz5WbRoUbsHvJRHH300J598cm688cYMHjw448aNy/e+972sW7eu2qPRCZx66qn5f//v/2Xx4sXZcccdU19f3+4Bm9Lc3Jxjjz02DzzwQLp169a2/d3vfrcrGXhZN910Ux599NGceOKJueGGG9LY2JgJEybkxhtvzF/+8pdqj8dW7otf/GJOO+20/OQnP8njjz+elpaWdg94KZ/61KcyatSoPP300+nevXvb9ve9732ZO3duFSdja/fpT3862223XZYuXZoePXq0bZ80aVLmzJlTxcnoDL72ta9ln332yfTp03PjjTfmhz/8YdvjpptuqvZ4bOX8+UNH1VRcF8U2rrZ2w/5YU1OTSqWSmpqarF+/vgpT0RktXLgwV199db773e8mSY4++ugcd9xx2X///as8GVurnXfeOd/61rfy7ne/u9qj0MnU19dn4cKF2XPPPbPTTjvlv/7rvzJ48OA89NBD2WuvvXyFJpvlxX9+ff3rX8+OO+6Yf/iHf8hJJ52UoUOHVns0tkL/99+da2pq2n7t3515JXbZZZfcdddd2Wuvvdr982vJkiXZd99989xzz1V7RLZS/fr1y6233pr999+/3bnzP//zPxk+fLivquMl7bHHHjnp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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "names, importances = pipe1.columns.importances()\n", - "\n", - "plt.subplots(figsize=(20, 10))\n", - "\n", - "plt.bar(names, importances)\n", - "\n", - "plt.title('Columns importances')\n", - "plt.xlabel('Columns')\n", - "plt.ylabel('Importances')\n", - "plt.xticks(rotation='vertical')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABl4AAARaCAYAAAAtuQ8oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde5yXdZ3//+cMyoAHBhQdDrIOiHkIkRaSpTRamwSXPGxlYP0WJA+lmdl4WKkEzVZAzcXUdLU0tYOubbnf0sVsksoi2TTWDuaqK+FpBrFgFBNW5vP7o5tTs4DK+NaPA/f77XbdYq7P+7o+r2uubt7Uh9fnU1OpVCoBAAAAAADgVaut9gAAAAAAAABbCuEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAADo4p3vfGfe+c53VnuM10xjY2OOOeaYao8BAABsoYQXAADo4R5++OF85CMfyYgRI9KnT5/069cvb3/723PJJZfkj3/8Y7XHo7Dbbrst55xzTrXHAAAANmGbag8AAAB036233pqjjjoqdXV1mT59ekaNGpV169blrrvuyhlnnJFf//rXueqqq6o95hvKAw88kNranvvfoN122225/PLLxRcAAHiDEl4AAKCHeuSRRzJt2rTsvvvu+cEPfpDBgwd3vvaxj30sDz30UG699dYqTvjGVFdXV+0RumXNmjXZfvvtqz0GAADwMnruf+YFAABbuQsuuCDPPvtsvvzlL3eJLi8aOXJkPvGJT3T+/MILL+S8887LHnvskbq6ujQ2NuZTn/pU1q5d+5Lv85WvfCU1NTVZtmxZl/2LFi1KTU1NFi1a1Lnvne98Z0aNGpX77rsvEydOzHbbbZeRI0fmm9/8ZpLkhz/8YcaPH5++fftmr732yve///0u5zznnHNSU1OThx56KMccc0z69++f+vr6zJw5M88991yXtXfccUcOPPDA9O/fPzvssEP22muvfOpTn3rZ39v//Y6XF6/vrrvuyimnnJJddtkl/fv3z0c+8pGsW7cuq1atyvTp0zNgwIAMGDAgZ555ZiqVSufxy5YtS01NTS666KL88z//c3bffff07ds3EydOzK9+9asN3v8HP/hBDjrooGy//fbp379/jjjiiNx///0b/T385je/yQc/+MEMGDAgBx54YI455phcfvnlSZKamprO7UUXXXRR3va2t2XnnXdO3759M3bs2M7f/V+qqanJySefnFtuuSWjRo1KXV1d3vzmN2fhwoUbrH388cdz7LHHZsiQIamrq8vw4cNz4oknZt26dZ1rVq1alVNPPTXDhg1LXV1dRo4cmfnz56ejo6PLuW688caMHTs2O+64Y/r165f99tsvl1xyycvcMQAA6Fk88QIAAD3Ud77znYwYMSJve9vbXtH64447Ltddd13e//7357TTTsvdd9+duXPn5v7778+3v/3tYnP94Q9/yHve855MmzYtRx11VK644opMmzYtX/va13Lqqafmox/9aD74wQ/mwgsvzPvf//48+uij2XHHHbuc4wMf+ECGDx+euXPn5t57782XvvSl7Lrrrpk/f36S5Ne//nXe8573ZPTo0fnsZz+burq6PPTQQ/nJT37S7bk//vGPZ9CgQTn33HPzs5/9LFdddVX69++fn/70p/mrv/qrnH/++bntttty4YUXZtSoUZk+fXqX46+//vo888wz+djHPpbnn38+l1xySQ4++OD88pe/TENDQ5Lk+9//fg499NCMGDEi55xzTv74xz/m0ksvzdvf/vbce++9aWxs7HLOo446KnvuuWfOP//8VCqVvOUtb8kTTzyRO+64IzfccMMG13DJJZfk8MMPz4c+9KGsW7cuN954Y4466qh897vfzZQpU7qsveuuu/Ktb30rJ510Unbcccd84QtfyPve974sX748O++8c5LkiSeeyAEHHJBVq1blhBNOyN57753HH3883/zmN/Pcc8+ld+/eee655zJx4sQ8/vjj+chHPpK/+qu/yk9/+tPMmjUrTz75ZBYsWJDkT6Hs6KOPzrve9a7O+3j//ffnJz/5SZdACAAAPV4FAADocVavXl1JUjniiCNe0fqlS5dWklSOO+64LvtPP/30SpLKD37wg859EydOrEycOLHz52uvvbaSpPLII490OfbOO++sJKnceeedXY5NUvn617/eue+3v/1tJUmltra28rOf/axz/+23315JUrn22ms7982ZM6eSpPLhD3+4y3v9/d//fWXnnXfu/Pmf//mfK0kqTz311Cu6/r+0++67V2bMmLHB9U2aNKnS0dHRuX/ChAmVmpqaykc/+tHOfS+88EJlt9126/L7eeSRRypJKn379q089thjnfvvvvvuSpLKJz/5yc59Y8aMqey6666Vp59+unPff/3Xf1Vqa2sr06dP3+D3cPTRR28w/8c+9rHKpv5R7rnnnuvy87p16yqjRo2qHHzwwV32J6n07t278tBDD3WZI0nl0ksv7dw3ffr0Sm1tbeU///M/N3ivF39X5513XmX77bev/Pd//3eX188666xKr169KsuXL69UKpXKJz7xiUq/fv0qL7zwwkZnBwCALYWPGgMAgB6ovb09STZ4UmRTbrvttiRJc3Nzl/2nnXZakhT9Lpgddtgh06ZN6/x5r732Sv/+/bPPPvtk/Pjxnftf/PP//M//bHCOj370o11+Puigg/L00093Xnf//v2TJP/+7/++wcdZddexxx7b5WO7xo8fn0qlkmOPPbZzX69evTJu3LiNznzkkUdm6NChnT8fcMABGT9+fOfv/sknn8zSpUtzzDHHZKeddupcN3r06Lz73e/uXPeX/u/v4eX07du3889/+MMfsnr16hx00EG59957N1jb1NSUPfbYo8sc/fr167y2jo6O3HLLLTnssMMybty4DY5/8Xd1880356CDDsqAAQOycuXKzq2pqSnr16/Pj370oyR/umdr1qzJHXfcsVnXBAAAPY3wAgAAPVC/fv2SJM8888wrWv+73/0utbW1GTlyZJf9gwYNSv/+/fO73/2u2Gy77bZbl4CRJPX19Rk2bNgG+5I/BYL/66/+6q+6/DxgwIAua6dOnZq3v/3tOe6449LQ0JBp06blX//1X19VhPm/7/nifBube2Mz77nnnhvse9Ob3tT53Tgv/o732muvDdbts88+WblyZdasWdNl//Dhw1/5BST57ne/m7/5m79Jnz59stNOO2WXXXbJFVdckdWrV2+w9v9eb/Kn3/OL1/bUU0+lvb09o0aNesn3fPDBB7Nw4cLssssuXbampqYkyYoVK5IkJ510Ut70pjfl0EMPzW677ZYPf/jDG/1OGQAA6Ol8xwsAAPRA/fr1y5AhQzb65e0v5f8GkVdzzPr16ze6v1evXpu1v/IXX1T/Stf27ds3P/rRj3LnnXfm1ltvzcKFC3PTTTfl4IMPzve+971NHv9SNmfujc38WvjLJ1hezo9//OMcfvjhecc73pEvfvGLGTx4cLbddttce+21+frXv77B+s25Hy+lo6Mj7373u3PmmWdu9PU3velNSZJdd901S5cuze23357/+I//yH/8x3/k2muvzfTp03Pddddt1nsCAMAbmfACAAA91Hve855cddVVWbx4cSZMmPCSa3ffffd0dHTkwQcfzD777NO5v62tLatWrcruu+++yWNffNpk1apVXfaXfEqmO2pra/Oud70r73rXu3LxxRfn/PPPz6c//enceeednU9bvJ4efPDBDfb993//dxobG5Ok83f8wAMPbLDut7/9bQYOHJjtt9/+Zd9nUyHs3/7t39KnT5/cfvvtqaur69x/7bXXvpLxN7DLLrukX79+Lxv39thjjzz77LOv6Hfeu3fvHHbYYTnssMPS0dGRk046Kf/yL/+Ss88+e4OnsQAAoKfyUWMAANBDnXnmmdl+++1z3HHHpa2tbYPXH3744VxyySVJkr/7u79LkixYsKDLmosvvjhJMmXKlE2+z4vfA/Lid3Ukf3ra5aqrrnpV878av//97zfYN2bMmCTJ2rVrX+dp/uSWW27J448/3vnzkiVLcvfdd+fQQw9NkgwePDhjxozJdddd1yVi/epXv8r3vve9znv0cl6MM/83hPXq1Ss1NTVdnkRatmxZbrnllm5dT21tbY488sh85zvfyc9//vMNXn/xyZgPfOADWbx4cW6//fYN1qxatSovvPBCkuTpp5/e4PyjR49OUr17BgAArwVPvAAAQA+1xx575Otf/3qmTp2affbZJ9OnT8+oUaOybt26/PSnP83NN9+cY445Jkmy//77Z8aMGbnqqquyatWqTJw4MUuWLMl1112XI488Mn/7t3+7yfd585vfnL/5m7/JrFmz8vvf/z477bRTbrzxxs5/oV4Nn/3sZ/OjH/0oU6ZMye67754VK1bki1/8YnbbbbcceOCBVZlp5MiROfDAA3PiiSdm7dq1WbBgQXbeeecuH8F14YUX5tBDD82ECRNy7LHH5o9//GMuvfTS1NfX55xzznlF7zN27NgkySmnnJJJkyalV69emTZtWqZMmZKLL744kydPzgc/+MGsWLEil19+eUaOHJn77ruvW9d0/vnn53vf+14mTpyYE044Ifvss0+efPLJ3HzzzbnrrrvSv3//nHHGGfl//+//5T3veU+OOeaYjB07NmvWrMkvf/nLfPOb38yyZcsycODAHHfccfn973+fgw8+OLvttlt+97vf5dJLL82YMWO6PIUFAAA9nfACAAA92OGHH5777rsvF154Yf793/89V1xxRerq6jJ69Oh8/vOfz/HHH9+59ktf+lJGjBiRr3zlK/n2t7+dQYMGZdasWZkzZ87Lvs/Xvva1fOQjH8m8efPSv3//HHvssfnbv/3bvPvd734tL2+TDj/88CxbtizXXHNNVq5cmYEDB2bixIk599xzU19fX5WZpk+fntra2ixYsCArVqzIAQcckMsuuyyDBw/uXNPU1JSFCxdmzpw5mT17drbddttMnDgx8+fPz/Dhw1/R+7z3ve/Nxz/+8dx444356le/mkqlkmnTpuXggw/Ol7/85cybNy+nnnpqhg8fnvnz52fZsmXdDi9Dhw7N3XffnbPPPjtf+9rX0t7enqFDh+bQQw/NdtttlyTZbrvt8sMf/jDnn39+br755lx//fXp169f3vSmN3W5H//f//f/5aqrrsoXv/jFrFq1KoMGDcrUqVNzzjnnpLbWhzEAALDlqKm8Xt8KCQAAsAVatmxZhg8fngsvvDCnn356tccBAACqzH9WBAAAAAAAUIjwAgAAAAAAUIjwAgAAAAAAUIjveAEAAAAAACjEEy8AAAAAAACFCC8AAAAAAACFbFPtAZLk8ssvz4UXXpjW1tbsv//+ufTSS3PAAQe87HE33nhjjj766BxxxBG55ZZbOvdXKpXMmTMnV199dVatWpW3v/3tueKKK7Lnnnu+onk6OjryxBNPZMcdd0xNTU13LwsAAAAAANgCVCqVPPPMMxkyZEhqa1/6mZaqf8fLTTfdlOnTp+fKK6/M+PHjs2DBgtx888154IEHsuuuu27yuGXLluXAAw/MiBEjstNOO3UJL/Pnz8/cuXNz3XXXZfjw4Tn77LPzy1/+Mr/5zW/Sp0+fl53psccey7Bhw0pcHgAAAAAAsIV49NFHs9tuu73kmqqHl/Hjx+etb31rLrvssiR/etpk2LBh+fjHP56zzjpro8esX78+73jHO/LhD384P/7xj7Nq1arO8FKpVDJkyJCcdtppOf3005Mkq1evTkNDQ77yla9k2rRpLzvT6tWr079//zz66KPp169fmQsFAAAAAAB6pPb29gwbNiyrVq1KfX39S66t6keNrVu3Lvfcc09mzZrVua+2tjZNTU1ZvHjxJo/77Gc/m1133TXHHntsfvzjH3d57ZFHHklra2uampo699XX12f8+PFZvHjxRsPL2rVrs3bt2s6fn3nmmSRJv379hBcAAAAAACBJXtHXk7z0B5G9xlauXJn169enoaGhy/6Ghoa0trZu9Ji77rorX/7yl3P11Vdv9PUXj9ucc86dOzf19fWdm48ZAwAAAAAAuqOq4WVzPfPMM/mHf/iHXH311Rk4cGCx886aNSurV6/u3B599NFi5wYAAAAAALYeVf2osYEDB6ZXr15pa2vrsr+trS2DBg3aYP3DDz+cZcuW5bDDDuvc19HRkSTZZptt8sADD3Qe19bWlsGDB3c555gxYzY6R11dXerq6l7t5QAAAAAAAFu5qj7x0rt374wdOzYtLS2d+zo6OtLS0pIJEyZssH7vvffOL3/5yyxdurRzO/zww/O3f/u3Wbp0aYYNG5bhw4dn0KBBXc7Z3t6eu+++e6PnBAAAAAAAKKWqT7wkSXNzc2bMmJFx48blgAMOyIIFC7JmzZrMnDkzSTJ9+vQMHTo0c+fOTZ8+fTJq1Kgux/fv3z9Juuw/9dRT87nPfS577rlnhg8fnrPPPjtDhgzJkUce+XpdFgAAAAAAsBWqeniZOnVqnnrqqcyePTutra0ZM2ZMFi5cmIaGhiTJ8uXLU1u7eQ/mnHnmmVmzZk1OOOGErFq1KgceeGAWLlyYPn36vBaXAAAAAAAAkCSpqVQqlWoP8UbT3t6e+vr6rF69Ov369av2OAAAAAAAQBVtTjeo6ne8AAAAAAAAbEmEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEK2qfYA9CyNZ91a7RG2eMvmTan2CAAAAAAAdJMnXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAp5Q4SXyy+/PI2NjenTp0/Gjx+fJUuWbHLtt771rYwbNy79+/fP9ttvnzFjxuSGG27osuaYY45JTU1Nl23y5Mmv9WUAAAAAAABbuW2qPcBNN92U5ubmXHnllRk/fnwWLFiQSZMm5YEHHsiuu+66wfqddtopn/70p7P33nund+/e+e53v5uZM2dm1113zaRJkzrXTZ48Oddee23nz3V1da/L9QAAAAAAAFuvqj/xcvHFF+f444/PzJkzs+++++bKK6/Mdtttl2uuuWaj69/5znfm7//+77PPPvtkjz32yCc+8YmMHj06d911V5d1dXV1GTRoUOc2YMCA1+NyAAAAAACArVhVw8u6detyzz33pKmpqXNfbW1tmpqasnjx4pc9vlKppKWlJQ888EDe8Y53dHlt0aJF2XXXXbPXXnvlxBNPzNNPP73J86xduzbt7e1dNgAAAAAAgM1V1Y8aW7lyZdavX5+GhoYu+xsaGvLb3/52k8etXr06Q4cOzdq1a9OrV6988YtfzLvf/e7O1ydPnpz3vve9GT58eB5++OF86lOfyqGHHprFixenV69eG5xv7ty5Offcc8tdGAAAAAAAsFWq+ne8dMeOO+6YpUuX5tlnn01LS0uam5szYsSIvPOd70ySTJs2rXPtfvvtl9GjR2ePPfbIokWL8q53vWuD882aNSvNzc2dP7e3t2fYsGGv+XUAAAAAAABblqqGl4EDB6ZXr15pa2vrsr+trS2DBg3a5HG1tbUZOXJkkmTMmDG5//77M3fu3M7w8n+NGDEiAwcOzEMPPbTR8FJXV5e6urruXwgAAAAAAECq/B0vvXv3ztixY9PS0tK5r6OjIy0tLZkwYcIrPk9HR0fWrl27ydcfe+yxPP300xk8ePCrmhcAAAAAAOClVP2jxpqbmzNjxoyMGzcuBxxwQBYsWJA1a9Zk5syZSZLp06dn6NChmTt3bpI/fR/LuHHjsscee2Tt2rW57bbbcsMNN+SKK65Ikjz77LM599xz8773vS+DBg3Kww8/nDPPPDMjR47MpEmTqnadAAAAAADAlq/q4WXq1Kl56qmnMnv27LS2tmbMmDFZuHBhGhoakiTLly9Pbe2fH8xZs2ZNTjrppDz22GPp27dv9t5773z1q1/N1KlTkyS9evXKfffdl+uuuy6rVq3KkCFDcsghh+S8887zcWIAAAAAAMBrqqZSqVSqPcQbTXt7e+rr67N69er069ev2uO8oTSedWu1R9jiLZs3pdojAAAAAADwFzanG1T1O14AAAAAAAC2JMILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIW+I8HL55ZensbExffr0yfjx47NkyZJNrv3Wt76VcePGpX///tl+++0zZsyY3HDDDV3WVCqVzJ49O4MHD07fvn3T1NSUBx988LW+DAAAAAAAYCtX9fBy0003pbm5OXPmzMm9996b/fffP5MmTcqKFSs2un6nnXbKpz/96SxevDj33XdfZs6cmZkzZ+b222/vXHPBBRfkC1/4Qq688srcfffd2X777TNp0qQ8//zzr9dlAQAAAAAAW6GaSqVSqeYA48ePz1vf+tZcdtllSZKOjo4MGzYsH//4x3PWWWe9onP89V//daZMmZLzzjsvlUolQ4YMyWmnnZbTTz89SbJ69eo0NDTkK1/5SqZNm/ay52tvb099fX1Wr16dfv36df/itkCNZ91a7RG2eMvmTan2CAAAAAAA/IXN6QZVfeJl3bp1ueeee9LU1NS5r7a2Nk1NTVm8ePHLHl+pVNLS0pIHHngg73jHO5IkjzzySFpbW7ucs76+PuPHj9/kOdeuXZv29vYuGwAAAAAAwOaqanhZuXJl1q9fn4aGhi77Gxoa0trausnjVq9enR122CG9e/fOlClTcumll+bd7353knQetznnnDt3burr6zu3YcOGvZrLAgAAAAAAtlJV/46X7thxxx2zdOnS/Od//mf+6Z/+Kc3NzVm0aFG3zzdr1qysXr26c3v00UfLDQsAAAAAAGw1tqnmmw8cODC9evVKW1tbl/1tbW0ZNGjQJo+rra3NyJEjkyRjxozJ/fffn7lz5+ad73xn53FtbW0ZPHhwl3OOGTNmo+erq6tLXV3dq7waAAAAAABga1fVJ1569+6dsWPHpqWlpXNfR0dHWlpaMmHChFd8no6OjqxduzZJMnz48AwaNKjLOdvb23P33Xdv1jkBAAAAAAA2V1WfeEmS5ubmzJgxI+PGjcsBBxyQBQsWZM2aNZk5c2aSZPr06Rk6dGjmzp2b5E/fxzJu3LjsscceWbt2bW677bbccMMNueKKK5IkNTU1OfXUU/O5z30ue+65Z4YPH56zzz47Q4YMyZFHHlmtywQAAAAAALYCVQ8vU6dOzVNPPZXZs2entbU1Y8aMycKFC9PQ0JAkWb58eWpr//xgzpo1a3LSSSflscceS9++fbP33nvnq1/9aqZOndq55swzz8yaNWtywgknZNWqVTnwwAOzcOHC9OnT53W/PgAAAAAAYOtRU6lUKtUe4o2mvb099fX1Wb16dfr161ftcd5QGs+6tdojbPGWzZtS7REAAAAAAPgLm9MNqvodLwAAAAAAAFsS4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKAQ4QUAAAAAAKCQN0R4ufzyy9PY2Jg+ffpk/PjxWbJkySbXXn311TnooIMyYMCADBgwIE1NTRusP+aYY1JTU9Nlmzx58mt9GQAAAAAAwFau6uHlpptuSnNzc+bMmZN77703+++/fyZNmpQVK1ZsdP2iRYty9NFH584778zixYszbNiwHHLIIXn88ce7rJs8eXKefPLJzu0b3/jG63E5AAAAAADAVqzq4eXiiy/O8ccfn5kzZ2bffffNlVdeme222y7XXHPNRtd/7Wtfy0knnZQxY8Zk7733zpe+9KV0dHSkpaWly7q6uroMGjSocxswYMDrcTkAAAAAAMBWrKrhZd26dbnnnnvS1NTUua+2tjZNTU1ZvHjxKzrHc889l//93//NTjvt1GX/okWLsuuuu2avvfbKiSeemKeffnqT51i7dm3a29u7bAAAAAAAAJurquFl5cqVWb9+fRoaGrrsb2hoSGtr6ys6xz/+4z9myJAhXeLN5MmTc/3116elpSXz58/PD3/4wxx66KFZv379Rs8xd+7c1NfXd27Dhg3r/kUBAAAAAABbrW2qPcCrMW/evNx4441ZtGhR+vTp07l/2rRpnX/eb7/9Mnr06Oyxxx5ZtGhR3vWud21wnlmzZqW5ubnz5/b2dvEFAAAAAADYbFV94mXgwIHp1atX2trauuxva2vLoEGDXvLYiy66KPPmzcv3vve9jB49+iXXjhgxIgMHDsxDDz200dfr6urSr1+/LhsAAAAAAMDmqmp46d27d8aOHZuWlpbOfR0dHWlpacmECRM2edwFF1yQ8847LwsXLsy4ceNe9n0ee+yxPP300xk8eHCRuQEAAAAAADamquElSZqbm3P11Vfnuuuuy/33358TTzwxa9asycyZM5Mk06dPz6xZszrXz58/P2effXauueaaNDY2prW1Na2trXn22WeTJM8++2zOOOOM/OxnP8uyZcvS0tKSI444IiNHjsykSZOqco0AAAAAAMDWoerf8TJ16tQ89dRTmT17dlpbWzNmzJgsXLgwDQ0NSZLly5entvbPfeiKK67IunXr8v73v7/LeebMmZNzzjknvXr1yn333Zfrrrsuq1atypAhQ3LIIYfkvPPOS11d3et6bQAAAAAAwNalplKpVKo9xBtNe3t76uvrs3r1at/38n80nnVrtUfY4i2bN6XaIwAAAAAA8Bc2pxtU/aPGAAAAAAAAthTCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHCCwAAAAAAQCHFwsuqVatKnQoAAAAAAKBH6lZ4mT9/fm666abOnz/wgQ9k5513ztChQ/Nf//VfxYYDAAAAAADoSboVXq688soMGzYsSXLHHXfkjjvuyH/8x3/k0EMPzRlnnFF0QAAAAAAAgJ5im+4c1Nra2hlevvvd7+YDH/hADjnkkDQ2Nmb8+PFFBwQAAAAAAOgpuvXEy4ABA/Loo48mSRYuXJimpqYkSaVSyfr168tNBwAAAAAA0IN064mX9773vfngBz+YPffcM08//XQOPfTQJMkvfvGLjBw5suiAAAAAAAAAPUW3wss///M/p7GxMY8++mguuOCC7LDDDkmSJ598MieddFLRAQEAAAAAAHqKboWXbbfdNqeffvoG+z/5yU++6oEAAAAAAAB6qm59x0uS3HDDDTnwwAMzZMiQ/O53v0uSLFiwIP/+7/9ebDgAAAAAAICepFvh5Yorrkhzc3MOPfTQrFq1KuvXr0+S9O/fPwsWLCg5HwAAAAAAQI/RrfBy6aWX5uqrr86nP/3p9OrVq3P/uHHj8stf/rLYcAAAAAAAAD1Jt8LLI488kre85S0b7K+rq8uaNWte9VAAAAAAAAA9UbfCy/Dhw7N06dIN9i9cuDD77LPPq50JAAAAAACgR9qmOwc1NzfnYx/7WJ5//vlUKpUsWbIk3/jGNzJ37tx86UtfKj0jAAAAAABAj9Ct8HLcccelb9+++cxnPpPnnnsuH/zgBzNkyJBccsklmTZtWukZAQAAAAAAeoRuhZck+dCHPpQPfehDee655/Lss89m1113LTkXAAAAAABAj9Ot8PLII4/khRdeyJ577pntttsu2223XZLkwQcfzLbbbpvGxsaSMwIAAAAAAPQItd056JhjjslPf/rTDfbffffdOeaYY17tTAAAAAAAAD1St8LLL37xi7z97W/fYP/f/M3fZOnSpa92JgAAAAAAgB6pW+GlpqYmzzzzzAb7V69enfXr17/qoQAAAAAAAHqiboWXd7zjHZk7d26XyLJ+/frMnTs3Bx54YLHhAAAAAAAAepJtunPQ/Pnz8453vCN77bVXDjrooCTJj3/847S3t+cHP/hB0QEBAAAAAAB6im498bLvvvvmvvvuywc+8IGsWLEizzzzTKZPn57f/va3GTVqVOkZAQAAAAAAeoRuPfGSJEOGDMn5559fchYAAAAAAIAerdvhZdWqVVmyZElWrFiRjo6OLq9Nnz79VQ8GAAAAAADQ03QrvHznO9/Jhz70oTz77LPp169fampqOl+rqakRXgAAAAAAgK1St77j5bTTTsuHP/zhPPvss1m1alX+8Ic/dG6///3vS88IAAAAAADQI3QrvDz++OM55ZRTst1225WeBwAAAAAAoMfqVniZNGlSfv7zn5eeBQAAAAAAoEfr1ne8TJkyJWeccUZ+85vfZL/99su2227b5fXDDz+8yHAAAAAAAAA9SbfCy/HHH58k+exnP7vBazU1NVm/fv2rmwoAAAAAAKAH6lZ46ejoKD0HAAAAAABAj9et73gBAAAAAABgQ9164iVJ1qxZkx/+8IdZvnx51q1b1+W1U0455VUPBgAAAAAA0NN0K7z84he/yN/93d/lueeey5o1a7LTTjtl5cqV2W677bLrrrsKLwAAAAAAwFapWx819slPfjKHHXZY/vCHP6Rv37752c9+lt/97ncZO3ZsLrrootIzAgAAAAAA9AjdCi9Lly7Naaedltra2vTq1Str167NsGHDcsEFF+RTn/pU6RkBAAAAAAB6hG6Fl2233Ta1tX86dNddd83y5cuTJPX19Xn00UfLTQcAAAAAANCDdCu8vOUtb8l//ud/JkkmTpyY2bNn52tf+1pOPfXUjBo1arPPd/nll6exsTF9+vTJ+PHjs2TJkk2uvfrqq3PQQQdlwIABGTBgQJqamjZYX6lUMnv27AwePDh9+/ZNU1NTHnzwwc2eCwAAAAAAYHN0K7ycf/75GTx4cJLkn/7pnzJgwICceOKJeeqpp/Iv//Ivm3Wum266Kc3NzZkzZ07uvffe7L///pk0aVJWrFix0fWLFi3K0UcfnTvvvDOLFy/OsGHDcsghh+Txxx/vXHPBBRfkC1/4Qq688srcfffd2X777TNp0qQ8//zz3blcAAAAAACAV6SmUqlUqjnA+PHj89a3vjWXXXZZkqSjoyPDhg3Lxz/+8Zx11lkve/z69eszYMCAXHbZZZk+fXoqlUqGDBmS0047LaeffnqSZPXq1WloaMhXvvKVTJs27WXP2d7envr6+qxevTr9+vV7dRe4hWk869Zqj7DFWzZvSrVHAAAAAADgL2xON+jWEy8HH3xwVq1atdE3Pvjgg1/xedatW5d77rknTU1Nfx6otjZNTU1ZvHjxKzrHc889l//93//NTjvtlCR55JFH0tra2uWc9fX1GT9+/CbPuXbt2rS3t3fZAAAAAAAANle3wsuiRYuybt26DfY///zz+fGPf/yKz7Ny5cqsX78+DQ0NXfY3NDSktbX1FZ3jH//xHzNkyJDO0PLicZtzzrlz56a+vr5zGzZs2Cu+BgAAAAAAgBdtszmL77vvvs4//+Y3v+kSMtavX5+FCxdm6NCh5aZ7GfPmzcuNN96YRYsWpU+fPt0+z6xZs9Lc3Nz5c3t7u/gCAAAAAABsts0KL2PGjElNTU1qamo2+pFiffv2zaWXXvqKzzdw4MD06tUrbW1tXfa3tbVl0KBBL3nsRRddlHnz5uX73/9+Ro8e3bn/xePa2toyePDgLuccM2bMRs9VV1eXurq6Vzw3AAAAAADAxmzWR4098sgjefjhh1OpVLJkyZI88sgjndvjjz+e9vb2fPjDH37F5+vdu3fGjh2blpaWzn0dHR1paWnJhAkTNnncBRdckPPOOy8LFy7MuHHjurw2fPjwDBo0qMs529vbc/fdd7/kOQEAAAAAAF6tzXriZffdd8///u//ZsaMGdl5552z++67v+oBmpubM2PGjIwbNy4HHHBAFixYkDVr1mTmzJlJkunTp2fo0KGZO3dukmT+/PmZPXt2vv71r6exsbHz48522GGH7LDDDqmpqcmpp56az33uc9lzzz0zfPjwnH322RkyZEiOPPLIVz0vAAAAAADApmxWeEmSbbfdNt/+9rcze/bsIgNMnTo1Tz31VGbPnp3W1taMGTMmCxcuTENDQ5Jk+fLlqa3984M5V1xxRdatW5f3v//9Xc4zZ86cnHPOOUmSM888M2vWrMkJJ5yQVatW5cADD8zChQtf1ffAAAAAAAAAvJyaSqVS2dyDZsyYkTFjxuSTn/zkazFT1bW3t6e+vj6rV69Ov379qj3OG0rjWbdWe4Qt3rJ5U6o9AgAAAAAAf2FzusFmP/GSJHvuuWc++9nP5ic/+UnGjh2b7bffvsvrp5xySndOCwAAAAAA0KN1K7x8+ctfTv/+/XPPPffknnvu6fJaTU2N8AIAAAAAAGyVuhVeHnnkkdJzAAAAAAAA9Hi1L7/kpVUqlXTja2IAAAAAAAC2ON0OL9dff33222+/9O3bN3379s3o0aNzww03lJwNAAAAAACgR+nWR41dfPHFOfvss3PyySfn7W9/e5Lkrrvuykc/+tGsXLkyn/zkJ4sOCQAAAAAA0BN0K7xceumlueKKKzJ9+vTOfYcffnje/OY355xzzhFeAAAAAACArVK3PmrsySefzNve9rYN9r/tbW/Lk08++aqHAgAAAAAA6Im6FV5GjhyZf/3Xf91g/0033ZQ999zzVQ8FAAAAAADQE3Xro8bOPffcTJ06NT/60Y86v+PlJz/5SVpaWjYaZAAAAAAAALYG3Xri5X3ve1/uvvvuDBw4MLfccktuueWWDBw4MEuWLMnf//3fl54RAAAAAACgR+jWEy9JMnbs2Hz1q18tOQsAAAAAAECP1u3wsn79+nz729/O/fffnyTZd999c8QRR2Sbbbp9SgAAAAAAgB6tW5Xk17/+dQ4//PC0trZmr732SpLMnz8/u+yyS77zne9k1KhRRYcEAAAAAADoCbr1HS/HHXdc3vzmN+exxx7Lvffem3vvvTePPvpoRo8enRNOOKH0jAAAAAAAAD1Ct554Wbp0aX7+859nwIABnfsGDBiQf/qnf8pb3/rWYsMBAAAAAAD0JN164uVNb3pT2traNti/YsWKjBw58lUPBQAAAAAA0BN1K7zMnTs3p5xySr75zW/msccey2OPPZZvfvObOfXUUzN//vy0t7d3bgAAAAAAAFuLbn3U2Hve854kyQc+8IHU1NQkSSqVSpLksMMO6/y5pqYm69evLzEnAAAAAADAG163wsudd95Zeg4AAAAAAIAer1vhZeLEiaXnAAAAAAAA6PG6FV6S5Pnnn899992XFStWpKOjo8trhx9++KseDAAAAAAAoKfpVnhZuHBhpk+fnpUrV27wmu91AQAAAAAAtla13Tno4x//eI466qg8+eST6ejo6LKJLgAAAAAAwNaqW+Glra0tzc3NaWhoKD0PAAAAAABAj9Wt8PL+978/ixYtKjwKAAAAAABAz9at73i57LLLctRRR+XHP/5x9ttvv2y77bZdXj/llFOKDAcAAAAAANCTdCu8fOMb38j3vve99OnTJ4sWLUpNTU3nazU1NcILAAAAAACwVepWePn0pz+dc889N2eddVZqa7v1aWUAAAAAAABbnG5Vk3Xr1mXq1KmiCwAAAAAAwF/oVjmZMWNGbrrpptKzAAAAAAAA9Gjd+qix9evX54ILLsjtt9+e0aNHZ9ttt+3y+sUXX1xkOAAAAAAAgJ6kW+Hll7/8Zd7ylrckSX71q18VHQgAAAAAAKCn6lZ4ufPOO0vPAQAAAAAA0ONtVnh573vf+7Jrampq8m//9m/dHggAAAAAAKCn2qzwUl9f/1rNAQAAAAAA0ONtVni59tprX6s5AAAAAAAAerzaag8AAAAAAACwpRBeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAACtmm2gMAr4/Gs26t9ghbtGXzplR7BAAAAADgDcATLwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIVsU+0BANi0xrNurfYIW7Rl86ZUewQAAAAAtjCeeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAACik6uHl8ssvT2NjY/r06ZPx48dnyZIlm1z761//Ou973/vS2NiYmpqaLFiwYIM155xzTmpqarpse++992t4BQAAAAAAAH9S1fBy0003pbm5OXPmzMm9996b/fffP5MmTcqKFSs2uv65557LiBEjMm/evAwaNGiT533zm9+cJ598snO76667XqtLAAAAAAAA6FTV8HLxxRfn+OOPz8yZM7PvvvvmyiuvzHbbbZdrrrlmo+vf+ta35sILL8y0adNSV1e3yfNus802GTRoUOc2cODA1+oSAAAAAAAAOlUtvKxbty733HNPmpqa/jxMbW2ampqyePHiV3XuBx98MEOGDMmIESPyoQ99KMuXL3/J9WvXrk17e3uXDQAAAAAAYHNVLbysXLky69evT0NDQ5f9DQ0NaW1t7fZ5x48fn6985StZuHBhrrjiijzyyCM56KCD8swzz2zymLlz56a+vr5zGzZsWLffHwAAAAAA2HpV9aPGXguHHnpojjrqqIwePTqTJk3KbbfdllWrVuVf//VfN3nMrFmzsnr16s7t0UcffR0nBgAAAAAAthTbVOuNBw4cmF69eqWtra3L/ra2tgwaNKjY+/Tv3z9vetOb8tBDD21yTV1d3Ut+ZwwAAAAAAMArUbUnXnr37p2xY8empaWlc19HR0daWloyYcKEYu/z7LPP5uGHH87gwYOLnRMAAAAAAGBjqvbES5I0NzdnxowZGTduXA444IAsWLAga9asycyZM5Mk06dPz9Ch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9evXTz/++KPS09M1b948HTlyxOiIAAAAAO5hnHgBAAAA4FLmzp0rk8mkf/3rX5owYYJ69OihPn36aOHChfrss88kSV9//bV+8YtfqHXr1rJarYqKitKZM2du+u8cPny4FixYUOva448/rqeeesr+OjAwUG+88Yaio6PVunVrdenSRWlpaTp79qz99woJCdEXX3xh/zVJSUny9fVVenq6goOD1bp1a40cOVKFhYX2e/bu3auwsDB5eXnJ19dX4eHhOnnyZMP8nwUAAACgyVF4AQAAAOAyiouLtXPnTs2bN09eXl7Xve/r66vq6mr94he/UHFxsT755BPt2rVLx48f1+TJk+/693/nnXcUHh6ugwcPavTo0Zo+fbqio6M1bdo0ffnll7r//vsVHR0tm81m/zXl5eVasWKFPvjgA/3973/X119/rRdeeEGSVFVVpccff1zDhg1TTk6O9u3bp9mzZ8tkMt11VgAAAADGoNUYAAAAAJfx73//WzabTb169brpPXv27NGhQ4d04sQJde7cWZK0ceNG9enTR59//rlCQ0Pv+PePjIzUs88+K0launSp3nvvPYWGhmrSpEmSpMWLF2vw4ME6c+aM7rvvPknSjz/+qHXr1un++++XJP3617/W66+/LkkqLS3V999/rzFjxtjfDw4OvuN8AAAAAIzHiRcAAAAALuPakyQ3k5+fr86dO9uLLpLUu3dv+fr6Kj8//65+/5CQEPv/7tChgySpX79+11377rvv7NdatWplL6pIUkBAgP19Pz8/PfXUU4qIiNDYsWP1hz/8oVYbMgAAAACuh8ILAAAAAJfRvXt3mUwmHTlypEH/vWaz+bqizo8//njdfc2bN7f/75p2YDe6Vl1dfcNfU3PPtb/X+++/r3379umRRx7Rhx9+qB49ethn1QAAAABwPRReAAAAALgMPz8/RUREaM2aNbp06dJ175eUlCg4OFinTp3SqVOn7Nfz8vJUUlKi3r173/Df265du1onTa5cuaLDhw83/H/ATfTv318vvvii/s//+T/q27evNm/e3GS/NwAAAICGReEFAAAAgEtZs2aNrly5orCwMG3ZskUFBQXKz8/Xu+++q8GDB2vEiBHq16+fnnjiCX355Zf617/+pejoaA0bNkwPPfTQDf+dP/vZz/Txxx/r448/1pEjR/SrX/1KJSUljf7fcuLECb344ovat2+fTp48qYyMDBUUFDDnBQAAAHBhzYwOAAAAAAC3IygoSF9++aXi4uL0m9/8RoWFhWrXrp0GDhyo9957TyaTSX/96181f/58DR06VGazWSNHjtT//M//3PTfOXPmTGVnZys6OlrNmjXT888/r//6r/9q9P+WVq1a6ciRI0pOTtb58+cVEBCgefPm6dlnn2303xsAAABA4zDZHJlOCQAAAAAAAAAAgFui1RgAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA2EwgsAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA2EwgsAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA3k/wKllhLl/ju9lgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "names, importances = pipe2.columns.importances()\n", - "\n", - "plt.subplots(figsize=(20, 10))\n", - "\n", - "plt.bar(names, importances)\n", - "\n", - "plt.title('Columns importances')\n", - "plt.xlabel('Columns')\n", - "plt.ylabel('Importances')\n", - "plt.xticks(rotation='vertical')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.7 Features\n", - "\n", - "The most important features look as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "```sql\n", - "DROP TABLE IF EXISTS \"FEATURE_1_155\";\n", - "\n", - "CREATE TABLE \"FEATURE_1_155\" AS\n", - "SELECT MEDIAN( COALESCE( f_1_1_76.\"feature_1_1_76\", 0.0 ) ) AS \"feature_1_155\",\n", - " t1.rowid AS rownum\n", - "FROM \"USERS__STAGING_TABLE_1\" t1\n", - "INNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\n", - "ON t1.\"userid\" = t2.\"userid\"\n", - "LEFT JOIN \"FEATURE_1_1_76\" f_1_1_76\n", - "ON t2.rowid = f_1_1_76.rownum\n", - "GROUP BY t1.rowid;\n", - "```" - ], - "text/plain": [ - "'DROP TABLE IF EXISTS \"FEATURE_1_155\";\\n\\nCREATE TABLE \"FEATURE_1_155\" AS\\nSELECT MEDIAN( COALESCE( f_1_1_76.\"feature_1_1_76\", 0.0 ) ) AS \"feature_1_155\",\\n t1.rowid AS rownum\\nFROM \"USERS__STAGING_TABLE_1\" t1\\nINNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\\nON t1.\"userid\" = t2.\"userid\"\\nLEFT JOIN \"FEATURE_1_1_76\" f_1_1_76\\nON t2.rowid = f_1_1_76.rownum\\nGROUP BY t1.rowid;'" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe1.features.to_sql()[pipe1.features.sort(by=\"importances\")[0].name]" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "```sql\n", - "DROP TABLE IF EXISTS \"FEATURE_1_1\";\n", - "\n", - "CREATE TABLE \"FEATURE_1_1\" AS\n", - "SELECT AVG( \n", - " CASE\n", - " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" > 3.000000 ) THEN -14.47282772262984\n", - " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" <= 3.000000 OR t2.\"t3__year\" IS NULL ) THEN 18.80608436507123\n", - " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" > 0.250270 ) THEN 17.15219491452244\n", - " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" <= 0.250270 OR t2.\"t3__year__mapping_1_target_1_avg\" IS NULL ) THEN 7.625903043390911\n", - " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" > 2.309180 ) THEN -9.39027739930436\n", - " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" <= 2.309180 OR p_1_1.\"feature_1_1_58\" IS NULL ) THEN -3.045979108396568\n", - " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" > 0.009437 ) THEN 0.007265281402375446\n", - " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" <= 0.009437 OR p_1_1.\"feature_1_1_73\" IS NULL ) THEN -3.672817201353017\n", - " ELSE NULL\n", - " END\n", - ") AS \"feature_1_1\",\n", - " t1.rowid AS rownum\n", - "FROM \"USERS__STAGING_TABLE_1\" t1\n", - "INNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\n", - "ON t1.\"userid\" = t2.\"userid\"\n", - "LEFT JOIN \"FEATURES_1_1_PROPOSITIONALIZATION\" p_1_1\n", - "ON t2.rowid = p_1_1.\"rownum\"\n", - "GROUP BY t1.rowid;\n", - "```" - ], - "text/plain": [ - "'DROP TABLE IF EXISTS \"FEATURE_1_1\";\\n\\nCREATE TABLE \"FEATURE_1_1\" AS\\nSELECT AVG( \\n CASE\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" > 3.000000 ) THEN -14.47282772262984\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" <= 3.000000 OR t2.\"t3__year\" IS NULL ) THEN 18.80608436507123\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" > 0.250270 ) THEN 17.15219491452244\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" <= 0.250270 OR t2.\"t3__year__mapping_1_target_1_avg\" IS NULL ) THEN 7.625903043390911\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" > 2.309180 ) THEN -9.39027739930436\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" <= 2.309180 OR p_1_1.\"feature_1_1_58\" IS NULL ) THEN -3.045979108396568\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" > 0.009437 ) THEN 0.007265281402375446\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" <= 0.009437 OR p_1_1.\"feature_1_1_73\" IS NULL ) THEN -3.672817201353017\\n ELSE NULL\\n END\\n) AS \"feature_1_1\",\\n t1.rowid AS rownum\\nFROM \"USERS__STAGING_TABLE_1\" t1\\nINNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\\nON t1.\"userid\" = t2.\"userid\"\\nLEFT JOIN \"FEATURES_1_1_PROPOSITIONALIZATION\" p_1_1\\nON t2.rowid = p_1_1.\"rownum\"\\nGROUP BY t1.rowid;'" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipe2.features.to_sql()[pipe2.features.sort(by=\"importances\")[0].name]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.8 Productionization\n", - "\n", - "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` and `spark` modules." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "# Creates a folder named movie_lens_pipeline containing\n", - "# the SQL code.\n", - "pipe2.features.to_sql().save(\"movie_lens_pipeline\")" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "pipe2.features.to_sql(dialect=getml.pipeline.dialect.spark_sql).save(\"movie_lens_spark\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.9 Benchmarks" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "State-of-the-art approaches on this dataset perform as follows:\n", - "\n", - "\n", - "| Approach | Study | Accuracy | AUC |\n", - "| :------------------------------ | :------------------------- | -----------: | ------: |\n", - "| Probabalistic Relational Model | Ghanem (2009) | -- | 69.2% |\n", - "| Multi-Relational Bayesian Network | Schulte and Khosravi (2012) | 69% | -- |\n", - "| Multi-Relational Bayesian Network | Schulte et al (2013) | 66% | -- |\n", - "\n", - "\n", - "By contrast, getML's algorithms, as used in this notebook, perform as follows:" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "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", - "
ApproachAccuracyAUC
0FastProp77.5%78.6%
1Relboost80.5%83.8%
\n", - "
" - ], - "text/plain": [ - " Approach Accuracy AUC\n", - "0 FastProp 77.5% 78.6%\n", - "1 Relboost 80.5% 83.8%" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "scores = [fastprop_score, relboost_score]\n", - "pd.DataFrame(data={\n", - " 'Approach': ['FastProp', 'Relboost'],\n", - " 'Accuracy': [f'{score.accuracy:.1%}' for score in scores],\n", - " 'AUC': [f'{score.auc:,.1%}' for score in scores]\n", - "})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "getml.engine.shutdown()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Conclusion\n", - "\n", - "In this notebook we have demonstrated how getML can be applied to the MovieLens dataset. We have demonstrated the our approach outperforms state-of-the-art relational learning algorithms." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Citations\n", - "\n", - "Motl, Jan, and Oliver Schulte. \"The CTU prague relational learning repository.\" arXiv preprint arXiv:1511.03086 (2015).\n", - "\n", - "Ghanem, Amal S. \"Probabilistic models for mining imbalanced relational data.\" Doctoral dissertation, Curtin University (2009).\n", - "\n", - "Schulte, Oliver, and Hassan Khosravi. \"Learning graphical models for relational data via lattice search.\" Machine Learning 88.3 (2012): 331-368.\n", - "\n", - "Schulte, Oliver, et al. \"A hierarchy of independence assumptions for multi-relational Bayes net classifiers.\" 2013 IEEE Symposium on Computational Intelligence and Data Mining (CIDM). IEEE, 2013.\n" - ] - } - ], - "metadata": { - "jupytext": { - "encoding": "# -*- coding: utf-8 -*-", - "formats": "ipynb,py:percent,md" - }, - "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.11.4" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": false, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MovieLens - Predicting a user's gender based on the movies they have watched\n", + "\n", + "In this notebook, we will apply getML to a dataset that is often used for benchmarking in the relational learning literature: The MovieLens dataset.\n", + "\n", + "Summary:\n", + "\n", + "- Prediction type: __Classification model__\n", + "- Domain: __Entertainment__\n", + "- Prediction target: __The gender of a user__ \n", + "- Population size: __6039__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Background\n", + "\n", + "The MovieLens dataset is often used in the relational learning literature has a benchmark for newly developed algorithms. Following the tradition, we benchmark getML's own algorithms on this dataset as well. The task is to predict a user's gender based on the movies they have watched.\n", + "\n", + "\n", + "It has been downloaded from the [CTU Prague relational learning repository](https://relational.fit.cvut.cz/dataset/MovieLens) (Motl and Schulte, 2015) (Now residing at [relational-data.org](https://relational-data.org/dataset/MovieLens).)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get started with the analysis and set up your session:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install -q \"getml==1.5.0\" \"matplotlib==3.9.2\" \"ipywidgets==8.1.5\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "getML API version: 1.5.0\n", + "\n" + ] + } + ], + "source": [ + "import os\n", + "\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import getml\n", + "\n", + "os.environ[\"PYARROW_IGNORE_TIMEZONE\"] = \"1\"\n", + "%matplotlib inline \n", + "\n", + "print(f\"getML API version: {getml.__version__}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Launching ./getML --allow-push-notifications=true --allow-remote-ips=true --home-directory=/home/user --in-memory=true --install=false --launch-browser=true --log=false --token=token in /home/user/.getML/getml-1.5.0-x64-linux...\n", + "Launched the getML Engine. The log output will be stored in /home/user/.getML/logs/20240912151421.log.\n", + "\u001b[2K Loading pipelines... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file + { + "data": { + "text/html": [ + "
Connected to project 'MovieLens'.\n",
+       "
\n" + ], + "text/plain": [ + "Connected to project \u001b[32m'MovieLens'\u001b[0m.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "getml.engine.launch(allow_remote_ips=True, token=\"token\")\n", + "getml.engine.set_project(\"MovieLens\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Loading data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.1 Download from source\n", + "\n", + "We begin by downloading the data from the source file:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Connection(dbname='imdb_MovieLens',\n", + " dialect='mysql',\n", + " host='db.relational-data.org',\n", + " port=3306)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "conn = getml.database.connect_mysql(\n", + " host=\"db.relational-data.org\",\n", + " dbname=\"imdb_MovieLens\",\n", + " port=3306,\n", + " user=\"guest\",\n", + " password=\"relational\",\n", + ")\n", + "\n", + "conn" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def load_if_needed(name):\n", + " \"\"\"\n", + " Loads the data from the relational learning\n", + " repository, if the data frame has not already\n", + " been loaded.\n", + " \"\"\"\n", + " if not getml.data.exists(name):\n", + " data_frame = getml.data.DataFrame.from_db(name=name, table_name=name, conn=conn)\n", + " data_frame.save()\n", + " else:\n", + " data_frame = getml.data.load_data_frame(name)\n", + " return data_frame" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "users = load_if_needed(\"users\")\n", + "u2base = load_if_needed(\"u2base\")\n", + "movies = load_if_needed(\"movies\")\n", + "movies2directors = load_if_needed(\"movies2directors\")\n", + "directors = load_if_needed(\"directors\")\n", + "movies2actors = load_if_needed(\"movies2actors\")\n", + "actors = load_if_needed(\"actors\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 1.2 Prepare data for getML" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "getML requires that we define *roles* for each of the columns." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "users[\"target\"] = users.u_gender == \"F\"" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name useridtargetoccupation ageu_gender
rolejoin_keytargetcategoricalnumericalunused_string
01\n", + " 1 \n", + " 2\n", + " 1 \n", + " F
151\n", + " 1 \n", + " 2\n", + " 1 \n", + " F
275\n", + " 1 \n", + " 2\n", + " 1 \n", + " F
386\n", + " 1 \n", + " 2\n", + " 1 \n", + " F
499\n", + " 1 \n", + " 2\n", + " 1 \n", + " F
...\n", + " ... \n", + " ...\n", + " ... \n", + " ...
60345658\n", + " 0 \n", + " 5\n", + " 56 \n", + " M
60355669\n", + " 0 \n", + " 5\n", + " 56 \n", + " M
60365703\n", + " 0 \n", + " 5\n", + " 56 \n", + " M
60375948\n", + " 0 \n", + " 5\n", + " 56 \n", + " M
60385980\n", + " 0 \n", + " 5\n", + " 56 \n", + " M
\n", + "\n", + "

\n", + " 6039 rows x 5 columns
\n", + " memory usage: 0.21 MB
\n", + " name: users
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name userid target occupation age u_gender \n", + "role join_key target categorical numerical unused_string\n", + " 0 1 1 2 1 F \n", + " 1 51 1 2 1 F \n", + " 2 75 1 2 1 F \n", + " 3 86 1 2 1 F \n", + " 4 99 1 2 1 F \n", + " ... ... ... ... ... \n", + "6034 5658 0 5 56 M \n", + "6035 5669 0 5 56 M \n", + "6036 5703 0 5 56 M \n", + "6037 5948 0 5 56 M \n", + "6038 5980 0 5 56 M \n", + "\n", + "\n", + "6039 rows x 5 columns\n", + "memory usage: 0.21 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "users.set_role(\"userid\", getml.data.roles.join_key)\n", + "users.set_role(\"age\", getml.data.roles.numerical)\n", + "users.set_role(\"occupation\", getml.data.roles.categorical)\n", + "users.set_role(\"target\", getml.data.roles.target)\n", + "\n", + "users.save()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name userid movieid rating
rolejoin_keyjoin_keynumerical
021964242\n", + " 1 \n", + "
122219779\n", + " 1 \n", + "
231856939\n", + " 1 \n", + "
342273044\n", + " 1 \n", + "
451681655\n", + " 1 \n", + "
......\n", + " ... \n", + "
99615460402560616\n", + " 5 \n", + "
99615560402564194\n", + " 5 \n", + "
99615660402581228\n", + " 5 \n", + "
99615760402581428\n", + " 5 \n", + "
99615860402593112\n", + " 5 \n", + "
\n", + "\n", + "

\n", + " 996159 rows x 3 columns
\n", + " memory usage: 15.94 MB
\n", + " name: u2base
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + " name userid movieid rating\n", + " role join_key join_key numerical\n", + " 0 2 1964242 1\n", + " 1 2 2219779 1\n", + " 2 3 1856939 1\n", + " 3 4 2273044 1\n", + " 4 5 1681655 1\n", + " ... ... ...\n", + "996154 6040 2560616 5\n", + "996155 6040 2564194 5\n", + "996156 6040 2581228 5\n", + "996157 6040 2581428 5\n", + "996158 6040 2593112 5\n", + "\n", + "\n", + "996159 rows x 3 columns\n", + "memory usage: 15.94 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "u2base.set_role([\"userid\", \"movieid\"], getml.data.roles.join_key)\n", + "u2base.set_role(\"rating\", getml.data.roles.numerical)\n", + "\n", + "u2base.save()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name movieidisEnglish country yearrunningtime
rolejoin_keycategoricalcategoricalnumerical numerical
01672052Tother\n", + " 3 \n", + " \n", + " 2 \n", + "
11672111Tother\n", + " 4 \n", + " \n", + " 2 \n", + "
21672580TUSA\n", + " 4 \n", + " \n", + " 3 \n", + "
31672716TUSA\n", + " 4 \n", + " \n", + " 2 \n", + "
41672946TUSA\n", + " 4 \n", + " \n", + " 0 \n", + "
.........\n", + " ... \n", + " \n", + " ... \n", + "
38272591814Tother\n", + " 4 \n", + " \n", + " 2 \n", + "
38282592334TUSA\n", + " 4 \n", + " \n", + " 2 \n", + "
38292592963FFrance\n", + " 2 \n", + " \n", + " 2 \n", + "
38302593112TUSA\n", + " 4 \n", + " \n", + " 1 \n", + "
38312593313Fother\n", + " 4 \n", + " \n", + " 3 \n", + "
\n", + "\n", + "

\n", + " 3832 rows x 5 columns
\n", + " memory usage: 0.11 MB
\n", + " name: movies
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name movieid isEnglish country year runningtime\n", + "role join_key categorical categorical numerical numerical\n", + " 0 1672052 T other 3 2\n", + " 1 1672111 T other 4 2\n", + " 2 1672580 T USA 4 3\n", + " 3 1672716 T USA 4 2\n", + " 4 1672946 T USA 4 0\n", + " ... ... ... ... ...\n", + "3827 2591814 T other 4 2\n", + "3828 2592334 T USA 4 2\n", + "3829 2592963 F France 2 2\n", + "3830 2593112 T USA 4 1\n", + "3831 2593313 F other 4 3\n", + "\n", + "\n", + "3832 rows x 5 columns\n", + "memory usage: 0.11 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "movies.set_role(\"movieid\", getml.data.roles.join_key)\n", + "movies.set_role([\"year\", \"runningtime\"], getml.data.roles.numerical)\n", + "movies.set_role([\"isEnglish\", \"country\"], getml.data.roles.categorical)\n", + "\n", + "movies.save()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name movieiddirectoridgenre
rolejoin_key join_keycategorical
0167211154934Action
11672946188940Action
21679461179783Action
31691387291700Action
4169330514663Action
.........
41362570825265215Other
41372572478149311Other
41382577062304827Other
41392590181270707Other
4140259181457348Other
\n", + "\n", + "

\n", + " 4141 rows x 3 columns
\n", + " memory usage: 0.05 MB
\n", + " name: movies2directors
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name movieid directorid genre \n", + "role join_key join_key categorical\n", + " 0 1672111 54934 Action \n", + " 1 1672946 188940 Action \n", + " 2 1679461 179783 Action \n", + " 3 1691387 291700 Action \n", + " 4 1693305 14663 Action \n", + " ... ... ... \n", + "4136 2570825 265215 Other \n", + "4137 2572478 149311 Other \n", + "4138 2577062 304827 Other \n", + "4139 2590181 270707 Other \n", + "4140 2591814 57348 Other \n", + "\n", + "\n", + "4141 rows x 3 columns\n", + "memory usage: 0.05 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "movies2directors.set_role([\"movieid\", \"directorid\"], getml.data.roles.join_key)\n", + "movies2directors.set_role(\"genre\", getml.data.roles.categorical)\n", + "\n", + "movies2directors.save()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namedirectoridd_qualityavg_revenue
role join_keynumerical numerical
067\n", + " 4 \n", + " \n", + " 1 \n", + "
192\n", + " 2 \n", + " \n", + " 3 \n", + "
2284\n", + " 4 \n", + " \n", + " 0 \n", + "
3708\n", + " 4 \n", + " \n", + " 1 \n", + "
4746\n", + " 4 \n", + " \n", + " 4 \n", + "
...\n", + " ... \n", + " \n", + " ... \n", + "
2196305962\n", + " 4 \n", + " \n", + " 4 \n", + "
2197305978\n", + " 4 \n", + " \n", + " 2 \n", + "
2198306168\n", + " 3 \n", + " \n", + " 2 \n", + "
2199306343\n", + " 4 \n", + " \n", + " 1 \n", + "
2200306351\n", + " 4 \n", + " \n", + " 1 \n", + "
\n", + "\n", + "

\n", + " 2201 rows x 3 columns
\n", + " memory usage: 0.04 MB
\n", + " name: directors
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + "name directorid d_quality avg_revenue\n", + "role join_key numerical numerical\n", + " 0 67 4 1\n", + " 1 92 2 3\n", + " 2 284 4 0\n", + " 3 708 4 1\n", + " 4 746 4 4\n", + " ... ... ...\n", + "2196 305962 4 4\n", + "2197 305978 4 2\n", + "2198 306168 3 2\n", + "2199 306343 4 1\n", + "2200 306351 4 1\n", + "\n", + "\n", + "2201 rows x 3 columns\n", + "memory usage: 0.04 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "directors.set_role(\"directorid\", getml.data.roles.join_key)\n", + "directors.set_role([\"d_quality\", \"avg_revenue\"], getml.data.roles.numerical)\n", + "\n", + "directors.save()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name movieid actorid cast_num
rolejoin_keyjoin_keynumerical
01672580981535\n", + " 0 \n", + "
116729461094968\n", + " 0 \n", + "
21673647149985\n", + " 0 \n", + "
31673647261595\n", + " 0 \n", + "
41673647781357\n", + " 0 \n", + "
......\n", + " ... \n", + "
1383442593313947005\n", + " 3 \n", + "
13834525933131090590\n", + " 3 \n", + "
13834625933131347419\n", + " 3 \n", + "
13834725933132099917\n", + " 3 \n", + "
13834825933132633550\n", + " 3 \n", + "
\n", + "\n", + "

\n", + " 138349 rows x 3 columns
\n", + " memory usage: 2.21 MB
\n", + " name: movies2actors
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + " name movieid actorid cast_num\n", + " role join_key join_key numerical\n", + " 0 1672580 981535 0\n", + " 1 1672946 1094968 0\n", + " 2 1673647 149985 0\n", + " 3 1673647 261595 0\n", + " 4 1673647 781357 0\n", + " ... ... ...\n", + "138344 2593313 947005 3\n", + "138345 2593313 1090590 3\n", + "138346 2593313 1347419 3\n", + "138347 2593313 2099917 3\n", + "138348 2593313 2633550 3\n", + "\n", + "\n", + "138349 rows x 3 columns\n", + "memory usage: 2.21 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "movies2actors.set_role([\"movieid\", \"actorid\"], getml.data.roles.join_key)\n", + "movies2actors.set_role(\"cast_num\", getml.data.roles.numerical)\n", + "\n", + "movies2actors.save()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to separate our data set into a training, testing and validation set:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name actorida_gender a_quality
rolejoin_keycategoricalnumerical
04M\n", + " 4 \n", + "
116M\n", + " 0 \n", + "
228M\n", + " 4 \n", + "
3566M\n", + " 4 \n", + "
4580M\n", + " 4 \n", + "
......\n", + " ... \n", + "
986852749162F\n", + " 3 \n", + "
986862749168F\n", + " 3 \n", + "
986872749204F\n", + " 3 \n", + "
986882749377F\n", + " 4 \n", + "
986892749386F\n", + " 4 \n", + "
\n", + "\n", + "

\n", + " 98690 rows x 3 columns
\n", + " memory usage: 1.58 MB
\n", + " name: actors
\n", + " type: getml.DataFrame
\n", + " \n", + "

\n" + ], + "text/plain": [ + " name actorid a_gender a_quality\n", + " role join_key categorical numerical\n", + " 0 4 M 4\n", + " 1 16 M 0\n", + " 2 28 M 4\n", + " 3 566 M 4\n", + " 4 580 M 4\n", + " ... ... ...\n", + "98685 2749162 F 3\n", + "98686 2749168 F 3\n", + "98687 2749204 F 3\n", + "98688 2749377 F 4\n", + "98689 2749386 F 4\n", + "\n", + "\n", + "98690 rows x 3 columns\n", + "memory usage: 1.58 MB\n", + "type: getml.DataFrame" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "actors.set_role(\"actorid\", getml.data.roles.join_key)\n", + "actors.set_role(\"a_quality\", getml.data.roles.numerical)\n", + "actors.set_role(\"a_gender\", getml.data.roles.categorical)\n", + "\n", + "actors.save()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "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", + "
0train
1train
2train
3test
4test
...
\n", + "\n", + "

\n", + " infinite number of rows
\n", + " \n", + " type: StringColumnView
\n", + " \n", + "

\n" + ], + "text/plain": [ + " \n", + " 0 train\n", + " 1 train\n", + " 2 train\n", + " 3 test \n", + " 4 test \n", + " ... \n", + "\n", + "\n", + "infinite number of rows\n", + "type: StringColumnView" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "split = getml.data.split.random(train=0.75, test=0.25)\n", + "split" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + "
population
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
subsetname rowstype
0testusers1511View
1trainusers4528View
\n", + "
\n", + "
\n", + "
peripheral
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name rowstype
0u2base996159DataFrame
1movies3832DataFrame
2movies2directors4141DataFrame
3directors2201DataFrame
4movies2actors138349DataFrame
5actors98690DataFrame
\n", + "
\n", + "
" + ], + "text/plain": [ + "population\n", + " subset name rows type\n", + "0 test users 1511 View\n", + "1 train users 4528 View\n", + "\n", + "peripheral\n", + " name rows type \n", + "0 u2base 996159 DataFrame\n", + "1 movies 3832 DataFrame\n", + "2 movies2directors 4141 DataFrame\n", + "3 directors 2201 DataFrame\n", + "4 movies2actors 138349 DataFrame\n", + "5 actors 98690 DataFrame" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "container = getml.data.Container(population=users, split=split)\n", + "\n", + "container.add(\n", + " u2base=u2base,\n", + " movies=movies,\n", + " movies2directors=movies2directors,\n", + " directors=directors,\n", + " movies2actors=movies2actors,\n", + " actors=actors,\n", + ")\n", + "\n", + "container" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. Predictive modeling\n", + "\n", + "We loaded the data and defined the roles and units. Next, we create a getML pipeline for relational learning." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.1 Define relational model\n", + "\n", + "To get started with relational learning, we need to specify the data model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
diagram
\n", + "
directorsmovies2directorsactorsmovies2actorsmoviesu2baseusersdirectorid = directoridRelationship: many-to-oneactorid = actoridRelationship: many-to-onemovieid = movieidRelationship: propositionalizationmovieid = movieidRelationship: propositionalizationmovieid = movieidRelationship: many-to-oneuserid = userid
\n", + "
\n", + "\n", + "
\n", + "
staging
\n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
data frames staging table
0usersUSERS__STAGING_TABLE_1
1movies2actors, actorsMOVIES2ACTORS__STAGING_TABLE_2
2movies2directors, directorsMOVIES2DIRECTORS__STAGING_TABLE_3
3u2base, moviesU2BASE__STAGING_TABLE_4
\n", + "
\n", + " " + ], + "text/plain": [ + "users:\n", + " columns:\n", + " - occupation: categorical\n", + " - userid: join_key\n", + " - age: numerical\n", + " - target: target\n", + " - u_gender: unused_string\n", + "\n", + " joins:\n", + " - right: 'u2base'\n", + " on: (users.userid, u2base.userid)\n", + " relationship: 'many-to-many'\n", + " lagged_targets: False\n", + "\n", + "u2base:\n", + " columns:\n", + " - userid: join_key\n", + " - movieid: join_key\n", + " - rating: numerical\n", + "\n", + " joins:\n", + " - right: 'movies'\n", + " on: (u2base.movieid, movies.movieid)\n", + " relationship: 'many-to-one'\n", + " lagged_targets: False\n", + "\n", + "movies:\n", + " columns:\n", + " - isEnglish: categorical\n", + " - country: categorical\n", + " - movieid: join_key\n", + " - year: numerical\n", + " - runningtime: numerical\n", + "\n", + " joins:\n", + " - right: 'movies2directors'\n", + " on: (movies.movieid, movies2directors.movieid)\n", + " relationship: 'propositionalization'\n", + " lagged_targets: False\n", + " - right: 'movies2actors'\n", + " on: (movies.movieid, movies2actors.movieid)\n", + " relationship: 'propositionalization'\n", + " lagged_targets: False\n", + "\n", + "movies2directors:\n", + " columns:\n", + " - genre: categorical\n", + " - movieid: join_key\n", + " - directorid: join_key\n", + "\n", + " joins:\n", + " - right: 'directors'\n", + " on: (movies2directors.directorid, directors.directorid)\n", + " relationship: 'many-to-one'\n", + " lagged_targets: False\n", + "\n", + "directors:\n", + " columns:\n", + " - directorid: join_key\n", + " - d_quality: numerical\n", + " - avg_revenue: numerical\n", + "\n", + "movies2actors:\n", + " columns:\n", + " - movieid: join_key\n", + " - actorid: join_key\n", + " - cast_num: numerical\n", + "\n", + " joins:\n", + " - right: 'actors'\n", + " on: (movies2actors.actorid, actors.actorid)\n", + " relationship: 'many-to-one'\n", + " lagged_targets: False\n", + "\n", + "actors:\n", + " columns:\n", + " - a_gender: categorical\n", + " - actorid: join_key\n", + " - a_quality: numerical" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dm = getml.data.DataModel(users.to_placeholder())\n", + "\n", + "dm.add(\n", + " getml.data.to_placeholder(\n", + " u2base=u2base,\n", + " movies=movies,\n", + " movies2directors=movies2directors,\n", + " directors=directors,\n", + " movies2actors=movies2actors,\n", + " actors=actors,\n", + " )\n", + ")\n", + "\n", + "dm.population.join(dm.u2base, on=\"userid\")\n", + "\n", + "dm.u2base.join(\n", + " dm.movies, on=\"movieid\", relationship=getml.data.relationship.many_to_one\n", + ")\n", + "\n", + "dm.movies.join(\n", + " dm.movies2directors,\n", + " on=\"movieid\",\n", + " relationship=getml.data.relationship.propositionalization,\n", + ")\n", + "\n", + "dm.movies2directors.join(\n", + " dm.directors, on=\"directorid\", relationship=getml.data.relationship.many_to_one\n", + ")\n", + "\n", + "dm.movies.join(\n", + " dm.movies2actors,\n", + " on=\"movieid\",\n", + " relationship=getml.data.relationship.propositionalization,\n", + ")\n", + "\n", + "dm.movies2actors.join(\n", + " dm.actors, on=\"actorid\", relationship=getml.data.relationship.many_to_one\n", + ")\n", + "\n", + "dm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.2 getML pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "__Set-up the feature learner & predictor__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will set up two pipelines. One of them uses `FastProp`, the other one uses `Relboost`. Note that we have marked some of the joins in the data model with the `propositionalization` tag. This means that `FastProp` will be used for these relationships, even for the second pipeline. This can significantly speed up the training process." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mapping = getml.preprocessors.Mapping()\n", + "\n", + "fast_prop = getml.feature_learning.FastProp(\n", + " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", + " num_threads=1,\n", + ")\n", + "\n", + "relboost = getml.feature_learning.Relboost(\n", + " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", + " num_subfeatures=50,\n", + " num_threads=1,\n", + ")\n", + "\n", + "predictor = getml.predictors.XGBoostClassifier(\n", + " max_depth=5,\n", + " n_jobs=1,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Build the pipeline__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(data_model='users',\n",
+       "         feature_learners=['FastProp'],\n",
+       "         feature_selectors=[],\n",
+       "         include_categorical=False,\n",
+       "         loss_function='CrossEntropyLoss',\n",
+       "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
+       "                     'u2base'],\n",
+       "         predictors=['XGBoostClassifier'],\n",
+       "         preprocessors=['Mapping'],\n",
+       "         share_selected_features=0.5,\n",
+       "         tags=['fast_prop'])
" + ], + "text/plain": [ + "Pipeline(data_model='users',\n", + " feature_learners=['FastProp'],\n", + " feature_selectors=[],\n", + " include_categorical=False,\n", + " loss_function='CrossEntropyLoss',\n", + " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", + " 'u2base'],\n", + " predictors=['XGBoostClassifier'],\n", + " preprocessors=['Mapping'],\n", + " share_selected_features=0.5,\n", + " tags=['fast_prop'])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe1 = getml.pipeline.Pipeline(\n", + " tags=[\"fast_prop\"],\n", + " data_model=dm,\n", + " preprocessors=[mapping],\n", + " feature_learners=[fast_prop],\n", + " predictors=[predictor],\n", + ")\n", + "\n", + "pipe1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(data_model='users',\n",
+       "         feature_learners=['Relboost'],\n",
+       "         feature_selectors=[],\n",
+       "         include_categorical=False,\n",
+       "         loss_function='CrossEntropyLoss',\n",
+       "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
+       "                     'u2base'],\n",
+       "         predictors=['XGBoostClassifier'],\n",
+       "         preprocessors=['Mapping'],\n",
+       "         share_selected_features=0.5,\n",
+       "         tags=['relboost'])
" + ], + "text/plain": [ + "Pipeline(data_model='users',\n", + " feature_learners=['Relboost'],\n", + " feature_selectors=[],\n", + " include_categorical=False,\n", + " loss_function='CrossEntropyLoss',\n", + " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", + " 'u2base'],\n", + " predictors=['XGBoostClassifier'],\n", + " preprocessors=['Mapping'],\n", + " share_selected_features=0.5,\n", + " tags=['relboost'])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe2 = getml.pipeline.Pipeline(\n", + " tags=[\"relboost\"],\n", + " data_model=dm,\n", + " preprocessors=[mapping],\n", + " feature_learners=[relboost],\n", + " predictors=[predictor],\n", + ")\n", + "\n", + "pipe2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.3 Model training" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:12\n", + "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
+       "
\n" + ], + "text/plain": [ + "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
typelabel message
0INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2DIRECTORS__STAGING_TABLE_3 over 'movieid' and 'movieid', there are no corresponding entries for 0.159513% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
1INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2ACTORS__STAGING_TABLE_2 over 'movieid' and 'movieid', there are no corresponding entries for 0.336492% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
" + ], + "text/plain": [ + " type label message \n", + "0 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB...\n", + "1 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB..." + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe1.check(container.train)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
+       "
\n" + ], + "text/plain": [ + "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
To see the issues in full, run .check() on the pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "To see the issues in full, run \u001b[1;35m.check\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m on the pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Trying 941 features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:34\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:18\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:02\n", + "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:03\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
Trained pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "Trained pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time taken: 0:00:59.177060.\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
Pipeline(data_model='users',\n",
+       "         feature_learners=['FastProp'],\n",
+       "         feature_selectors=[],\n",
+       "         include_categorical=False,\n",
+       "         loss_function='CrossEntropyLoss',\n",
+       "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
+       "                     'u2base'],\n",
+       "         predictors=['XGBoostClassifier'],\n",
+       "         preprocessors=['Mapping'],\n",
+       "         share_selected_features=0.5,\n",
+       "         tags=['fast_prop', 'container-AA9NXV'])
" + ], + "text/plain": [ + "Pipeline(data_model='users',\n", + " feature_learners=['FastProp'],\n", + " feature_selectors=[],\n", + " include_categorical=False,\n", + " loss_function='CrossEntropyLoss',\n", + " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", + " 'u2base'],\n", + " predictors=['XGBoostClassifier'],\n", + " preprocessors=['Mapping'],\n", + " share_selected_features=0.5,\n", + " tags=['fast_prop', 'container-AA9NXV'])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe1.fit(container.train)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Checking... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
+       "
\n" + ], + "text/plain": [ + "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
typelabel message
0INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2DIRECTORS__STAGING_TABLE_3 over 'movieid' and 'movieid', there are no corresponding entries for 0.159513% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
1INFOFOREIGN KEYS NOT FOUNDWhen joining U2BASE__STAGING_TABLE_4 and MOVIES2ACTORS__STAGING_TABLE_2 over 'movieid' and 'movieid', there are no corresponding entries for 0.336492% of entries in 'movieid' in 'U2BASE__STAGING_TABLE_4'. You might want to double-check your join keys.
" + ], + "text/plain": [ + " type label message \n", + "0 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB...\n", + "1 INFO FOREIGN KEYS NOT FOUND When joining U2BASE__STAGING_TAB..." + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe2.check(container.train)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Checking data model...\n",
+       "
\n" + ], + "text/plain": [ + "Checking data model\u001b[33m...\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
The pipeline check generated 2 issues labeled INFO and 0 issues labeled WARNING.\n",
+       "
\n" + ], + "text/plain": [ + "The pipeline check generated \u001b[1;36m2\u001b[0m issues labeled INFO and \u001b[1;36m0\u001b[0m issues labeled WARNING.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
To see the issues in full, run .check() on the pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "To see the issues in full, run \u001b[1;35m.check\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m on the pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:04\n", + "\u001b[2K Relboost: Training features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 11:48\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:05\n", + "\u001b[2K Relboost: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 06:18\n", + "\u001b[2K XGBoost: Training as predictor... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:03\n", + "\u001b[?25h" + ] + }, + { + "data": { + "text/html": [ + "
Trained pipeline.\n",
+       "
\n" + ], + "text/plain": [ + "Trained pipeline.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time taken: 0:18:19.843564.\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
Pipeline(data_model='users',\n",
+       "         feature_learners=['Relboost'],\n",
+       "         feature_selectors=[],\n",
+       "         include_categorical=False,\n",
+       "         loss_function='CrossEntropyLoss',\n",
+       "         peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n",
+       "                     'u2base'],\n",
+       "         predictors=['XGBoostClassifier'],\n",
+       "         preprocessors=['Mapping'],\n",
+       "         share_selected_features=0.5,\n",
+       "         tags=['relboost', 'container-AA9NXV'])
" + ], + "text/plain": [ + "Pipeline(data_model='users',\n", + " feature_learners=['Relboost'],\n", + " feature_selectors=[],\n", + " include_categorical=False,\n", + " loss_function='CrossEntropyLoss',\n", + " peripheral=['actors', 'directors', 'movies', 'movies2actors', 'movies2directors',\n", + " 'u2base'],\n", + " predictors=['XGBoostClassifier'],\n", + " preprocessors=['Mapping'],\n", + " share_selected_features=0.5,\n", + " tags=['relboost', 'container-AA9NXV'])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe2.fit(container.train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.4 Model evaluation" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "lines_to_next_cell": 0 + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:19\n", + "\u001b[2K FastProp: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[?25h" + ] + }, + { + "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", + "
date time set usedtargetaccuracy auccross entropy
02024-09-12 15:15:36traintarget0.91390.96860.2788
12024-09-12 15:34:18testtarget0.7750.78590.4779
" + ], + "text/plain": [ + " date time set used target accuracy auc cross entropy\n", + "0 2024-09-12 15:15:36 train target 0.9139 0.9686 0.2788\n", + "1 2024-09-12 15:34:18 test target 0.775 0.7859 0.4779" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fastprop_score = pipe1.score(container.test)\n", + "fastprop_score" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K Staging... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K Preprocessing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:00\n", + "\u001b[2K FastProp: Building subfeatures... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 00:04\n", + "\u001b[2K Relboost: Building features... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% • 02:01\n", + "\u001b[?25h" + ] + }, + { + "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", + "
date time set usedtargetaccuracy auccross entropy
02024-09-12 15:33:57traintarget0.97550.99620.1488
12024-09-12 15:36:24testtarget0.80480.83770.4429
" + ], + "text/plain": [ + " date time set used target accuracy auc cross entropy\n", + "0 2024-09-12 15:33:57 train target 0.9755 0.9962 0.1488\n", + "1 2024-09-12 15:36:24 test target 0.8048 0.8377 0.4429" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "relboost_score = pipe2.score(container.test)\n", + "relboost_score" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.6 Studying features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Column importances__\n", + "\n", + "Because getML uses relational learning, we can apply the principles we used to calculate the feature importances to individual columns as well.\n", + "\n", + "As we can see, most of the predictive accuracy is drawn from the roles played by the actors. This suggests that the text fields contained in this relational database have a higher impact on predictive accuracy than for most other data sets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABl4AAARaCAYAAAAtuQ8oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD9nUlEQVR4nOzdfZyVdZ3/8fcMygAqA4oMguSAkDchUpAsptHaJBCldmOg7Q8ltdLMbFJXKlGzDVBzMTVdK03tRsst29JFXZLKJNkkl2601RbEO0BUGMWEZM7vjx7O7gSoDF89jDyfj8d5xLnO91zncw3XA7UX17lqKpVKJQAAAAAAAGyx2moPAAAAAAAA8HohvAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAAAAABQivAAAAO284x3vyDve8Y5qj/GqaWxszLHHHlvtMQAAgNcp4QUAADq5P/3pT/nYxz6WwYMHp1u3bunZs2fe9ra35eKLL86f//znao9HYbfcckvOOeecao8BAABswnbVHgAAAOi4m2++OUceeWTq6uoyZcqUDBs2LOvWrcudd96Z008/Pb///e9z5ZVXVnvMrcof//jH1NZ23r+Ddsstt+Syyy4TXwAAYCslvAAAQCe1ePHiTJ48OXvssUd++tOfZrfddmt77ROf+EQefPDB3HzzzVWccOtUV1dX7RE6ZM2aNdlhhx2qPQYAAPAyOu9f8wIAgG3c+eefn2effTbf+MY32kWXFw0ZMiSf+tSn2p6/8MILOe+887Lnnnumrq4ujY2N+exnP5u1a9e+5Od885vfTE1NTZYsWdJu+7x581JTU5N58+a1bXvHO96RYcOGZdGiRRk7dmx69OiRIUOG5MYbb0yS/OxnP8vo0aPTvXv37LXXXvmP//iPdvs855xzUlNTkwcffDDHHntsevXqlfr6+kydOjXPPfdcu7W33357DjrooPTq1Ss77rhj9tprr3z2s5992Z/b397j5cXju/POO3PKKadk1113Ta9evfKxj30s69aty6pVqzJlypT07t07vXv3zhlnnJFKpdL2/iVLlqSmpiYXXnhh/vmf/zl77LFHunfvnrFjx+Z3v/vdBp//05/+NAcffHB22GGH9OrVK4cffnjuu+++jf4c/vCHP+Too49O7969c9BBB+XYY4/NZZddliSpqalpe7zowgsvzIEHHphddtkl3bt3z8iRI9t+9v9XTU1NTj755Nx0000ZNmxY6urq8qY3vSlz5szZYO2jjz6a4447Lv37909dXV0GDRqUE088MevWrWtbs2rVqpx66qkZOHBg6urqMmTIkMyaNSutra3t9nX99ddn5MiR2WmnndKzZ8/st99+ufjii1/mdwwAADoXV7wAAEAn9eMf/ziDBw/OgQce+IrWH3/88bnmmmvywQ9+MJ/5zGdy9913Z8aMGbnvvvvywx/+sNhcTz/9dN7znvdk8uTJOfLII3P55Zdn8uTJ+fa3v51TTz01H//4x3P00UfnggsuyAc/+ME8/PDD2Wmnndrt40Mf+lAGDRqUGTNmZOHChfn617+evn37ZtasWUmS3//+93nPe96T4cOH5wtf+ELq6ury4IMP5pe//GWH5/7kJz+Zfv365dxzz82vfvWrXHnllenVq1fuuuuuvOENb8iXvvSl3HLLLbngggsybNiwTJkypd37r7322jzzzDP5xCc+keeffz4XX3xxDjnkkPz2t79NQ0NDkuQ//uM/MmHChAwePDjnnHNO/vznP+eSSy7J2972tixcuDCNjY3t9nnkkUdm6NCh+dKXvpRKpZI3v/nNeeyxx3L77bfnuuuu2+AYLr744hx22GH58Ic/nHXr1uX666/PkUcemZ/85CeZOHFiu7V33nlnfvCDH+Skk07KTjvtlK985Sv5wAc+kKVLl2aXXXZJkjz22GM54IADsmrVqnz0ox/N3nvvnUcffTQ33nhjnnvuuXTt2jXPPfdcxo4dm0cffTQf+9jH8oY3vCF33XVXpk2blscffzyzZ89O8tdQdtRRR+Wd73xn2+/jfffdl1/+8pftAiEAAHR6FQAAoNNZvXp1JUnl8MMPf0Xr77333kqSyvHHH99u+2mnnVZJUvnpT3/atm3s2LGVsWPHtj2/+uqrK0kqixcvbvfeO+64o5Kkcscdd7R7b5LKd77znbZt999/fyVJpba2tvKrX/2qbfutt95aSVK5+uqr27adffbZlSSVj3zkI+0+633ve19ll112aXv+z//8z5UklSeeeOIVHf//tccee1SOOeaYDY5v3LhxldbW1rbtY8aMqdTU1FQ+/vGPt2174YUXKrvvvnu7n8/ixYsrSSrdu3evPPLII23b77777kqSyqc//em2bSNGjKj07du38uSTT7Zt+6//+q9KbW1tZcqUKRv8HI466qgN5v/EJz5R2dR/yj333HPtnq9bt64ybNiwyiGHHNJue5JK165dKw8++GC7OZJULrnkkrZtU6ZMqdTW1lb+8z//c4PPevFndd5551V22GGHyn//93+3e/3MM8+sdOnSpbJ06dJKpVKpfOpTn6r07Nmz8sILL2x0dgAAeL3wVWMAANAJtbS0JMkGV4psyi233JIkaW5ubrf9M5/5TJIUvRfMjjvumMmTJ7c932uvvdKrV6/ss88+GT16dNv2F3/9P//zPxvs4+Mf/3i75wcffHCefPLJtuPu1atXkuRHP/rRBl9n1VHHHXdcu6/tGj16dCqVSo477ri2bV26dMmoUaM2OvMRRxyRAQMGtD0/4IADMnr06Laf/eOPP5577703xx57bHbeeee2dcOHD8+73vWutnX/19/+HF5O9+7d23799NNPZ/Xq1Tn44IOzcOHCDdY2NTVlzz33bDdHz549246ttbU1N910U9773vdm1KhRG7z/xZ/V97///Rx88MHp3bt3Vq5c2fZoamrK+vXr8/Of/zzJX3/P1qxZk9tvv32zjgkAADob4QUAADqhnj17JkmeeeaZV7T+oYceSm1tbYYMGdJue79+/dKrV6889NBDxWbbfffd2wWMJKmvr8/AgQM32Jb8NRD8rTe84Q3tnvfu3bvd2kmTJuVtb3tbjj/++DQ0NGTy5Mn53ve+t0UR5m8/88X5Njb3xmYeOnToBtve+MY3tt0b58Wf8V577bXBun322ScrV67MmjVr2m0fNGjQKz+AJD/5yU/yd3/3d+nWrVt23nnn7Lrrrrn88suzevXqDdb+7fEmf/05v3hsTzzxRFpaWjJs2LCX/MwHHnggc+bMya677tru0dTUlCRZsWJFkuSkk07KG9/4xkyYMCG77757PvKRj2z0njIAANDZuccLAAB0Qj179kz//v03evP2l/K3QWRL3rN+/fqNbu/Spctmba/8nxvVv9K13bt3z89//vPccccdufnmmzNnzpzccMMNOeSQQ3Lbbbdt8v0vZXPm3tjMr4b/ewXLy/nFL36Rww47LG9/+9vz1a9+Nbvttlu23377XH311fnOd76zwfrN+f14Ka2trXnXu96VM844Y6Ovv/GNb0yS9O3bN/fee29uvfXW/Pu//3v+/d//PVdffXWmTJmSa665ZrM+EwAAtmbCCwAAdFLvec97cuWVV2b+/PkZM2bMS67dY4890tramgceeCD77LNP2/bly5dn1apV2WOPPTb53hevNlm1alW77SWvkumI2travPOd78w73/nOXHTRRfnSl76Uz33uc7njjjvarrZ4LT3wwAMbbPvv//7vNDY2Jknbz/iPf/zjBuvuv//+9OnTJzvssMPLfs6mQti//uu/plu3brn11ltTV1fXtv3qq69+JeNvYNddd03Pnj1fNu7tueeeefbZZ1/Rz7xr165573vfm/e+971pbW3NSSedlH/5l3/JWWedtcHVWAAA0Fn5qjEAAOikzjjjjOywww45/vjjs3z58g1e/9Of/pSLL744SfLud787STJ79ux2ay666KIkycSJEzf5OS/eB+TFe3Ukf73a5corr9yi+bfEU089tcG2ESNGJEnWrl37Gk/zVzfddFMeffTRtucLFizI3XffnQkTJiRJdtttt4wYMSLXXHNNu4j1u9/9Lrfddlvb79HLeTHO/G0I69KlS2pqatpdibRkyZLcdNNNHTqe2traHHHEEfnxj3+cX//61xu8/uKVMR/60Icyf/783HrrrRusWbVqVV544YUkyZNPPrnB/ocPH56ker9nAADwanDFCwAAdFJ77rlnvvOd72TSpEnZZ599MmXKlAwbNizr1q3LXXfdle9///s59thjkyT7779/jjnmmFx55ZVZtWpVxo4dmwULFuSaa67JEUcckb//+7/f5Oe86U1vyt/93d9l2rRpeeqpp7Lzzjvn+uuvb/s/1KvhC1/4Qn7+859n4sSJ2WOPPbJixYp89atfze67756DDjqoKjMNGTIkBx10UE488cSsXbs2s2fPzi677NLuK7guuOCCTJgwIWPGjMlxxx2XP//5z7nkkktSX1+fc8455xV9zsiRI5Mkp5xySsaNG5cuXbpk8uTJmThxYi666KKMHz8+Rx99dFasWJHLLrssQ4YMyaJFizp0TF/60pdy2223ZezYsfnoRz+affbZJ48//ni+//3v584770yvXr1y+umn59/+7d/ynve8J8cee2xGjhyZNWvW5Le//W1uvPHGLFmyJH369Mnxxx+fp556Koccckh23333PPTQQ7nkkksyYsSIdldhAQBAZye8AABAJ3bY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AAAAAKBT6FB4efTRR3PKKaekR48epecBAAAAAADotDoUXsaNG5df//rXpWcBAAAAAADo1DoUXiZOnJjTTz8955xzTv71X/81//Zv/9busbkuu+yyNDY2plu3bhk9enQWLFiwybVf+9rXcvDBB6d3797p3bt3mpqaNlhfqVQyffr07LbbbunevXuamprywAMPbPZcAAAAAAAAm2O7jrzphBNOSJJ84Qtf2OC1mpqarF+//hXv64Ybbkhzc3OuuOKKjB49OrNnz864cePyxz/+MX379t1g/bx583LUUUflwAMPTLdu3TJr1qwceuih+f3vf58BAwYkSc4///x85StfyTXXXJNBgwblrLPOyrhx4/KHP/wh3bp168ghAwAAAAAAvKyaSqVSqeYAo0ePzlvf+tZceumlSZLW1tYMHDgwn/zkJ3PmmWe+7PvXr1+f3r1759JLL82UKVNSqVTSv3//fOYzn8lpp52WJFm9enUaGhryzW9+M5MnT37Zfba0tKS+vj6rV69Oz549t+wAX2caz7y52iNQ0JKZE1/Tz3P+vH681ucOAAAAAFTT5nSDDn3VWCnr1q3LPffck6amprZttbW1aWpqyvz581/RPp577rn85S9/yc4775wkWbx4cZYtW9Zun/X19Rk9evQm97l27dq0tLS0ewAAAAAAAGyuDn3VWJKsWbMmP/vZz7J06dKsW7eu3WunnHLKK9rHypUrs379+jQ0NLTb3tDQkPvvv/8V7eMf//Ef079//7bQsmzZsrZ9/O0+X3ztb82YMSPnnnvuK/o8AAAAAACATelQePnNb36Td7/73XnuueeyZs2a7Lzzzlm5cmV69OiRvn37vuLwsqVmzpyZ66+/PvPmzduie7dMmzYtzc3Nbc9bWloycODAEiMCAAAAAADbkA591dinP/3pvPe9783TTz+d7t2751e/+lUeeuihjBw5MhdeeOEr3k+fPn3SpUuXLF++vN325cuXp1+/fi/53gsvvDAzZ87MbbfdluHDh7dtf/F9m7PPurq69OzZs90DAAAAAABgc3UovNx77735zGc+k9ra2nTp0iVr167NwIEDc/755+ezn/3sK95P165dM3LkyMydO7dtW2tra+bOnZsxY8Zs8n3nn39+zjvvvMyZMyejRo1q99qgQYPSr1+/dvtsaWnJ3Xff/ZL7BAAAAAAA2FId+qqx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eVatWlXtUQAAYKsmvLBN22677fLxj388zz//fLVHoZO64447qj0CsI1atWpVvv71r2fatGl56qmnkiQLFy7Mo48+WuXJ2Nodc8wx+fnPf17tMeiEunTpkkMPPTRPP/10tUehE3vhhRfyH//xH/mXf/mXPPPMM0mSxx57LM8++2yVJ6MzePDBB3Prrbfmz3/+c5KkUqlUeSJgW+HPHzbXdtUeAKrtgAMOyL333ps99tij2qPQCY0fPz677757pk6dmmOOOSYDBw6s9kh0IpVKJTfeeGPuuOOOrFixIq2tre1e/8EPflClydjaLVq0KE1NTamvr8+SJUtywgknZOedd84PfvCDLF26NNdee221R2Qrtnr16jQ1NWWPPfZo++fXgAEDqj0WncSwYcPyP//zPxk0aFC1R6ETeuihhzJ+/PgsXbo0a9euzbve9a7stNNOmTVrVtauXZsrrrii2iOylXryySczadKk/PSnP01NTU0eeOCBDB48OMcdd1x69+6dL3/5y9Ueka3cAw88sMn/7po+fXqVpqIz8OcPHeWKF7Z5J510Upqbm3PppZdm/vz5WbRoUbsHvJRHH300J598cm688cYMHjw448aNy/e+972sW7eu2qPRCZx66qn5f//v/2Xx4sXZcccdU19f3+4Bm9Lc3Jxjjz02DzzwQLp169a2/d3vfrcrGXhZN910Ux599NGceOKJueGGG9LY2JgJEybkxhtvzF/+8pdqj8dW7otf/GJOO+20/OQnP8njjz+elpaWdg94KZ/61KcyatSoPP300+nevXvb9ve9732ZO3duFSdja/fpT3862223XZYuXZoePXq0bZ80aVLmzJlTxcnoDL72ta9ln332yfTp03PjjTfmhz/8YdvjpptuqvZ4bOX8+UNH1VRcF8U2rrZ2w/5YU1OTSqWSmpqarF+/vgpT0RktXLgwV199db773e8mSY4++ugcd9xx2X///as8GVurnXfeOd/61rfy7ne/u9qj0MnU19dn4cKF2XPPPbPTTjvlv/7rvzJ48OA89NBD2WuvvXyFJpvlxX9+ff3rX8+OO+6Yf/iHf8hJJ52UoUOHVns0tkL/99+da2pq2n7t3515JXbZZZfcdddd2Wuvvdr982vJkiXZd99989xzz1V7RLZS/fr1y6233pr999+/3bnzP//zPxk+fLivquMl7bHHHjnp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "names, importances = pipe1.columns.importances()\n", + "\n", + "plt.subplots(figsize=(20, 10))\n", + "\n", + "plt.bar(names, importances)\n", + "\n", + "plt.title(\"Columns importances\")\n", + "plt.xlabel(\"Columns\")\n", + "plt.ylabel(\"Importances\")\n", + "plt.xticks(rotation=\"vertical\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABl4AAARaCAYAAAAtuQ8oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde5yXdZ3//+cMyoAHBhQdDrIOiHkIkRaSpTRamwSXPGxlYP0WJA+lmdl4WKkEzVZAzcXUdLU0tYOubbnf0sVsksoi2TTWDuaqK+FpBrFgFBNW5vP7o5tTs4DK+NaPA/f77XbdYq7P+7o+r2uubt7Uh9fnU1OpVCoBAAAAAADgVaut9gAAAAAAAABbCuEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAAAAAACgEOEFAADo4p3vfGfe+c53VnuM10xjY2OOOeaYao8BAABsoYQXAADo4R5++OF85CMfyYgRI9KnT5/069cvb3/723PJJZfkj3/8Y7XHo7Dbbrst55xzTrXHAAAANmGbag8AAAB036233pqjjjoqdXV1mT59ekaNGpV169blrrvuyhlnnJFf//rXueqqq6o95hvKAw88kNranvvfoN122225/PLLxRcAAHiDEl4AAKCHeuSRRzJt2rTsvvvu+cEPfpDBgwd3vvaxj30sDz30UG699dYqTvjGVFdXV+0RumXNmjXZfvvtqz0GAADwMnruf+YFAABbuQsuuCDPPvtsvvzlL3eJLi8aOXJkPvGJT3T+/MILL+S8887LHnvskbq6ujQ2NuZTn/pU1q5d+5Lv85WvfCU1NTVZtmxZl/2LFi1KTU1NFi1a1Lnvne98Z0aNGpX77rsvEydOzHbbbZeRI0fmm9/8ZpLkhz/8YcaPH5++fftmr732yve///0u5zznnHNSU1OThx56KMccc0z69++f+vr6zJw5M88991yXtXfccUcOPPDA9O/fPzvssEP22muvfOpTn3rZ39v//Y6XF6/vrrvuyimnnJJddtkl/fv3z0c+8pGsW7cuq1atyvTp0zNgwIAMGDAgZ555ZiqVSufxy5YtS01NTS666KL88z//c3bffff07ds3EydOzK9+9asN3v8HP/hBDjrooGy//fbp379/jjjiiNx///0b/T385je/yQc/+MEMGDAgBx54YI455phcfvnlSZKamprO7UUXXXRR3va2t2XnnXdO3759M3bs2M7f/V+qqanJySefnFtuuSWjRo1KXV1d3vzmN2fhwoUbrH388cdz7LHHZsiQIamrq8vw4cNz4oknZt26dZ1rVq1alVNPPTXDhg1LXV1dRo4cmfnz56ejo6PLuW688caMHTs2O+64Y/r165f99tsvl1xyycvcMQAA6Fk88QIAAD3Ud77znYwYMSJve9vbXtH64447Ltddd13e//7357TTTsvdd9+duXPn5v7778+3v/3tYnP94Q9/yHve855MmzYtRx11VK644opMmzYtX/va13Lqqafmox/9aD74wQ/mwgsvzPvf//48+uij2XHHHbuc4wMf+ECGDx+euXPn5t57782XvvSl7Lrrrpk/f36S5Ne//nXe8573ZPTo0fnsZz+burq6PPTQQ/nJT37S7bk//vGPZ9CgQTn33HPzs5/9LFdddVX69++fn/70p/mrv/qrnH/++bntttty4YUXZtSoUZk+fXqX46+//vo888wz+djHPpbnn38+l1xySQ4++OD88pe/TENDQ5Lk+9//fg499NCMGDEi55xzTv74xz/m0ksvzdvf/vbce++9aWxs7HLOo446KnvuuWfOP//8VCqVvOUtb8kTTzyRO+64IzfccMMG13DJJZfk8MMPz4c+9KGsW7cuN954Y4466qh897vfzZQpU7qsveuuu/Ktb30rJ510Unbcccd84QtfyPve974sX748O++8c5LkiSeeyAEHHJBVq1blhBNOyN57753HH3883/zmN/Pcc8+ld+/eee655zJx4sQ8/vjj+chHPpK/+qu/yk9/+tPMmjUrTz75ZBYsWJDkT6Hs6KOPzrve9a7O+3j//ffnJz/5SZdACAAAPV4FAADocVavXl1JUjniiCNe0fqlS5dWklSOO+64LvtPP/30SpLKD37wg859EydOrEycOLHz52uvvbaSpPLII490OfbOO++sJKnceeedXY5NUvn617/eue+3v/1tJUmltra28rOf/axz/+23315JUrn22ms7982ZM6eSpPLhD3+4y3v9/d//fWXnnXfu/Pmf//mfK0kqTz311Cu6/r+0++67V2bMmLHB9U2aNKnS0dHRuX/ChAmVmpqaykc/+tHOfS+88EJlt9126/L7eeSRRypJKn379q089thjnfvvvvvuSpLKJz/5yc59Y8aMqey6666Vp59+unPff/3Xf1Vqa2sr06dP3+D3cPTRR28w/8c+9rHKpv5R7rnnnuvy87p16yqjRo2qHHzwwV32J6n07t278tBDD3WZI0nl0ksv7dw3ffr0Sm1tbeU///M/N3ivF39X5513XmX77bev/Pd//3eX188666xKr169KsuXL69UKpXKJz7xiUq/fv0qL7zwwkZnBwCALYWPGgMAgB6ovb09STZ4UmRTbrvttiRJc3Nzl/2nnXZakhT9Lpgddtgh06ZN6/x5r732Sv/+/bPPPvtk/Pjxnftf/PP//M//bHCOj370o11+Puigg/L00093Xnf//v2TJP/+7/++wcdZddexxx7b5WO7xo8fn0qlkmOPPbZzX69evTJu3LiNznzkkUdm6NChnT8fcMABGT9+fOfv/sknn8zSpUtzzDHHZKeddupcN3r06Lz73e/uXPeX/u/v4eX07du3889/+MMfsnr16hx00EG59957N1jb1NSUPfbYo8sc/fr167y2jo6O3HLLLTnssMMybty4DY5/8Xd1880356CDDsqAAQOycuXKzq2pqSnr16/Pj370oyR/umdr1qzJHXfcsVnXBAAAPY3wAgAAPVC/fv2SJM8888wrWv+73/0utbW1GTlyZJf9gwYNSv/+/fO73/2u2Gy77bZbl4CRJPX19Rk2bNgG+5I/BYL/66/+6q+6/DxgwIAua6dOnZq3v/3tOe6449LQ0JBp06blX//1X19VhPm/7/nifBube2Mz77nnnhvse9Ob3tT53Tgv/o732muvDdbts88+WblyZdasWdNl//Dhw1/5BST57ne/m7/5m79Jnz59stNOO2WXXXbJFVdckdWrV2+w9v9eb/Kn3/OL1/bUU0+lvb09o0aNesn3fPDBB7Nw4cLssssuXbampqYkyYoVK5IkJ510Ut70pjfl0EMPzW677ZYPf/jDG/1OGQAA6Ol8xwsAAPRA/fr1y5AhQzb65e0v5f8GkVdzzPr16ze6v1evXpu1v/IXX1T/Stf27ds3P/rRj3LnnXfm1ltvzcKFC3PTTTfl4IMPzve+971NHv9SNmfujc38WvjLJ1hezo9//OMcfvjhecc73pEvfvGLGTx4cLbddttce+21+frXv77B+s25Hy+lo6Mj7373u3PmmWdu9PU3velNSZJdd901S5cuze23357/+I//yH/8x3/k2muvzfTp03Pddddt1nsCAMAbmfACAAA91Hve855cddVVWbx4cSZMmPCSa3ffffd0dHTkwQcfzD777NO5v62tLatWrcruu+++yWNffNpk1apVXfaXfEqmO2pra/Oud70r73rXu3LxxRfn/PPPz6c//enceeednU9bvJ4efPDBDfb993//dxobG5Ok83f8wAMPbLDut7/9bQYOHJjtt9/+Zd9nUyHs3/7t39KnT5/cfvvtqaur69x/7bXXvpLxN7DLLrukX79+Lxv39thjjzz77LOv6Hfeu3fvHHbYYTnssMPS0dGRk046Kf/yL/+Ss88+e4OnsQAAoKfyUWMAANBDnXnmmdl+++1z3HHHpa2tbYPXH3744VxyySVJkr/7u79LkixYsKDLmosvvjhJMmXKlE2+z4vfA/Lid3Ukf3ra5aqrrnpV878av//97zfYN2bMmCTJ2rVrX+dp/uSWW27J448/3vnzkiVLcvfdd+fQQw9NkgwePDhjxozJdddd1yVi/epXv8r3vve9znv0cl6MM/83hPXq1Ss1NTVdnkRatmxZbrnllm5dT21tbY488sh85zvfyc9//vMNXn/xyZgPfOADWbx4cW6//fYN1qxatSovvPBCkuTpp5/e4PyjR49OUr17BgAArwVPvAAAQA+1xx575Otf/3qmTp2affbZJ9OnT8+oUaOybt26/PSnP83NN9+cY445Jkmy//77Z8aMGbnqqquyatWqTJw4MUuWLMl1112XI488Mn/7t3+7yfd585vfnL/5m7/JrFmz8vvf/z477bRTbrzxxs5/oV4Nn/3sZ/OjH/0oU6ZMye67754VK1bki1/8YnbbbbcceOCBVZlp5MiROfDAA3PiiSdm7dq1WbBgQXbeeecuH8F14YUX5tBDD82ECRNy7LHH5o9//GMuvfTS1NfX55xzznlF7zN27NgkySmnnJJJkyalV69emTZtWqZMmZKLL744kydPzgc/+MGsWLEil19+eUaOHJn77ruvW9d0/vnn53vf+14mTpyYE044Ifvss0+efPLJ3HzzzbnrrrvSv3//nHHGGfl//+//5T3veU+OOeaYjB07NmvWrMkvf/nLfPOb38yyZcsycODAHHfccfn973+fgw8+OLvttlt+97vf5dJLL82YMWO6PIUFAAA9nfACAAA92OGHH5777rsvF154Yf793/89V1xxRerq6jJ69Oh8/vOfz/HHH9+59ktf+lJGjBiRr3zlK/n2t7+dQYMGZdasWZkzZ87Lvs/Xvva1fOQjH8m8efPSv3//HHvssfnbv/3bvPvd734tL2+TDj/88CxbtizXXHNNVq5cmYEDB2bixIk599xzU19fX5WZpk+fntra2ixYsCArVqzIAQcckMsuuyyDBw/uXNPU1JSFCxdmzpw5mT17drbddttMnDgx8+fPz/Dhw1/R+7z3ve/Nxz/+8dx444356le/mkqlkmnTpuXggw/Ol7/85cybNy+nnnpqhg8fnvnz52fZsmXdDi9Dhw7N3XffnbPPPjtf+9rX0t7enqFDh+bQQw/NdtttlyTZbrvt8sMf/jDnn39+br755lx//fXp169f3vSmN3W5H//f//f/5aqrrsoXv/jFrFq1KoMGDcrUqVNzzjnnpLbWhzEAALDlqKm8Xt8KCQAAsAVatmxZhg8fngsvvDCnn356tccBAACqzH9WBAAAAAAAUIjwAgAAAAAAUIjwAgAAAAAAUIjveAEAAAAAACjEEy8AAAAAAACFCC8AAAAAAACFbFPtAZLk8ssvz4UXXpjW1tbsv//+ufTSS3PAAQe87HE33nhjjj766BxxxBG55ZZbOvdXKpXMmTMnV199dVatWpW3v/3tueKKK7Lnnnu+onk6OjryxBNPZMcdd0xNTU13LwsAAAAAANgCVCqVPPPMMxkyZEhqa1/6mZaqf8fLTTfdlOnTp+fKK6/M+PHjs2DBgtx888154IEHsuuuu27yuGXLluXAAw/MiBEjstNOO3UJL/Pnz8/cuXNz3XXXZfjw4Tn77LPzy1/+Mr/5zW/Sp0+fl53psccey7Bhw0pcHgAAAAAAsIV49NFHs9tuu73kmqqHl/Hjx+etb31rLrvssiR/etpk2LBh+fjHP56zzjpro8esX78+73jHO/LhD384P/7xj7Nq1arO8FKpVDJkyJCcdtppOf3005Mkq1evTkNDQ77yla9k2rRpLzvT6tWr079//zz66KPp169fmQsFAAAAAAB6pPb29gwbNiyrVq1KfX39S66t6keNrVu3Lvfcc09mzZrVua+2tjZNTU1ZvHjxJo/77Gc/m1133TXHHntsfvzjH3d57ZFHHklra2uampo699XX12f8+PFZvHjxRsPL2rVrs3bt2s6fn3nmmSRJv379hBcAAAAAACBJXtHXk7z0B5G9xlauXJn169enoaGhy/6Ghoa0trZu9Ji77rorX/7yl3P11Vdv9PUXj9ucc86dOzf19fWdm48ZAwAAAAAAuqOq4WVzPfPMM/mHf/iHXH311Rk4cGCx886aNSurV6/u3B599NFi5wYAAAAAALYeVf2osYEDB6ZXr15pa2vrsr+trS2DBg3aYP3DDz+cZcuW5bDDDuvc19HRkSTZZptt8sADD3Qe19bWlsGDB3c555gxYzY6R11dXerq6l7t5QAAAAAAAFu5qj7x0rt374wdOzYtLS2d+zo6OtLS0pIJEyZssH7vvffOL3/5yyxdurRzO/zww/O3f/u3Wbp0aYYNG5bhw4dn0KBBXc7Z3t6eu+++e6PnBAAAAAAAKKWqT7wkSXNzc2bMmJFx48blgAMOyIIFC7JmzZrMnDkzSTJ9+vQMHTo0c+fOTZ8+fTJq1Kgux/fv3z9Juuw/9dRT87nPfS577rlnhg8fnrPPPjtDhgzJkUce+XpdFgAAAAAAsBWqeniZOnVqnnrqqcyePTutra0ZM2ZMFi5cmIaGhiTJ8uXLU1u7eQ/mnHnmmVmzZk1OOOGErFq1KgceeGAWLlyYPn36vBaXAAAAAAAAkCSpqVQqlWoP8UbT3t6e+vr6rF69Ov369av2OAAAAAAAQBVtTjeo6ne8AAAAAAAAbEmEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEKEFwAAAAAAgEK2qfYA9CyNZ91a7RG2eMvmTan2CAAAAAAAdJMnXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAoRXgAAAAAAAAp5Q4SXyy+/PI2NjenTp0/Gjx+fJUuWbHLtt771rYwbNy79+/fP9ttvnzFjxuSGG27osuaYY45JTU1Nl23y5Mmv9WUAAAAAAABbuW2qPcBNN92U5ubmXHnllRk/fnwWLFiQSZMm5YEHHsiuu+66wfqddtopn/70p7P33nund+/e+e53v5uZM2dm1113zaRJkzrXTZ48Oddee23nz3V1da/L9QAAAAAAAFuvqj/xcvHFF+f444/PzJkzs+++++bKK6/Mdtttl2uuuWaj69/5znfm7//+77PPPvtkjz32yCc+8YmMHj06d911V5d1dXV1GTRoUOc2YMCA1+NyAAAAAACArVhVw8u6detyzz33pKmpqXNfbW1tmpqasnjx4pc9vlKppKWlJQ888EDe8Y53dHlt0aJF2XXXXbPXXnvlxBNPzNNPP73J86xduzbt7e1dNgAAAAAAgM1V1Y8aW7lyZdavX5+GhoYu+xsaGvLb3/52k8etXr06Q4cOzdq1a9OrV6988YtfzLvf/e7O1ydPnpz3vve9GT58eB5++OF86lOfyqGHHprFixenV69eG5xv7ty5Offcc8tdGAAAAAAAsFWq+ne8dMeOO+6YpUuX5tlnn01LS0uam5szYsSIvPOd70ySTJs2rXPtfvvtl9GjR2ePPfbIokWL8q53vWuD882aNSvNzc2dP7e3t2fYsGGv+XUAAAAAAABblqqGl4EDB6ZXr15pa2vrsr+trS2DBg3a5HG1tbUZOXJkkmTMmDG5//77M3fu3M7w8n+NGDEiAwcOzEMPPbTR8FJXV5e6urruXwgAAAAAAECq/B0vvXv3ztixY9PS0tK5r6OjIy0tLZkwYcIrPk9HR0fWrl27ydcfe+yxPP300xk8ePCrmhcAAAAAAOClVP2jxpqbmzNjxoyMGzcuBxxwQBYsWJA1a9Zk5syZSZLp06dn6NChmTt3bpI/fR/LuHHjsscee2Tt2rW57bbbcsMNN+SKK65Ikjz77LM599xz8773vS+DBg3Kww8/nDPPPDMjR47MpEmTqnadAAAAAADAlq/q4WXq1Kl56qmnMnv27LS2tmbMmDFZuHBhGhoakiTLly9Pbe2fH8xZs2ZNTjrppDz22GPp27dv9t5773z1q1/N1KlTkyS9evXKfffdl+uuuy6rVq3KkCFDcsghh+S8887zcWIAAAAAAMBrqqZSqVSqPcQbTXt7e+rr67N69er069ev2uO8oTSedWu1R9jiLZs3pdojAAAAAADwFzanG1T1O14AAAAAAAC2JMILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIcILAAAAAABAIW+I8HL55ZensbExffr0yfjx47NkyZJNrv3Wt76VcePGpX///tl+++0zZsyY3HDDDV3WVCqVzJ49O4MHD07fvn3T1NSUBx988LW+DAAAAAAAYCtX9fBy0003pbm5OXPmzMm9996b/fffP5MmTcqKFSs2un6nnXbKpz/96SxevDj33XdfZs6cmZkzZ+b222/vXHPBBRfkC1/4Qq688srcfffd2X777TNp0qQ8//zzr9dlAQAAAAAAW6GaSqVSqeYA48ePz1vf+tZcdtllSZKOjo4MGzYsH//4x3PWWWe9onP89V//daZMmZLzzjsvlUolQ4YMyWmnnZbTTz89SbJ69eo0NDTkK1/5SqZNm/ay52tvb099fX1Wr16dfv36df/itkCNZ91a7RG2eMvmTan2CAAAAAAA/IXN6QZVfeJl3bp1ueeee9LU1NS5r7a2Nk1NTVm8ePHLHl+pVNLS0pIHHngg73jHO5IkjzzySFpbW7ucs76+PuPHj9/kOdeuXZv29vYuGwAAAAAAwOaqanhZuXJl1q9fn4aGhi77Gxoa0trausnjVq9enR122CG9e/fOlClTcumll+bd7353knQetznnnDt3burr6zu3YcOGvZrLAgAAAAAAtlJV/46X7thxxx2zdOnS/Od//mf+6Z/+Kc3NzVm0aFG3zzdr1qysXr26c3v00UfLDQsAAAAAAGw1tqnmmw8cODC9evVKW1tbl/1tbW0ZNGjQJo+rra3NyJEj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AAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAAChFeAAAAAAAACtmm2gMAr4/Gs26t9ghbtGXzplR7BAAAAADgDcATLwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIUILwAAAAAAAIVsU+0BANi0xrNurfYIW7Rl86ZUewQAAAAAtjCeeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAAChEeAEAAAAAACik6uHl8ssvT2NjY/r06ZPx48dnyZIlm1z761//Ou973/vS2NiYmpqaLFiwYIM155xzTmpqarpse++992t4BQAAAAAAAH9S1fBy0003pbm5OXPmzMm9996b/fffP5MmTcqKFSs2uv65557LiBEjMm/evAwaNGiT533zm9+cJ598snO76667XqtLAAAAAAAA6FTV8HLxxRfn+OOPz8yZM7PvvvvmyiuvzHbbbZdrrrlmo+vf+ta35sILL8y0adNSV1e3yfNus802GTRoUOc2cODA1+oSAAAAAAAAOlUtvKxbty733HNPmpqa/jxMbW2ampqyePHiV3XuBx98MEOGDMmIESPyoQ99KMuXL3/J9WvXrk17e3uXDQAAAAAAYHNVLbysXLky69evT0NDQ5f9DQ0NaW1t7fZ5x48fn6985StZuHBhrrjiijzyyCM56KCD8swzz2zymLlz56a+vr5zGzZsWLffHwAAAAAA2HpV9aPGXguHHnpojjrqqIwePTqTJk3KbbfdllWrVuVf//VfN3nMrFmzsnr16s7t0UcffR0nBgAAAAAAthTbVOuNBw4cmF69eqWtra3L/ra2tgwaNKjY+/Tv3z9vetOb8tBDD21yTV1d3Ut+ZwwAAAAAAMArUbUnXnr37p2xY8empaWlc19HR0daWloyYcKEYu/z7LPP5uGHH87gwYOLnRMAAAAAAGBjqvbES5I0NzdnxowZGTduXA444IAsWLAga9asycyZM5Mk06dPz9Ch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9evXTz/++KPS09M1b948HTlyxOiIAAAAAO5hnHgBAAAA4FLmzp0rk8mkf/3rX5owYYJ69OihPn36aOHChfrss88kSV9//bV+8YtfqHXr1rJarYqKitKZM2du+u8cPny4FixYUOva448/rqeeesr+OjAwUG+88Yaio6PVunVrdenSRWlpaTp79qz99woJCdEXX3xh/zVJSUny9fVVenq6goOD1bp1a40cOVKFhYX2e/bu3auwsDB5eXnJ19dX4eHhOnnyZMP8nwUAAACgyVF4AQAAAOAyiouLtXPnTs2bN09eXl7Xve/r66vq6mr94he/UHFxsT755BPt2rVLx48f1+TJk+/693/nnXcUHh6ugwcPavTo0Zo+fbqio6M1bdo0ffnll7r//vsVHR0tm81m/zXl5eVasWKFPvjgA/3973/X119/rRdeeEGSVFVVpccff1zDhg1TTk6O9u3bp9mzZ8tkMt11VgAAAADGoNUYAAAAAJfx73//WzabTb169brpPXv27NGhQ4d04sQJde7cWZK0ceNG9enTR59//rlCQ0Pv+PePjIzUs88+K0launSp3nvvPYWGhmrSpEmSpMWLF2vw4ME6c+aM7rvvPknSjz/+qHXr1un++++XJP3617/W66+/LkkqLS3V999/rzFjxtjfDw4OvuN8AAAAAIzHiRcAAAAALuPakyQ3k5+fr86dO9uLLpLUu3dv+fr6Kj8//65+/5CQEPv/7tChgySpX79+11377rvv7NdatWplL6pIUkBAgP19Pz8/PfXUU4qIiNDYsWP1hz/8oVYbMgAAAACuh8ILAAAAAJfRvXt3mUwmHTlypEH/vWaz+bqizo8//njdfc2bN7f/75p2YDe6Vl1dfcNfU3PPtb/X+++/r3379umRRx7Rhx9+qB49ethn1QAAAABwPRReAAAAALgMPz8/RUREaM2aNbp06dJ175eUlCg4OFinTp3SqVOn7Nfz8vJUUlKi3r173/Df265du1onTa5cuaLDhw83/H/ATfTv318vvvii/s//+T/q27evNm/e3GS/NwAAAICGReEFAAAAgEtZs2aNrly5orCwMG3ZskUFBQXKz8/Xu+++q8GDB2vEiBHq16+fnnjiCX355Zf617/+pejoaA0bNkwPPfTQDf+dP/vZz/Txxx/r448/1pEjR/SrX/1KJSUljf7fcuLECb344ovat2+fTp48qYyMDBUUFDDnBQAAAHBhzYwOAAAAAAC3IygoSF9++aXi4uL0m9/8RoWFhWrXrp0GDhyo9957TyaTSX/96181f/58DR06VGazWSNHjtT//M//3PTfOXPmTGVnZys6OlrNmjXT888/r//6r/9q9P+WVq1a6ciRI0pOTtb58+cVEBCgefPm6dlnn2303xsAAABA4zDZHJlOCQAAAAAAAAAAgFui1RgAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA2EwgsAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA2EwgsAAAAAAAAAAEADofACAAAAAAAAAADQQCi8AAAAAAAAAAAANBAKLwAAAAAAAAAAAA3k/wKllhLl/ju9lgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "names, importances = pipe2.columns.importances()\n", + "\n", + "plt.subplots(figsize=(20, 10))\n", + "\n", + "plt.bar(names, importances)\n", + "\n", + "plt.title(\"Columns importances\")\n", + "plt.xlabel(\"Columns\")\n", + "plt.ylabel(\"Importances\")\n", + "plt.xticks(rotation=\"vertical\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.7 Features\n", + "\n", + "The most important features look as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "```sql\n", + "DROP TABLE IF EXISTS \"FEATURE_1_155\";\n", + "\n", + "CREATE TABLE \"FEATURE_1_155\" AS\n", + "SELECT MEDIAN( COALESCE( f_1_1_76.\"feature_1_1_76\", 0.0 ) ) AS \"feature_1_155\",\n", + " t1.rowid AS rownum\n", + "FROM \"USERS__STAGING_TABLE_1\" t1\n", + "INNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\n", + "ON t1.\"userid\" = t2.\"userid\"\n", + "LEFT JOIN \"FEATURE_1_1_76\" f_1_1_76\n", + "ON t2.rowid = f_1_1_76.rownum\n", + "GROUP BY t1.rowid;\n", + "```" + ], + "text/plain": [ + "'DROP TABLE IF EXISTS \"FEATURE_1_155\";\\n\\nCREATE TABLE \"FEATURE_1_155\" AS\\nSELECT MEDIAN( COALESCE( f_1_1_76.\"feature_1_1_76\", 0.0 ) ) AS \"feature_1_155\",\\n t1.rowid AS rownum\\nFROM \"USERS__STAGING_TABLE_1\" t1\\nINNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\\nON t1.\"userid\" = t2.\"userid\"\\nLEFT JOIN \"FEATURE_1_1_76\" f_1_1_76\\nON t2.rowid = f_1_1_76.rownum\\nGROUP BY t1.rowid;'" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe1.features.to_sql()[pipe1.features.sort(by=\"importances\")[0].name]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "```sql\n", + "DROP TABLE IF EXISTS \"FEATURE_1_1\";\n", + "\n", + "CREATE TABLE \"FEATURE_1_1\" AS\n", + "SELECT AVG( \n", + " CASE\n", + " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" > 3.000000 ) THEN -14.47282772262984\n", + " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" <= 3.000000 OR t2.\"t3__year\" IS NULL ) THEN 18.80608436507123\n", + " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" > 0.250270 ) THEN 17.15219491452244\n", + " WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" <= 0.250270 OR t2.\"t3__year__mapping_1_target_1_avg\" IS NULL ) THEN 7.625903043390911\n", + " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" > 2.309180 ) THEN -9.39027739930436\n", + " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" <= 2.309180 OR p_1_1.\"feature_1_1_58\" IS NULL ) THEN -3.045979108396568\n", + " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" > 0.009437 ) THEN 0.007265281402375446\n", + " WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" <= 0.009437 OR p_1_1.\"feature_1_1_73\" IS NULL ) THEN -3.672817201353017\n", + " ELSE NULL\n", + " END\n", + ") AS \"feature_1_1\",\n", + " t1.rowid AS rownum\n", + "FROM \"USERS__STAGING_TABLE_1\" t1\n", + "INNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\n", + "ON t1.\"userid\" = t2.\"userid\"\n", + "LEFT JOIN \"FEATURES_1_1_PROPOSITIONALIZATION\" p_1_1\n", + "ON t2.rowid = p_1_1.\"rownum\"\n", + "GROUP BY t1.rowid;\n", + "```" + ], + "text/plain": [ + "'DROP TABLE IF EXISTS \"FEATURE_1_1\";\\n\\nCREATE TABLE \"FEATURE_1_1\" AS\\nSELECT AVG( \\n CASE\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" > 3.000000 ) THEN -14.47282772262984\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" > 0.007531 ) AND ( t2.\"t3__year\" <= 3.000000 OR t2.\"t3__year\" IS NULL ) THEN 18.80608436507123\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" > 0.250270 ) THEN 17.15219491452244\\n WHEN ( p_1_1.\"feature_1_1_76\" > 0.241788 ) AND ( p_1_1.\"feature_1_1_91\" <= 0.007531 OR p_1_1.\"feature_1_1_91\" IS NULL ) AND ( t2.\"t3__year__mapping_1_target_1_avg\" <= 0.250270 OR t2.\"t3__year__mapping_1_target_1_avg\" IS NULL ) THEN 7.625903043390911\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" > 2.309180 ) THEN -9.39027739930436\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" > 0.251831 ) AND ( p_1_1.\"feature_1_1_58\" <= 2.309180 OR p_1_1.\"feature_1_1_58\" IS NULL ) THEN -3.045979108396568\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" > 0.009437 ) THEN 0.007265281402375446\\n WHEN ( p_1_1.\"feature_1_1_76\" <= 0.241788 OR p_1_1.\"feature_1_1_76\" IS NULL ) AND ( p_1_1.\"feature_1_1_40\" <= 0.251831 OR p_1_1.\"feature_1_1_40\" IS NULL ) AND ( p_1_1.\"feature_1_1_73\" <= 0.009437 OR p_1_1.\"feature_1_1_73\" IS NULL ) THEN -3.672817201353017\\n ELSE NULL\\n END\\n) AS \"feature_1_1\",\\n t1.rowid AS rownum\\nFROM \"USERS__STAGING_TABLE_1\" t1\\nINNER JOIN \"U2BASE__STAGING_TABLE_4\" t2\\nON t1.\"userid\" = t2.\"userid\"\\nLEFT JOIN \"FEATURES_1_1_PROPOSITIONALIZATION\" p_1_1\\nON t2.rowid = p_1_1.\"rownum\"\\nGROUP BY t1.rowid;'" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipe2.features.to_sql()[pipe2.features.sort(by=\"importances\")[0].name]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.8 Productionization\n", + "\n", + "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` and `spark` modules." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Creates a folder named movie_lens_pipeline containing\n", + "# the SQL code.\n", + "pipe2.features.to_sql().save(\"movie_lens_pipeline\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "pipe2.features.to_sql(dialect=getml.pipeline.dialect.spark_sql).save(\"movie_lens_spark\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.9 Benchmarks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "State-of-the-art approaches on this dataset perform as follows:\n", + "\n", + "\n", + "| Approach | Study | Accuracy | AUC |\n", + "| :------------------------------ | :------------------------- | -----------: | ------: |\n", + "| Probabalistic Relational Model | Ghanem (2009) | -- | 69.2% |\n", + "| Multi-Relational Bayesian Network | Schulte and Khosravi (2012) | 69% | -- |\n", + "| Multi-Relational Bayesian Network | Schulte et al (2013) | 66% | -- |\n", + "\n", + "\n", + "By contrast, getML's algorithms, as used in this notebook, perform as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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", + "
ApproachAccuracyAUC
0FastProp77.5%78.6%
1Relboost80.5%83.8%
\n", + "
" + ], + "text/plain": [ + " Approach Accuracy AUC\n", + "0 FastProp 77.5% 78.6%\n", + "1 Relboost 80.5% 83.8%" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores = [fastprop_score, relboost_score]\n", + "pd.DataFrame(\n", + " data={\n", + " \"Approach\": [\"FastProp\", \"Relboost\"],\n", + " \"Accuracy\": [f\"{score.accuracy:.1%}\" for score in scores],\n", + " \"AUC\": [f\"{score.auc:,.1%}\" for score in scores],\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "getml.engine.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Conclusion\n", + "\n", + "In this notebook we have demonstrated how getML can be applied to the MovieLens dataset. We have demonstrated the our approach outperforms state-of-the-art relational learning algorithms." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "Motl, Jan, and Oliver Schulte. \"The CTU prague relational learning repository.\" arXiv preprint arXiv:1511.03086 (2015).\n", + "\n", + "Ghanem, Amal S. \"Probabilistic models for mining imbalanced relational data.\" Doctoral dissertation, Curtin University (2009).\n", + "\n", + "Schulte, Oliver, and Hassan Khosravi. \"Learning graphical models for relational data via lattice search.\" Machine Learning 88.3 (2012): 331-368.\n", + "\n", + "Schulte, Oliver, et al. \"A hierarchy of independence assumptions for multi-relational Bayes net classifiers.\" 2013 IEEE Symposium on Computational Intelligence and Data Mining (CIDM). IEEE, 2013.\n" + ] + } + ], + "metadata": { + "jupytext": { + "encoding": "# -*- coding: utf-8 -*-", + "formats": "ipynb,py:percent,md" + }, + "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.11.4" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": false, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 9fbfb9113cff526352bb5531e84b998c5fd89214 Mon Sep 17 00:00:00 2001 From: Manuel Bellersen Date: Tue, 26 Nov 2024 13:51:46 +0100 Subject: [PATCH 6/8] update getML to version 1.5.0 (#34) --- kaggle_notebooks/cora_getml_vs_gnn.ipynb | 2 +- kaggle_notebooks/epilepsy_recognition.ipynb | 4 ++-- kaggle_notebooks/getml-and-gnns-a-natural-symbiosis.ipynb | 2 +- requirements.txt | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kaggle_notebooks/cora_getml_vs_gnn.ipynb b/kaggle_notebooks/cora_getml_vs_gnn.ipynb index 6cc23d0..cf19be5 100644 --- a/kaggle_notebooks/cora_getml_vs_gnn.ipynb +++ b/kaggle_notebooks/cora_getml_vs_gnn.ipynb @@ -81,7 +81,7 @@ ], "source": [ "# You might need to restart the kernel after the installs\n", - "%pip install -q \"getml==1.4.0\" \"torch-geometric~=2.5\" \"pandas~=2.2\" \"matplotlib~=3.9\" \"seaborn~=0.13\" \"numpy~=1.26\" \"torch~=2.4\"\n", + "%pip install -q \"getml==1.5.0\" \"torch-geometric~=2.5\" \"pandas~=2.2\" \"matplotlib~=3.9\" \"seaborn~=0.13\" \"numpy~=1.26\" \"torch~=2.4\"\n", "\n", "# Download and extract getML software\n", "!wget -q https://static.getml.com/download/1.4.0/getml-1.4.0-x64-linux.tar.gz\n", diff --git a/kaggle_notebooks/epilepsy_recognition.ipynb b/kaggle_notebooks/epilepsy_recognition.ipynb index 16f26c4..262f62b 100644 --- a/kaggle_notebooks/epilepsy_recognition.ipynb +++ b/kaggle_notebooks/epilepsy_recognition.ipynb @@ -199,7 +199,7 @@ } ], "source": [ - "%pip install -q \"getml==1.4.0\" \"numpy<2.0.0\" \"matplotlib~=3.9\" \"seaborn~=0.13\"" + "%pip install -q \"getml==1.5.0\" \"numpy<2.0.0\" \"matplotlib~=3.9\" \"seaborn~=0.13\"" ] }, { @@ -4559,4 +4559,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/kaggle_notebooks/getml-and-gnns-a-natural-symbiosis.ipynb b/kaggle_notebooks/getml-and-gnns-a-natural-symbiosis.ipynb index b4a18bb..378f85e 100644 --- a/kaggle_notebooks/getml-and-gnns-a-natural-symbiosis.ipynb +++ b/kaggle_notebooks/getml-and-gnns-a-natural-symbiosis.ipynb @@ -110,7 +110,7 @@ ], "source": [ "# You might need to restart the kernel after the installs\n", - "%pip install -q \"getml==1.4.0\" \"torch-geometric~=2.5\" \"pandas~=2.2\" \"matplotlib~=3.9\" \"seaborn~=0.13\" \"numpy~=1.26\" \"torch~=2.4\"\n", + "%pip install -q \"getml==1.5.0\" \"torch-geometric~=2.5\" \"pandas~=2.2\" \"matplotlib~=3.9\" \"seaborn~=0.13\" \"numpy~=1.26\" \"torch~=2.4\"\n", "\n", "# Download and extract getML software\n", "!wget -q https://static.getml.com/download/1.4.0/getml-1.4.0-x64-linux.tar.gz\n", diff --git a/requirements.txt b/requirements.txt index 667affe..2a961aa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ jupyterlab==4.1.1 -getml==1.4.0 +getml==1.5.0 featuretools==1.31.0 tsfresh==0.20.3 pyspark==3.5.0 @@ -7,4 +7,4 @@ seaborn==0.13.2 ipywidgets==8.1.2 plotly==5.18.0 prophet==1.1.5 -matplotlib==3.8.2 \ No newline at end of file +matplotlib==3.8.2 From 2ecb8c74fb8d6ca4ce733bcdba638fc06e7a5f79 Mon Sep 17 00:00:00 2001 From: Jan Meyer <20856376+jan-meyer-1986@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:39:06 +0100 Subject: [PATCH 7/8] minor adjustments --- cora_sota.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cora_sota.ipynb b/cora_sota.ipynb index 9e17780..9ecdee8 100644 --- a/cora_sota.ipynb +++ b/cora_sota.ipynb @@ -8,7 +8,7 @@ "\n", "Graph Neural Networks (GNNs) are renowned for their outstanding performance on graph-structured data, excelling in tasks like node classification and link prediction. However, deploying GNNs is often complex. Tasks such as graph preprocessing, optimizing architectures, tuning hyperparameters, and ensuring convergence are non-trivial challenges when working with neural network based approaches, requiring considerable time investment.\n", "\n", - "**getML** offers a faster and more user-friendly alternative. Leveraging **getML FastProp**, the fastest open-source tool for propositionalization-based automation of feature engineering on relational data and time series, FastProp transforms relational data into a single feature table suitable for standard machine learning models by efficiently computing a wide range of statistical and temporal aggregates. When combined with models like **XGBoost**, getML delivers a straightforward yet highly performant approach to predictive modeling. This method eliminates the need for complex GNN-based approaches while ensuring coding efficiency, computational speed, and high model accuracy.\n", + "**getML** offers a faster and more user-friendly alternative. Leveraging **getML**'s **FastProp**, the fastest open-source tool for propositionalization-based automation of feature engineering on relational data and time series, FastProp transforms relational data into a single feature table suitable for standard machine learning models by efficiently computing a wide range of statistical and temporal aggregates. When combined with models like **XGBoost**, getML delivers a straightforward yet highly performant approach to predictive modeling. This method eliminates the need for complex GNN-based approaches while ensuring coding efficiency, computational speed, and high model accuracy.\n", "\n", "This notebook demonstrates how **getML** surpasses the previous record on the CORA dataset—set by the GNN-based approach of [Izadi et al. (2020)](https://paperswithcode.com/sota/node-classification-on-cora)—with minimal code and configuration.\n", "\n", @@ -196,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ " !pip install -q git+https://github.com/pyg-team/pytorch_geometric.git\n", " from utils.zuordnung import run_zuordnung\n", "\n", - " # may take 90 minutes or longer to run|\n", + " # may take 90 minutes or longer to run\n", " run_zuordnung(content)" ] }, From 234bfdf9dcbc1b19ee78409f199e7ec4c4545437 Mon Sep 17 00:00:00 2001 From: Alexander Uhlig <2765645+alxn4@users.noreply.github.com> Date: Wed, 4 Dec 2024 09:37:05 +0000 Subject: [PATCH 8/8] reverting some changes --- cora_sota.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cora_sota.ipynb b/cora_sota.ipynb index 9ecdee8..0184f1b 100644 --- a/cora_sota.ipynb +++ b/cora_sota.ipynb @@ -8,7 +8,7 @@ "\n", "Graph Neural Networks (GNNs) are renowned for their outstanding performance on graph-structured data, excelling in tasks like node classification and link prediction. However, deploying GNNs is often complex. Tasks such as graph preprocessing, optimizing architectures, tuning hyperparameters, and ensuring convergence are non-trivial challenges when working with neural network based approaches, requiring considerable time investment.\n", "\n", - "**getML** offers a faster and more user-friendly alternative. Leveraging **getML**'s **FastProp**, the fastest open-source tool for propositionalization-based automation of feature engineering on relational data and time series, FastProp transforms relational data into a single feature table suitable for standard machine learning models by efficiently computing a wide range of statistical and temporal aggregates. When combined with models like **XGBoost**, getML delivers a straightforward yet highly performant approach to predictive modeling. This method eliminates the need for complex GNN-based approaches while ensuring coding efficiency, computational speed, and high model accuracy.\n", + "**getML** offers a faster and more user-friendly alternative. Leveraging **getML FastProp**, the fastest open-source tool for propositionalization-based automation of feature engineering on relational data and time series, FastProp transforms relational data into a single feature table suitable for standard machine learning models by efficiently computing a wide range of statistical and temporal aggregates. When combined with models like **XGBoost**, getML delivers a straightforward yet highly performant approach to predictive modeling. This method eliminates the need for complex GNN-based approaches while ensuring coding efficiency, computational speed, and high model accuracy.\n", "\n", "This notebook demonstrates how **getML** surpasses the previous record on the CORA dataset—set by the GNN-based approach of [Izadi et al. (2020)](https://paperswithcode.com/sota/node-classification-on-cora)—with minimal code and configuration.\n", "\n",