{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "a59b5d8f-1845-4015-9b52-d372b2c9bb5a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import time\n", "import normet as nm\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "from pylab import savefig" ] }, { "cell_type": "code", "execution_count": 2, "id": "e57ad0c9-8c5f-40ca-a98d-109676b91612", "metadata": {}, "outputs": [], "source": [ "df1=pd.read_csv(r'data/MY1_data.csv',parse_dates=['date'],index_col='date')" ] }, { "cell_type": "code", "execution_count": 3, "id": "dddce35f-4638-4b5c-84d2-a7bda5ef4c36", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
O3NONO2NOXasNO2SO2COPM10NV10V10PM2.5...d2mt2mblhspssrdtcctprh2mlatlon
date
2020-01-01 00:00:001.7296178.3859545.77784165.967964.75424NaN69.060.09.058.1...277.183465278.394725384.209053102252.303312-1.164153e-100.6509580.00000891.88413051.52253-0.154611
2020-01-01 01:00:001.9291888.6158752.64325188.519034.843940.39752845.038.46.643.2...276.695430277.772899353.220263102211.168636-1.164153e-100.6036990.00000292.71587751.52253-0.154611
2020-01-01 02:00:001.9957070.0293544.76870152.145543.094740.34641746.239.17.143.0...276.505662277.463419255.911846102174.855967-1.164153e-100.7103780.00000593.48556051.52253-0.154611
2020-01-01 03:00:002.0455967.5858940.20699143.837252.960190.33505945.138.86.342.8...276.412816277.305813191.375560102166.786485-1.164153e-100.8377650.00000593.90636351.52253-0.154611
2020-01-01 04:00:002.9935572.0329847.26010157.709123.834780.34925740.834.26.636.8...276.553051277.478941151.780210102142.578039-1.164153e-100.8191030.00000393.69687851.52253-0.154611
..................................................................
2020-12-31 19:00:0020.7053912.4695030.4746149.594241.121640.12990413.911.82.111.7...272.197565273.557442476.94568899902.506413-5.820766e-110.9181490.00000090.58297951.52253-0.154611
2020-12-31 20:00:0024.147979.6527926.5117541.312491.121640.09418014.611.33.311.0...272.171041273.629146486.66585199947.625909-5.820766e-110.8396390.00000089.93990851.52253-0.154611
2020-12-31 21:00:0025.6946412.4695028.4523247.571961.361990.08768516.613.03.615.3...272.087408273.470592489.355002100000.215520-5.820766e-110.7393540.00000090.42218851.52253-0.154611
2020-12-31 22:00:0026.393136.4562925.0572134.956720.881290.08443719.116.03.117.1...272.235319272.92606240.714872100042.844978-5.820766e-110.6437530.00000095.08867751.52253-0.154611
2020-12-31 23:00:0027.939806.6145322.0700432.212180.881290.08768517.613.24.415.2...272.020979272.68136755.617254100053.601944-5.820766e-110.5494030.00000095.29067351.52253-0.154611
\n", "

8784 rows × 65 columns

\n", "
" ], "text/plain": [ " O3 NO NO2 NOXasNO2 SO2 \\\n", "date \n", "2020-01-01 00:00:00 1.72961 78.38595 45.77784 165.96796 4.75424 \n", "2020-01-01 01:00:00 1.92918 88.61587 52.64325 188.51903 4.84394 \n", "2020-01-01 02:00:00 1.99570 70.02935 44.76870 152.14554 3.09474 \n", "2020-01-01 03:00:00 2.04559 67.58589 40.20699 143.83725 2.96019 \n", "2020-01-01 04:00:00 2.99355 72.03298 47.26010 157.70912 3.83478 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 20.70539 12.46950 30.47461 49.59424 1.12164 \n", "2020-12-31 20:00:00 24.14797 9.65279 26.51175 41.31249 1.12164 \n", "2020-12-31 21:00:00 25.69464 12.46950 28.45232 47.57196 1.36199 \n", "2020-12-31 22:00:00 26.39313 6.45629 25.05721 34.95672 0.88129 \n", "2020-12-31 23:00:00 27.93980 6.61453 22.07004 32.21218 0.88129 \n", "\n", " CO PM10 NV10 V10 PM2.5 ... d2m \\\n", "date ... \n", "2020-01-01 00:00:00 NaN 69.0 60.0 9.0 58.1 ... 277.183465 \n", "2020-01-01 01:00:00 0.397528 45.0 38.4 6.6 43.2 ... 276.695430 \n", "2020-01-01 02:00:00 0.346417 46.2 39.1 7.1 43.0 ... 276.505662 \n", "2020-01-01 03:00:00 0.335059 45.1 38.8 6.3 42.8 ... 276.412816 \n", "2020-01-01 04:00:00 0.349257 40.8 34.2 6.6 36.8 ... 276.553051 \n", "... ... ... ... ... ... ... ... \n", "2020-12-31 19:00:00 0.129904 13.9 11.8 2.1 11.7 ... 272.197565 \n", "2020-12-31 20:00:00 0.094180 14.6 11.3 3.3 11.0 ... 272.171041 \n", "2020-12-31 21:00:00 0.087685 16.6 13.0 3.6 15.3 ... 272.087408 \n", "2020-12-31 22:00:00 0.084437 19.1 16.0 3.1 17.1 ... 272.235319 \n", "2020-12-31 23:00:00 0.087685 17.6 13.2 4.4 15.2 ... 272.020979 \n", "\n", " t2m blh sp ssrd \\\n", "date \n", "2020-01-01 00:00:00 278.394725 384.209053 102252.303312 -1.164153e-10 \n", "2020-01-01 01:00:00 277.772899 353.220263 102211.168636 -1.164153e-10 \n", "2020-01-01 02:00:00 277.463419 255.911846 102174.855967 -1.164153e-10 \n", "2020-01-01 03:00:00 277.305813 191.375560 102166.786485 -1.164153e-10 \n", "2020-01-01 04:00:00 277.478941 151.780210 102142.578039 -1.164153e-10 \n", "... ... ... ... ... \n", "2020-12-31 19:00:00 273.557442 476.945688 99902.506413 -5.820766e-11 \n", "2020-12-31 20:00:00 273.629146 486.665851 99947.625909 -5.820766e-11 \n", "2020-12-31 21:00:00 273.470592 489.355002 100000.215520 -5.820766e-11 \n", "2020-12-31 22:00:00 272.926062 40.714872 100042.844978 -5.820766e-11 \n", "2020-12-31 23:00:00 272.681367 55.617254 100053.601944 -5.820766e-11 \n", "\n", " tcc tp rh2m lat lon \n", "date \n", "2020-01-01 00:00:00 0.650958 0.000008 91.884130 51.52253 -0.154611 \n", "2020-01-01 01:00:00 0.603699 0.000002 92.715877 51.52253 -0.154611 \n", "2020-01-01 02:00:00 0.710378 0.000005 93.485560 51.52253 -0.154611 \n", "2020-01-01 03:00:00 0.837765 0.000005 93.906363 51.52253 -0.154611 \n", "2020-01-01 04:00:00 0.819103 0.000003 93.696878 51.52253 -0.154611 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 0.918149 0.000000 90.582979 51.52253 -0.154611 \n", "2020-12-31 20:00:00 0.839639 0.000000 89.939908 51.52253 -0.154611 \n", "2020-12-31 21:00:00 0.739354 0.000000 90.422188 51.52253 -0.154611 \n", "2020-12-31 22:00:00 0.643753 0.000000 95.088677 51.52253 -0.154611 \n", "2020-12-31 23:00:00 0.549403 0.000000 95.290673 51.52253 -0.154611 \n", "\n", "[8784 rows x 65 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1" ] }, { "cell_type": "markdown", "id": "41c3ac73-c515-4c07-bcf0-b3fe4a1a4b56", "metadata": {}, "source": [ "# AutoML-based weather normalisation" ] }, { "cell_type": "code", "execution_count": 4, "id": "57b5cf8a-7916-4407-89eb-32ef3fdaa2d5", "metadata": {}, "outputs": [], "source": [ "df1a=nm.prepare_data(df1, value='PM2.5', feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'], split_method='random', fraction=0.75, seed=7654321)" ] }, { "cell_type": "code", "execution_count": 5, "id": "5627446a-6f25-4471-87b3-c0df6ba7846d", "metadata": {}, "outputs": [], "source": [ "model_config = {\n", " 'time_budget': 90, # Total running time in seconds\n", " 'metric': 'r2', # Primary metric for regression, 'mae', 'mse', 'r2', 'mape',...\n", " 'estimator_list': [\"lgbm\"], # List of ML learners: \"lgbm\", \"rf\", \"xgboost\", \"extra_tree\", \"xgb_limitdepth\"\n", " }" ] }, { "cell_type": "code", "execution_count": 6, "id": "f8c99782-96ca-4030-a824-ae38c71f8198", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:20:23 : Training AutoML...\n", "2024-09-24 16:21:57 : Best model is lgbm with best model parameters of {'n_estimators': 4779, 'num_leaves': 37, 'min_child_samples': 13, 'learning_rate': 0.05353325544814332, 'log_max_bin': 10, 'colsample_bytree': 0.7006661480744041, 'reg_alpha': 3.4963871783049667, 'reg_lambda': 0.12148015741620988}\n" ] } ], "source": [ "model1=nm.train_model(df1a,variables=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],model_config =model_config );" ] }, { "cell_type": "code", "execution_count": 7, "id": "ca0cd0b3-69ff-446b-9892-b0634c23cf64", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
AutoML(append_log=False, auto_augment=True, custom_hp={},\n",
       "       cv_score_agg_func=None, early_stop=False, ensemble=False,\n",
       "       estimator_list='auto', eval_method='auto', fit_kwargs_by_estimator={},\n",
       "       force_cancel=False, free_mem_ratio=0, hpo_method='auto',\n",
       "       keep_search_state=False, learner_selector='sample', log_file_name='',\n",
       "       log_training_metric=False, log_type='better', max_iter=None,\n",
       "       mem_thres=4294967296, metric='auto', metric_constraints=[],\n",
       "       min_sample_size=10000, mlflow_logging=True, model_history=False,\n",
       "       n_concurrent_trials=1, n_jobs=-1, n_splits=5, pred_time_limit=inf,\n",
       "       preserve_checkpoint=True, retrain_full=True, ...)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "AutoML(append_log=False, auto_augment=True, custom_hp={},\n", " cv_score_agg_func=None, early_stop=False, ensemble=False,\n", " estimator_list='auto', eval_method='auto', fit_kwargs_by_estimator={},\n", " force_cancel=False, free_mem_ratio=0, hpo_method='auto',\n", " keep_search_state=False, learner_selector='sample', log_file_name='',\n", " log_training_metric=False, log_type='better', max_iter=None,\n", " mem_thres=4294967296, metric='auto', metric_constraints=[],\n", " min_sample_size=10000, mlflow_logging=True, model_history=False,\n", " n_concurrent_trials=1, n_jobs=-1, n_splits=5, pred_time_limit=inf,\n", " preserve_checkpoint=True, retrain_full=True, ...)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model1" ] }, { "cell_type": "code", "execution_count": 8, "id": "0bad857e-44e9-4664-83c8-0efa9c862b15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Best model: lgbm\n", "Best model parameters: {'n_estimators': 4779, 'num_leaves': 37, 'min_child_samples': 13, 'learning_rate': 0.05353325544814332, 'log_max_bin': 10, 'colsample_bytree': 0.7006661480744041, 'reg_alpha': 3.4963871783049667, 'reg_lambda': 0.12148015741620988}\n" ] }, { "data": { "text/plain": [ "{'pred_time': 1.9110346438994467e-05,\n", " 'wall_clock_time': 90.33755874633789,\n", " 'metric_for_logging': {'pred_time': 1.9110346438994467e-05},\n", " 'val_loss': 0.12917426813136582,\n", " 'training_iteration': 1,\n", " 'config': {'n_estimators': 4779,\n", " 'num_leaves': 37,\n", " 'min_child_samples': 13,\n", " 'learning_rate': 0.05353325544814332,\n", " 'log_max_bin': 10,\n", " 'colsample_bytree': 0.7006661480744041,\n", " 'reg_alpha': 3.4963871783049667,\n", " 'reg_lambda': 0.12148015741620988},\n", " 'config/n_estimators': 4779,\n", " 'config/num_leaves': 37,\n", " 'config/min_child_samples': 13,\n", " 'config/learning_rate': 0.05353325544814332,\n", " 'config/log_max_bin': 10,\n", " 'config/colsample_bytree': 0.7006661480744041,\n", " 'config/reg_alpha': 3.4963871783049667,\n", " 'config/reg_lambda': 0.12148015741620988,\n", " 'experiment_tag': 'exp',\n", " 'time_total_s': 9.342859029769897}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_model = model1.best_estimator\n", "best_config = model1.best_config\n", "print(\"Best model:\", best_model)\n", "print(\"Best model parameters:\", best_config)\n", "model1.best_result" ] }, { "cell_type": "code", "execution_count": 9, "id": "73c45727-f736-482b-875b-7ef68b597f6c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 993, 6549, 6934, 5345, 5295, 6633, 6315, 4237, 6126, 3377, 6176,\n", " 4652, 1062, 3878], dtype=int32)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model1.feature_importances_" ] }, { "cell_type": "code", "execution_count": 10, "id": "9cd27367-ed1f-4a5b-983f-e93eea755f2c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['weekday',\n", " 'u10',\n", " 'v10',\n", " 'd2m',\n", " 't2m',\n", " 'blh',\n", " 'sp',\n", " 'ssrd',\n", " 'tcc',\n", " 'tp',\n", " 'rh2m',\n", " 'date_unix',\n", " 'day_julian',\n", " 'hour']" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model1.feature_names_in_" ] }, { "cell_type": "code", "execution_count": 11, "id": "e98e5aa9-aa28-4214-ab3b-649d5e564772", "metadata": {}, "outputs": [], "source": [ "model_config = {\n", " 'time_budget': 90,\n", " #'max_models': 10, # Maximum number of models to train\n", " #'max_mem_size': '12g', # Maximum memory size for H2O\n", " 'estimator_list': ['GBM'], # List of algorithms to use in AutoML\n", " }" ] }, { "cell_type": "code", "execution_count": 12, "id": "df2815ac-a151-4c19-aa06-cc0d8a097750", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "H2O is not running. Starting H2O...\n", "Checking whether there is an H2O instance running at http://localhost:54321. connected.\n" ] }, { "data": { "text/html": [ "\n", " \n", "
\n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
H2O_cluster_uptime:3 hours 59 mins
H2O_cluster_timezone:Europe/London
H2O_data_parsing_timezone:UTC
H2O_cluster_version:3.46.0.5
H2O_cluster_version_age:26 days
H2O_cluster_name:H2O_from_python_n94921cs_5qrqdn
H2O_cluster_total_nodes:1
H2O_cluster_free_memory:7.572 Gb
H2O_cluster_total_cores:8
H2O_cluster_allowed_cores:1
H2O_cluster_status:locked, healthy
H2O_connection_url:http://localhost:54321
H2O_connection_proxy:{\"http\": null, \"https\": null}
H2O_internal_security:False
Python_version:3.12.2 final
\n", "
\n" ], "text/plain": [ "-------------------------- -------------------------------\n", "H2O_cluster_uptime: 3 hours 59 mins\n", "H2O_cluster_timezone: Europe/London\n", "H2O_data_parsing_timezone: UTC\n", "H2O_cluster_version: 3.46.0.5\n", "H2O_cluster_version_age: 26 days\n", "H2O_cluster_name: H2O_from_python_n94921cs_5qrqdn\n", "H2O_cluster_total_nodes: 1\n", "H2O_cluster_free_memory: 7.572 Gb\n", "H2O_cluster_total_cores: 8\n", "H2O_cluster_allowed_cores: 1\n", "H2O_cluster_status: locked, healthy\n", "H2O_connection_url: http://localhost:54321\n", "H2O_connection_proxy: {\"http\": null, \"https\": null}\n", "H2O_internal_security: False\n", "Python_version: 3.12.2 final\n", "-------------------------- -------------------------------" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:21:58: Training AutoML...\n", "2024-09-24 16:22:42: Best model obtained! - GBM_grid_1_AutoML_4_20240924_162158_model_2\n" ] } ], "source": [ "model2=nm.train_model(df1a,automl_pkg='h2o',variables=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],model_config=model_config);" ] }, { "cell_type": "code", "execution_count": 13, "id": "7d2d6588-4f18-4975-8b97-b2f28eef96c5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Model Details\n",
       "=============\n",
       "H2OGradientBoostingEstimator : Gradient Boosting Machine\n",
       "Model Key: GBM_grid_1_AutoML_4_20240924_162158_model_2\n",
       "
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Model Summary:
number_of_treesnumber_of_internal_treesmodel_size_in_bytesmin_depthmax_depthmean_depthmin_leavesmax_leavesmean_leaves
69.069.01189276.013.013.013.0625.01942.01369.2754
\n", "
\n", "
\n", "
ModelMetricsRegression: gbm\n",
       "** Reported on train data. **\n",
       "\n",
       "MSE: 0.011242541344013361\n",
       "RMSE: 0.10603085090676846\n",
       "MAE: 0.07893400538333294\n",
       "RMSLE: NaN\n",
       "Mean Residual Deviance: 0.011242541344013361
\n", "
ModelMetricsRegression: gbm\n",
       "** Reported on cross-validation data. **\n",
       "\n",
       "MSE: 8.126360199772725\n",
       "RMSE: 2.850677147586644\n",
       "MAE: 1.9222905950632483\n",
       "RMSLE: NaN\n",
       "Mean Residual Deviance: 8.126360199772725
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Cross-Validation Metrics Summary:
meansdcv_1_validcv_2_validcv_3_validcv_4_validcv_5_valid
aicnan0.0nannannannannan
loglikelihoodnan0.0nannannannannan
mae1.92229060.03245551.90846751.90527941.8888591.97101081.9378362
mean_residual_deviance8.126360.65486428.1824487.17496257.84598168.8508658.577542
mse8.126360.65486428.1824487.17496257.84598168.8508658.577542
r20.87931020.00956280.88054320.89021190.88670020.86923220.8698634
residual_deviance8.126360.65486428.1824487.17496257.84598168.8508658.577542
rmse2.84879260.11587372.8604982.6786122.8010682.97504042.928744
rmslenan0.0nannannannannan
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Scoring History:
timestampdurationnumber_of_treestraining_rmsetraining_maetraining_deviance
2024-09-24 16:22:28 7.661 sec0.08.20623465.474664067.3422868
2024-09-24 16:22:28 7.723 sec5.05.04424333.415184025.4443903
2024-09-24 16:22:28 7.779 sec10.03.19141162.205314410.1851080
2024-09-24 16:22:28 7.835 sec15.02.01626291.43587164.0653160
2024-09-24 16:22:28 7.892 sec20.01.32587260.97653911.7579382
2024-09-24 16:22:28 7.957 sec25.00.88011640.66752580.7746049
2024-09-24 16:22:28 8.014 sec30.00.62134920.47963480.3860749
2024-09-24 16:22:28 8.067 sec35.00.45780020.35725000.2095810
2024-09-24 16:22:28 8.132 sec40.00.33798020.26474510.1142306
2024-09-24 16:22:28 8.191 sec45.00.26484590.20514040.0701433
2024-09-24 16:22:28 8.251 sec50.00.20695010.15953940.0428284
2024-09-24 16:22:28 8.305 sec55.00.16637240.12753110.0276798
2024-09-24 16:22:28 8.354 sec60.00.13975920.10641050.0195326
2024-09-24 16:22:28 8.408 sec65.00.11672630.08783040.0136250
2024-09-24 16:22:29 8.495 sec69.00.10603090.07893400.0112425
\n", "
\n", "
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Variable Importances:
variablerelative_importancescaled_importancepercentage
u10251463.84375001.00.1484518
blh210509.48437500.83713620.1242744
d2m202005.68750000.80331900.1192542
day_julian201374.09375000.80080730.1188813
sp158984.71875000.63223690.0938567
date_unix130323.09375000.51825780.0769363
t2m108348.50781250.43087110.0639636
v1087987.50781250.34990120.0519435
weekday81752.51562500.32510640.0482626
rh2m80490.92968750.32008950.0475179
hour61422.05078120.24425800.0362605
tcc57315.15625000.22792600.0338360
ssrd46235.09375000.18386380.0272949
tp15695.94042970.06241830.0092661
\n", "
\n", "
\n",
       "\n",
       "[tips]\n",
       "Use `model.explain()` to inspect the model.\n",
       "--\n",
       "Use `h2o.display.toggle_user_tips()` to switch on/off this section.
" ], "text/plain": [ "Model Details\n", "=============\n", "H2OGradientBoostingEstimator : Gradient Boosting Machine\n", "Model Key: GBM_grid_1_AutoML_4_20240924_162158_model_2\n", "\n", "\n", "Model Summary: \n", " number_of_trees number_of_internal_trees model_size_in_bytes min_depth max_depth mean_depth min_leaves max_leaves mean_leaves\n", "-- ----------------- -------------------------- --------------------- ----------- ----------- ------------ ------------ ------------ -------------\n", " 69 69 1.18928e+06 13 13 13 625 1942 1369.28\n", "\n", "ModelMetricsRegression: gbm\n", "** Reported on train data. **\n", "\n", "MSE: 0.011242541344013361\n", "RMSE: 0.10603085090676846\n", "MAE: 0.07893400538333294\n", "RMSLE: NaN\n", "Mean Residual Deviance: 0.011242541344013361\n", "\n", "ModelMetricsRegression: gbm\n", "** Reported on cross-validation data. **\n", "\n", "MSE: 8.126360199772725\n", "RMSE: 2.850677147586644\n", "MAE: 1.9222905950632483\n", "RMSLE: NaN\n", "Mean Residual Deviance: 8.126360199772725\n", "\n", "Cross-Validation Metrics Summary: \n", " mean sd cv_1_valid cv_2_valid cv_3_valid cv_4_valid cv_5_valid\n", "---------------------- ------- ---------- ------------ ------------ ------------ ------------ ------------\n", "aic nan 0 nan nan nan nan nan\n", "loglikelihood nan 0 nan nan nan nan nan\n", "mae 1.92229 0.0324555 1.90847 1.90528 1.88886 1.97101 1.93784\n", "mean_residual_deviance 8.12636 0.654864 8.18245 7.17496 7.84598 8.85087 8.57754\n", "mse 8.12636 0.654864 8.18245 7.17496 7.84598 8.85087 8.57754\n", "r2 0.87931 0.00956279 0.880543 0.890212 0.8867 0.869232 0.869863\n", "residual_deviance 8.12636 0.654864 8.18245 7.17496 7.84598 8.85087 8.57754\n", "rmse 2.84879 0.115874 2.8605 2.67861 2.80107 2.97504 2.92874\n", "rmsle nan 0 nan nan nan nan nan\n", "\n", "Scoring History: \n", " timestamp duration number_of_trees training_rmse training_mae training_deviance\n", "-- ------------------- ---------- ----------------- --------------- -------------- -------------------\n", " 2024-09-24 16:22:28 7.661 sec 0 8.20623 5.47466 67.3423\n", " 2024-09-24 16:22:28 7.723 sec 5 5.04424 3.41518 25.4444\n", " 2024-09-24 16:22:28 7.779 sec 10 3.19141 2.20531 10.1851\n", " 2024-09-24 16:22:28 7.835 sec 15 2.01626 1.43587 4.06532\n", " 2024-09-24 16:22:28 7.892 sec 20 1.32587 0.976539 1.75794\n", " 2024-09-24 16:22:28 7.957 sec 25 0.880116 0.667526 0.774605\n", " 2024-09-24 16:22:28 8.014 sec 30 0.621349 0.479635 0.386075\n", " 2024-09-24 16:22:28 8.067 sec 35 0.4578 0.35725 0.209581\n", " 2024-09-24 16:22:28 8.132 sec 40 0.33798 0.264745 0.114231\n", " 2024-09-24 16:22:28 8.191 sec 45 0.264846 0.20514 0.0701433\n", " 2024-09-24 16:22:28 8.251 sec 50 0.20695 0.159539 0.0428284\n", " 2024-09-24 16:22:28 8.305 sec 55 0.166372 0.127531 0.0276798\n", " 2024-09-24 16:22:28 8.354 sec 60 0.139759 0.10641 0.0195326\n", " 2024-09-24 16:22:28 8.408 sec 65 0.116726 0.0878304 0.013625\n", " 2024-09-24 16:22:29 8.495 sec 69 0.106031 0.078934 0.0112425\n", "\n", "Variable Importances: \n", "variable relative_importance scaled_importance percentage\n", "---------- --------------------- ------------------- ------------\n", "u10 251464 1 0.148452\n", "blh 210509 0.837136 0.124274\n", "d2m 202006 0.803319 0.119254\n", "day_julian 201374 0.800807 0.118881\n", "sp 158985 0.632237 0.0938567\n", "date_unix 130323 0.518258 0.0769363\n", "t2m 108349 0.430871 0.0639636\n", "v10 87987.5 0.349901 0.0519435\n", "weekday 81752.5 0.325106 0.0482626\n", "rh2m 80490.9 0.320089 0.0475179\n", "hour 61422.1 0.244258 0.0362605\n", "tcc 57315.2 0.227926 0.033836\n", "ssrd 46235.1 0.183864 0.0272949\n", "tp 15695.9 0.0624183 0.00926611\n", "\n", "[tips]\n", "Use `model.explain()` to inspect the model.\n", "--\n", "Use `h2o.display.toggle_user_tips()` to switch on/off this section." ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model2" ] }, { "cell_type": "code", "execution_count": 14, "id": "82a03561-0d6a-42b1-9fc4-f02d9db67a3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m\n", "\u001b[0mnm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'value'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mautoml_pkg\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'flaml'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mmodel_config\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mseed\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m7654321\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mn_cores\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\u001b[0;34m\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", "\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;31mDocstring:\u001b[0m\n", "Trains a machine learning model using either FLAML or H2O AutoML.\n", "\n", "Parameters:\n", " df (pandas.DataFrame): Input dataset to train the model.\n", " value (str): The name of the target column in the dataset. Default is \"value\".\n", " automl_pkg (str): The AutoML package to use (\"flaml\" or \"h2o\").\n", " variables (list, optional): List of feature variables to use for training.\n", " model_config (dict, optional): Configuration settings for the model training.\n", " seed (int, optional): Random seed for reproducibility. Default is 7654321.\n", " n_cores (int, optional): Number of CPU cores to use for training. Default is None.\n", " verbose (bool, optional): Whether to print detailed logs. Default is True.\n", "\n", "Returns:\n", " model: Trained machine learning model with a custom attribute `_model_type` indicating the package used.\n", "\u001b[0;31mFile:\u001b[0m ~/anaconda3/envs/normet/lib/python3.12/site-packages/normet/normet.py\n", "\u001b[0;31mType:\u001b[0m function" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "?nm.train_model" ] }, { "cell_type": "code", "execution_count": 15, "id": "050656cc-fb2e-499c-95cf-79583f6c7935", "metadata": {}, "outputs": [], "source": [ "mod_stats1=nm.modStats(df1a,model1)" ] }, { "cell_type": "code", "execution_count": 16, "id": "75312c50-9ebd-4adc-ab80-60dedad38611", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nFAC2MBMGENMBNMGERMSErp_levelCOEIOAR2set
047800.987238-0.0000070.268328-7.437997e-070.0294470.3512830.999110***0.9509870.9754940.998222training
115930.9077210.0902231.9202779.806910e-030.2087272.6991330.940890***0.6502590.8251290.885274testing
263730.9673620.0225470.6812502.468418e-030.0745821.3833290.985535***0.8756680.9378340.971279all
\n", "
" ], "text/plain": [ " n FAC2 MB MGE NMB NMGE RMSE \\\n", "0 4780 0.987238 -0.000007 0.268328 -7.437997e-07 0.029447 0.351283 \n", "1 1593 0.907721 0.090223 1.920277 9.806910e-03 0.208727 2.699133 \n", "2 6373 0.967362 0.022547 0.681250 2.468418e-03 0.074582 1.383329 \n", "\n", " r p_level COE IOA R2 set \n", "0 0.999110 *** 0.950987 0.975494 0.998222 training \n", "1 0.940890 *** 0.650259 0.825129 0.885274 testing \n", "2 0.985535 *** 0.875668 0.937834 0.971279 all " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod_stats1" ] }, { "cell_type": "code", "execution_count": 17, "id": "c1ee64d8-086d-459a-9aca-8928deb1be52", "metadata": {}, "outputs": [], "source": [ "mod_stats2=nm.modStats(df1a,model2)" ] }, { "cell_type": "code", "execution_count": 18, "id": "61f1057f-e78b-46d1-b7eb-073289236774", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nFAC2MBMGENMBNMGERMSErp_levelCOEIOAR2set
047800.9941422.145110e-080.0789342.354070e-090.0086620.1060310.999923***0.9855820.9927910.999846training
115930.9014441.458128e-011.9521021.584932e-020.2121862.7530470.939557***0.6444620.8222310.882767testing
263730.9709713.644749e-020.5471533.990205e-030.0599011.3794750.985645***0.9001420.9500710.971496all
\n", "
" ], "text/plain": [ " n FAC2 MB MGE NMB NMGE RMSE \\\n", "0 4780 0.994142 2.145110e-08 0.078934 2.354070e-09 0.008662 0.106031 \n", "1 1593 0.901444 1.458128e-01 1.952102 1.584932e-02 0.212186 2.753047 \n", "2 6373 0.970971 3.644749e-02 0.547153 3.990205e-03 0.059901 1.379475 \n", "\n", " r p_level COE IOA R2 set \n", "0 0.999923 *** 0.985582 0.992791 0.999846 training \n", "1 0.939557 *** 0.644462 0.822231 0.882767 testing \n", "2 0.985645 *** 0.900142 0.950071 0.971496 all " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mod_stats2" ] }, { "cell_type": "code", "execution_count": 19, "id": "a6d06224-c7e5-40cd-9d3e-33eea694098a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:22:45: Normalising the dataset in parallel.\n", "2024-09-24 16:22:47: Predicting using trained model in batches.\n", "2024-09-24 16:25:07: Aggregating 1000 predictions...\n", "Execution time: 142.41 seconds\n" ] } ], "source": [ "start_time = time.time()\n", "df_dew1=nm.normalise(df1a,model1, \n", " feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],\n", " variables_resample= ['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],\n", " n_samples=1000,aggregate=True)\n", "end_time = time.time()\n", "\n", "# 计算执行时间\n", "execution_time = end_time - start_time\n", "print(f\"Execution time: {execution_time:.2f} seconds\")" ] }, { "cell_type": "code", "execution_count": 20, "id": "05e5b810-6d45-4274-af7a-6d1db3490a57", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:25:08: Normalising the dataset in parallel.\n", "2024-09-24 16:25:09: Predicting using trained model in batches.\n", "2024-09-24 16:29:04: Aggregating 1000 predictions...\n", "Execution time: 236.45 seconds\n" ] } ], "source": [ "start_time = time.time()\n", "df_dew2=nm.normalise(df1a,model2, \n", " feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],\n", " variables_resample= ['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],\n", " n_samples=1000,aggregate=True)\n", "end_time = time.time()\n", "\n", "# 计算执行时间\n", "execution_time = end_time - start_time\n", "print(f\"Execution time: {execution_time:.2f} seconds\")" ] }, { "cell_type": "code", "execution_count": 21, "id": "7286aae9-9010-4d10-bd76-e1346fc5261e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots()\n", "df_dew1['normalised'].plot()\n", "df_dew2['normalised'].plot()" ] }, { "cell_type": "code", "execution_count": 22, "id": "9bed52eb-35c7-481d-ba1d-f70ec30ee1df", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:29:05: Normalising the dataset in parallel.\n", "2024-09-24 16:29:06: Predicting using trained model in batches.\n", "Execution time: 143.14 seconds\n" ] } ], "source": [ "start_time = time.time()\n", "df_dew3=nm.normalise(df1a,model1, \n", " feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],\n", " variables_resample= ['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],\n", " n_samples=1000,aggregate=False)\n", "end_time = time.time()\n", "\n", "# 计算执行时间\n", "execution_time = end_time - start_time\n", "print(f\"Execution time: {execution_time:.2f} seconds\")" ] }, { "cell_type": "code", "execution_count": 23, "id": "83d9f337-eafe-41da-8606-8807b39ff25d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateobservednormalisedseed
02020-01-01 00:00:0058.117.221536979812
12020-01-01 01:00:0043.232.937436979812
22020-01-01 02:00:0043.024.423807979812
32020-01-01 03:00:0042.823.372347979812
42020-01-01 04:00:0036.826.478917979812
\n", "
" ], "text/plain": [ " date observed normalised seed\n", "0 2020-01-01 00:00:00 58.1 17.221536 979812\n", "1 2020-01-01 01:00:00 43.2 32.937436 979812\n", "2 2020-01-01 02:00:00 43.0 24.423807 979812\n", "3 2020-01-01 03:00:00 42.8 23.372347 979812\n", "4 2020-01-01 04:00:00 36.8 26.478917 979812" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dew3.head()" ] }, { "cell_type": "code", "execution_count": 24, "id": "f4c13a12-960c-4399-a1aa-5615d151f2b5", "metadata": {}, "outputs": [], "source": [ "weather_df=df1.reset_index().iloc[0:100][['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m']]" ] }, { "cell_type": "code", "execution_count": 25, "id": "942b8916-fcc9-4d9d-bd6e-ae07fcf5ff28", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
u10v10d2mt2mblhspssrdtcctprh2m
0-2.7205281.545010277.183465278.394725384.209053102252.303312-1.164153e-100.6509580.00000891.884130
1-2.3087891.282742276.695430277.772899353.220263102211.168636-1.164153e-100.6036990.00000292.715877
2-2.2164710.758730276.505662277.463419255.911846102174.855967-1.164153e-100.7103780.00000593.485560
3-1.9286230.509013276.412816277.305813191.375560102166.786485-1.164153e-100.8377650.00000593.906363
4-1.7000430.607069276.553051277.478941151.780210102142.578039-1.164153e-100.8191030.00000393.696878
\n", "
" ], "text/plain": [ " u10 v10 d2m t2m blh sp \\\n", "0 -2.720528 1.545010 277.183465 278.394725 384.209053 102252.303312 \n", "1 -2.308789 1.282742 276.695430 277.772899 353.220263 102211.168636 \n", "2 -2.216471 0.758730 276.505662 277.463419 255.911846 102174.855967 \n", "3 -1.928623 0.509013 276.412816 277.305813 191.375560 102166.786485 \n", "4 -1.700043 0.607069 276.553051 277.478941 151.780210 102142.578039 \n", "\n", " ssrd tcc tp rh2m \n", "0 -1.164153e-10 0.650958 0.000008 91.884130 \n", "1 -1.164153e-10 0.603699 0.000002 92.715877 \n", "2 -1.164153e-10 0.710378 0.000005 93.485560 \n", "3 -1.164153e-10 0.837765 0.000005 93.906363 \n", "4 -1.164153e-10 0.819103 0.000003 93.696878 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "weather_df.head()" ] }, { "cell_type": "code", "execution_count": 26, "id": "7a4cca49-9d4c-4116-b779-ac257fcdf5af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:31:28: Normalising the dataset in parallel.\n", "2024-09-24 16:31:28: Predicting using trained model in batches.\n", "2024-09-24 16:32:10: Aggregating 300 predictions...\n", "Execution time: 42.37 seconds\n" ] } ], "source": [ "start_time = time.time()\n", "df_dew2=nm.normalise(df1a, model1, weather_df=weather_df,\n", " feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],\n", " variables_resample= ['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],\n", " n_samples=300,aggregate=True)\n", "end_time = time.time()\n", "\n", "# 计算执行时间\n", "execution_time = end_time - start_time\n", "print(f\"Execution time: {execution_time:.2f} seconds\")" ] }, { "cell_type": "code", "execution_count": 27, "id": "228dd858-9d8f-4392-967f-928fef07891d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Ey677DK0bdvWjmLbwmhdFRQUAADKli2L/fv3IycnB/n5+XEvr93C1ZecY8Lj8eDo0aOYO3cu7r33XgwePBhXXnkl0tPTnTkewELyeKQ6deqgffv2AIAbbrgB1atXx+zZs3H8+HHV+CUAJfbaLiuW90G7I6NQwnUfHDt2TFx33XXixhtv9H2akEeuT5w4UdSoUSNohHutWrVUzaRFnZV19PHHH4srr7xS9OjRQ/z++++xLbhNrKyv6dOniy5duoguXbqoxucUF1bWlTzuZsaMGUEtA8WFlfV16NAhMXLkSNGtW7cS+d4K3O/9998Xbdu21R1nUxyv7UYVx/ugY1tMDh06pMoLoYyQ5U9gFSpUwNVXX41t27b5Ul0nJiYCkEZtV6hQARkZGb7XPv/888jIyMB5550Xrx8jpqyqo3///RcAcO2112LKlCmYP38+zj///Hj9GHFjdX317dsX7777LhYtWoQWLVrE68eICyv//gD/jIrbb78djRo1isvPEE9W1deePXsAAFWqVMGTTz6JhQsXlsj3lkxOyd+vXz80a9YM3333HXbu3AkA+PXXX337Fbdru0yuG7kelIrzfdBxgUlBQQEGDRqEiy66CN26dcOtt96Ko0ePqqYXJiYm4syZM/jkk09w55134oILLsCnn36KxYsX+/b577//UKVKFdStW9f32uIyRdHqOqpXrx4AKRnP2WefHe8fJ+ZiVV9lypRB/fr14/7zxFIs/v6KM6vrS/n3l5qaGs8fJeaM1lV+fj6mT5/ue+z1elGuXDlcf/318Hq9ePrpp3HZZZehdevWOH78OIDic22X5efnY8iQIbj33nsBqH8+OcAo1vdBu5tslPLz88Wtt94q2rVrJ5YsWSImTZokmjdvLjp06CC2bt3q2+/VV18VFStWFNdee60QQojff/9d3HrrrSI5OVkMHjxY3HPPPSI1NVVMnTpVCOG8qVDRYB2Zw/oyjnVlDuvLOLN11bdvX3Hs2DHVMf79919Rv3594XK5xE033SQOHDgQ7x8jLlavXi06duwoqlSpIpKSknzT6wPTEBTn95WjApM9e/aIhg0bio8++si3bf/+/aJmzZrigQceEMeOHRPTpk0TderUEbNmzVL1m3m9XvHcc8+Ju+++W1xxxRXFdnYE68gc1pdxrCtzWF/Gma2rwJvozz//LMqWLSsuuOACsX79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nHXWWVbFS8UK68gc1pdxrCtzWF/Gsa6MY11ZK+rAxOPxICEhwaryFEusI3NYX8axrsxhfRnHujKOdWUtS6YLExEREVnBstWFiYiIiKLFwISIiIgcg4EJEREROQYDEyIiInIMBiZERETkGAxMiIiIyDEYmBBR3HTu3BnDhw+3uxhE5GAMTIjIkZYsWQKXy4XMzEy7i0JEccTAhIiIiByDgQkRxUROTg769++PsmXLonr16pg4caLq+ZkzZ6J169ZITU1Feno6brnlFt8y8bt370aXLl0AABUqVIDL5cLAgQMBSEvNv/jiizjnnHNQqlQptGjRAl988UVcfzYiih0GJkQUE4888ggWL16Mr776CgsWLMCSJUuwYcMG3/N5eXkYN24cfv/9d8ydOxe7du3yBR+1a9fGnDlzAADbt2/H/v378eqrrwIA/ve//2HatGmYOnUqtmzZgoceegi33XYbli5dGvefkYisx7VyiMhyJ0+eRKVKlTBjxgzceOONAIBjx46hVq1auOeeezB58uSg16xbtw4XXXQRsrOzUbZsWSxZsgRdunTB8ePHUb58eQBSK0zlypWxaNEitG/f3vfau+66C6dOncLs2bPj8eMRUQwl2l0AIip+/v77b+Tl5amCh4oVK6Jx48a+x7/99hvGjh2LjRs34tixY/B6vQCAPXv2oFmzZprH3bp1K86cOYPu3burtufl5aFly5Yx+EmIKN4YmBCR5cI1xObk5KBHjx7o0aMHZs6ciSpVqmDPnj3o2bMn8vLydF8nBy/ff/89atasqXouJSUl+oITke0YmBCR5Ro0aICkpCSsXr0aderUAQAcP34cO3bsQKdOnbBt2zYcOXIEzz//PGrXrg0AWL9+veoYycnJAACPx+Pb1qxZM6SkpGDPnj3o1KlTnH4aIoonBiZEZLmyZcti0KBBeOSRR1CpUiVUq1YNY8aMgdstjbevU6cOkpOT8frrr+O+++7D5s2bMW7cONUx6tatC5fLhe+++w5XXHEFSpUqhdTUVIwcORIPPfQQvF4vOnTogKysLKxcuRJly5bFgAED7PhxichCnJVDRDHx0ksvoWPHjrjmmmvQrVs3dOjQAa1atQIAVKlSBR9++CE+//xzNGvWDM8//zxefvll1etr1qyJp59+Go899hiqVauG+++/HwAwbtw4PPnkk5gwYQKaNm2Knj174ttvv0W9evXi/jMSkfU4K4eIiIgcgy0mRERE5BgMTIiIiMgxGJgQERGRYzAwISIiIsdgYEJERESOwcCEiIiIHIOBCRERETkGAxMiIiJyDAYmRERE5BgMTIiIiMgxGJgQERGRY/wfZhIWiDnFgGYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_dew1['normalised'].plot(c='r')\n", "df_dew2['normalised'].plot(c='b')" ] }, { "cell_type": "code", "execution_count": 28, "id": "47627e07-8389-46b1-afe0-b43f87b2ee53", "metadata": {}, "outputs": [], "source": [ "model_config={\n", " 'time_budget': 60, # Total running time in seconds\n", " 'metric': 'r2', #\n", "}" ] }, { "cell_type": "code", "execution_count": 29, "id": "c1dd7338-71cb-40ca-b859-93cbd26ee03f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['rowid', 'd2m', 'blh', 'ssrd', 't2m', 'v10', 'u10', 'sp', 'tp', 'tcc',\n", " 'rh2m', 'date', 'value', 'date_unix', 'day_julian', 'weekday', 'hour',\n", " 'set'],\n", " dtype='object')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1a.columns" ] }, { "cell_type": "code", "execution_count": 30, "id": "aec76f19-285d-4651-b339-05e043b37322", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:32:10 : Training AutoML...\n", "2024-09-24 16:33:08 : Best model is lgbm with best model parameters of {'n_estimators': 527, 'num_leaves': 57, 'min_child_samples': 19, 'learning_rate': 0.10029209493914669, 'log_max_bin': 10, 'colsample_bytree': 0.777659907533841, 'reg_alpha': 5.054157418960246, 'reg_lambda': 0.023089272254781048}\n", "2024-09-24 16:33:09: Normalising the dataset in parallel.\n", "2024-09-24 16:33:09: Predicting using trained model in batches.\n", "2024-09-24 16:33:14: Aggregating 100 predictions...\n" ] } ], "source": [ "df_dew, mod_stats=nm.do_all(df1,value='PM2.5',feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],variables_resample=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],model_config=model_config,n_samples=100)" ] }, { "cell_type": "code", "execution_count": 31, "id": "9925d09c-aecc-4b2f-9aa5-666041363370", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:33:15: Normalising the dataset in parallel.\n", "2024-09-24 16:33:15: Predicting using trained model in batches.\n", "2024-09-24 16:33:28: Aggregating 100 predictions...\n" ] } ], "source": [ "df_dew, mod_stats=nm.do_all(df1a,model1,feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],variables_resample=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],model_config=model_config,n_samples=100)" ] }, { "cell_type": "code", "execution_count": 32, "id": "a791667b-bc86-4254-ad1f-20a94416fbda", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:33:29: Normalising the dataset in parallel.\n", "2024-09-24 16:33:29: Predicting using trained model in batches.\n", "2024-09-24 16:33:42: Aggregating 100 predictions...\n" ] } ], "source": [ "#Resampling from given dataset\n", "df_dew, mod_stats=nm.do_all(df1a,model1,feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],variables_resample=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],weather_df=weather_df,model_config=model_config,n_samples=100)" ] }, { "cell_type": "code", "execution_count": 33, "id": "b7548ead-e299-4d28-b298-0a5391375b8d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:35:15 : Progress: 20.00% (Model 1/5)... ETA: 6.22 minutes\n", "2024-09-24 16:37:17 : Progress: 40.00% (Model 2/5)... ETA: 5.37 minutes\n", "2024-09-24 16:39:04 : Progress: 60.00% (Model 3/5)... ETA: 3.58 minutes\n", "2024-09-24 16:41:10 : Progress: 80.00% (Model 4/5)... ETA: 1.87 minutes\n", "2024-09-24 16:42:49 : Progress: 100.00% (Model 5/5)... ETA: 0.00 seconds\n" ] } ], "source": [ "df_dew, mod_stats=nm.do_all_unc(df1,value='PM2.5',feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],variables_resample=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'],n_samples=100,n_models=5)" ] }, { "cell_type": "code", "execution_count": 34, "id": "2930fc82-ad7e-4ed0-b899-7d0e669e572a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
observednormalised_979812normalised_378829normalised_120727normalised_541475normalised_488292meanstdmedianlower_boundupper_boundweighted
date
2020-01-01 00:00:0058.130.25220526.00728221.47251113.60901013.52121720.9724456.65514221.47251113.52999629.82771320.220786
2020-01-01 01:00:0043.230.71811922.37991322.04346711.97961814.75618420.3754606.57019222.04346712.25727529.88429818.638353
2020-01-01 02:00:0043.030.12000921.62789520.22048713.13191614.39493619.8990486.06052120.22048713.25821829.27079718.202305
2020-01-01 03:00:0042.828.59128121.83656622.88769611.81310012.54411219.5345516.43512621.83656611.88620128.02092218.432641
2020-01-01 04:00:0036.830.39092221.89623221.65347112.11323512.94465219.7997026.72427521.65347112.19637629.54145318.257228
\n", "
" ], "text/plain": [ " observed normalised_979812 normalised_378829 \\\n", "date \n", "2020-01-01 00:00:00 58.1 30.252205 26.007282 \n", "2020-01-01 01:00:00 43.2 30.718119 22.379913 \n", "2020-01-01 02:00:00 43.0 30.120009 21.627895 \n", "2020-01-01 03:00:00 42.8 28.591281 21.836566 \n", "2020-01-01 04:00:00 36.8 30.390922 21.896232 \n", "\n", " normalised_120727 normalised_541475 normalised_488292 \\\n", "date \n", "2020-01-01 00:00:00 21.472511 13.609010 13.521217 \n", "2020-01-01 01:00:00 22.043467 11.979618 14.756184 \n", "2020-01-01 02:00:00 20.220487 13.131916 14.394936 \n", "2020-01-01 03:00:00 22.887696 11.813100 12.544112 \n", "2020-01-01 04:00:00 21.653471 12.113235 12.944652 \n", "\n", " mean std median lower_bound upper_bound \\\n", "date \n", "2020-01-01 00:00:00 20.972445 6.655142 21.472511 13.529996 29.827713 \n", "2020-01-01 01:00:00 20.375460 6.570192 22.043467 12.257275 29.884298 \n", "2020-01-01 02:00:00 19.899048 6.060521 20.220487 13.258218 29.270797 \n", "2020-01-01 03:00:00 19.534551 6.435126 21.836566 11.886201 28.020922 \n", "2020-01-01 04:00:00 19.799702 6.724275 21.653471 12.196376 29.541453 \n", "\n", " weighted \n", "date \n", "2020-01-01 00:00:00 20.220786 \n", "2020-01-01 01:00:00 18.638353 \n", "2020-01-01 02:00:00 18.202305 \n", "2020-01-01 03:00:00 18.432641 \n", "2020-01-01 04:00:00 18.257228 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dew.head()" ] }, { "cell_type": "markdown", "id": "1b46da58-22d2-4ae5-85ef-92fb55094945", "metadata": {}, "source": [ "# Time series decomposition" ] }, { "cell_type": "code", "execution_count": 35, "id": "102f01cf-422b-40ad-b726-1473f6a459d4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:42:49 : Training AutoML...\n", "2024-09-24 16:44:15 : Best model is lgbm with best model parameters of {'n_estimators': 4779, 'num_leaves': 37, 'min_child_samples': 13, 'learning_rate': 0.05353325544814332, 'log_max_bin': 10, 'colsample_bytree': 0.7006661480744041, 'reg_alpha': 3.4963871783049667, 'reg_lambda': 0.12148015741620988}\n", "2024-09-24 16:44:15 : Subtracting base...\n", "2024-09-24 16:44:59 : Subtracting date_unix... ETA: 2.93 minutes\n", "2024-09-24 16:45:41 : Subtracting day_julian... ETA: 2.16 minutes\n", "2024-09-24 16:46:27 : Subtracting weekday... ETA: 1.46 minutes\n", "2024-09-24 16:47:12 : Subtracting hour... ETA: 44.25 seconds\n" ] } ], "source": [ "df_dewca, mod_stats=nm.decom_emi(df1, value='PM2.5',feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'], split_method = 'random', fraction=0.75, n_samples=300)" ] }, { "cell_type": "code", "execution_count": 36, "id": "044de294-bfd1-4955-a96a-ee2107fa3e8e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
observedbasedate_unixday_julianweekdayhourdeweatheredemi_noise
date
2020-01-01 00:00:0058.19.83423218.7628833.6173890.9917520.27132324.3200770.676729
2020-01-01 01:00:0043.29.21136319.5491693.3810270.7952260.42095324.2002350.053860
2020-01-01 02:00:0043.08.74065718.7602584.1927770.800782-0.18755923.149413-0.416846
2020-01-01 03:00:0042.88.86921418.8044963.9599700.529601-0.20811022.797669-0.288289
2020-01-01 04:00:0036.88.18421519.3944843.0386790.7610000.10760422.328479-0.973288
...........................
2020-12-31 19:00:0011.78.62191012.7599900.336607-0.0468390.40649612.920661-0.535593
2020-12-31 20:00:0011.08.74958312.4300590.528524-0.3219910.08607812.314750-0.407920
2020-12-31 21:00:0015.38.95795112.3618140.078852-0.2195800.30422312.325758-0.199552
2020-12-31 22:00:0017.111.15008610.4254340.642186-0.4197700.01365912.6540921.992583
2020-12-31 23:00:0015.28.57954812.4039580.5125010.115038-0.70554411.747998-0.577955
\n", "

6373 rows × 8 columns

\n", "
" ], "text/plain": [ " observed base date_unix day_julian weekday \\\n", "date \n", "2020-01-01 00:00:00 58.1 9.834232 18.762883 3.617389 0.991752 \n", "2020-01-01 01:00:00 43.2 9.211363 19.549169 3.381027 0.795226 \n", "2020-01-01 02:00:00 43.0 8.740657 18.760258 4.192777 0.800782 \n", "2020-01-01 03:00:00 42.8 8.869214 18.804496 3.959970 0.529601 \n", "2020-01-01 04:00:00 36.8 8.184215 19.394484 3.038679 0.761000 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 11.7 8.621910 12.759990 0.336607 -0.046839 \n", "2020-12-31 20:00:00 11.0 8.749583 12.430059 0.528524 -0.321991 \n", "2020-12-31 21:00:00 15.3 8.957951 12.361814 0.078852 -0.219580 \n", "2020-12-31 22:00:00 17.1 11.150086 10.425434 0.642186 -0.419770 \n", "2020-12-31 23:00:00 15.2 8.579548 12.403958 0.512501 0.115038 \n", "\n", " hour deweathered emi_noise \n", "date \n", "2020-01-01 00:00:00 0.271323 24.320077 0.676729 \n", "2020-01-01 01:00:00 0.420953 24.200235 0.053860 \n", "2020-01-01 02:00:00 -0.187559 23.149413 -0.416846 \n", "2020-01-01 03:00:00 -0.208110 22.797669 -0.288289 \n", "2020-01-01 04:00:00 0.107604 22.328479 -0.973288 \n", "... ... ... ... \n", "2020-12-31 19:00:00 0.406496 12.920661 -0.535593 \n", "2020-12-31 20:00:00 0.086078 12.314750 -0.407920 \n", "2020-12-31 21:00:00 0.304223 12.325758 -0.199552 \n", "2020-12-31 22:00:00 0.013659 12.654092 1.992583 \n", "2020-12-31 23:00:00 -0.705544 11.747998 -0.577955 \n", "\n", "[6373 rows x 8 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dewca" ] }, { "cell_type": "code", "execution_count": 37, "id": "1d271967-a59d-4f26-b854-c651dc026d04", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:47:57 : Subtracting base...\n", "2024-09-24 16:48:43 : Subtracting date_unix... ETA: 3.06 minutes\n", "2024-09-24 16:49:30 : Subtracting day_julian... ETA: 2.31 minutes\n", "2024-09-24 16:50:13 : Subtracting weekday... ETA: 1.51 minutes\n", "2024-09-24 16:50:54 : Subtracting hour... ETA: 44.25 seconds\n" ] } ], "source": [ "df_dewca, mod_stats=nm.decom_emi(df1a, model=model1,feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'], n_samples=300)" ] }, { "cell_type": "code", "execution_count": 38, "id": "84280d46-bea9-489a-b7ea-ce82f6b6ff62", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 16:51:38 : Training AutoML...\n", "2024-09-24 16:53:13 : Best model is lgbm with best model parameters of {'n_estimators': 4779, 'num_leaves': 37, 'min_child_samples': 13, 'learning_rate': 0.05353325544814332, 'log_max_bin': 10, 'colsample_bytree': 0.7006661480744041, 'reg_alpha': 3.4963871783049667, 'reg_lambda': 0.12148015741620988}\n", "2024-09-24 16:53:14 : Subtracting deweathered...\n", "2024-09-24 16:53:59 : Subtracting v10... ETA: 7.63 minutes\n", "2024-09-24 16:54:42 : Subtracting blh... ETA: 6.60 minutes\n", "2024-09-24 16:55:24 : Subtracting u10... ETA: 5.79 minutes\n", "2024-09-24 16:56:05 : Subtracting sp... ETA: 4.98 minutes\n", "2024-09-24 16:56:45 : Subtracting rh2m... ETA: 4.22 minutes\n", "2024-09-24 16:57:25 : Subtracting tcc... ETA: 3.49 minutes\n", "2024-09-24 16:58:05 : Subtracting d2m... ETA: 2.78 minutes\n", "2024-09-24 16:58:44 : Subtracting t2m... ETA: 2.07 minutes\n", "2024-09-24 16:59:24 : Subtracting ssrd... ETA: 1.37 minutes\n", "2024-09-24 17:00:06 : Subtracting tp... ETA: 41.25 seconds\n" ] } ], "source": [ "df_dewcb, mod_stats=nm.decom_met(df1, value='PM2.5',feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'], n_samples=300,fraction=0.75, seed=7654321)" ] }, { "cell_type": "code", "execution_count": 39, "id": "82c95777-ad48-4074-83ec-67a72cf832c1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 17:00:49 : Subtracting deweathered...\n", "2024-09-24 17:01:32 : Subtracting v10... ETA: 7.12 minutes\n", "2024-09-24 17:02:15 : Subtracting blh... ETA: 6.50 minutes\n", "2024-09-24 17:03:01 : Subtracting u10... ETA: 5.86 minutes\n", "2024-09-24 17:03:45 : Subtracting sp... ETA: 5.13 minutes\n", "2024-09-24 17:04:29 : Subtracting rh2m... ETA: 4.40 minutes\n", "2024-09-24 17:05:11 : Subtracting tcc... ETA: 3.64 minutes\n", "2024-09-24 17:05:53 : Subtracting d2m... ETA: 2.89 minutes\n", "2024-09-24 17:06:38 : Subtracting t2m... ETA: 2.18 minutes\n", "2024-09-24 17:07:17 : Subtracting ssrd... ETA: 1.44 minutes\n", "2024-09-24 17:07:57 : Subtracting tp... ETA: 42.86 seconds\n" ] } ], "source": [ "df_dewcb, mod_stats=nm.decom_met(df1a, model=model1, feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'], n_samples=300,fraction=0.75, seed=7654321)" ] }, { "cell_type": "code", "execution_count": 40, "id": "a1e517ab-3508-42bd-bf26-14562419573e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
observeddeweatheredv10blhu10sprh2mtccd2mt2mssrdtpmet_noise
date
2020-01-01 00:00:0058.123.7757072.8032042.69081710.53384314.4592226.4520005.0538624.2169875.0031904.7921675.5210031.596199
2020-01-01 01:00:0043.223.7129041.5466274.39480411.79973110.5668541.7696471.2975321.9660142.2956841.5427711.862642-0.930420
2020-01-01 02:00:0043.023.3089071.7401586.84075812.7298848.3397361.4494201.8777522.3217890.919309-0.1138542.106147-0.392609
2020-01-01 03:00:0042.821.8080852.40221710.77771612.7437095.3075921.7295762.2296632.0128810.7852980.3058611.6256490.265997
2020-01-01 04:00:0036.822.1733011.6980968.6121099.5104993.3183361.6948412.5831692.3132380.499432-0.4652111.463167-1.849514
..........................................
2020-12-31 19:00:0011.712.8690700.146833-0.498743-0.4439720.8662220.683517-0.338941-0.219422-0.602156-1.466656-0.560928-0.034524
2020-12-31 20:00:0011.012.0183980.320049-0.056764-0.1133050.9665350.720601-0.261063-0.324155-1.152303-1.581597-0.370613-0.144190
2020-12-31 21:00:0015.312.2317380.397497-0.242102-0.9113110.5891180.786209-0.246796-0.040521-0.713239-1.326826-0.3211444.002425
2020-12-31 22:00:0017.112.5140660.6761434.6880381.570879-1.7795311.1864400.8579971.7156460.982372-0.903092-0.2288620.065919
2020-12-31 23:00:0015.211.7706960.5391065.6285662.067334-2.4266220.4140020.0179311.3268830.882671-0.988648-0.456333-0.216909
\n", "

