{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":81933,"databundleVersionId":9643020,"sourceType":"competition"}],"dockerImageVersionId":30775,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Problematic Internet Usage","metadata":{}},{"cell_type":"code","source":"import polars as pl\nimport numpy as np\nimport matplotlib.pyplot as plt","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-09-29T09:55:09.930056Z","iopub.execute_input":"2024-09-29T09:55:09.931092Z","iopub.status.idle":"2024-09-29T09:55:09.935810Z","shell.execute_reply.started":"2024-09-29T09:55:09.931038Z","shell.execute_reply":"2024-09-29T09:55:09.934633Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"seasons_enum = pl.Enum(['Spring', 'Summer', 'Fall', 'Winter'])\nssi_enum = pl.Enum(['None', 'Mild', 'Moderate', 'Severe'])","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:09.937716Z","iopub.execute_input":"2024-09-29T09:55:09.938101Z","iopub.status.idle":"2024-09-29T09:55:09.948708Z","shell.execute_reply.started":"2024-09-29T09:55:09.938063Z","shell.execute_reply":"2024-09-29T09:55:09.947631Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = (\n    pl.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')\n    .with_columns(pl.col('^.*Season$').cast(seasons_enum))\n)\ntrain","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:09.950645Z","iopub.execute_input":"2024-09-29T09:55:09.951011Z","iopub.status.idle":"2024-09-29T09:55:09.990685Z","shell.execute_reply.started":"2024-09-29T09:55:09.950966Z","shell.execute_reply":"2024-09-29T09:55:09.989549Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = (\n    pl.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/test.csv')\n    .with_columns(pl.col('^.*Season$').cast(seasons_enum))\n)\ntest","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:09.992128Z","iopub.execute_input":"2024-09-29T09:55:09.992584Z","iopub.status.idle":"2024-09-29T09:55:10.010809Z","shell.execute_reply.started":"2024-09-29T09:55:09.992534Z","shell.execute_reply":"2024-09-29T09:55:10.009592Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_dict = pl.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/data_dictionary.csv')\ndata_dict","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:10.013826Z","iopub.execute_input":"2024-09-29T09:55:10.014319Z","iopub.status.idle":"2024-09-29T09:55:10.024807Z","shell.execute_reply.started":"2024-09-29T09:55:10.014267Z","shell.execute_reply":"2024-09-29T09:55:10.023612Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_columns = set(train.columns)\ntest_columns = set(test.columns)\n\nmissing_in_test = train_columns - test_columns\ndata_dict.filter(pl.col('Field').is_in(missing_in_test))","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:10.026682Z","iopub.execute_input":"2024-09-29T09:55:10.027104Z","iopub.status.idle":"2024-09-29T09:55:10.037305Z","shell.execute_reply.started":"2024-09-29T09:55:10.027066Z","shell.execute_reply":"2024-09-29T09:55:10.036109Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"null_data = (\n    train\n    .null_count()\n    .transpose(include_header=True, header_name='column', column_names=['missing_count'])\n    .sort('missing_count', descending=False)\n    .with_columns((pl.col('missing_count') / len(train)).alias('missing_percent'))\n)\nnull_data","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:10.038626Z","iopub.execute_input":"2024-09-29T09:55:10.039007Z","iopub.status.idle":"2024-09-29T09:55:10.051688Z","shell.execute_reply.started":"2024-09-29T09:55:10.038971Z","shell.execute_reply":"2024-09-29T09:55:10.050564Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, ax = plt.subplots(figsize=(10, 15))\n\nax.barh(null_data['column'], null_data['missing_percent'], label='Missing', color='coral')\nax.barh(null_data['column'], 1 - null_data['missing_percent'], \n        left=null_data['missing_percent'], label='Available', color='darkseagreen')\n\nax.set_title('Missing values')\nax.set_xlabel('Missing Percent')\nax.set_ylabel('Column')\nplt.tight_layout()\nax.legend(loc='lower right')\nax.invert_yaxis()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:10.052950Z","iopub.execute_input":"2024-09-29T09:55:10.053363Z","iopub.status.idle":"2024-09-29T09:55:11.255598Z","shell.execute_reply.started":"2024-09-29T09:55:10.053325Z","shell.execute_reply":"2024-09-29T09:55:11.254421Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sii_range = (\n    train\n    .group_by('sii')\n    .agg([\n        pl.col('PCIAT-PCIAT_Total').min().alias('min'),\n        pl.col('PCIAT-PCIAT_Total').max().alias('max'),\n        pl.col('PCIAT-PCIAT_Total').len().alias('count')\n    ])\n    .sort('sii')\n)\nsii_range","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:11.257112Z","iopub.execute_input":"2024-09-29T09:55:11.257573Z","iopub.status.idle":"2024-09-29T09:55:11.268167Z","shell.execute_reply.started":"2024-09-29T09:55:11.257524Z","shell.execute_reply":"2024-09-29T09:55:11.266969Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sii_range = sii_range.with_columns(pl.col('sii').fill_null('N/A'))\nsii_range = sii_range.with_columns(pl.col('sii').cast(pl.Utf8))\nsii_range = sii_range.sort('sii')\n\nfig, ax = plt.subplots(figsize=(10, 6))\n\nbars = ax.bar(sii_range['sii'], sii_range['count'], color='skyblue')\n\nax.set_xlabel('SII')\nax.set_ylabel('Count')\nplt.title('SII Count Data')\n\nfor bar in bars:\n    height = bar.get_height()\n    ax.text(bar.get_x() + bar.get_width()/2., height,\n            f'{height:,}',\n            ha='center', va='bottom')\n\nax.set_xticks(sii_range['sii'])\n\nplt.tight_layout()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-09-29T09:55:41.922034Z","iopub.execute_input":"2024-09-29T09:55:41.922511Z","iopub.status.idle":"2024-09-29T09:55:42.179014Z","shell.execute_reply.started":"2024-09-29T09:55:41.922467Z","shell.execute_reply":"2024-09-29T09:55:42.177867Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}