{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn.model_selection import train_test_split\n", "from collections import Counter" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "df_seoul = pd.read_feather(\"../data/data_for_modeling/df_seoul.feather\")\n", "df_busan = pd.read_feather(\"../data/data_for_modeling/df_busan.feather\")\n", "df_incheon = pd.read_feather(\"../data/data_for_modeling/df_incheon.feather\")\n", "df_daegu = pd.read_feather(\"../data/data_for_modeling/df_daegu.feather\")\n", "df_daejeon = pd.read_feather(\"../data/data_for_modeling/df_daejeon.feather\")\n", "df_gwangju = pd.read_feather(\"../data/data_for_modeling/df_gwangju.feather\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 48534, 1: 3941, 0: 109})" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_seoul['multi_class'])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 50069, 1: 2350, 0: 165})" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_busan['multi_class'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 44944, 1: 6658, 0: 982})" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_incheon['multi_class'])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 50919, 1: 1610, 0: 55})" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_daegu['multi_class'])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 48047, 1: 4227, 0: 310})" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_daejeon['multi_class'])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({2: 48405, 1: 4015, 0: 164})" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Counter(df_gwangju['multi_class'])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(52584, 30)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_seoul.shape" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "df_seoul = df_seoul.loc[df_seoul['year'].isin([2018, 2019, 2020, 2021]),:].copy()\n", "df_busan = df_busan.loc[df_busan['year'].isin([2018, 2019, 2020, 2021]),:].copy()\n", "df_incheon = df_incheon.loc[df_incheon['year'].isin([2018, 2019, 2020, 2021]),:].copy()\n", "df_daegu = df_daegu.loc[df_daegu['year'].isin([2018, 2019, 2020, 2021]),:].copy()\n", "df_daejeon = df_daejeon.loc[df_daejeon['year'].isin([2018, 2019, 2020, 2021]),:].copy()\n", "df_gwangju = df_gwangju.loc[df_gwangju['year'].isin([2018, 2019, 2020, 2021]),:].copy()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "cols = [col for col in df_seoul.columns if col != \"multi_class\"] + [\"multi_class\"]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "df_seoul = df_seoul[cols]\n", "df_busan = df_busan[cols]\n", "df_incheon = df_incheon[cols]\n", "df_daegu = df_daegu[cols]\n", "df_daejeon = df_daejeon[cols]\n", "df_gwangju = df_gwangju[cols]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "df_seoul_train = df_seoul.loc[df_seoul['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_seoul_test = df_seoul.loc[df_seoul['year'].isin([2021]),:].copy()\n", "\n", "df_busan_train = df_busan.loc[df_busan['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_busan_test = df_busan.loc[df_busan['year'].isin([2021]),:].copy()\n", "\n", "df_incheon_train = df_incheon.loc[df_incheon['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_incheon_test = df_incheon.loc[df_incheon['year'].isin([2021]),:].copy()\n", "\n", "df_daegu_train = df_daegu.loc[df_daegu['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_daegu_test = df_daegu.loc[df_daegu['year'].isin([2021]),:].copy()\n", "\n", "df_daejeon_train = df_daejeon.loc[df_daejeon['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_daejeon_test = df_daejeon.loc[df_daejeon['year'].isin([2021]),:].copy()\n", "\n", "df_gwangju_train = df_gwangju.loc[df_gwangju['year'].isin([2018, 2019, 2020]),:].copy()\n", "df_gwangju_test = df_gwangju.loc[df_gwangju['year'].isin([2021]),:].copy()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | temp_C | \n", "precip_mm | \n", "wind_speed | \n", "wind_dir | \n", "hm | \n", "vap_pressure | \n", "dewpoint_C | \n", "loc_pressure | \n", "sea_pressure | \n", "solarRad | \n", "... | \n", "year | \n", "month | \n", "hour | \n", "ground_temp - temp_C | \n", "hour_sin | \n", "hour_cos | \n", "month_sin | \n", "month_cos | \n", "visi | \n", "multi_class | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "1.2 | \n", "0.0 | \n", "1.6 | \n", "360 | \n", "35.0 | \n", "2.3 | \n", "-12.6 | \n", "1015.8 | \n", "1024.6 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "0 | \n", "-5.4 | \n", "0.000000 | \n", "1.000000e+00 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 1 | \n", "0.5 | \n", "0.0 | \n", "1.3 | \n", "360 | \n", "33.0 | \n", "2.1 | \n", "-13.9 | \n", "1015.5 | \n", "1024.3 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "1 | \n", "-5.4 | \n", "0.258819 | \n", "9.659258e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 2 | \n", "0.1 | \n", "0.0 | \n", "1.5 | \n", "20 | \n", "34.0 | \n", "2.1 | \n", "-13.9 | \n", "1015.7 | \n", "1024.5 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "2 | \n", "-5.4 | \n", "0.500000 | \n", "8.660254e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 3 | \n", "0.0 | \n", "0.0 | \n", "2.1 | \n", "320 | \n", "37.0 | \n", "2.3 | \n", "-12.9 | \n", "1015.9 | \n", "1024.7 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "3 | \n", "-5.0 | \n", "0.707107 | \n", "7.071068e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 4 | \n", "-0.1 | \n", "0.0 | \n", "2.3 | \n", "340 | \n", "42.0 | \n", "2.5 | \n", "-11.5 | \n", "1016.0 | \n", "1024.9 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "4 | \n", "-4.3 | \n", "0.866025 | \n", "5.000000e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 5 | \n", "-0.1 | \n", "0.0 | \n", "2.8 | \n", "50 | \n", "43.0 | \n", "2.6 | \n", "-11.2 | \n", "1016.0 | \n", "1024.9 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "5 | \n", "-4.0 | \n", "0.965926 | \n", "2.588190e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 6 | \n", "-0.5 | \n", "0.0 | \n", "2.1 | \n", "20 | \n", "45.0 | \n", "2.6 | \n", "-11.0 | \n", "1016.5 | \n", "1025.4 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "6 | \n", "-4.1 | \n", "1.000000 | \n", "6.123234e-17 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 7 | \n", "-0.8 | \n", "0.0 | \n", "2.5 | \n", "340 | \n", "45.0 | \n", "2.6 | \n", "-11.2 | \n", "1017.1 | \n", "1026.0 | \n", "0.00 | \n", "... | \n", "2018 | \n", "1 | \n", "7 | \n", "-4.5 | \n", "0.965926 | \n", "-2.588190e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 8 | \n", "-0.5 | \n", "0.0 | \n", "1.2 | \n", "360 | \n", "43.0 | \n", "2.5 | \n", "-11.5 | \n", "1017.4 | \n", "1026.3 | \n", "0.03 | \n", "... | \n", "2018 | \n", "1 | \n", "8 | \n", "-4.0 | \n", "0.866025 | \n", "-5.000000e-01 | \n", "0.5 | \n", "0.866025 | \n", "2000.0 | \n", "2 | \n", "
| 9 | \n", "1.7 | \n", "0.0 | \n", "2.1 | \n", "20 | \n", "39.0 | \n", "2.7 | \n", "-10.8 | \n", "1018.1 | \n", "1026.9 | \n", "0.46 | \n", "... | \n", "2018 | \n", "1 | \n", "9 | \n", "2.8 | \n", "0.707107 | \n", "-7.071068e-01 | \n", "0.5 | \n", "0.866025 | \n", "1953.0 | \n", "2 | \n", "
10 rows × 30 columns
\n", "| \n", " | temp_C | \n", "precip_mm | \n", "wind_speed | \n", "wind_dir | \n", "hm | \n", "vap_pressure | \n", "dewpoint_C | \n", "loc_pressure | \n", "sea_pressure | \n", "solarRad | \n", "... | \n", "year | \n", "month | \n", "hour | \n", "ground_temp - temp_C | \n", "hour_sin | \n", "hour_cos | \n", "month_sin | \n", "month_cos | \n", "visi | \n", "multi_class | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 26294 | \n", "0.1 | \n", "0.0 | \n", "6.3 | \n", "270 | \n", "37.0 | \n", "2.3 | \n", "-12.9 | \n", "1013.3 | \n", "1022.1 | \n", "2.07 | \n", "... | \n", "2020 | \n", "12 | \n", "14 | \n", "5.8 | \n", "-0.500000 | \n", "-8.660254e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26295 | \n", "1.2 | \n", "0.0 | \n", "5.9 | \n", "270 | \n", "35.0 | \n", "2.3 | \n", "-12.6 | \n", "1013.2 | \n", "1022.0 | \n", "1.71 | \n", "... | \n", "2020 | \n", "12 | \n", "15 | \n", "5.6 | \n", "-0.707107 | \n", "-7.071068e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26296 | \n", "1.6 | \n", "0.0 | \n", "3.6 | \n", "290 | \n", "34.0 | \n", "2.3 | \n", "-12.6 | \n", "1012.8 | \n", "1021.6 | \n", "1.14 | \n", "... | \n", "2020 | \n", "12 | \n", "16 | \n", "1.4 | \n", "-0.866025 | \n", "-5.000000e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26297 | \n", "1.2 | \n", "0.0 | \n", "3.8 | \n", "250 | \n", "38.0 | \n", "2.5 | \n", "-11.5 | \n", "1012.8 | \n", "1021.6 | \n", "0.48 | \n", "... | \n", "2020 | \n", "12 | \n", "17 | \n", "-0.4 | \n", "-0.965926 | \n", "-2.588190e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26298 | \n", "0.9 | \n", "0.0 | \n", "3.8 | \n", "270 | \n", "40.0 | \n", "2.6 | \n", "-11.2 | \n", "1013.1 | \n", "1021.9 | \n", "0.02 | \n", "... | \n", "2020 | \n", "12 | \n", "18 | \n", "-0.8 | \n", "-1.000000 | \n", "-1.836970e-16 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26299 | \n", "0.6 | \n", "0.0 | \n", "6.2 | \n", "270 | \n", "41.0 | \n", "2.6 | \n", "-11.1 | \n", "1014.0 | \n", "1022.8 | \n", "0.00 | \n", "... | \n", "2020 | \n", "12 | \n", "19 | \n", "-1.1 | \n", "-0.965926 | \n", "2.588190e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26300 | \n", "0.1 | \n", "0.0 | \n", "6.0 | \n", "270 | \n", "44.0 | \n", "2.7 | \n", "-10.7 | \n", "1014.8 | \n", "1023.6 | \n", "0.00 | \n", "... | \n", "2020 | \n", "12 | \n", "20 | \n", "-0.9 | \n", "-0.866025 | \n", "5.000000e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26301 | \n", "-0.2 | \n", "0.0 | \n", "5.0 | \n", "290 | \n", "48.0 | \n", "2.9 | \n", "-9.9 | \n", "1014.6 | \n", "1023.4 | \n", "0.00 | \n", "... | \n", "2020 | \n", "12 | \n", "21 | \n", "-0.8 | \n", "-0.707107 | \n", "7.071068e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26302 | \n", "-0.7 | \n", "0.0 | \n", "2.7 | \n", "270 | \n", "51.0 | \n", "3.0 | \n", "-9.6 | \n", "1014.8 | \n", "1023.6 | \n", "0.00 | \n", "... | \n", "2020 | \n", "12 | \n", "22 | \n", "-0.6 | \n", "-0.500000 | \n", "8.660254e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
| 26303 | \n", "-0.7 | \n", "0.0 | \n", "3.8 | \n", "250 | \n", "55.0 | \n", "3.2 | \n", "-8.6 | \n", "1015.1 | \n", "1024.0 | \n", "0.00 | \n", "... | \n", "2020 | \n", "12 | \n", "23 | \n", "-0.6 | \n", "-0.258819 | \n", "9.659258e-01 | \n", "-2.449294e-16 | \n", "1.0 | \n", "5000.0 | \n", "2 | \n", "
10 rows × 30 columns
\n", "