6373 rows × 13 columns

\n", "
" ], "text/plain": [ " observed deweathered v10 blh u10 \\\n", "date \n", "2020-01-01 00:00:00 58.1 23.775707 2.803204 2.690817 10.533843 \n", "2020-01-01 01:00:00 43.2 23.712904 1.546627 4.394804 11.799731 \n", "2020-01-01 02:00:00 43.0 23.308907 1.740158 6.840758 12.729884 \n", "2020-01-01 03:00:00 42.8 21.808085 2.402217 10.777716 12.743709 \n", "2020-01-01 04:00:00 36.8 22.173301 1.698096 8.612109 9.510499 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 11.7 12.869070 0.146833 -0.498743 -0.443972 \n", "2020-12-31 20:00:00 11.0 12.018398 0.320049 -0.056764 -0.113305 \n", "2020-12-31 21:00:00 15.3 12.231738 0.397497 -0.242102 -0.911311 \n", "2020-12-31 22:00:00 17.1 12.514066 0.676143 4.688038 1.570879 \n", "2020-12-31 23:00:00 15.2 11.770696 0.539106 5.628566 2.067334 \n", "\n", " sp rh2m tcc d2m t2m \\\n", "date \n", "2020-01-01 00:00:00 14.459222 6.452000 5.053862 4.216987 5.003190 \n", "2020-01-01 01:00:00 10.566854 1.769647 1.297532 1.966014 2.295684 \n", "2020-01-01 02:00:00 8.339736 1.449420 1.877752 2.321789 0.919309 \n", "2020-01-01 03:00:00 5.307592 1.729576 2.229663 2.012881 0.785298 \n", "2020-01-01 04:00:00 3.318336 1.694841 2.583169 2.313238 0.499432 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 0.866222 0.683517 -0.338941 -0.219422 -0.602156 \n", "2020-12-31 20:00:00 0.966535 0.720601 -0.261063 -0.324155 -1.152303 \n", "2020-12-31 21:00:00 0.589118 0.786209 -0.246796 -0.040521 -0.713239 \n", "2020-12-31 22:00:00 -1.779531 1.186440 0.857997 1.715646 0.982372 \n", "2020-12-31 23:00:00 -2.426622 0.414002 0.017931 1.326883 0.882671 \n", "\n", " ssrd tp met_noise \n", "date \n", "2020-01-01 00:00:00 4.792167 5.521003 1.596199 \n", "2020-01-01 01:00:00 1.542771 1.862642 -0.930420 \n", "2020-01-01 02:00:00 -0.113854 2.106147 -0.392609 \n", "2020-01-01 03:00:00 0.305861 1.625649 0.265997 \n", "2020-01-01 04:00:00 -0.465211 1.463167 -1.849514 \n", "... ... ... ... \n", "2020-12-31 19:00:00 -1.466656 -0.560928 -0.034524 \n", "2020-12-31 20:00:00 -1.581597 -0.370613 -0.144190 \n", "2020-12-31 21:00:00 -1.326826 -0.321144 4.002425 \n", "2020-12-31 22:00:00 -0.903092 -0.228862 0.065919 \n", "2020-12-31 23:00:00 -0.988648 -0.456333 -0.216909 \n", "\n", "[6373 rows x 13 columns]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dewcb" ] }, { "cell_type": "code", "execution_count": 41, "id": "debd1be9-673b-435f-b4ab-5685da353d14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 17:08:35 : Subtracting base...\n", "2024-09-24 17:09:22 : Subtracting date_unix... ETA: 3.10 minutes\n", "2024-09-24 17:10:09 : Subtracting day_julian... ETA: 2.36 minutes\n", "2024-09-24 17:10:55 : Subtracting weekday... ETA: 1.56 minutes\n", "2024-09-24 17:11:40 : Subtracting hour... ETA: 46.26 seconds\n" ] } ], "source": [ "df_dewca, mod_stats=nm.decom_emi(df1a, model=model1,feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'], n_samples=300)" ] }, { "cell_type": "code", "execution_count": 42, "id": "c29f31d4-e2c9-45cd-aaca-00dd312c3f81", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
observedbasedate_unixday_julianweekdayhourdeweatheredemi_noise
date
2020-01-01 00:00:0058.19.63689018.4715073.9816921.373361-0.15986324.1462010.479505
2020-01-01 01:00:0043.29.56023318.9459203.9626060.950994-0.03119924.2311680.402847
2020-01-01 02:00:0043.09.45761318.4466383.4787601.149818-0.73530122.6401420.300227
2020-01-01 03:00:0042.89.55343517.9884414.4508140.201102-0.43193522.6044720.396050
2020-01-01 04:00:0036.88.25917818.8876833.5799151.171948-0.67673922.064599-0.898208
...........................
2020-12-31 19:00:0011.78.79140512.6195340.570769-0.2821820.27731912.819460-0.365980
2020-12-31 20:00:0011.08.76830512.1256370.4832230.000221-0.06732712.152672-0.389080
2020-12-31 21:00:0015.38.49257712.5434960.2511460.147919-0.08157512.196178-0.664809
2020-12-31 22:00:0017.19.70456112.1252880.186412-0.3485740.02926912.5395700.547175
2020-12-31 23:00:0015.28.27383312.5676190.757832-0.068558-0.98678211.386559-0.883552
\n", "

6373 rows × 8 columns

\n", "
" ], "text/plain": [ " observed base date_unix day_julian weekday \\\n", "date \n", "2020-01-01 00:00:00 58.1 9.636890 18.471507 3.981692 1.373361 \n", "2020-01-01 01:00:00 43.2 9.560233 18.945920 3.962606 0.950994 \n", "2020-01-01 02:00:00 43.0 9.457613 18.446638 3.478760 1.149818 \n", "2020-01-01 03:00:00 42.8 9.553435 17.988441 4.450814 0.201102 \n", "2020-01-01 04:00:00 36.8 8.259178 18.887683 3.579915 1.171948 \n", "... ... ... ... ... ... \n", "2020-12-31 19:00:00 11.7 8.791405 12.619534 0.570769 -0.282182 \n", "2020-12-31 20:00:00 11.0 8.768305 12.125637 0.483223 0.000221 \n", "2020-12-31 21:00:00 15.3 8.492577 12.543496 0.251146 0.147919 \n", "2020-12-31 22:00:00 17.1 9.704561 12.125288 0.186412 -0.348574 \n", "2020-12-31 23:00:00 15.2 8.273833 12.567619 0.757832 -0.068558 \n", "\n", " hour deweathered emi_noise \n", "date \n", "2020-01-01 00:00:00 -0.159863 24.146201 0.479505 \n", "2020-01-01 01:00:00 -0.031199 24.231168 0.402847 \n", "2020-01-01 02:00:00 -0.735301 22.640142 0.300227 \n", "2020-01-01 03:00:00 -0.431935 22.604472 0.396050 \n", "2020-01-01 04:00:00 -0.676739 22.064599 -0.898208 \n", "... ... ... ... \n", "2020-12-31 19:00:00 0.277319 12.819460 -0.365980 \n", "2020-12-31 20:00:00 -0.067327 12.152672 -0.389080 \n", "2020-12-31 21:00:00 -0.081575 12.196178 -0.664809 \n", "2020-12-31 22:00:00 0.029269 12.539570 0.547175 \n", "2020-12-31 23:00:00 -0.986782 11.386559 -0.883552 \n", "\n", "[6373 rows x 8 columns]" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dewca" ] }, { "cell_type": "markdown", "id": "790ee6e3-7591-4ee4-b27a-f2820998089e", "metadata": {}, "source": [ "# Rolling weather normalisation" ] }, { "cell_type": "code", "execution_count": 43, "id": "154772c7-0e45-4136-866d-ebd73628e71e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-09-24 17:12:28: Rolling window 0 from 2020-01-01 to 2020-01-14\n", "2024-09-24 17:12:37: Rolling window 10 from 2020-03-03 to 2020-03-16\n", "2024-09-24 17:12:47: Rolling window 20 from 2020-05-02 to 2020-05-15\n", "2024-09-24 17:12:55: Rolling window 30 from 2020-07-01 to 2020-07-14\n", "2024-09-24 17:13:02: Rolling window 40 from 2020-09-17 to 2020-09-30\n" ] } ], "source": [ "df_dewc1, mod_stats=nm.rolling(df1a, model1,feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour'],variables_resample=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'], n_samples=100,window_days=14, rolling_every=7)" ] }, { "cell_type": "code", "execution_count": 44, "id": "4528273c-379c-4abd-a0c4-e08f3be12b97", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
observedrolling_0rolling_1rolling_2rolling_3rolling_4rolling_5rolling_6rolling_7rolling_8...rolling_35rolling_36rolling_37rolling_38rolling_39rolling_40rolling_41rolling_42rolling_43rolling_44
date
2020-01-01 00:00:0058.120.207316NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2020-01-01 01:00:0043.220.131948NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2020-01-01 02:00:0043.019.247751NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2020-01-01 03:00:0042.819.310005NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2020-01-01 04:00:0036.820.072632NaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

5 rows × 46 columns

\n", "
" ], "text/plain": [ " observed rolling_0 rolling_1 rolling_2 rolling_3 \\\n", "date \n", "2020-01-01 00:00:00 58.1 20.207316 NaN NaN NaN \n", "2020-01-01 01:00:00 43.2 20.131948 NaN NaN NaN \n", "2020-01-01 02:00:00 43.0 19.247751 NaN NaN NaN \n", "2020-01-01 03:00:00 42.8 19.310005 NaN NaN NaN \n", "2020-01-01 04:00:00 36.8 20.072632 NaN NaN NaN \n", "\n", " rolling_4 rolling_5 rolling_6 rolling_7 rolling_8 \\\n", "date \n", "2020-01-01 00:00:00 NaN NaN NaN NaN NaN \n", "2020-01-01 01:00:00 NaN NaN NaN NaN NaN \n", "2020-01-01 02:00:00 NaN NaN NaN NaN NaN \n", "2020-01-01 03:00:00 NaN NaN NaN NaN NaN \n", "2020-01-01 04:00:00 NaN NaN NaN NaN NaN \n", "\n", " ... rolling_35 rolling_36 rolling_37 rolling_38 \\\n", "date ... \n", "2020-01-01 00:00:00 ... NaN NaN NaN NaN \n", "2020-01-01 01:00:00 ... NaN NaN NaN NaN \n", "2020-01-01 02:00:00 ... NaN NaN NaN NaN \n", "2020-01-01 03:00:00 ... NaN NaN NaN NaN \n", "2020-01-01 04:00:00 ... NaN NaN NaN NaN \n", "\n", " rolling_39 rolling_40 rolling_41 rolling_42 \\\n", "date \n", "2020-01-01 00:00:00 NaN NaN NaN NaN \n", "2020-01-01 01:00:00 NaN NaN NaN NaN \n", "2020-01-01 02:00:00 NaN NaN NaN NaN \n", "2020-01-01 03:00:00 NaN NaN NaN NaN \n", "2020-01-01 04:00:00 NaN NaN NaN NaN \n", "\n", " rolling_43 rolling_44 \n", "date \n", "2020-01-01 00:00:00 NaN NaN \n", "2020-01-01 01:00:00 NaN NaN \n", "2020-01-01 02:00:00 NaN NaN \n", "2020-01-01 03:00:00 NaN NaN \n", "2020-01-01 04:00:00 NaN NaN \n", "\n", "[5 rows x 46 columns]" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_dewc1.head()" ] }, { "cell_type": "code", "execution_count": 45, "id": "01ed8442-3a22-4413-9c74-929137d9324a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_dewc1.iloc[:,1:].plot()" ] }, { "cell_type": "markdown", "id": "9bc1e92e-91d2-47af-807e-85089d85da8d", "metadata": {}, "source": [ "# Partial Dependence Plots" ] }, { "cell_type": "code", "execution_count": 46, "id": "5207c803-dc66-42b9-a6cc-90052b13d660", "metadata": {}, "outputs": [], "source": [ "df1a=nm.prepare_data(df1, value='PM2.5', feature_names=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m'], split_method='random', fraction=0.75, seed=7654321)" ] }, { "cell_type": "code", "execution_count": 47, "id": "b8430909-5ad7-4559-a776-0dc91f927899", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rowidd2mblhssrdt2mv10u10sptptccrh2mdatevaluedate_unixday_julianweekdayhourset
00277.183465384.209053-1.164153e-10278.3947251.545010-2.720528102252.3033120.0000080.65095891.8841302020-01-01 00:00:0058.11.577837e+09130training
11276.695430353.220263-1.164153e-10277.7728991.282742-2.308789102211.1686360.0000020.60369992.7158772020-01-01 01:00:0043.21.577840e+09131training
22276.505662255.911846-1.164153e-10277.4634190.758730-2.216471102174.8559670.0000050.71037893.4855602020-01-01 02:00:0043.01.577844e+09132testing
33276.412816191.375560-1.164153e-10277.3058130.509013-1.928623102166.7864850.0000050.83776593.9063632020-01-01 03:00:0042.81.577848e+09133training
44276.553051151.780210-1.164153e-10277.4789410.607069-1.700043102142.5780390.0000030.81910393.6968782020-01-01 04:00:0036.81.577851e+09134testing
.........................................................
63686368272.197565476.945688-5.820766e-11273.557442-1.9451951.38093999902.5064130.0000000.91814990.5829792020-12-31 19:00:0011.71.609441e+09366419training
63696369272.171041486.665851-5.820766e-11273.629146-2.1027320.98792599947.6259090.0000000.83963989.9399082020-12-31 20:00:0011.01.609445e+09366420training
63706370272.087408489.355002-5.820766e-11273.470592-1.9336680.681543100000.2155200.0000000.73935490.4221882020-12-31 21:00:0015.31.609448e+09366421testing
63716371272.23531940.714872-5.820766e-11272.926062-0.5838161.020793100042.8449780.0000000.64375395.0886772020-12-31 22:00:0017.11.609452e+09366422training
63726372272.02097955.617254-5.820766e-11272.681367-0.3775110.959517100053.6019440.0000000.54940395.2906732020-12-31 23:00:0015.21.609456e+09366423training
\n", "

6373 rows × 18 columns

\n", "
" ], "text/plain": [ " rowid d2m blh ssrd t2m v10 \\\n", "0 0 277.183465 384.209053 -1.164153e-10 278.394725 1.545010 \n", "1 1 276.695430 353.220263 -1.164153e-10 277.772899 1.282742 \n", "2 2 276.505662 255.911846 -1.164153e-10 277.463419 0.758730 \n", "3 3 276.412816 191.375560 -1.164153e-10 277.305813 0.509013 \n", "4 4 276.553051 151.780210 -1.164153e-10 277.478941 0.607069 \n", "... ... ... ... ... ... ... \n", "6368 6368 272.197565 476.945688 -5.820766e-11 273.557442 -1.945195 \n", "6369 6369 272.171041 486.665851 -5.820766e-11 273.629146 -2.102732 \n", "6370 6370 272.087408 489.355002 -5.820766e-11 273.470592 -1.933668 \n", "6371 6371 272.235319 40.714872 -5.820766e-11 272.926062 -0.583816 \n", "6372 6372 272.020979 55.617254 -5.820766e-11 272.681367 -0.377511 \n", "\n", " u10 sp tp tcc rh2m \\\n", "0 -2.720528 102252.303312 0.000008 0.650958 91.884130 \n", "1 -2.308789 102211.168636 0.000002 0.603699 92.715877 \n", "2 -2.216471 102174.855967 0.000005 0.710378 93.485560 \n", "3 -1.928623 102166.786485 0.000005 0.837765 93.906363 \n", "4 -1.700043 102142.578039 0.000003 0.819103 93.696878 \n", "... ... ... ... ... ... \n", "6368 1.380939 99902.506413 0.000000 0.918149 90.582979 \n", "6369 0.987925 99947.625909 0.000000 0.839639 89.939908 \n", "6370 0.681543 100000.215520 0.000000 0.739354 90.422188 \n", "6371 1.020793 100042.844978 0.000000 0.643753 95.088677 \n", "6372 0.959517 100053.601944 0.000000 0.549403 95.290673 \n", "\n", " date value date_unix day_julian weekday hour \\\n", "0 2020-01-01 00:00:00 58.1 1.577837e+09 1 3 0 \n", "1 2020-01-01 01:00:00 43.2 1.577840e+09 1 3 1 \n", "2 2020-01-01 02:00:00 43.0 1.577844e+09 1 3 2 \n", "3 2020-01-01 03:00:00 42.8 1.577848e+09 1 3 3 \n", "4 2020-01-01 04:00:00 36.8 1.577851e+09 1 3 4 \n", "... ... ... ... ... ... ... \n", "6368 2020-12-31 19:00:00 11.7 1.609441e+09 366 4 19 \n", "6369 2020-12-31 20:00:00 11.0 1.609445e+09 366 4 20 \n", "6370 2020-12-31 21:00:00 15.3 1.609448e+09 366 4 21 \n", "6371 2020-12-31 22:00:00 17.1 1.609452e+09 366 4 22 \n", "6372 2020-12-31 23:00:00 15.2 1.609456e+09 366 4 23 \n", "\n", " set \n", "0 training \n", "1 training \n", "2 testing \n", "3 training \n", "4 testing \n", "... ... \n", "6368 training \n", "6369 training \n", "6370 testing \n", "6371 training \n", "6372 training \n", "\n", "[6373 rows x 18 columns]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1a" ] }, { "cell_type": "code", "execution_count": 49, "id": "40aad83c-de9c-4dfc-a0b0-7ba82b9a55dc", "metadata": {}, "outputs": [], "source": [ "all_features=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour']\n", "pdp_value=nm.pdp(df1a,model1,var_list=['blh'])" ] }, { "cell_type": "code", "execution_count": 50, "id": "2886287e-a55f-48d0-9b29-f33c678d6798", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevaluepdp_meanpdp_std
0blh73.41591115.7424618.358786
1blh88.91732015.3598398.271418
2blh104.41873014.9667888.354652
3blh119.92014015.5823388.428540
4blh135.42154913.6995157.471944
...............
95blh1546.0498226.9408564.955734
96blh1561.5512316.9550894.957737
97blh1577.0526416.9606974.952725
98blh1592.5540517.1322664.943666
99blh1608.0554607.1267664.943877
\n", "

100 rows × 4 columns

\n", "
" ], "text/plain": [ " variable value pdp_mean pdp_std\n", "0 blh 73.415911 15.742461 8.358786\n", "1 blh 88.917320 15.359839 8.271418\n", "2 blh 104.418730 14.966788 8.354652\n", "3 blh 119.920140 15.582338 8.428540\n", "4 blh 135.421549 13.699515 7.471944\n", ".. ... ... ... ...\n", "95 blh 1546.049822 6.940856 4.955734\n", "96 blh 1561.551231 6.955089 4.957737\n", "97 blh 1577.052641 6.960697 4.952725\n", "98 blh 1592.554051 7.132266 4.943666\n", "99 blh 1608.055460 7.126766 4.943877\n", "\n", "[100 rows x 4 columns]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdp_value" ] }, { "cell_type": "code", "execution_count": 51, "id": "973bf1f1-811a-4e67-99b0-9b8911ae6a7a", "metadata": {}, "outputs": [], "source": [ "pdp_value=nm.pdp(df1a,model1,var_list=['blh','t2m'])" ] }, { "cell_type": "code", "execution_count": 52, "id": "439297bb-defe-45ef-94da-9680bb3ae0d8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevaluepdp_meanpdp_std
0blh73.41591115.7424618.358786
1blh88.91732015.3598398.271418
2blh104.41873014.9667888.354652
3blh119.92014015.5823388.428540
4blh135.42154913.6995157.471944
...............
195t2m294.51846810.5448357.865555
196t2m294.71587510.5324807.856032
197t2m294.91328110.5656107.847180
198t2m295.11068810.5279267.840150
199t2m295.30809510.5155717.841594
\n", "

200 rows × 4 columns

\n", "
" ], "text/plain": [ " variable value pdp_mean pdp_std\n", "0 blh 73.415911 15.742461 8.358786\n", "1 blh 88.917320 15.359839 8.271418\n", "2 blh 104.418730 14.966788 8.354652\n", "3 blh 119.920140 15.582338 8.428540\n", "4 blh 135.421549 13.699515 7.471944\n", ".. ... ... ... ...\n", "195 t2m 294.518468 10.544835 7.865555\n", "196 t2m 294.715875 10.532480 7.856032\n", "197 t2m 294.913281 10.565610 7.847180\n", "198 t2m 295.110688 10.527926 7.840150\n", "199 t2m 295.308095 10.515571 7.841594\n", "\n", "[200 rows x 4 columns]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdp_value" ] }, { "cell_type": "code", "execution_count": 53, "id": "1a040a23-afad-4f18-bc6c-50904298056a", "metadata": {}, "outputs": [], "source": [ "all_features=['u10', 'v10', 'd2m', 't2m',\n", " 'blh', 'sp', 'ssrd', 'tcc', 'tp', 'rh2m','date_unix', 'day_julian', 'weekday',\n", " 'hour']\n", "pdp_value=nm.pdp(df1a,model1)" ] }, { "cell_type": "code", "execution_count": 54, "id": "d551a84a-2768-4b4a-99a5-6e872bbc2c05", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevaluepdp_meanpdp_std
0weekday1.08.8085687.348096
1weekday2.08.9751317.397715
2weekday3.09.5191267.803357
3weekday4.09.1789897.852847
4weekday5.09.7562077.741670
...............
1226hour19.09.6482697.468077
1227hour20.09.5833087.474737
1228hour21.09.2755917.467640
1229hour22.09.0894837.493595
1230hour23.08.7338087.531601
\n", "

1231 rows × 4 columns

\n", "
" ], "text/plain": [ " variable value pdp_mean pdp_std\n", "0 weekday 1.0 8.808568 7.348096\n", "1 weekday 2.0 8.975131 7.397715\n", "2 weekday 3.0 9.519126 7.803357\n", "3 weekday 4.0 9.178989 7.852847\n", "4 weekday 5.0 9.756207 7.741670\n", "... ... ... ... ...\n", "1226 hour 19.0 9.648269 7.468077\n", "1227 hour 20.0 9.583308 7.474737\n", "1228 hour 21.0 9.275591 7.467640\n", "1229 hour 22.0 9.089483 7.493595\n", "1230 hour 23.0 8.733808 7.531601\n", "\n", "[1231 rows x 4 columns]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdp_value" ] }, { "cell_type": "code", "execution_count": null, "id": "4ea37520-7619-4cd5-a7b7-f2442990c9e4", "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.12.2" } }, "nbformat": 4, "nbformat_minor": 5 }