forth commit

This commit is contained in:
Bairly 2025-03-24 17:31:14 +08:00
parent 1f5b95beb0
commit 7c7137380c

View File

@ -16,8 +16,8 @@
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-03-24T08:52:34.979118Z",
"start_time": "2025-03-24T08:52:34.974080Z"
"end_time": "2025-03-24T09:29:32.889415Z",
"start_time": "2025-03-24T09:29:32.882312Z"
}
},
"cell_type": "code",
@ -53,13 +53,13 @@
],
"id": "initial_id",
"outputs": [],
"execution_count": 54
"execution_count": 48
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:35.333501Z",
"start_time": "2025-03-24T08:52:34.979118Z"
"end_time": "2025-03-24T09:29:33.256188Z",
"start_time": "2025-03-24T09:29:32.892428Z"
}
},
"cell_type": "code",
@ -80,18 +80,218 @@
" plt.rcParams['font.family'] = font_prop.get_name()\n",
" except:\n",
" print(f\"警告:{font_path} 字体加载失败,请检查路径有效性\")\n",
"# 读取数据\n",
"data=pd.read_excel('北京市空气质量指数与气象数据.xlsx')\n",
"data.head()\n",
"\n",
"try:\n",
" os.mkdir('./images')\n",
"except FileExistsError:\n",
" pass"
" pass\n",
"#读取数据\n",
"data=pd.read_excel('北京市空气质量指数与气象数据.xlsx')\n",
"data.head()"
],
"id": "92ea7ba1218799cd",
"outputs": [],
"execution_count": 55
"outputs": [
{
"data": {
"text/plain": [
" date hour AQI CO NO2 O3 PM10 \\\n",
"0 2022-11-01 2 18.371429 0.211429 23.771429 29.057143 13.257143 \n",
"1 2022-11-01 5 21.914286 0.180000 26.571429 20.142857 18.914286 \n",
"2 2022-11-01 8 28.628571 0.311429 30.028571 14.285714 27.942857 \n",
"3 2022-11-01 11 19.000000 0.237143 17.971429 40.529412 17.852941 \n",
"4 2022-11-01 14 21.742857 0.252941 15.588235 53.617647 20.941176 \n",
"\n",
" PM2.5 SO2 T ... P Pa U Ff Tn Tx VV Td \\\n",
"0 3.057143 2.628571 6.7 ... 770.5 0.1 36.0 1.0 5.3 17.3 30.0 -7.3 \n",
"1 3.771429 2.542857 2.0 ... 770.8 0.3 62.0 0.0 1.9 17.3 7.0 -4.5 \n",
"2 6.857143 2.400000 6.6 ... 771.7 0.9 56.0 0.0 0.9 17.3 10.0 -7.1 \n",
"3 5.914286 2.176471 13.5 ... 771.3 -0.4 19.0 2.0 0.9 17.3 30.0 -9.7 \n",
"4 6.742857 2.000000 15.7 ... 768.6 -2.7 19.0 2.0 0.9 17.3 30.0 -7.9 \n",
"\n",
" RRR tR \n",
"0 0.0 12 \n",
"1 0.0 12 \n",
"2 0.0 12 \n",
"3 0.0 12 \n",
"4 0.0 12 \n",
"\n",
"[5 rows x 21 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" <th>AQI</th>\n",
" <th>CO</th>\n",
" <th>NO2</th>\n",
" <th>O3</th>\n",
" <th>PM10</th>\n",
" <th>PM2.5</th>\n",
" <th>SO2</th>\n",
" <th>T</th>\n",
" <th>...</th>\n",
" <th>P</th>\n",
" <th>Pa</th>\n",
" <th>U</th>\n",
" <th>Ff</th>\n",
" <th>Tn</th>\n",
" <th>Tx</th>\n",
" <th>VV</th>\n",
" <th>Td</th>\n",
" <th>RRR</th>\n",
" <th>tR</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2022-11-01</td>\n",
" <td>2</td>\n",
" <td>18.371429</td>\n",
" <td>0.211429</td>\n",
" <td>23.771429</td>\n",
" <td>29.057143</td>\n",
" <td>13.257143</td>\n",
" <td>3.057143</td>\n",
" <td>2.628571</td>\n",
" <td>6.7</td>\n",
" <td>...</td>\n",
" <td>770.5</td>\n",
" <td>0.1</td>\n",
" <td>36.0</td>\n",
" <td>1.0</td>\n",
" <td>5.3</td>\n",
" <td>17.3</td>\n",
" <td>30.0</td>\n",
" <td>-7.3</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2022-11-01</td>\n",
" <td>5</td>\n",
" <td>21.914286</td>\n",
" <td>0.180000</td>\n",
" <td>26.571429</td>\n",
" <td>20.142857</td>\n",
" <td>18.914286</td>\n",
" <td>3.771429</td>\n",
" <td>2.542857</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>770.8</td>\n",
" <td>0.3</td>\n",
" <td>62.0</td>\n",
" <td>0.0</td>\n",
" <td>1.9</td>\n",
" <td>17.3</td>\n",
" <td>7.0</td>\n",
" <td>-4.5</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2022-11-01</td>\n",
" <td>8</td>\n",
" <td>28.628571</td>\n",
" <td>0.311429</td>\n",
" <td>30.028571</td>\n",
" <td>14.285714</td>\n",
" <td>27.942857</td>\n",
" <td>6.857143</td>\n",
" <td>2.400000</td>\n",
" <td>6.6</td>\n",
" <td>...</td>\n",
" <td>771.7</td>\n",
" <td>0.9</td>\n",
" <td>56.0</td>\n",
" <td>0.0</td>\n",
" <td>0.9</td>\n",
" <td>17.3</td>\n",
" <td>10.0</td>\n",
" <td>-7.1</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2022-11-01</td>\n",
" <td>11</td>\n",
" <td>19.000000</td>\n",
" <td>0.237143</td>\n",
" <td>17.971429</td>\n",
" <td>40.529412</td>\n",
" <td>17.852941</td>\n",
" <td>5.914286</td>\n",
" <td>2.176471</td>\n",
" <td>13.5</td>\n",
" <td>...</td>\n",
" <td>771.3</td>\n",
" <td>-0.4</td>\n",
" <td>19.0</td>\n",
" <td>2.0</td>\n",
" <td>0.9</td>\n",
" <td>17.3</td>\n",
" <td>30.0</td>\n",
" <td>-9.7</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2022-11-01</td>\n",
" <td>14</td>\n",
" <td>21.742857</td>\n",
" <td>0.252941</td>\n",
" <td>15.588235</td>\n",
" <td>53.617647</td>\n",
" <td>20.941176</td>\n",
" <td>6.742857</td>\n",
" <td>2.000000</td>\n",
" <td>15.7</td>\n",
" <td>...</td>\n",
" <td>768.6</td>\n",
" <td>-2.7</td>\n",
" <td>19.0</td>\n",
" <td>2.0</td>\n",
" <td>0.9</td>\n",
" <td>17.3</td>\n",
" <td>30.0</td>\n",
" <td>-7.9</td>\n",
" <td>0.0</td>\n",
" <td>12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 21 columns</p>\n",
"</div>"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 49
},
{
"metadata": {},
@ -105,8 +305,8 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:35.402673Z",
"start_time": "2025-03-24T08:52:35.388099Z"
"end_time": "2025-03-24T09:29:33.295495Z",
"start_time": "2025-03-24T09:29:33.282885Z"
}
},
"cell_type": "code",
@ -120,7 +320,7 @@
"indicators = ['AQI', 'PM2.5', 'PM10', 'CO', 'NO2', 'O3','SO2']\n",
"colors = ['#2d87bb', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf', '#1f77b4', '#ffbb78', '#98df8a', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf', '#1f77b4', '#ffbb78', '#98df8a', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf', '#1f77b4', '#ffbb78', '#98df8a', '#d62728',]\n",
"\n",
"normalized = (hourly_data[indicators] - hourly_data[indicators].mean(axis=0)) / hourly_data[indicators].std(axis=0)\n"
"normalized = (hourly_data[indicators] - hourly_data[indicators].mean(axis=0)) / hourly_data[indicators].std(axis=0)"
],
"id": "118b1b48e798a7ba",
"outputs": [
@ -134,13 +334,13 @@
"output_type": "display_data"
}
],
"execution_count": 56
"execution_count": 50
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:37.573757Z",
"start_time": "2025-03-24T08:52:35.462160Z"
"end_time": "2025-03-24T09:29:35.233918Z",
"start_time": "2025-03-24T09:29:33.325526Z"
}
},
"cell_type": "code",
@ -189,13 +389,13 @@
"output_type": "display_data"
}
],
"execution_count": 57
"execution_count": 51
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:42.599194Z",
"start_time": "2025-03-24T08:52:37.631367Z"
"end_time": "2025-03-24T09:29:40.302614Z",
"start_time": "2025-03-24T09:29:35.234940Z"
}
},
"cell_type": "code",
@ -310,7 +510,7 @@
"output_type": "display_data"
}
],
"execution_count": 58
"execution_count": 52
},
{
"metadata": {},
@ -326,8 +526,8 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:43.683653Z",
"start_time": "2025-03-24T08:52:42.659596Z"
"end_time": "2025-03-24T09:29:41.397475Z",
"start_time": "2025-03-24T09:29:40.304595Z"
}
},
"cell_type": "code",
@ -350,13 +550,13 @@
"output_type": "display_data"
}
],
"execution_count": 59
"execution_count": 53
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:44.613944Z",
"start_time": "2025-03-24T08:52:43.739907Z"
"end_time": "2025-03-24T09:29:42.305851Z",
"start_time": "2025-03-24T09:29:41.400536Z"
}
},
"cell_type": "code",
@ -485,7 +685,7 @@
"output_type": "display_data"
}
],
"execution_count": 60
"execution_count": 54
},
{
"metadata": {},
@ -499,22 +699,22 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:45.132946Z",
"start_time": "2025-03-24T08:52:44.775009Z"
"end_time": "2025-03-24T09:29:42.661368Z",
"start_time": "2025-03-24T09:29:42.305851Z"
}
},
"cell_type": "code",
"source": [
"#重新读取数据\n",
"data=pd.read_excel('北京市空气质量指数与气象数据.xlsx')\n",
"# 合并 date 和 hour 为新的 data_hour 列\n",
"data['data_hour'] = pd.to_datetime(data['date']) + pd.to_timedelta(data['hour'], unit='h')\n",
"# 合并 date 和 hour 为新的 date_hour 列\n",
"data['date_hour'] = pd.to_datetime(data['date']) + pd.to_timedelta(data['hour'], unit='h')\n",
"# 设置 data_hour 为索引列\n",
"data = data[['data_hour', 'AQI']].set_index('data_hour') # 仅保留时间和AQI"
"data = data[['date_hour','date','hour', 'AQI']].set_index('date_hour') # 仅保留时间和AQI"
],
"id": "d1bdac1e4e1562f2",
"outputs": [],
"execution_count": 61
"execution_count": 55
},
{
"metadata": {},
@ -525,8 +725,8 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:46.248860Z",
"start_time": "2025-03-24T08:52:45.190173Z"
"end_time": "2025-03-24T09:29:43.715506Z",
"start_time": "2025-03-24T09:29:42.661368Z"
}
},
"cell_type": "code",
@ -599,7 +799,7 @@
]
}
],
"execution_count": 62
"execution_count": 56
},
{
"metadata": {},
@ -610,17 +810,18 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:52:46.324908Z",
"start_time": "2025-03-24T08:52:46.305955Z"
"end_time": "2025-03-24T09:29:43.741321Z",
"start_time": "2025-03-24T09:29:43.717328Z"
}
},
"cell_type": "code",
"source": [
"\"\"\"\n",
"该模型在假设不考虑测试集其他指标的情况下仅使用AQI数据对未来AQI进行<单步预测>即每次预测都是根据之前时间点的真实AQI值进行的。\n",
"整体运行时间约为20s请耐心等待。\n",
"整体运行时间约为25s请耐心等待。\n",
"\"\"\"\n",
"#特征工程\n",
"data=data[['AQI']]\n",
"data_processed = data.copy()\n",
"\n",
"#时间分解特征\n",
@ -652,13 +853,13 @@
],
"id": "66f104e110aba36",
"outputs": [],
"execution_count": 63
"execution_count": 57
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:53:09.696324Z",
"start_time": "2025-03-24T08:52:46.375978Z"
"end_time": "2025-03-24T09:30:07.406880Z",
"start_time": "2025-03-24T09:29:43.754467Z"
}
},
"cell_type": "code",
@ -709,15 +910,15 @@
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=...\n",
" 'learning_rate': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B4343E00>,\n",
" 'max_depth': <scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000002D1ACAE9E20>,\n",
" 'learning_rate': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E8657920C0>,\n",
" 'max_depth': <scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000001E86E630FE0>,\n",
" 'n_estimators': [100, 200, 300],\n",
" 'subsample': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B224B620>},\n",
" 'subsample': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E86E037200>},\n",
" random_state=42, scoring='neg_mean_absolute_error',\n",
" verbose=1)"
],
"text/html": [
"<style>#sk-container-id-9 {\n",
"<style>#sk-container-id-2 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: black;\n",
" --sklearn-color-line: gray;\n",
@ -747,15 +948,15 @@
" }\n",
"}\n",
"\n",
"#sk-container-id-9 {\n",
"#sk-container-id-2 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-9 pre {\n",
"#sk-container-id-2 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-9 input.sk-hidden--visually {\n",
"#sk-container-id-2 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
@ -767,7 +968,7 @@
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-dashed-wrapped {\n",
"#sk-container-id-2 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
@ -775,7 +976,7 @@
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-container {\n",
"#sk-container-id-2 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
@ -785,7 +986,7 @@
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-text-repr-fallback {\n",
"#sk-container-id-2 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
@ -801,14 +1002,14 @@
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-9 div.sk-parallel-item::after {\n",
"#sk-container-id-2 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-parallel {\n",
"#sk-container-id-2 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
@ -816,28 +1017,28 @@
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-parallel-item {\n",
"#sk-container-id-2 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-parallel-item:first-child::after {\n",
"#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-parallel-item:last-child::after {\n",
"#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-parallel-item:only-child::after {\n",
"#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-9 div.sk-serial {\n",
"#sk-container-id-2 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
@ -855,14 +1056,14 @@
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-9 div.sk-toggleable {\n",
"#sk-container-id-2 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-9 label.sk-toggleable__label {\n",
"#sk-container-id-2 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: block;\n",
" width: 100%;\n",
@ -872,7 +1073,7 @@
" text-align: center;\n",
"}\n",
"\n",
"#sk-container-id-9 label.sk-toggleable__label-arrow:before {\n",
"#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
@ -880,13 +1081,13 @@
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {\n",
"#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-9 div.sk-toggleable__content {\n",
"#sk-container-id-2 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
@ -895,12 +1096,12 @@
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-toggleable__content.fitted {\n",
"#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-toggleable__content pre {\n",
"#sk-container-id-2 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
@ -908,79 +1109,79 @@
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-toggleable__content.fitted pre {\n",
"#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
"#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
"#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
"#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
"#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
"#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
"#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-9 div.sk-label label {\n",
"#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-2 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {\n",
"#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-9 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
"#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-9 div.sk-label label {\n",
"#sk-container-id-2 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-label-container {\n",
"#sk-container-id-2 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-9 div.sk-estimator {\n",
"#sk-container-id-2 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
@ -990,18 +1191,18 @@
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-estimator.fitted {\n",
"#sk-container-id-2 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-9 div.sk-estimator:hover {\n",
"#sk-container-id-2 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-9 div.sk-estimator.fitted:hover {\n",
"#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
@ -1088,7 +1289,7 @@
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-9 a.estimator_doc_link {\n",
"#sk-container-id-2 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
@ -1103,25 +1304,25 @@
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-9 a.estimator_doc_link.fitted {\n",
"#sk-container-id-2 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-9 a.estimator_doc_link:hover {\n",
"#sk-container-id-2 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-9 a.estimator_doc_link.fitted:hover {\n",
"#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomizedSearchCV(cv=3,\n",
"</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomizedSearchCV(cv=3,\n",
" estimator=XGBRegressor(base_score=None, booster=None,\n",
" callbacks=None,\n",
" colsample_bylevel=None,\n",
@ -1134,12 +1335,12 @@
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=...\n",
" &#x27;learning_rate&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B4343E00&gt;,\n",
" &#x27;max_depth&#x27;: &lt;scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000002D1ACAE9E20&gt;,\n",
" &#x27;learning_rate&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E8657920C0&gt;,\n",
" &#x27;max_depth&#x27;: &lt;scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000001E86E630FE0&gt;,\n",
" &#x27;n_estimators&#x27;: [100, 200, 300],\n",
" &#x27;subsample&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B224B620&gt;},\n",
" &#x27;subsample&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E86E037200&gt;},\n",
" random_state=42, scoring=&#x27;neg_mean_absolute_error&#x27;,\n",
" verbose=1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-25\" type=\"checkbox\" ><label for=\"sk-estimator-id-25\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;RandomizedSearchCV<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.model_selection.RandomizedSearchCV.html\">?<span>Documentation for RandomizedSearchCV</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomizedSearchCV(cv=3,\n",
" verbose=1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;RandomizedSearchCV<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.model_selection.RandomizedSearchCV.html\">?<span>Documentation for RandomizedSearchCV</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomizedSearchCV(cv=3,\n",
" estimator=XGBRegressor(base_score=None, booster=None,\n",
" callbacks=None,\n",
" colsample_bylevel=None,\n",
@ -1152,12 +1353,12 @@
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=...\n",
" &#x27;learning_rate&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B4343E00&gt;,\n",
" &#x27;max_depth&#x27;: &lt;scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000002D1ACAE9E20&gt;,\n",
" &#x27;learning_rate&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E8657920C0&gt;,\n",
" &#x27;max_depth&#x27;: &lt;scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x000001E86E630FE0&gt;,\n",
" &#x27;n_estimators&#x27;: [100, 200, 300],\n",
" &#x27;subsample&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000002D1B224B620&gt;},\n",
" &#x27;subsample&#x27;: &lt;scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001E86E037200&gt;},\n",
" random_state=42, scoring=&#x27;neg_mean_absolute_error&#x27;,\n",
" verbose=1)</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-26\" type=\"checkbox\" ><label for=\"sk-estimator-id-26\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">best_estimator_: XGBRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>XGBRegressor(base_score=None, booster=None, callbacks=None,\n",
" verbose=1)</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">best_estimator_: XGBRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>XGBRegressor(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=0.9826605267054558, device=None,\n",
" early_stopping_rounds=None, enable_categorical=False,\n",
@ -1168,7 +1369,7 @@
" max_delta_step=None, max_depth=6, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" multi_strategy=None, n_estimators=100, n_jobs=-1,\n",
" num_parallel_tree=None, random_state=42, ...)</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-27\" type=\"checkbox\" ><label for=\"sk-estimator-id-27\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">XGBRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>XGBRegressor(base_score=None, booster=None, callbacks=None,\n",
" num_parallel_tree=None, random_state=42, ...)</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">XGBRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>XGBRegressor(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=0.9826605267054558, device=None,\n",
" early_stopping_rounds=None, enable_categorical=False,\n",
@ -1182,18 +1383,18 @@
" num_parallel_tree=None, random_state=42, ...)</pre></div> </div></div></div></div></div></div></div></div></div>"
]
},
"execution_count": 64,
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 64
"execution_count": 58
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:53:09.811337Z",
"start_time": "2025-03-24T08:53:09.799408Z"
"end_time": "2025-03-24T09:30:07.440812Z",
"start_time": "2025-03-24T09:30:07.415381Z"
}
},
"cell_type": "code",
@ -1223,13 +1424,13 @@
]
}
],
"execution_count": 65
"execution_count": 59
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-24T08:53:11.779662Z",
"start_time": "2025-03-24T08:53:09.917045Z"
"end_time": "2025-03-24T09:30:09.513385Z",
"start_time": "2025-03-24T09:30:07.446817Z"
}
},
"cell_type": "code",
@ -1312,7 +1513,7 @@
"output_type": "display_data"
}
],
"execution_count": 66
"execution_count": 60
}
],
"metadata": {