Files
pid/notebooks/old_notebooks/test_multi.ipynb

1555 lines
192 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "7c5d059b-ed8a-4e2e-9420-25890f648895",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_46791/2472232159.py:1: DeprecationWarning: \n",
"Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
"(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
"but was not found to be installed on your system.\n",
"If this would cause problems for you,\n",
"please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
" \n",
" import pandas as pd\n",
"/tmp/ipykernel_46791/2472232159.py:7: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n",
" df = pd.read_sql('select * from data_safeidx', con=engine)\n"
]
}
],
"source": [
"import pandas as pd\n",
"import psycopg2 as pg\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
"engine = pg.connect(\"dbname='safeidx' user='fbk_mpba' host='172.104.247.67' port='5432' password='fbk2024$'\")\n",
"df = pd.read_sql('select * from data_safeidx', con=engine)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "03aa2a04-93fa-469e-a678-685cacdebd6c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>difficulty</th>\n",
" <th>cause</th>\n",
" <th>town</th>\n",
" <th>province</th>\n",
" <th>gender</th>\n",
" <th>equipment</th>\n",
" <th>helmet</th>\n",
" <th>destination</th>\n",
" <th>diagnosis</th>\n",
" <th>india</th>\n",
" <th>age</th>\n",
" <th>country</th>\n",
" <th>injury_side</th>\n",
" <th>injury_general_location</th>\n",
" <th>evacuation_vehicles</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>novice</td>\n",
" <td>fall_alone</td>\n",
" <td>SIKLOS</td>\n",
" <td></td>\n",
" <td>F</td>\n",
" <td>ski</td>\n",
" <td>None</td>\n",
" <td>hospital_emergency_room</td>\n",
" <td>distortion</td>\n",
" <td>None</td>\n",
" <td>32.0</td>\n",
" <td>Ungheria</td>\n",
" <td>L</td>\n",
" <td>lower_limbs</td>\n",
" <td>[akja]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>advanced</td>\n",
" <td>fall_alone</td>\n",
" <td>MALMO</td>\n",
" <td></td>\n",
" <td>M</td>\n",
" <td>ski</td>\n",
" <td>None</td>\n",
" <td>hospital_emergency_room</td>\n",
" <td>bruise</td>\n",
" <td>None</td>\n",
" <td>32.0</td>\n",
" <td>Svezia</td>\n",
" <td>R</td>\n",
" <td>skull_or_face</td>\n",
" <td>[akja]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>advanced</td>\n",
" <td>fall_alone</td>\n",
" <td>CALDARO</td>\n",
" <td>BZ</td>\n",
" <td>F</td>\n",
" <td>ski</td>\n",
" <td>None</td>\n",
" <td>domicile</td>\n",
" <td>other</td>\n",
" <td>None</td>\n",
" <td>12.0</td>\n",
" <td>Italia</td>\n",
" <td>R</td>\n",
" <td>None</td>\n",
" <td>[snowmobile]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>advanced</td>\n",
" <td>collision_person</td>\n",
" <td>LINZ</td>\n",
" <td></td>\n",
" <td>M</td>\n",
" <td>ski</td>\n",
" <td>None</td>\n",
" <td>hospital_emergency_room</td>\n",
" <td>bruise</td>\n",
" <td>None</td>\n",
" <td>58.0</td>\n",
" <td>Austria</td>\n",
" <td>R</td>\n",
" <td>lower_limbs</td>\n",
" <td>[snowmobile]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>advanced</td>\n",
" <td>collision_person</td>\n",
" <td>RUSAVA</td>\n",
" <td></td>\n",
" <td>M</td>\n",
" <td>ski</td>\n",
" <td>None</td>\n",
" <td>other</td>\n",
" <td>bruise</td>\n",
" <td>None</td>\n",
" <td>25.0</td>\n",
" <td>Repubblica Ceca</td>\n",
" <td>L</td>\n",
" <td>lower_limbs</td>\n",
" <td>[other]</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" difficulty cause town province gender equipment helmet \\\n",
"0 novice fall_alone SIKLOS F ski None \n",
"1 advanced fall_alone MALMO M ski None \n",
"2 advanced fall_alone CALDARO BZ F ski None \n",
"3 advanced collision_person LINZ M ski None \n",
"4 advanced collision_person RUSAVA M ski None \n",
"\n",
" destination diagnosis india age country \\\n",
"0 hospital_emergency_room distortion None 32.0 Ungheria \n",
"1 hospital_emergency_room bruise None 32.0 Svezia \n",
"2 domicile other None 12.0 Italia \n",
"3 hospital_emergency_room bruise None 58.0 Austria \n",
"4 other bruise None 25.0 Repubblica Ceca \n",
"\n",
" injury_side injury_general_location evacuation_vehicles \n",
"0 L lower_limbs [akja] \n",
"1 R skull_or_face [akja] \n",
"2 R None [snowmobile] \n",
"3 R lower_limbs [snowmobile] \n",
"4 L lower_limbs [other] "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "babc2e8b-1030-4e8a-aa41-6d2a788959a5",
"metadata": {},
"outputs": [],
"source": [
"ev = set({})\n",
"for i,row in df.iterrows():\n",
" ev = ev.union(set(row.evacuation_vehicles))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c8d6cc1c-f4f5-44ec-8652-b135963452ab",
"metadata": {},
"outputs": [],
"source": [
"for c in ev:\n",
" df[c] = False\n",
"for i,row in df.iterrows():\n",
" for c in row.evacuation_vehicles:\n",
" df.loc[i,c] = True"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "758c3317-1b02-4aed-b94d-7b6998d23797",
"metadata": {},
"outputs": [],
"source": [
"df.drop(columns=['town','province','evacuation_vehicles'],inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "adadc0dc-9d6e-4277-8956-d1d4b2492e7e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 36,
"id": "33617e77-7c2b-41a3-96c0-8930aa5ac869",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([1.3808e+04, 0.0000e+00, 8.8100e+02, 0.0000e+00, 0.0000e+00,\n",
" 3.3690e+03, 0.0000e+00, 1.5200e+02, 0.0000e+00, 1.1000e+01]),\n",
" array([0. , 0.4, 0.8, 1.2, 1.6, 2. , 2.4, 2.8, 3.2, 3.6, 4. ]),\n",
" <BarContainer object of 10 artists>)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGdCAYAAADwjmIIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAApzUlEQVR4nO3df3AUdZ7/8VdCSALITAgcGWYNkDo5fiwcrKAQRVaWHGGJWrnF1UAWKDcLupcoCPJrhYiuLhIOEZQlx653oWrhROqEw6CBGFbiQggQzAERIlvHb2oSvZAZiUsIpL9/bKW/zIKQyIRhPjwfVV3l9Ofdn373NKm87PT0hFmWZQkAAMAw4cFuAAAAoDUQcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARooIdgPB1NjYqLNnz6pjx44KCwsLdjsAAKAZLMvS119/LbfbrfDwb79ec0eHnLNnzyo+Pj7YbQAAgO/g1KlTuvvuu791/I4OOR07dpT01zfJ4XAEuRsAANAcPp9P8fHx9u/xb3NHh5ymP1E5HA5CDgAAIeZGt5pw4zEAADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACO1OOQUFxfr0UcfldvtVlhYmDZt2vSttc8884zCwsL05ptv+q2vqalRenq6HA6HYmJilJGRofPnz/vVHDhwQA899JCio6MVHx+vnJycq+bfsGGD+vTpo+joaA0YMEAffvhhSw8HAAAYqsUhp66uTgMHDtTKlSuvW7dx40bt3r1bbrf7qrH09HRVVFSosLBQ+fn5Ki4u1tSpU+1xn8+n0aNHq0ePHiorK9OSJUu0cOFCrV692q7ZtWuXxo8fr4yMDH322WdKTU1VamqqDh061NJDAgAAJrJugiRr48aNV60/ffq09b3vfc86dOiQ1aNHD2vZsmX22Oeff25Jsvbu3Wuv++ijj6ywsDDrzJkzlmVZ1m9/+1urU6dOVn19vV0zZ84cq3fv3vbrJ554wkpJSfHb79ChQ62nn3662f17vV5LkuX1epu9DQAACK7m/v4O+D05jY2NmjhxombNmqXvf//7V42XlJQoJiZGQ4YMsdclJSUpPDxcpaWlds2IESMUGRlp1yQnJ6uyslLnzp2za5KSkvzmTk5OVklJybf2Vl9fL5/P57cAAAAzBTzkLF68WBEREXruueeuOe7xeNS1a1e/dREREYqNjZXH47Fr4uLi/GqaXt+opmn8WhYtWiSn02kvfG8VAADmCmjIKSsr0/Lly5WXl3dbfqv3vHnz5PV67eXUqVPBbgkAALSSgIacTz/9VNXV1erevbsiIiIUERGhEydOaObMmerZs6ckyeVyqbq62m+7S5cuqaamRi6Xy66pqqryq2l6faOapvFriYqKsr+niu+rAgDAbAENORMnTtSBAwdUXl5uL263W7NmzdLWrVslSYmJiaqtrVVZWZm93fbt29XY2KihQ4faNcXFxWpoaLBrCgsL1bt3b3Xq1MmuKSoq8tt/YWGhEhMTA3lIAAAgRLX4W8jPnz+vP//5z/brY8eOqby8XLGxserevbs6d+7sV9+2bVu5XC717t1bktS3b1+NGTNGU6ZMUW5urhoaGpSVlaW0tDT74+YTJkzQyy+/rIyMDM2ZM0eHDh3S8uXLtWzZMnveadOm6Yc//KGWLl2qlJQUvfvuu9q3b5/fx8wBAMCdq8UhZ9++fRo5cqT9esaMGZKkyZMnKy8vr1lzrF27VllZWRo1apTCw8M1btw4rVixwh53Op3atm2bMjMzNXjwYHXp0kXZ2dl+z9J54IEHtG7dOs2fP1+/+tWv1KtXL23atEn9+/dv6SG1ip5ztwS7hRY7/npKsFsAACBgwizLsoLdRLD4fD45nU55vd6A359DyAEAoHU09/c3310FAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGKnFIae4uFiPPvqo3G63wsLCtGnTJnusoaFBc+bM0YABA9ShQwe53W5NmjRJZ8+e9ZujpqZG6enpcjgciomJUUZGhs6fP+9Xc+DAAT300EOKjo5WfHy8cnJyruplw4YN6tOnj6KjozVgwAB9+OGHLT0cAABgqBaHnLq6Og0cOFArV668auybb77R/v37tWDBAu3fv1/vv/++Kisr9dhjj/nVpaenq6KiQoWFhcrPz1dxcbGmTp1qj/t8Po0ePVo9evRQWVmZlixZooULF2r16tV2za5duzR+/HhlZGTos88+U2pqqlJTU3Xo0KGWHhIAADBQmGVZ1nfeOCxMGzduVGpq6rfW7N27V/fff79OnDih7t276/Dhw+rXr5/27t2rIUOGSJIKCgo0duxYnT59Wm63W6tWrdKLL74oj8ejyMhISdLcuXO1adMmHTlyRJL05JNPqq6uTvn5+fa+hg0bpkGDBik3N7dZ/ft8PjmdTnm9Xjkcju/4Llxbz7lbAjrfrXD89ZRgtwAAwA019/d3q9+T4/V6FRYWppiYGElSSUmJYmJi7IAjSUlJSQoPD1dpaaldM2LECDvgSFJycrIqKyt17tw5uyYpKclvX8nJySopKfnWXurr6+Xz+fwWAABgplYNORcuXNCcOXM0fvx4O2l5PB517drVry4iIkKxsbHyeDx2TVxcnF9N0+sb1TSNX8uiRYvkdDrtJT4+/uYOEAAA3LZaLeQ0NDToiSeekGVZWrVqVWvtpkXmzZsnr9drL6dOnQp2SwAAoJVEtMakTQHnxIkT2r59u9/fy1wul6qrq/3qL126pJqaGrlcLrumqqrKr6bp9Y1qmsavJSoqSlFRUd/9wAAAQMgI+JWcpoBz9OhRffzxx+rcubPfeGJiompra1VWVmav2759uxobGzV06FC7pri4WA0NDXZNYWGhevfurU6dOtk1RUVFfnMXFhYqMTEx0IcEAABCUItDzvnz51VeXq7y8nJJ0rFjx1ReXq6TJ0+qoaFBjz/+uPbt26e1a9fq8uXL8ng88ng8unjxoiSpb9++GjNmjKZMmaI9e/Zo586dysrKUlpamtxutyRpwoQJioyMVEZGhioqKrR+/XotX75cM2bMsPuYNm2aCgoKtHTpUh05ckQLFy7Uvn37lJWVFYC3BQAAhLoWf4T8k08+0ciRI69aP3nyZC1cuFAJCQnX3O6Pf/yjHn74YUl/fRhgVlaWPvjgA4WHh2vcuHFasWKF7rrrLrv+wIEDyszM1N69e9WlSxc9++yzmjNnjt+cGzZs0Pz583X8+HH16tVLOTk5Gjt2bLOPhY+Q++Mj5ACAUNDc39839ZycUEfI8UfIAQCEgtvmOTkAAADBQMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGKnFIae4uFiPPvqo3G63wsLCtGnTJr9xy7KUnZ2tbt26qV27dkpKStLRo0f9ampqapSeni6Hw6GYmBhlZGTo/PnzfjUHDhzQQw89pOjoaMXHxysnJ+eqXjZs2KA+ffooOjpaAwYM0IcfftjSwwEAAIZqccipq6vTwIEDtXLlymuO5+TkaMWKFcrNzVVpaak6dOig5ORkXbhwwa5JT09XRUWFCgsLlZ+fr+LiYk2dOtUe9/l8Gj16tHr06KGysjItWbJECxcu1OrVq+2aXbt2afz48crIyNBnn32m1NRUpaam6tChQy09JAAAYKAwy7Ks77xxWJg2btyo1NRUSX+9iuN2uzVz5ky98MILkiSv16u4uDjl5eUpLS1Nhw8fVr9+/bR3714NGTJEklRQUKCxY8fq9OnTcrvdWrVqlV588UV5PB5FRkZKkubOnatNmzbpyJEjkqQnn3xSdXV1ys/Pt/sZNmyYBg0apNzc3Gb17/P55HQ65fV65XA4vuvbcE09524J6Hy3wvHXU4LdAgAAN9Tc398BvSfn2LFj8ng8SkpKstc5nU4NHTpUJSUlkqSSkhLFxMTYAUeSkpKSFB4ertLSUrtmxIgRdsCRpOTkZFVWVurcuXN2zZX7aapp2s+11NfXy+fz+S0AAMBMAQ05Ho9HkhQXF+e3Pi4uzh7zeDzq2rWr33hERIRiY2P9aq41x5X7+LaapvFrWbRokZxOp73Ex8e39BABAECIuKM+XTVv3jx5vV57OXXqVLBbAgAArSSgIcflckmSqqqq/NZXVVXZYy6XS9XV1X7jly5dUk1NjV/Ntea4ch/fVtM0fi1RUVFyOBx+CwAAMFNAQ05CQoJcLpeKiorsdT6fT6WlpUpMTJQkJSYmqra2VmVlZXbN9u3b1djYqKFDh9o1xcXFamhosGsKCwvVu3dvderUya65cj9NNU37AQAAd7YWh5zz58+rvLxc5eXlkv56s3F5eblOnjypsLAwTZ8+Xa+++qo2b96sgwcPatKkSXK73fYnsPr27asxY8ZoypQp2rNnj3bu3KmsrCylpaXJ7XZLkiZMmKDIyEhlZGSooqJC69ev1/LlyzVjxgy7j2nTpqmgoEBLly7VkSNHtHDhQu3bt09ZWVk3/64AAICQF9HSDfbt26eRI0far5uCx+TJk5WXl6fZs2errq5OU6dOVW1trYYPH66CggJFR0fb26xdu1ZZWVkaNWqUwsPDNW7cOK1YscIedzqd2rZtmzIzMzV48GB16dJF2dnZfs/SeeCBB7Ru3TrNnz9fv/rVr9SrVy9t2rRJ/fv3/05vBAAAMMtNPScn1PGcHH88JwcAEAqC8pwcAACA2wUhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGCkgIecy5cva8GCBUpISFC7du3093//9/r1r38ty7LsGsuylJ2drW7duqldu3ZKSkrS0aNH/eapqalRenq6HA6HYmJilJGRofPnz/vVHDhwQA899JCio6MVHx+vnJycQB8OAAAIUQEPOYsXL9aqVav09ttv6/Dhw1q8eLFycnL01ltv2TU5OTlasWKFcnNzVVpaqg4dOig5OVkXLlywa9LT01VRUaHCwkLl5+eruLhYU6dOtcd9Pp9Gjx6tHj16qKysTEuWLNHChQu1evXqQB8SAAAIQWHWlZdYAuCRRx5RXFyc3nnnHXvduHHj1K5dO/3hD3+QZVlyu92aOXOmXnjhBUmS1+tVXFyc8vLylJaWpsOHD6tfv37au3evhgwZIkkqKCjQ2LFjdfr0abndbq1atUovvviiPB6PIiMjJUlz587Vpk2bdOTIkWb16vP55HQ65fV65XA4Avk2qOfcLQGd71Y4/npKsFsAAOCGmvv7O+BXch544AEVFRXpiy++kCT9z//8j/70pz/pxz/+sSTp2LFj8ng8SkpKsrdxOp0aOnSoSkpKJEklJSWKiYmxA44kJSUlKTw8XKWlpXbNiBEj7IAjScnJyaqsrNS5c+eu2Vt9fb18Pp/fAgAAzBQR6Annzp0rn8+nPn36qE2bNrp8+bJee+01paenS5I8Ho8kKS4uzm+7uLg4e8zj8ahr167+jUZEKDY21q8mISHhqjmaxjp16nRVb4sWLdLLL78cgKMEAAC3u4BfyXnvvfe0du1arVu3Tvv379eaNWv0r//6r1qzZk2gd9Vi8+bNk9frtZdTp04FuyUAANBKAn4lZ9asWZo7d67S0tIkSQMGDNCJEye0aNEiTZ48WS6XS5JUVVWlbt262dtVVVVp0KBBkiSXy6Xq6mq/eS9duqSamhp7e5fLpaqqKr+aptdNNX8rKipKUVFRN3+QAADgthfwKznffPONwsP9p23Tpo0aGxslSQkJCXK5XCoqKrLHfT6fSktLlZiYKElKTExUbW2tysrK7Jrt27ersbFRQ4cOtWuKi4vV0NBg1xQWFqp3797X/FMVAAC4swQ85Dz66KN67bXXtGXLFh0/flwbN27UG2+8oX/+53+WJIWFhWn69Ol69dVXtXnzZh08eFCTJk2S2+1WamqqJKlv374aM2aMpkyZoj179mjnzp3KyspSWlqa3G63JGnChAmKjIxURkaGKioqtH79ei1fvlwzZswI9CEBAIAQFPA/V7311ltasGCB/uVf/kXV1dVyu916+umnlZ2dbdfMnj1bdXV1mjp1qmprazV8+HAVFBQoOjrarlm7dq2ysrI0atQohYeHa9y4cVqxYoU97nQ6tW3bNmVmZmrw4MHq0qWLsrOz/Z6lAwAA7lwBf05OKOE5Of54Tg4AIBQE7Tk5AAAAtwNCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIrRJyzpw5o5/97Gfq3Lmz2rVrpwEDBmjfvn32uGVZys7OVrdu3dSuXTslJSXp6NGjfnPU1NQoPT1dDodDMTExysjI0Pnz5/1qDhw4oIceekjR0dGKj49XTk5OaxwOAAAIQQEPOefOndODDz6otm3b6qOPPtLnn3+upUuXqlOnTnZNTk6OVqxYodzcXJWWlqpDhw5KTk7WhQsX7Jr09HRVVFSosLBQ+fn5Ki4u1tSpU+1xn8+n0aNHq0ePHiorK9OSJUu0cOFCrV69OtCHBAAAQlCYZVlWICecO3eudu7cqU8//fSa45Zlye12a+bMmXrhhRckSV6vV3FxccrLy1NaWpoOHz6sfv36ae/evRoyZIgkqaCgQGPHjtXp06fldru1atUqvfjii/J4PIqMjLT3vWnTJh05cqRZvfp8PjmdTnm9XjkcjgAc/f/Xc+6WgM53Kxx/PSXYLQAAcEPN/f0d8Cs5mzdv1pAhQ/TTn/5UXbt21Q9+8AP97ne/s8ePHTsmj8ejpKQke53T6dTQoUNVUlIiSSopKVFMTIwdcCQpKSlJ4eHhKi0ttWtGjBhhBxxJSk5OVmVlpc6dO3fN3urr6+Xz+fwWAABgpoCHnP/93//VqlWr1KtXL23dulW//OUv9dxzz2nNmjWSJI/HI0mKi4vz2y4uLs4e83g86tq1q994RESEYmNj/WquNceV+/hbixYtktPptJf4+PibPFoAAHC7CnjIaWxs1L333qvf/OY3+sEPfqCpU6dqypQpys3NDfSuWmzevHnyer32curUqWC3BAAAWknAQ063bt3Ur18/v3V9+/bVyZMnJUkul0uSVFVV5VdTVVVlj7lcLlVXV/uNX7p0STU1NX4115rjyn38raioKDkcDr8FAACYKeAh58EHH1RlZaXfui+++EI9evSQJCUkJMjlcqmoqMge9/l8Ki0tVWJioiQpMTFRtbW1Kisrs2u2b9+uxsZGDR061K4pLi5WQ0ODXVNYWKjevXv7fZILAADcmQIecp5//nnt3r1bv/nNb/TnP/9Z69at0+rVq5WZmSlJCgsL0/Tp0/Xqq69q8+bNOnjwoCZNmiS3263U1FRJf73yM2bMGE2ZMkV79uzRzp07lZWVpbS0NLndbknShAkTFBkZqYyMDFVUVGj9+vVavny5ZsyYEehDAgAAISgi0BPed9992rhxo+bNm6dXXnlFCQkJevPNN5Wenm7XzJ49W3V1dZo6dapqa2s1fPhwFRQUKDo62q5Zu3atsrKyNGrUKIWHh2vcuHFasWKFPe50OrVt2zZlZmZq8ODB6tKli7Kzs/2epQMAAO5cAX9OTijhOTn+eE4OACAUBO05OQAAALcDQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASK0ecl5//XWFhYVp+vTp9roLFy4oMzNTnTt31l133aVx48apqqrKb7uTJ08qJSVF7du3V9euXTVr1ixdunTJr+aTTz7Rvffeq6ioKN1zzz3Ky8tr7cMBAAAholVDzt69e/Vv//Zv+sd//Ee/9c8//7w++OADbdiwQTt27NDZs2f1k5/8xB6/fPmyUlJSdPHiRe3atUtr1qxRXl6esrOz7Zpjx44pJSVFI0eOVHl5uaZPn65f/OIX2rp1a2seEgAACBGtFnLOnz+v9PR0/e53v1OnTp3s9V6vV++8847eeOMN/ehHP9LgwYP1H//xH9q1a5d2794tSdq2bZs+//xz/eEPf9CgQYP04x//WL/+9a+1cuVKXbx4UZKUm5urhIQELV26VH379lVWVpYef/xxLVu2rLUOCQAAhJBWCzmZmZlKSUlRUlKS3/qysjI1NDT4re/Tp4+6d++ukpISSVJJSYkGDBiguLg4uyY5OVk+n08VFRV2zd/OnZycbM9xLfX19fL5fH4LAAAwU0RrTPruu+9q//792rt371VjHo9HkZGRiomJ8VsfFxcnj8dj11wZcJrGm8auV+Pz+fSXv/xF7dq1u2rfixYt0ssvv/ydjwsAAISOgF/JOXXqlKZNm6a1a9cqOjo60NPflHnz5snr9drLqVOngt0SAABoJQEPOWVlZaqurta9996riIgIRUREaMeOHVqxYoUiIiIUFxenixcvqra21m+7qqoquVwuSZLL5brq01ZNr29U43A4rnkVR5KioqLkcDj8FgAAYKaAh5xRo0bp4MGDKi8vt5chQ4YoPT3d/u+2bduqqKjI3qayslInT55UYmKiJCkxMVEHDx5UdXW1XVNYWCiHw6F+/frZNVfO0VTTNAcAALizBfyenI4dO6p///5+6zp06KDOnTvb6zMyMjRjxgzFxsbK4XDo2WefVWJiooYNGyZJGj16tPr166eJEycqJydHHo9H8+fPV2ZmpqKioiRJzzzzjN5++23Nnj1bP//5z7V9+3a999572rJlS6APCQAAhKBWufH4RpYtW6bw8HCNGzdO9fX1Sk5O1m9/+1t7vE2bNsrPz9cvf/lLJSYmqkOHDpo8ebJeeeUVuyYhIUFbtmzR888/r+XLl+vuu+/W73//eyUnJwfjkAAAwG0mzLIsK9hNBIvP55PT6ZTX6w34/Tk954beFaXjr6cEuwUAAG6oub+/+e4qAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGCkoHytAwDcCjx5HLizcSUHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIAQ85ixYt0n333aeOHTuqa9euSk1NVWVlpV/NhQsXlJmZqc6dO+uuu+7SuHHjVFVV5Vdz8uRJpaSkqH379uratatmzZqlS5cu+dV88sknuvfeexUVFaV77rlHeXl5gT4cAAAQogIecnbs2KHMzEzt3r1bhYWFamho0OjRo1VXV2fXPP/88/rggw+0YcMG7dixQ2fPntVPfvITe/zy5ctKSUnRxYsXtWvXLq1Zs0Z5eXnKzs62a44dO6aUlBSNHDlS5eXlmj59un7xi19o69atgT4kAAAQgsIsy7Jacwdffvmlunbtqh07dmjEiBHyer36u7/7O61bt06PP/64JOnIkSPq27evSkpKNGzYMH300Ud65JFHdPbsWcXFxUmScnNzNWfOHH355ZeKjIzUnDlztGXLFh06dMjeV1pammpra1VQUNCs3nw+n5xOp7xerxwOR0CPu+fcLQGd71Y4/npKsFsAAoqfQ8BMzf393er35Hi9XklSbGysJKmsrEwNDQ1KSkqya/r06aPu3burpKREklRSUqIBAwbYAUeSkpOT5fP5VFFRYddcOUdTTdMc11JfXy+fz+e3AAAAM7VqyGlsbNT06dP14IMPqn///pIkj8ejyMhIxcTE+NXGxcXJ4/HYNVcGnKbxprHr1fh8Pv3lL3+5Zj+LFi2S0+m0l/j4+Js+RgAAcHtq1ZCTmZmpQ4cO6d13323N3TTbvHnz5PV67eXUqVPBbgkAALSSiNaaOCsrS/n5+SouLtbdd99tr3e5XLp48aJqa2v9ruZUVVXJ5XLZNXv27PGbr+nTV1fW/O0nsqqqquRwONSuXbtr9hQVFaWoqKibPjYAAHD7C/iVHMuylJWVpY0bN2r79u1KSEjwGx88eLDatm2roqIie11lZaVOnjypxMRESVJiYqIOHjyo6upqu6awsFAOh0P9+vWza66co6mmaQ4AAHBnC/iVnMzMTK1bt07//d//rY4dO9r30DidTrVr105Op1MZGRmaMWOGYmNj5XA49OyzzyoxMVHDhg2TJI0ePVr9+vXTxIkTlZOTI4/Ho/nz5yszM9O+EvPMM8/o7bff1uzZs/Xzn/9c27dv13vvvactW0Lv0xQAACDwAn4lZ9WqVfJ6vXr44YfVrVs3e1m/fr1ds2zZMj3yyCMaN26cRowYIZfLpffff98eb9OmjfLz89WmTRslJibqZz/7mSZNmqRXXnnFrklISNCWLVtUWFiogQMHaunSpfr973+v5OTkQB8SAAAIQa3+nJzbGc/J8cfzOWAafg4BM902z8kBAAAIBkIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAI0UEuwHgZvScuyXYLbTY8ddTgt0CANwRuJIDAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjBQR7AZu1sqVK7VkyRJ5PB4NHDhQb731lu6///5gtwUAd4yec7cEu4UWO/56SrBbwC0Q0ldy1q9frxkzZuill17S/v37NXDgQCUnJ6u6ujrYrQEAgCAL6ZDzxhtvaMqUKXrqqafUr18/5ebmqn379vr3f//3YLcGAACCLGT/XHXx4kWVlZVp3rx59rrw8HAlJSWppKTkmtvU19ervr7efu31eiVJPp8v4P011n8T8DlbW2u8D62N9xnXw7+PW4P3Gbda0/mzLOu6dSEbcr766itdvnxZcXFxfuvj4uJ05MiRa26zaNEivfzyy1etj4+Pb5UeQ43zzWB3cGfgfcb18O/j1uB9NsPXX38tp9P5reMhG3K+i3nz5mnGjBn268bGRtXU1Khz584KCwsL2H58Pp/i4+N16tQpORyOgM2LW4dzGPo4h6GN8xf6WvMcWpalr7/+Wm63+7p1IRtyunTpojZt2qiqqspvfVVVlVwu1zW3iYqKUlRUlN+6mJiY1mpRDoeDH84QxzkMfZzD0Mb5C32tdQ6vdwWnScjeeBwZGanBgwerqKjIXtfY2KiioiIlJiYGsTMAAHA7CNkrOZI0Y8YMTZ48WUOGDNH999+vN998U3V1dXrqqaeC3RoAAAiykA45Tz75pL788ktlZ2fL4/Fo0KBBKigouOpm5FstKipKL7300lV/GkPo4ByGPs5haOP8hb7b4RyGWTf6/BUAAEAICtl7cgAAAK6HkAMAAIxEyAEAAEYi5ATAww8/rOnTpwe7DdwEzmHo4xyGNs5f6Lstz6GFm/Z///d/ls/nsyzLsv7rv/7L+qd/+icrNjbWkmR99tlnwW0OzXLlOWxsbLQWLFhguVwuKzo62ho1apT1xRdfBLlD3EjTObx48aI1e/Zsq3///lb79u2tbt26WRMnTrTOnDkT7BZxHVf+DL700ktW7969rfbt21sxMTHWqFGjrN27dwe5Q9zIlefwSk8//bQlyVq2bNkt74krOQEQGxurjh07SpLq6uo0fPhwLV68OMhdoSWuPIc5OTlasWKFcnNzVVpaqg4dOig5OVkXLlwIcpe4nqZz+M0332j//v1asGCB9u/fr/fff1+VlZV67LHHgt0iruPKn8F/+Id/0Ntvv62DBw/qT3/6k3r27KnRo0fryy+/DHKXuJ4rz2GTjRs3avfu3Tf8+oVWc8tjlYF++MMfWtOmTfNbd+zYMa7khJCmc9jY2Gi5XC5ryZIl9lhtba0VFRVl/ed//mcQO8SNXOvnsMmePXssSdaJEydubVNotuudP6/Xa0myPv7441vbFFrkb8/h6dOnre9973vWoUOHrB49enAlBwi2Y8eOyePxKCkpyV7ndDo1dOhQlZSUBLEz3Ayv16uwsLBW/a46tI6LFy9q9erVcjqdGjhwYLDbQTM1NjZq4sSJmjVrlr7//e8HrY+QfuIxEGgej0eSrnpqdlxcnD2G0HLhwgXNmTNH48eP54seQ0h+fr7S0tL0zTffqFu3biosLFSXLl2C3RaaafHixYqIiNBzzz0X1D64kgPAWA0NDXriiSdkWZZWrVoV7HbQAiNHjlR5ebl27dqlMWPG6IknnlB1dXWw20IzlJWVafny5crLy1NYWFhQeyHkAFdwuVySpKqqKr/1VVVV9hhCQ1PAOXHihAoLC7mKE2I6dOige+65R8OGDdM777yjiIgIvfPOO8FuC83w6aefqrq6Wt27d1dERIQiIiJ04sQJzZw5Uz179rylvRBygCskJCTI5XKpqKjIXufz+VRaWqrExMQgdoaWaAo4R48e1ccff6zOnTsHuyXcpMbGRtXX1we7DTTDxIkTdeDAAZWXl9uL2+3WrFmztHXr1lvaC/fkBFhNTY1Onjyps2fPSpIqKysl/fUKAVcCbn9hYWGaPn26Xn31VfXq1UsJCQlasGCB3G63UlNTg90emqGhoUGPP/649u/fr/z8fF2+fNm+nyo2NlaRkZFB7hDXU1dXp9dee02PPfaYunXrpq+++korV67UmTNn9NOf/jTY7aEZOnfufNX/WLRt21Yul0u9e/e+pb0QcgJs8+bNeuqpp+zXaWlpkqSXXnpJCxcuDFJXaInZs2errq5OU6dOVW1trYYPH66CggJFR0cHuzU0w5kzZ7R582ZJ0qBBg/zG/vjHP+rhhx++9U2h2dq0aaMjR45ozZo1+uqrr9S5c2fdd999+vTTT4P6KR2EpjDLsqxgNwEAABBo3JMDAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJH+H5GVmBUYMSNXAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"labeled = df[~pd.isna(df.india)]\n",
"plt.hist(labeled.india)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "e8c139d9-bf61-45ec-9da1-7eaf4ff754b4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_46791/382759161.py:1: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled['age'] = labeled['age'].astype(np.float32).fillna(np.nan)\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"/tmp/ipykernel_46791/382759161.py:5: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" labeled.dropna(inplace=True)\n"
]
}
],
"source": [
"labeled['age'] = labeled['age'].astype(np.float32).fillna(np.nan)\n",
"for c in labeled.columns:\n",
" if c!='age':\n",
" labeled[c] = labeled[c].fillna('None').astype('category')\n",
"labeled.dropna(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "fabf354e-f39e-4cde-af84-c65a277d309a",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split( labeled.drop(columns=['india']),\n",
" labeled.india, test_size=0.33, random_state=0,stratify=labeled.india)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "cf6cf5d8-d43e-499e-98a5-65ecd0b8ccda",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_valid, y_train, y_valid = train_test_split(X_train,y_train, test_size=0.33, random_state=0,stratify=y_train)"
]
},
{
"cell_type": "code",
"execution_count": 177,
"id": "71d8d93f-cb4f-402f-b4ce-b67e7b964c1b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" class p\n",
"0 i0 0.238038\n",
"1 i1 0.014605\n",
"2 i2 0.059746\n",
"3 i3 1.326712\n",
"4 i4 18.043281\n"
]
}
],
"source": [
"w = pd.DataFrame(np.unique(y_train,return_counts=True)).T\n",
"w.columns = ['class','p']\n",
"w.p = np.sqrt(w.p.sum())/w.p\n",
"print(w)\n",
"weight_train = pd.merge(pd.DataFrame({'class':y_train}),w).p.values"
]
},
{
"cell_type": "code",
"execution_count": 184,
"id": "d1453965-f927-4edc-ad3b-421997d62268",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" class p\n",
"0 i0 4.634106\n",
"1 i1 1.147881\n",
"2 i2 2.321652\n",
"3 i3 10.940346\n",
"4 i4 40.346004\n"
]
}
],
"source": [
"w = pd.DataFrame(np.unique(y_train,return_counts=True)).T\n",
"w.columns = ['class','p']\n",
"w.p = np.sqrt(np.array((w.p.sum()/w.p).values).astype(float))\n",
"print(w)\n",
"weight_train = pd.merge(pd.DataFrame({'class':y_train}),w).p.values"
]
},
{
"cell_type": "code",
"execution_count": 172,
"id": "774ad570-a60b-475b-80cf-4f9b9949cc9d",
"metadata": {},
"outputs": [],
"source": [
"#weight_train = (1-y_train.values.astype(int))*5+1 ## peso classi unbalanced"
]
},
{
"cell_type": "code",
"execution_count": 178,
"id": "1fcc5234-abad-459a-9420-810833657796",
"metadata": {},
"outputs": [],
"source": [
"from catboost import CatBoostClassifier, Pool\n",
"\n",
"train_data = Pool(data=X_train,\n",
" label=y_train,\n",
" weight=weight_train,cat_features=[c for c in X_train.columns if c!='age'])\n",
"valid_data = Pool(data=X_valid,\n",
" label=y_valid,cat_features=[c for c in X_train.columns if c!='age']\n",
" )\n",
"model = CatBoostClassifier(iterations=1000)\n",
"\n",
"model.fit(train_data,eval_set=valid_data,verbose=False,early_stopping_rounds=100)\n",
"preds_class = model.predict(valid_data,)"
]
},
{
"cell_type": "code",
"execution_count": 179,
"id": "8df84007-110b-4f31-bc7d-53e7d5c9a178",
"metadata": {},
"outputs": [],
"source": [
"preds_class_valid = model.predict(valid_data)\n",
"preds_class_train= model.predict(train_data)"
]
},
{
"cell_type": "code",
"execution_count": 180,
"id": "55627ec4-fd24-4815-98d4-d8462bbfdd9a",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import confusion_matrix,matthews_corrcoef,accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": 181,
"id": "7451f713-fc81-4688-8440-996ffb280572",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 145 40 2 0 0]\n",
" [ 98 2388 555 2 0]\n",
" [ 1 211 512 20 0]\n",
" [ 0 3 21 10 0]\n",
" [ 0 1 0 0 1]]\n",
"0.4797388666004143\n",
"0.7620947630922693\n",
"########################################\n",
"[[ 349 27 3 0 0]\n",
" [ 194 5033 946 4 0]\n",
" [ 6 274 1213 17 0]\n",
" [ 0 3 12 53 0]\n",
" [ 1 0 0 0 4]]\n",
"0.6100405041372103\n",
"0.8172994225334808\n"
]
}
],
"source": [
"print(confusion_matrix(y_valid,preds_class_valid))\n",
"print(matthews_corrcoef(y_valid,preds_class_valid))\n",
"print(accuracy_score(y_valid,preds_class_valid))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train,preds_class_train))\n",
"print(matthews_corrcoef(y_train,preds_class_train))\n",
"print(accuracy_score(y_train,preds_class_train))"
]
},
{
"cell_type": "code",
"execution_count": 144,
"id": "877e914d-44d4-4299-8d3c-24c4fc353317",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 145 40 2 0 0]\n",
" [ 98 2388 555 2 0]\n",
" [ 1 211 512 20 0]\n",
" [ 0 3 21 10 0]\n",
" [ 0 1 0 0 1]]\n",
"0.4797388666004143\n",
"0.7620947630922693\n",
"########################################\n",
"[[ 349 27 3 0 0]\n",
" [ 194 5033 946 4 0]\n",
" [ 6 274 1213 17 0]\n",
" [ 0 3 12 53 0]\n",
" [ 1 0 0 0 4]]\n",
"0.6100405041372103\n",
"0.8172994225334808\n"
]
}
],
"source": [
"print(confusion_matrix(y_valid,preds_class_valid))\n",
"print(matthews_corrcoef(y_valid,preds_class_valid))\n",
"print(accuracy_score(y_valid,preds_class_valid))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train,preds_class_train))\n",
"print(matthews_corrcoef(y_train,preds_class_train))\n",
"print(accuracy_score(y_train,preds_class_train))"
]
},
{
"cell_type": "code",
"execution_count": 139,
"id": "776395d9-a8e2-4fda-90e1-11d6dbe80de8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 129 57 1 0 0]\n",
" [ 13 2912 118 0 0]\n",
" [ 0 456 286 2 0]\n",
" [ 0 4 30 0 0]\n",
" [ 0 2 0 0 0]]\n",
"0.5046851486832885\n",
"0.8296758104738154\n",
"########################################\n",
"[[ 249 128 2 0 0]\n",
" [ 39 5946 192 0 0]\n",
" [ 1 908 601 0 0]\n",
" [ 1 10 53 4 0]\n",
" [ 1 0 1 0 3]]\n",
"0.5234784446629579\n",
"0.8358520702789041\n"
]
}
],
"source": [
"print(confusion_matrix(y_valid,preds_class_valid))\n",
"print(matthews_corrcoef(y_valid,preds_class_valid))\n",
"print(accuracy_score(y_valid,preds_class_valid))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train,preds_class_train))\n",
"print(matthews_corrcoef(y_train,preds_class_train))\n",
"print(accuracy_score(y_train,preds_class_train))"
]
},
{
"cell_type": "code",
"execution_count": 201,
"id": "34c397bc-529a-4c52-b30e-957b28021200",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 136 49 2 0 0]\n",
" [ 40 2665 337 1 0]\n",
" [ 1 300 419 24 0]\n",
" [ 0 3 21 10 0]\n",
" [ 0 1 0 0 1]]\n",
"0.5028705314408995\n",
"0.8057356608478803\n",
"########################################\n",
"[[ 367 12 0 0 0]\n",
" [ 54 5682 439 2 0]\n",
" [ 1 344 1164 1 0]\n",
" [ 0 0 0 68 0]\n",
" [ 0 0 0 0 5]]\n",
"0.7373051729464436\n",
"0.8951959700208871\n"
]
}
],
"source": [
"##try with xgboost\n",
"import xgboost as xgb\n",
"\n",
"# Create regression matrices\n",
"dtrain = xgb.DMatrix(X_train,y_train.apply(lambda x:x.replace('i','')).astype(int), enable_categorical=True,feature_names=list(X_train.columns.values),weight=weight_train)\n",
"dvalid = xgb.DMatrix(X_valid,y_valid.apply(lambda x:x.replace('i','')).astype(int), enable_categorical=True,feature_names=list(X_train.columns.values))\n",
"\n",
"params = {\"objective\": \"multi:softprob\", \"num_class\": 5,\"eta\":0.05,'min_child_weight':10,'lambda':1.5,}\n",
"n = 1000\n",
"\n",
"results = xgb.train(\n",
" params, dtrain,\n",
"\n",
" num_boost_round=n,\n",
" evals = [(dtrain, \"train\"), (dvalid, \"valid\")],\n",
" verbose_eval=False,\n",
" early_stopping_rounds=100\n",
" # metrics=[\"mlogloss\", \"auc\", \"merror\"],\n",
")\n",
"preds_class_valid = results.predict(dvalid)\n",
"preds_class_train= results.predict(dtrain)\n",
"print(confusion_matrix(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print(matthews_corrcoef(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print(accuracy_score(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))\n",
"print(matthews_corrcoef(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))\n",
"print(accuracy_score(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))"
]
},
{
"cell_type": "code",
"execution_count": 207,
"id": "04747338-22aa-498e-aea0-449b196d8f9f",
"metadata": {},
"outputs": [],
"source": [
"cvresult = xgb.cv(params, dtrain, 1000, nfold=5,\n",
" metrics='mlogloss', early_stopping_rounds=100)"
]
},
{
"cell_type": "code",
"execution_count": 208,
"id": "0040e5e5-9e45-4c03-b3e4-bd88f10f6838",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>train-mlogloss-mean</th>\n",
" <th>train-mlogloss-std</th>\n",
" <th>test-mlogloss-mean</th>\n",
" <th>test-mlogloss-std</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.538693</td>\n",
" <td>0.000438</td>\n",
" <td>1.544775</td>\n",
" <td>0.002529</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.475059</td>\n",
" <td>0.000783</td>\n",
" <td>1.486535</td>\n",
" <td>0.004961</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.417342</td>\n",
" <td>0.001149</td>\n",
" <td>1.433997</td>\n",
" <td>0.007307</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.364478</td>\n",
" <td>0.001440</td>\n",
" <td>1.386108</td>\n",
" <td>0.009380</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.315964</td>\n",
" <td>0.001718</td>\n",
" <td>1.342237</td>\n",
" <td>0.011211</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>0.438063</td>\n",
" <td>0.004375</td>\n",
" <td>0.685584</td>\n",
" <td>0.082405</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>0.436326</td>\n",
" <td>0.004270</td>\n",
" <td>0.685423</td>\n",
" <td>0.082891</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>0.434673</td>\n",
" <td>0.004317</td>\n",
" <td>0.685321</td>\n",
" <td>0.083182</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>0.433180</td>\n",
" <td>0.004361</td>\n",
" <td>0.685375</td>\n",
" <td>0.083748</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>0.431569</td>\n",
" <td>0.004265</td>\n",
" <td>0.685245</td>\n",
" <td>0.083837</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" train-mlogloss-mean train-mlogloss-std test-mlogloss-mean \\\n",
"0 1.538693 0.000438 1.544775 \n",
"1 1.475059 0.000783 1.486535 \n",
"2 1.417342 0.001149 1.433997 \n",
"3 1.364478 0.001440 1.386108 \n",
"4 1.315964 0.001718 1.342237 \n",
".. ... ... ... \n",
"95 0.438063 0.004375 0.685584 \n",
"96 0.436326 0.004270 0.685423 \n",
"97 0.434673 0.004317 0.685321 \n",
"98 0.433180 0.004361 0.685375 \n",
"99 0.431569 0.004265 0.685245 \n",
"\n",
" test-mlogloss-std \n",
"0 0.002529 \n",
"1 0.004961 \n",
"2 0.007307 \n",
"3 0.009380 \n",
"4 0.011211 \n",
".. ... \n",
"95 0.082405 \n",
"96 0.082891 \n",
"97 0.083182 \n",
"98 0.083748 \n",
"99 0.083837 \n",
"\n",
"[100 rows x 4 columns]"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cvresult"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "1ec2f8d4-e56a-4978-b3e1-696ab3bec1df",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4010, 24, 5)"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import shap\n",
"\n",
"pred = results.predict(dvalid, output_margin=True,)\n",
"\n",
"explainer = shap.TreeExplainer(results,feature_names=list(X_train.columns.values))\n",
"explanation = explainer(dvalid)\n",
"\n",
"shap_values = explanation.values\n",
"shap_values.shape"
]
},
{
"cell_type": "code",
"execution_count": 119,
"id": "e31317a7-3257-405f-9762-bf8d77699176",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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sWNHAH744Qf+85//0K5dO2677TaMRiObNm3i1VdfJTMzkwcffPCc283KyuL222+nqKiIoUOH0rp1a6qqqti5cyebN2/2BGRr167lscceIzQ0lBtvvBGTycTPP//Myy+/TGZmJvfee69XvVVVVUyePJm2bdty3333kZ6ezvfff8/OnTv59ttvCQsLo1OnTkyaNInp06czevRoOnXqBEBISIinnueee47ly5czcOBARowYgcPhYOnSpdx77728/vrr9O/f36vdNWvWMGfOHMaOHcvYsWPF6JggCH97GzIV7vulLsGIxNKjCodLZFKC6nk1htUOo15zj2aBdzAG7mAMIC2/usx50jn/E4IxcL8Pz86G7s3dgdcN71Sf+/q9MPG/sOk1yC6C8W+6R9sAckqq6/jiF4gNhReuu9S9F85RYwzIpk+ffsnaEgGZcMHZ7XZmzpyJVuu+YzVw4ECuueYavvvuOzp27EhBQQFvvvkmgwcP5pVXXvEcN378eN58802+/fZbxo4d6xl9Oluvvvoq+fn5vP/++/Ts2dNrmyy7P+RdLhevv/46RqORr776ivDwcACuvfZaJk+ezFdffcWIESNISEjwHFtSUsL111/PI4884inr3Lkzjz32GJ999hlPPfUUcXFxdO/enenTp9O+fXuGDh3q1f6vv/7K0qVLeeqppxgzZoyn/LrrrmPSpEm89dZb9OvXD+mkD6zDhw8ze/ZskpKSzul9EARBaKwWHT6fYETiyx0yr/Sr54Ds9wPVwZhwZku2uqc6nhqIbj4IeSWwYnt1MFaTRVtEQCZcFLfccssla0sk9RAuuPHjx3uCMYCIiAgSEhLIyMgAYOXKldjtdq655hpKSkq8vvr27Yssy2zevPmc2iwtLWXjxo306tXLJxgDUKncP+p79+4lJyeHkSNHeoIxAK1Wy80334wsy6xZs8bn+FN/KS+//HISExNr3LcmS5Yswc/PjwEDBnidb3l5OX379iUrK4v09HSvY/r06dMgg7GioiJsNpvndXl5ORaLxfPabrdTWFjodUx2dvZpX+fk5HilkhVtiDZEG//MNiL1Ns5HrLa03s+jItTUKEcD6os1OhASwn03BPlBoB+F/urTHx9hrvfveWNpoz4pku+XUE2MkAkXXGxsrE9ZYGAgOTk5gHuBJNQ8B/eEoqKic2ozIyMDRVFo0aLFaffL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",
"text/plain": [
"<Figure size 800x550 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"shap.plots.beeswarm(explanation[:,:,2])\n"
]
},
{
"cell_type": "code",
"execution_count": 132,
"id": "8ccca6dc-5bca-45c4-8ea1-b21a7ae8b433",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['diagnosis', 'destination', 'age', 'helicopter',\n",
" 'injury_general_location', 'difficulty', 'cause', 'country',\n",
" 'injury_side', 'ski_lift'], dtype=object)"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vals= np.abs(shap_values).mean(0).mean(1)\n",
"feature_importance = pd.DataFrame(list(zip(X_train.columns,vals)),columns=['col_name','feature_importance_vals'])\n",
"feature_importance.sort_values(by=['feature_importance_vals'],ascending=False,inplace=True)\n",
"feature_importance.col_name[0:10].values"
]
},
{
"cell_type": "code",
"execution_count": 135,
"id": "d3fa6df7-1056-401f-bea8-aa724ff46613",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 118 67 2 0 0]\n",
" [ 30 2794 217 2 0]\n",
" [ 0 435 300 9 0]\n",
" [ 0 5 24 5 0]\n",
" [ 0 2 0 0 0]]\n",
"0.43952307639594157\n",
"0.8022443890274314\n",
"########################################\n",
"[[ 371 8 0 0 0]\n",
" [ 1 6091 85 0 0]\n",
" [ 0 353 1156 1 0]\n",
" [ 0 0 0 68 0]\n",
" [ 0 0 0 0 5]]\n",
"0.8543147994467417\n",
"0.9449563828480158\n"
]
}
],
"source": [
"##try with xgboost\n",
"import xgboost as xgb\n",
"X_train_small = X_train[feature_importance.col_name[0:10].values]\n",
"X_valid_small = X_valid[feature_importance.col_name[0:10].values]\n",
"\n",
"# Create regression matrices\n",
"dtrain = xgb.DMatrix(X_train_small,y_train.apply(lambda x:x.replace('i','')).astype(int), enable_categorical=True,feature_names=list(X_train_small.columns.values))#,weight=weight_train)\n",
"dvalid = xgb.DMatrix(X_valid_small,y_valid.apply(lambda x:x.replace('i','')).astype(int), enable_categorical=True,feature_names=list(X_train_small.columns.values))\n",
"\n",
"params = {\"objective\": \"multi:softprob\", \"num_class\": 5}\n",
"n = 1000\n",
"\n",
"results = xgb.train(\n",
" params, dtrain,\n",
"\n",
" num_boost_round=n,\n",
" evals = [(dtrain, \"train\"), (dvalid, \"valid\")],\n",
" verbose_eval=False,\n",
" early_stopping_rounds=100\n",
" # metrics=[\"mlogloss\", \"auc\", \"merror\"],\n",
")\n",
"preds_class_valid = results.predict(dvalid)\n",
"preds_class_train= results.predict(dtrain)\n",
"print(confusion_matrix(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print(matthews_corrcoef(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print(accuracy_score(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid.argmax(1)))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))\n",
"print(matthews_corrcoef(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))\n",
"print(accuracy_score(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train.argmax(1)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5c79de7d-8336-4d07-9571-79be5f92c381",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 54,
"id": "5120687b-02ed-42ee-80ca-543fe6aa540d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/agobbi/miniconda3/envs/pid/lib/python3.11/site-packages/xgboost/sklearn.py:889: UserWarning: `early_stopping_rounds` in `fit` method is deprecated for better compatibility with scikit-learn, use `early_stopping_rounds` in constructor or`set_params` instead.\n",
" warnings.warn(\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: black;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-1 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-1 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-1 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: block;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-1 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-1 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-1 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-1 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 1ex;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-1 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, device=None, early_stopping_rounds=None,\n",
" enable_categorical=True, eval_metric=None, feature_types=None,\n",
" gamma=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" multi_strategy=None, n_estimators=1000, n_jobs=None, num_class=5,\n",
" num_parallel_tree=None, ...)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;XGBClassifier<span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, device=None, early_stopping_rounds=None,\n",
" enable_categorical=True, eval_metric=None, feature_types=None,\n",
" gamma=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" multi_strategy=None, n_estimators=1000, n_jobs=None, num_class=5,\n",
" num_parallel_tree=None, ...)</pre></div> </div></div></div></div>"
],
"text/plain": [
"XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, device=None, early_stopping_rounds=None,\n",
" enable_categorical=True, eval_metric=None, feature_types=None,\n",
" gamma=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" multi_strategy=None, n_estimators=1000, n_jobs=None, num_class=5,\n",
" num_parallel_tree=None, ...)"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = xgb.XGBClassifier(n_estimators=1000,objective=\"multi:softprob\",num_class=5,enable_categorical=True)\n",
"model.fit(X_train, y_train.apply(lambda x:x.replace('i','')).astype(int), early_stopping_rounds=100,eval_set = [(X_valid, y_valid.apply(lambda x:x.replace('i','')).astype(int))],verbose=False)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "9cdb16a1-0761-4e3d-9214-6fef6ced875a",
"metadata": {},
"outputs": [],
"source": [
"preds_class_valid = model.predict(X_valid)\n",
"preds_class_train= model.predict(X_train)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "7c980af9-65ce-4472-806b-2e45295eb86c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"preds_class_valid.max()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "65228d59-e4c2-411d-8535-b36c15a55bfd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 125 61 1 0 0]\n",
" [ 15 2885 143 0 0]\n",
" [ 1 440 296 7 0]\n",
" [ 1 5 24 4 0]\n",
" [ 0 1 0 0 1]]\n",
"0.49681030860342146\n",
"0.8256857855361596\n",
"########################################\n",
"[[ 294 84 1 0 0]\n",
" [ 18 5995 164 0 0]\n",
" [ 1 739 770 0 0]\n",
" [ 0 9 18 41 0]\n",
" [ 1 0 1 0 3]]\n",
"0.6440004170345552\n",
"0.8727116353360364\n"
]
}
],
"source": [
"print(confusion_matrix(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid))\n",
"print(matthews_corrcoef(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid))\n",
"print(accuracy_score(y_valid.apply(lambda x:x.replace('i','')).astype(int),preds_class_valid))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train))\n",
"print(matthews_corrcoef(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train))\n",
"print(accuracy_score(y_train.apply(lambda x:x.replace('i','')).astype(int),preds_class_train))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}