bigdata/day4-2/贝叶斯分类算法.ipynb

415 lines
50 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-03-03T12:37:14.219767Z",
"start_time": "2024-03-03T12:37:14.199729Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" id diagnosis radius_mean texture_mean perimeter_mean area_mean \\\n",
"0 842302 M 17.99 10.38 122.80 1001.0 \n",
"1 842517 M 20.57 17.77 132.90 1326.0 \n",
"2 84300903 M 19.69 21.25 130.00 1203.0 \n",
"3 84348301 M 11.42 20.38 77.58 386.1 \n",
"4 84358402 M 20.29 14.34 135.10 1297.0 \n",
"\n",
" smoothness_mean compactness_mean concavity_mean concave points_mean \\\n",
"0 0.11840 0.27760 0.3001 0.14710 \n",
"1 0.08474 0.07864 0.0869 0.07017 \n",
"2 0.10960 0.15990 0.1974 0.12790 \n",
"3 0.14250 0.28390 0.2414 0.10520 \n",
"4 0.10030 0.13280 0.1980 0.10430 \n",
"\n",
" ... radius_worst texture_worst perimeter_worst area_worst \\\n",
"0 ... 25.38 17.33 184.60 2019.0 \n",
"1 ... 24.99 23.41 158.80 1956.0 \n",
"2 ... 23.57 25.53 152.50 1709.0 \n",
"3 ... 14.91 26.50 98.87 567.7 \n",
"4 ... 22.54 16.67 152.20 1575.0 \n",
"\n",
" smoothness_worst compactness_worst concavity_worst concave_points_worst \\\n",
"0 0.1622 0.6656 0.7119 0.2654 \n",
"1 0.1238 0.1866 0.2416 0.1860 \n",
"2 0.1444 0.4245 0.4504 0.2430 \n",
"3 0.2098 0.8663 0.6869 0.2575 \n",
"4 0.1374 0.2050 0.4000 0.1625 \n",
"\n",
" symmetry_worst fractal_dimension_worst \n",
"0 0.4601 0.11890 \n",
"1 0.2750 0.08902 \n",
"2 0.3613 0.08758 \n",
"3 0.6638 0.17300 \n",
"4 0.2364 0.07678 \n",
"\n",
"[5 rows x 32 columns]\n"
]
}
],
"source": [
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score\n",
"\n",
"data = pd.read_csv(\"bc_data.csv\")\n",
"print(data.head())"
]
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": " id radius_mean texture_mean perimeter_mean area_mean \\\ncount 5.690000e+02 569.000000 569.000000 569.000000 569.000000 \nmean 3.037183e+07 14.127292 19.289649 91.969033 654.889104 \nstd 1.250206e+08 3.524049 4.301036 24.298981 351.914129 \nmin 8.670000e+03 6.981000 9.710000 43.790000 143.500000 \n25% 8.692180e+05 11.700000 16.170000 75.170000 420.300000 \n50% 9.060240e+05 13.370000 18.840000 86.240000 551.100000 \n75% 8.813129e+06 15.780000 21.800000 104.100000 782.700000 \nmax 9.113205e+08 28.110000 39.280000 188.500000 2501.000000 \n\n smoothness_mean compactness_mean concavity_mean concave points_mean \\\ncount 569.000000 569.000000 569.000000 569.000000 \nmean 0.096360 0.104341 0.088799 0.048919 \nstd 0.014064 0.052813 0.079720 0.038803 \nmin 0.052630 0.019380 0.000000 0.000000 \n25% 0.086370 0.064920 0.029560 0.020310 \n50% 0.095870 0.092630 0.061540 0.033500 \n75% 0.105300 0.130400 0.130700 0.074000 \nmax 0.163400 0.345400 0.426800 0.201200 \n\n symmetry_mean ... radius_worst texture_worst perimeter_worst \\\ncount 569.000000 ... 569.000000 569.000000 569.000000 \nmean 0.181162 ... 16.269190 25.677223 107.261213 \nstd 0.027414 ... 4.833242 6.146258 33.602542 \nmin 0.106000 ... 7.930000 12.020000 50.410000 \n25% 0.161900 ... 13.010000 21.080000 84.110000 \n50% 0.179200 ... 14.970000 25.410000 97.660000 \n75% 0.195700 ... 18.790000 29.720000 125.400000 \nmax 0.304000 ... 36.040000 49.540000 251.200000 \n\n area_worst smoothness_worst compactness_worst concavity_worst \\\ncount 569.000000 569.000000 569.000000 569.000000 \nmean 880.583128 0.132369 0.254265 0.272188 \nstd 569.356993 0.022832 0.157336 0.208624 \nmin 185.200000 0.071170 0.027290 0.000000 \n25% 515.300000 0.116600 0.147200 0.114500 \n50% 686.500000 0.131300 0.211900 0.226700 \n75% 1084.000000 0.146000 0.339100 0.382900 \nmax 4254.000000 0.222600 1.058000 1.252000 \n\n concave_points_worst symmetry_worst fractal_dimension_worst \ncount 569.000000 569.000000 569.000000 \nmean 0.114606 0.290076 0.083946 \nstd 0.065732 0.061867 0.018061 \nmin 0.000000 0.156500 0.055040 \n25% 0.064930 0.250400 0.071460 \n50% 0.099930 0.282200 0.080040 \n75% 0.161400 0.317900 0.092080 \nmax 0.291000 0.663800 0.207500 \n\n[8 rows x 31 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>id</th>\n <th>radius_mean</th>\n <th>texture_mean</th>\n <th>perimeter_mean</th>\n <th>area_mean</th>\n <th>smoothness_mean</th>\n <th>compactness_mean</th>\n <th>concavity_mean</th>\n <th>concave points_mean</th>\n <th>symmetry_mean</th>\n <th>...</th>\n <th>radius_worst</th>\n <th>texture_worst</th>\n <th>perimeter_worst</th>\n <th>area_worst</th>\n <th>smoothness_worst</th>\n <th>compactness_worst</th>\n <th>concavity_worst</th>\n <th>concave_points_worst</th>\n <th>symmetry_worst</th>\n <th>fractal_dimension_worst</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>5.690000e+02</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>...</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n <td>569.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>3.037183e+07</td>\n <td>14.127292</td>\n <td>19.289649</td>\n <td>91.969033</td>\n <td>654.889104</td>\n <td>0.096360</td>\n <td>0.104341</td>\n <td>0.088799</td>\n <td>0.048919</td>\n <td>0.181162</td>\n <td>...</td>\n <td>16.269190</td>\n <td>25.677223</td>\n <td>107.261213</td>\n <td>880.583128</td>\n <td>0.132369</td>\n <td>0.254265</td>\n <td>0.272188</td>\n <td>0.114606</td>\n <td>0.290076</td>\n <td>0.083946</td>\n </tr>\n <tr>\n <th>std</th>\n <td>1.250206e+08</td>\n <td>3.524049</td>\n <td>4.301036</td>\n <td>24.298981</td>\n <td>351.914129</td>\n <td>0.014064</td>\n <td>0.052813</td>\n <td>0.079720</td>\n <td>0.038803</td>\n <td>0.027414</td>\n <td>...</td>\n <td>4.833242</td>\n <td>6.146258</td>\n <td>33.602542</td>\n <td>569.356993</td>\n <td>0.022832</td>\n <td>0.157336</td>\n <td>0.208624</td>\n <td>0.065732</td>\n <td>0.061867</td>\n <td>0.018061</td>\n </tr>\n <tr>\n <th>min</th>\n <td>8.670000e+03</td>\n <td>6.981000</td>\n <td>9.710000</td>\n <td>43.790000</td>\n <td>143.500000</td>\n <td>0.052630</td>\n <td>0.019380</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.106000</td>\n <td>...</td>\n <td>7.930000</td>\n <td>12.020000</td>\n <td>50.410000</td>\n <td>185.200000</td>\n <td>0.071170</td>\n <td>0.027290</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.156500</td>\n <td>0.055040</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>8.692180e+05</td>\n <td>11.700000</td>\n <td>16.170000</td>\n <td>75.170000</td>\n <td>420.300000</td>\n <td>0.086370</td>\n <td>0.064920</td>\n <td>0.029560</td>\n <td>0.020310</td>\n <td>0.161900</td>\n <td>...</td>\n <td>13.010000</td>\n <td>21.080000</td>\n <td>84.110000</td>\n <td>515.300000</td>\n <td>0.116600</td>\n <td>0.147200</td>\n <td>0.114500</td>\n <td>0.064930</td>\n <td>0.250400</td>\n <td>0.071460</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>9.060240e+05</td>\n <td>13.370000</td>\n <td>18.840000</td>\n <td>86.240000</td>\n <td>551.100000</td>\n <td>0.095870</td>\n <td>0.092630</td>\n <td>0.061540</td>\n <td>0.033500</td>\n <td>0.179200</td>\n <td>...</td>\n <td>14.970000</td>\n <td>25.410000</td>\n <td>97.660000</td>\n <td>686.500000</td>\n <td>0.131300</td>\n <td>0.211900</td>\n <td>0.226700</td>\n <td>0.099930</td>\n <td>0.282200</td>\n <td>0.080040</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>8.813129e+06</td>\n <td>15.780000</td>\n <td>21.800000</td>\n <td>104.100000</td>\n <td>782.700000</td>\n <td>0.105300</td>\n <td>0.130400</td>\n <td>0.130700</td>\n <td>0.074000</td>\n <td>0.195700</td>\n <td>...</td>\n <td>18.790000</td>\n <td>29.720000</td>\n <td>125.400000</td>\n <td>1084.000000</td>\n <td>0.146000</td>\n <td>0.339100</td>\n <td>0.382900</td>\n <td>0.161400</td>\n <td>0.317900</td>\n <td>0.092080</td>\n </tr>\n <tr>\n <th>max</th>\n <td>9.113205e+08</td>\n <td>28.110000</td>\n <td>39.280000</td>\n <td>188.500000</td>\n <td>2501.000000</td>\n <td>0.163400</td>\n <td>0.345400</td>\n <td>0.426800</td>\n <td>0.201200</td>\n <td>0.304000</td>\n <td>...</td>\n <td>36.040000</td>\n <td>49.540000</td>\n <td>251.200000</td>\n <td>4254.000000</td>\n <td>0.222600</td>\n <td>1.058000</td>\n <td>1.252000</td>\n <td>0.291000</td>\n <td>0.663800</td>\n <td>0.207500</td>\n </tr>\n </tbody>\n</table>\n<p>8 rows × 31 columns</p>\n</div>"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:37:34.624072Z",
"start_time": "2024-03-03T12:37:34.592026Z"
}
},
"id": "ce5939bbd4b11119",
"execution_count": 4
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 569 entries, 0 to 568\n",
"Data columns (total 32 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 id 569 non-null int64 \n",
" 1 diagnosis 569 non-null object \n",
" 2 radius_mean 569 non-null float64\n",
" 3 texture_mean 569 non-null float64\n",
" 4 perimeter_mean 569 non-null float64\n",
" 5 area_mean 569 non-null float64\n",
" 6 smoothness_mean 569 non-null float64\n",
" 7 compactness_mean 569 non-null float64\n",
" 8 concavity_mean 569 non-null float64\n",
" 9 concave points_mean 569 non-null float64\n",
" 10 symmetry_mean 569 non-null float64\n",
" 11 fractal_dimension_mean 569 non-null float64\n",
" 12 radius_se 569 non-null float64\n",
" 13 texture_se 569 non-null float64\n",
" 14 perimeter_se 569 non-null float64\n",
" 15 area_se 569 non-null float64\n",
" 16 smoothness_se 569 non-null float64\n",
" 17 compactness_se 569 non-null float64\n",
" 18 concavity_se 569 non-null float64\n",
" 19 concave points_se 569 non-null float64\n",
" 20 symmetry_se 569 non-null float64\n",
" 21 fractal_dimension_se 569 non-null float64\n",
" 22 radius_worst 569 non-null float64\n",
" 23 texture_worst 569 non-null float64\n",
" 24 perimeter_worst 569 non-null float64\n",
" 25 area_worst 569 non-null float64\n",
" 26 smoothness_worst 569 non-null float64\n",
" 27 compactness_worst 569 non-null float64\n",
" 28 concavity_worst 569 non-null float64\n",
" 29 concave_points_worst 569 non-null float64\n",
" 30 symmetry_worst 569 non-null float64\n",
" 31 fractal_dimension_worst 569 non-null float64\n",
"dtypes: float64(30), int64(1), object(1)\n",
"memory usage: 142.4+ KB\n"
]
}
],
"source": [
"data.info()\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:37:39.116253Z",
"start_time": "2024-03-03T12:37:39.110965Z"
}
},
"id": "968d59778944a1be",
"execution_count": 5
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "(569, 32)"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.shape"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:37:40.558748Z",
"start_time": "2024-03-03T12:37:40.555663Z"
}
},
"id": "8a804c27a82f52c0",
"execution_count": 6
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "id 0\ndiagnosis 0\nradius_mean 0\ntexture_mean 0\nperimeter_mean 0\narea_mean 0\nsmoothness_mean 0\ncompactness_mean 0\nconcavity_mean 0\nconcave points_mean 0\nsymmetry_mean 0\nfractal_dimension_mean 0\nradius_se 0\ntexture_se 0\nperimeter_se 0\narea_se 0\nsmoothness_se 0\ncompactness_se 0\nconcavity_se 0\nconcave points_se 0\nsymmetry_se 0\nfractal_dimension_se 0\nradius_worst 0\ntexture_worst 0\nperimeter_worst 0\narea_worst 0\nsmoothness_worst 0\ncompactness_worst 0\nconcavity_worst 0\nconcave_points_worst 0\nsymmetry_worst 0\nfractal_dimension_worst 0\ndtype: int64"
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isnull().sum()\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:38:05.672870Z",
"start_time": "2024-03-03T12:38:05.666989Z"
}
},
"id": "27fb5c5ebe568c89",
"execution_count": 7
},
{
"cell_type": "code",
"outputs": [],
"source": [
"from sklearn.preprocessing import LabelEncoder\n",
"\n",
"le = LabelEncoder()\n",
"data[\"diagnosis\"] = le.fit_transform(data[\"diagnosis\"])"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:38:14.612210Z",
"start_time": "2024-03-03T12:38:14.608859Z"
}
},
"id": "921f15387d3f20d",
"execution_count": 8
},
{
"cell_type": "code",
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(data.drop(\"diagnosis\", axis=1), \n",
" data[\"diagnosis\"], \n",
" test_size=0.25, \n",
" random_state=0)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:38:22.649922Z",
"start_time": "2024-03-03T12:38:22.645136Z"
}
},
"id": "65fb42d7ccf169e3",
"execution_count": 9
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"训练集数据量: (426, 31)\n",
"测试集数据量: (143, 31)\n"
]
}
],
"source": [
"print(\"训练集数据量:\", X_train.shape)\n",
"print(\"测试集数据量:\", X_test.shape)\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:38:40.264544Z",
"start_time": "2024-03-03T12:38:40.261072Z"
}
},
"id": "6d82d79ea7a3609f",
"execution_count": 10
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "GaussianNB()",
"text/html": "<style>#sk-container-id-1 {\n /* Definition of color scheme common for light and dark mode */\n --sklearn-color-text: black;\n --sklearn-color-line: gray;\n /* Definition of color scheme for unfitted estimators */\n --sklearn-color-unfitted-level-0: #fff5e6;\n --sklearn-color-unfitted-level-1: #f6e4d2;\n --sklearn-color-unfitted-level-2: #ffe0b3;\n --sklearn-color-unfitted-level-3: chocolate;\n /* Definition of color scheme for fitted estimators */\n --sklearn-color-fitted-level-0: #f0f8ff;\n --sklearn-color-fitted-level-1: #d4ebff;\n --sklearn-color-fitted-level-2: #b3dbfd;\n --sklearn-color-fitted-level-3: cornflowerblue;\n\n /* Specific color for light theme */\n --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n --sklearn-color-icon: #696969;\n\n @media (prefers-color-scheme: dark) {\n /* Redefinition of color scheme for dark theme */\n --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n --sklearn-color-icon: #878787;\n }\n}\n\n#sk-container-id-1 {\n color: var(--sklearn-color-text);\n}\n\n#sk-container-id-1 pre {\n padding: 0;\n}\n\n#sk-container-id-1 input.sk-hidden--visually {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n#sk-container-id-1 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 padding-bottom: 0.4em;\n background-color: var(--sklearn-color-background);\n}\n\n#sk-container-id-1 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 default hidden behavior on the sphinx rendered scikit-learn.org.\n See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n display: inline-block !important;\n position: relative;\n}\n\n#sk-container-id-1 div.sk-text-repr-fallback {\n display: none;\n}\n\ndiv.sk-parallel-item,\ndiv.sk-serial,\ndiv.sk-item {\n /* draw centered vertical line to link estimators */\n background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n background-size: 2px 100%;\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n/* Parallel-specific style estimator block */\n\n#sk-container-id-1 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-1 div.sk-parallel {\n display: flex;\n align-items: stretch;\n justify-content: center;\n background-color: var(--sklearn-color-background);\n position: relative;\n}\n\n#sk-container-id-1 div.sk-parallel-item {\n display: flex;\n flex-direction: column;\n}\n\n#sk-container-id-1 div.sk-parallel-item:first-child::after {\n align-self: flex-end;\n width: 50%;\n}\n\n#sk-container-id-1 div.sk-parallel-item:last-child::after {\n align-self: flex-start;\n width: 50%;\n}\n\n#sk-container-id-1 div.sk-parallel-item:only-child::after {\n width: 0;\n}\n\n/* Serial-specific style estimator block */\n\n#sk-container-id-1 div.sk-serial {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--sklearn-color-background);\n padding-right: 1em;\n padding-left: 1em;\n}\n\n\n/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\nclickable and can be expanded/collapsed.\n- Pipeline and ColumnTransformer use this feature and define the default style\n- Estimators will overwrite some part of the style using the `sk-estimator` class\n*/\n\n/* Pipeline and ColumnTransformer style (default) */\n\n#sk-container-id-1 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-1 label.sk-toggleable__label {\n cursor: pointer;\n display: block;\n width: 100%;\n margin-bottom: 0;\n padding: 0.5em;\n box-sizing: border-box;\n text-align: center;\n}\n\n#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n /* Arrow on the left of the label */\n content: \"▸\";\n float: left;\n margin-right: 0.25em;\n color: var(--sklearn-color-icon);\n}\n\n#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n color: var(--sklearn-color-text);\n}\n\n/* Toggleable content - dropdown */\n\n#sk-container-id-1 div.sk-toggleable__content {\n max-height: 0;\n max-width: 0;\n overflow: hidden;\n text-align: left;\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content.fitted {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content pre {\n margin: 0.2em;\n border-radius: 0.25em;\n color: var(--sklearn-color-text);\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n /* unfitted */\n background-color: var(--sklearn-color-fitted-level-0);\n}\n\n#sk-container-id-1 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-1 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-1 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-1 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-1 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-1 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-1 div.sk-label label.sk-toggleable__label,\n#sk-container-id-1 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-1 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-1 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-1 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-1 div.sk-label-container {\n text-align: center;\n}\n\n/* Estimator-specific */\n#sk-container-id-1 div.sk-estimator {\n font-family: monospace;\n border: 1px dotted var(--sklearn-color-border-box);\n border-radius: 0.25em;\n box-sizing: border-box;\n margin-bottom: 0.5em;\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-estimator.fitted {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-0);\n}\n\n/* on hover */\n#sk-container-id-1 div.sk-estimator:hover {\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n#sk-container-id-1 div.sk-estimator.fitted:hover {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-2);\n}\n\n/* Specification for estimator info (e.g. \"i\" and \"?\") */\n\n/* Common style for \"i\" and \"?\" */\n\n.sk-estimator-doc-link,\na:link.sk-estimator-doc-link,\na:visited.sk-estimator-doc-link {\n float: right;\n font-size: smaller;\n line-height: 1em;\n font-family: monospace;\n background-color: var(--sklearn-color-background);\n border-radius: 1em;\n height: 1em;\n width: 1em;\n text-decoration: none !important;\n margin-left: 1ex;\n /* unfitted */\n border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n color: var(--sklearn-color-unfitted-level-1);\n}\n\n.sk-estimator-doc-link.fitted,\na:link.sk-estimator-doc-link.fitted,\na:visited.sk-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 */\ndiv.sk-estimator:hover .sk-estimator-doc-link:hover,\n.sk-estimator-doc-link:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link:hover,\n.sk-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\ndiv.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-3);\n color: var(--sklearn-color-background);\n text-decoration: none;\n}\n\n/* Span, style for the box shown on hovering the info icon */\n.sk-estimator-doc-link span {\n display: none;\n z-index: 9999;\n position: relative;\n font-weight: normal;\n right: .2ex;\n padding: .5ex;\n margin: .5ex;\n width: min-content;\n min-width: 20ex;\n max-width: 50ex;\n color: var(--sklearn-color-text);\n box-shadow: 2pt 2pt 4pt #999;\n /* unfitted */\n background: var(--sklearn-color-unfitted-level-0);\n border: .5pt solid var(--sklearn-color-unfitted-level-3);\n}\n\n.sk-estimator-doc-link.fitted span {\n /* fitted */\n background: var(--sklearn-color-fitted-level-0);\n border: var(--sklearn-color-fitted-level-3);\n}\n\n.sk-estimator-doc-link:hover span {\n display: block;\n}\n\n/* \"?\"-specific style due to the `<a>` HTML tag */\n\n#sk-container-id-1 a.estimator_doc_link {\n float: right;\n font-size: 1rem;\n line-height: 1em;\n font-family: monospace;\n background-color: var(--sklearn-color-background);\n border-radius: 1rem;\n height: 1rem;\n width: 1rem;\n text-decoration: none;\n /* unfitted */\n color: var(--sklearn-color-unfitted-level-1);\n border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n}\n\n#sk-container-id-1 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-1 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-1 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-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GaussianNB()</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\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;GaussianNB<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.naive_bayes.GaussianNB.html\">?<span>Documentation for GaussianNB</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>GaussianNB()</pre></div> </div></div></div></div>"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = GaussianNB()\n",
"model.fit(X_train, y_train)\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:38:47.313263Z",
"start_time": "2024-03-03T12:38:47.307431Z"
}
},
"id": "15f256db08ba4d28",
"execution_count": 11
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"准确率: 0.6363636363636364\n",
"精确率: 0.6666666666666666\n",
"召回率: 0.03773584905660377\n",
"F1 值: 0.07142857142857142\n"
]
}
],
"source": [
"y_pred = model.predict(X_test)\n",
"print(\"准确率:\", accuracy_score(y_test, y_pred))\n",
"print(\"精确率:\", precision_score(y_test, y_pred))\n",
"print(\"召回率:\", recall_score(y_test, y_pred))\n",
"print(\"F1 值:\", f1_score(y_test, y_pred))\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:40:07.656413Z",
"start_time": "2024-03-03T12:40:07.647268Z"
}
},
"id": "85299c4605550166",
"execution_count": 13
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/plain": "GridSearchCV(cv=5, estimator=GaussianNB(),\n param_grid={'var_smoothing': [1e-07, 1e-08, 1e-09, 1e-10, 1e-11,\n 1e-12]},\n scoring='accuracy')",
"text/html": "<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 /* Definition of color scheme for unfitted estimators */\n --sklearn-color-unfitted-level-0: #fff5e6;\n --sklearn-color-unfitted-level-1: #f6e4d2;\n --sklearn-color-unfitted-level-2: #ffe0b3;\n --sklearn-color-unfitted-level-3: chocolate;\n /* Definition of color scheme for fitted estimators */\n --sklearn-color-fitted-level-0: #f0f8ff;\n --sklearn-color-fitted-level-1: #d4ebff;\n --sklearn-color-fitted-level-2: #b3dbfd;\n --sklearn-color-fitted-level-3: cornflowerblue;\n\n /* Specific color for light theme */\n --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n --sklearn-color-icon: #696969;\n\n @media (prefers-color-scheme: dark) {\n /* Redefinition of color scheme for dark theme */\n --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n --sklearn-color-icon: #878787;\n }\n}\n\n#sk-container-id-2 {\n color: var(--sklearn-color-text);\n}\n\n#sk-container-id-2 pre {\n padding: 0;\n}\n\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 height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\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 padding-bottom: 0.4em;\n background-color: var(--sklearn-color-background);\n}\n\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 default hidden behavior on the sphinx rendered scikit-learn.org.\n See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n display: inline-block !important;\n position: relative;\n}\n\n#sk-container-id-2 div.sk-text-repr-fallback {\n display: none;\n}\n\ndiv.sk-parallel-item,\ndiv.sk-serial,\ndiv.sk-item {\n /* draw centered vertical line to link estimators */\n background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n background-size: 2px 100%;\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n/* Parallel-specific style estimator block */\n\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-2 div.sk-parallel {\n display: flex;\n align-items: stretch;\n justify-content: center;\n background-color: var(--sklearn-color-background);\n position: relative;\n}\n\n#sk-container-id-2 div.sk-parallel-item {\n display: flex;\n flex-direction: column;\n}\n\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-2 div.sk-parallel-item:last-child::after {\n align-self: flex-start;\n width: 50%;\n}\n\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-2 div.sk-serial {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--sklearn-color-background);\n padding-right: 1em;\n padding-left: 1em;\n}\n\n\n/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\nclickable and can be expanded/collapsed.\n- Pipeline and ColumnTransformer use this feature and define the default style\n- Estimators will overwrite some part of the style using the `sk-estimator` class\n*/\n\n/* Pipeline and ColumnTransformer style (default) */\n\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-2 label.sk-toggleable__label {\n cursor: pointer;\n display: block;\n width: 100%;\n margin-bottom: 0;\n padding: 0.5em;\n box-sizing: border-box;\n text-align: center;\n}\n\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 margin-right: 0.25em;\n color: var(--sklearn-color-icon);\n}\n\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-2 div.sk-toggleable__content {\n max-height: 0;\n max-width: 0;\n overflow: hidden;\n text-align: left;\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\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-2 div.sk-toggleable__content pre {\n margin: 0.2em;\n border-radius: 0.25em;\n color: var(--sklearn-color-text);\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\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-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-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-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-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-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-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-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-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-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-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-2 div.sk-label-container {\n text-align: center;\n}\n\n/* Estimator-specific */\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 box-sizing: border-box;\n margin-bottom: 0.5em;\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-0);\n}\n\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-2 div.sk-estimator:hover {\n /* unfitted */\n background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n#sk-container-id-2 div.sk-estimator.fitted:hover {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-2);\n}\n\n/* Specification for estimator info (e.g. \"i\" and \"?\") */\n\n/* Common style for \"i\" and \"?\" */\n\n.sk-estimator-doc-link,\na:link.sk-estimator-doc-link,\na:visited.sk-estimator-doc-link {\n float: right;\n font-size: smaller;\n line-height: 1em;\n font-family: monospace;\n background-color: var(--sklearn-color-background);\n border-radius: 1em;\n height: 1em;\n width: 1em;\n text-decoration: none !important;\n margin-left: 1ex;\n /* unfitted */\n border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n color: var(--sklearn-color-unfitted-level-1);\n}\n\n.sk-estimator-doc-link.fitted,\na:link.sk-estimator-doc-link.fitted,\na:visited.sk-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 */\ndiv.sk-estimator:hover .sk-estimator-doc-link:hover,\n.sk-estimator-doc-link:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link:hover,\n.sk-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\ndiv.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover {\n /* fitted */\n background-color: var(--sklearn-color-fitted-level-3);\n color: var(--sklearn-color-background);\n text-decoration: none;\n}\n\n/* Span, style for the box shown on hovering the info icon */\n.sk-estimator-doc-link span {\n display: none;\n z-index: 9999;\n position: relative;\n font-weight: normal;\n right: .2ex;\n padding: .5ex;\n margin: .5ex;\n width: min-content;\n min-width: 20ex;\n max-width: 50ex;\n color: var(--sklearn-color-text);\n box-shadow: 2pt 2pt 4pt #999;\n /* unfitted */\n background: var(--sklearn-color-unfitted-level-0);\n border: .5pt solid var(--sklearn-color-unfitted-level-3);\n}\n\n.sk-estimator-doc-link.fitted span {\n /* fitted */\n background: var(--sklearn-color-fitted-level-0);\n border: var(--sklearn-color-fitted-level-3);\n}\n\n.sk-estimator-doc-link:hover span {\n display: block;\n}\n\n/* \"?\"-specific style due to the `<a>` HTML tag */\n\n#sk-container-id-2 a.estimator_doc_link {\n float: right;\n font-size: 1rem;\n line-height: 1em;\n font-family: monospace;\n background-color: var(--sklearn-color-background);\n border-radius: 1rem;\n height: 1rem;\n width: 1rem;\n text-decoration: none;\n /* unfitted */\n color: var(--sklearn-color-unfitted-level-1);\n border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n}\n\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-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-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-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=5, estimator=GaussianNB(),\n param_grid={&#x27;var_smoothing&#x27;: [1e-07, 1e-08, 1e-09, 1e-10, 1e-11,\n 1e-12]},\n scoring=&#x27;accuracy&#x27;)</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-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;GridSearchCV<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.model_selection.GridSearchCV.html\">?<span>Documentation for GridSearchCV</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>GridSearchCV(cv=5, estimator=GaussianNB(),\n param_grid={&#x27;var_smoothing&#x27;: [1e-07, 1e-08, 1e-09, 1e-10, 1e-11,\n 1e-12]},\n scoring=&#x27;accuracy&#x27;)</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-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">estimator: GaussianNB</label><div class=\"sk-toggleable__content fitted\"><pre>GaussianNB()</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-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;GaussianNB<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.naive_bayes.GaussianNB.html\">?<span>Documentation for GaussianNB</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>GaussianNB()</pre></div> </div></div></div></div></div></div></div></div></div>"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"param_grid = {\"var_smoothing\": [1e-7, 1e-8, 1e-9, 1e-10, 1e-11, 1e-12]}\n",
"\n",
"grid_search = GridSearchCV(GaussianNB(), param_grid=param_grid, scoring=\"accuracy\", cv=5)\n",
"grid_search.fit(X_train, y_train)\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:40:16.442517Z",
"start_time": "2024-03-03T12:40:16.378989Z"
}
},
"id": "5076117fd493d87b",
"execution_count": 14
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"最优参数: {'var_smoothing': 1e-12}\n"
]
}
],
"source": [
"print(\"最优参数:\", grid_search.best_params_)\n"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-03-03T12:40:59.139337Z",
"start_time": "2024-03-03T12:40:59.136232Z"
}
},
"id": "5671b41a8291920",
"execution_count": 15
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false
},
"id": "5eb3263bc83c44da"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}