ag update readme and added documentation

This commit is contained in:
Andrea Gobbi committed 2024-02-22 14:39:44 +01:00
1 parent ea097a7b71
commit 7eb456384e
18 files changed
+14754 -28

No files matched your search

@@ -0,0 +1,686 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"id": "7c5d059b-ed8a-4e2e-9420-25890f648895",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_42878/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": 6,
"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": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "babc2e8b-1030-4e8a-aa41-6d2a788959a5",
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'Series' object has no attribute 'evacuation_vehicles'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/tmp/ipykernel_42878/3368331793.py\u001b[0m in \u001b[0;36m?\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mev\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miterrows\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mev\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mev\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevacuation_vehicles\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m~/miniconda3/envs/pid/lib/python3.11/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m?\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 6289\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6290\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6291\u001b[0m ):\n\u001b[1;32m 6292\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6293\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m: 'Series' object has no attribute 'evacuation_vehicles'"
]
}
],
"source": [
"ev = set({})\n",
"for i,row in df.iterrows():\n",
" ev = ev.union(set(row.evacuation_vehicles))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"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": 9,
"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": 100,
"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": 100,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"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": 101,
"id": "2bda819b-4d4b-4e71-960a-53dd74d80b71",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_42878/2289208715.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['is_i1']=0\n"
]
},
{
"data": {
"text/plain": [
"(array([ 3532., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 14689.]),\n",
" array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]),\n",
" <BarContainer object of 10 artists>)"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGdCAYAAADwjmIIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsVElEQVR4nO3df1RVdb7/8ReIgJnn4I8LeL6h0o9RKUdLJ6TSpokljeRc7thNkzHvDMk0QZNSKo6F9hOjrLQcuVYzutbo1ZyV3EIHZXCMSQkV5aqkVDdKHe+BWsg5Sokg+/vHLHadpBI7gOfT87HWXmvO/rz3Z7/3Z6zzWtt9dkGWZVkCAAAwTHB3NwAAANAZCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACOFdHcD3am1tVXHjx9Xnz59FBQU1N3tAACA82BZlk6ePCmXy6Xg4K+/X/O9DjnHjx9XTExMd7cBAAAuwNGjR3XZZZd97fj3OuT06dNH0j8XyeFwdHM3AADgfHi9XsXExNjf41/nex1y2v6KyuFwEHIAAAgw3/aoCQ8eAwAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABgppLsbAAAA325I9qbubqHDPlqc3K3n504OAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEbqcMgpLS3VpEmT5HK5FBQUpIKCgq+tvffeexUUFKQXXnjBZ399fb1SU1PlcDgUERGhtLQ0nTp1yqdm//79GjdunMLDwxUTE6O8vLxz5t+wYYOGDRum8PBwjRgxQps3b+7o5QAAAEN1OOQ0NjZq5MiRWr58+TfWbdy4Ue+8845cLtc5Y6mpqaqqqlJxcbEKCwtVWlqq9PR0e9zr9WrChAkaPHiwKioq9Mwzz2jRokVauXKlXbNz507dddddSktL0759+5SSkqKUlBQdPHiwo5cEAAAMFGRZlnXBBwcFaePGjUpJSfHZ/49//EPx8fHasmWLkpOTNWvWLM2aNUuSdOjQIcXFxWn37t0aM2aMJKmoqEgTJ07UsWPH5HK5tGLFCi1YsEBut1uhoaGSpOzsbBUUFOjw4cOSpClTpqixsVGFhYX2eceOHatRo0YpPz//vPr3er1yOp3yeDxyOBwXugwAAHS6IdmburuFDvtocXKnzHu+399+fyantbVV06dP15w5c3T11VefM15WVqaIiAg74EhSYmKigoODVV5ebteMHz/eDjiSlJSUpOrqap04ccKuSUxM9Jk7KSlJZWVlX9tbU1OTvF6vzwYAAMzk95Dz9NNPKyQkRL/97W/bHXe73YqMjPTZFxISon79+sntdts1UVFRPjVtn7+tpm28Pbm5uXI6nfYWExPTsYsDAAABw68hp6KiQkuXLtWqVasUFBTkz6n9Yv78+fJ4PPZ29OjR7m4JAAB0Er+GnL///e+qq6vToEGDFBISopCQEH388cd68MEHNWTIEElSdHS06urqfI5raWlRfX29oqOj7Zra2lqfmrbP31bTNt6esLAwORwOnw0AAJjJryFn+vTp2r9/vyorK+3N5XJpzpw52rJliyQpISFBDQ0NqqiosI/btm2bWltbFR8fb9eUlpaqubnZrikuLtbQoUPVt29fu6akpMTn/MXFxUpISPDnJQEAgAAV0tEDTp06pQ8++MD+XFNTo8rKSvXr10+DBg1S//79fep79uyp6OhoDR06VJI0fPhw3XbbbZo5c6by8/PV3NyszMxMTZ061f65+bRp0/Too48qLS1N8+bN08GDB7V06VI9//zz9rwPPPCAbr75Zi1ZskTJyclat26d9uzZ4/MzcwAA8P3V4Ts5e/bs0bXXXqtrr71WkpSVlaVrr71WOTk55z3HmjVrNGzYMN16662aOHGibrrpJp9w4nQ6tXXrVtXU1Gj06NF68MEHlZOT4/MunRtuuEFr167VypUrNXLkSP35z39WQUGBrrnmmo5eEgAAMNB3ek9OoOM9OQCAQMF7cr7Qbe/JAQAAuBgQcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACAkQg5AADASIQcAABgJEIOAAAwEiEHAAAYiZADAACMRMgBAABGIuQAAAAjEXIAAICRCDkAAMBIhBwAAGAkQg4AADASIQcAABiJkAMAAIxEyAEAAEYi5AAAACMRcgAAgJEIOQAAwEiEHAAAYCRCDgAAMBIhBwAAGImQAwAAjETIAQAARiLkAAAAIxFyAACA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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"labeled['is_i1']=0\n",
"labeled.loc[labeled.india.isin(['i1','i0']),'is_i1']=1\n",
"plt.hist(labeled.is_i1)"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "e8c139d9-bf61-45ec-9da1-7eaf4ff754b4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_42878/1116779111.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[c] = labeled[c].astype(np.float32).fillna(np.nan)\n",
"/tmp/ipykernel_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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_42878/1116779111.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"
]
}
],
"source": [
"labeled[c] = labeled[c].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"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "fabf354e-f39e-4cde-af84-c65a277d309a",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split( labeled.drop(columns=['india','is_i1']),\n",
" labeled.is_i1, test_size=0.33, random_state=0,stratify=labeled.is_i1)"
]
},
{
"cell_type": "code",
"execution_count": 105,
"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": 147,
"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": 148,
"id": "4bed71a8-6420-4432-8362-3fe24eb394fb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([6, 6, 1, ..., 1, 1, 1])"
]
},
"execution_count": 148,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weight_train"
]
},
{
"cell_type": "code",
"execution_count": 149,
"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": 150,
"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": 151,
"id": "55627ec4-fd24-4815-98d4-d8462bbfdd9a",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import confusion_matrix,matthews_corrcoef,accuracy_score"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "877e914d-44d4-4299-8d3c-24c4fc353317",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 152,
"id": "776395d9-a8e2-4fda-90e1-11d6dbe80de8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 622 159]\n",
" [ 778 2470]]\n",
"0.4623150659581546\n",
"0.7674360883593944\n",
"########################################\n",
"[[1436 149]\n",
" [1358 5236]]\n",
"0.5834604503367398\n",
"0.8157476464115417\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": 157,
"id": "34c397bc-529a-4c52-b30e-957b28021200",
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "DMatrix.__init__() got an unexpected keyword argument 'scale_pos_weight'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[157], line 5\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mxgboost\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mxgb\u001b[39;00m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# Create regression matrices\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m dtrain \u001b[38;5;241m=\u001b[39m \u001b[43mxgb\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mDMatrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mastype\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43menable_categorical\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[43mscale_pos_weight\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;66;03m#,weight=weight_train)\u001b[39;00m\n\u001b[1;32m 6\u001b[0m dvalid \u001b[38;5;241m=\u001b[39m xgb\u001b[38;5;241m.\u001b[39mDMatrix(X_valid, y_valid\u001b[38;5;241m.\u001b[39mastype(\u001b[38;5;28mint\u001b[39m), enable_categorical\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n",
"File \u001b[0;32m~/miniconda3/envs/pid/lib/python3.11/site-packages/xgboost/core.py:730\u001b[0m, in \u001b[0;36mrequire_keyword_args.<locals>.throw_if.<locals>.inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 728\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, arg \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(sig\u001b[38;5;241m.\u001b[39mparameters, args):\n\u001b[1;32m 729\u001b[0m kwargs[k] \u001b[38;5;241m=\u001b[39m arg\n\u001b[0;32m--> 730\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[0;31mTypeError\u001b[0m: DMatrix.__init__() got an unexpected keyword argument 'scale_pos_weight'"
]
}
],
"source": [
"##try with xgboost\n",
"import xgboost as xgb\n",
"\n",
"# Create regression matrices\n",
"dtrain = xgb.DMatrix(X_train, y_train.astype(int), enable_categorical=True)#,weight=weight_train)\n",
"dvalid = xgb.DMatrix(X_valid, y_valid.astype(int), enable_categorical=True)"
]
},
{
"cell_type": "code",
"execution_count": 154,
"id": "7bb54c1d-ed2c-496a-b149-d567246bfee0",
"metadata": {},
"outputs": [],
"source": [
"params = {\"objective\": \"multi:softprob\", \"num_class\": 2}\n",
"n = 1000\n",
"\n",
"results = xgb.train(\n",
" params, dtrain,\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"
]
},
{
"cell_type": "code",
"execution_count": 155,
"id": "945e209e-1722-434e-b0bf-5104b3234eb9",
"metadata": {},
"outputs": [],
"source": [
"preds_class_valid = results.predict(dvalid)\n",
"preds_class_train= results.predict(dtrain)"
]
},
{
"cell_type": "code",
"execution_count": 156,
"id": "65228d59-e4c2-411d-8535-b36c15a55bfd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 492 289]\n",
" [ 471 2777]]\n",
"0.4495009568013873\n",
"0.811367585008687\n",
"########################################\n",
"[[1584 1]\n",
" [ 389 6205]]\n",
"0.8688028589259579\n",
"0.9523169091575987\n"
]
}
],
"source": [
"print(confusion_matrix(y_valid,preds_class_valid.argmax(1)))\n",
"print(matthews_corrcoef(y_valid,preds_class_valid.argmax(1)))\n",
"print(accuracy_score(y_valid,preds_class_valid.argmax(1)))\n",
"print('########################################')\n",
"print(confusion_matrix(y_train,preds_class_train.argmax(1)))\n",
"print(matthews_corrcoef(y_train,preds_class_train.argmax(1)))\n",
"print(accuracy_score(y_train,preds_class_train.argmax(1)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "95461970-fad9-4c50-84d3-e139bedfec3f",
"metadata": {},
"outputs": [],
"source": []
}
],
"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
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff