votingClassifier.ipynb (91811B)
1 { 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 42, 6 "metadata": {}, 7 "outputs": [], 8 "source": [ 9 "from sklearn.datasets import make_moons\n", 10 "from sklearn.ensemble import RandomForestClassifier, VotingClassifier\n", 11 "from sklearn.linear_model import LogisticRegression\n", 12 "from sklearn.model_selection import train_test_split\n", 13 "from sklearn.svm import SVC\n", 14 "\n", 15 "# Train many classifiers of different types to create an ensemble.\n", 16 "# This is done so that errors caused by one type of model should, in theory\n", 17 "# be offset by other models.\n", 18 "\n", 19 "X,y = make_moons(n_samples=500, noise=.3, random_state=42)\n", 20 "\n", 21 "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42)" 22 ] 23 }, 24 { 25 "cell_type": "code", 26 "execution_count": 43, 27 "metadata": {}, 28 "outputs": [ 29 { 30 "data": { 31 "text/html": [ 32 "<style>#sk-container-id-8 {\n", 33 " /* Definition of color scheme common for light and dark mode */\n", 34 " --sklearn-color-text: black;\n", 35 " --sklearn-color-line: gray;\n", 36 " /* Definition of color scheme for unfitted estimators */\n", 37 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 38 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 39 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 40 " --sklearn-color-unfitted-level-3: chocolate;\n", 41 " /* Definition of color scheme for fitted estimators */\n", 42 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 43 " --sklearn-color-fitted-level-1: #d4ebff;\n", 44 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 45 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 46 "\n", 47 " /* Specific color for light theme */\n", 48 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 49 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 50 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 51 " --sklearn-color-icon: #696969;\n", 52 "\n", 53 " @media (prefers-color-scheme: dark) {\n", 54 " /* Redefinition of color scheme for dark theme */\n", 55 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 56 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 57 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 58 " --sklearn-color-icon: #878787;\n", 59 " }\n", 60 "}\n", 61 "\n", 62 "#sk-container-id-8 {\n", 63 " color: var(--sklearn-color-text);\n", 64 "}\n", 65 "\n", 66 "#sk-container-id-8 pre {\n", 67 " padding: 0;\n", 68 "}\n", 69 "\n", 70 "#sk-container-id-8 input.sk-hidden--visually {\n", 71 " border: 0;\n", 72 " clip: rect(1px 1px 1px 1px);\n", 73 " clip: rect(1px, 1px, 1px, 1px);\n", 74 " height: 1px;\n", 75 " margin: -1px;\n", 76 " overflow: hidden;\n", 77 " padding: 0;\n", 78 " position: absolute;\n", 79 " width: 1px;\n", 80 "}\n", 81 "\n", 82 "#sk-container-id-8 div.sk-dashed-wrapped {\n", 83 " border: 1px dashed var(--sklearn-color-line);\n", 84 " margin: 0 0.4em 0.5em 0.4em;\n", 85 " box-sizing: border-box;\n", 86 " padding-bottom: 0.4em;\n", 87 " background-color: var(--sklearn-color-background);\n", 88 "}\n", 89 "\n", 90 "#sk-container-id-8 div.sk-container {\n", 91 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 92 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 93 " so we also need the `!important` here to be able to override the\n", 94 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 95 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 96 " display: inline-block !important;\n", 97 " position: relative;\n", 98 "}\n", 99 "\n", 100 "#sk-container-id-8 div.sk-text-repr-fallback {\n", 101 " display: none;\n", 102 "}\n", 103 "\n", 104 "div.sk-parallel-item,\n", 105 "div.sk-serial,\n", 106 "div.sk-item {\n", 107 " /* draw centered vertical line to link estimators */\n", 108 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 109 " background-size: 2px 100%;\n", 110 " background-repeat: no-repeat;\n", 111 " background-position: center center;\n", 112 "}\n", 113 "\n", 114 "/* Parallel-specific style estimator block */\n", 115 "\n", 116 "#sk-container-id-8 div.sk-parallel-item::after {\n", 117 " content: \"\";\n", 118 " width: 100%;\n", 119 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 120 " flex-grow: 1;\n", 121 "}\n", 122 "\n", 123 "#sk-container-id-8 div.sk-parallel {\n", 124 " display: flex;\n", 125 " align-items: stretch;\n", 126 " justify-content: center;\n", 127 " background-color: var(--sklearn-color-background);\n", 128 " position: relative;\n", 129 "}\n", 130 "\n", 131 "#sk-container-id-8 div.sk-parallel-item {\n", 132 " display: flex;\n", 133 " flex-direction: column;\n", 134 "}\n", 135 "\n", 136 "#sk-container-id-8 div.sk-parallel-item:first-child::after {\n", 137 " align-self: flex-end;\n", 138 " width: 50%;\n", 139 "}\n", 140 "\n", 141 "#sk-container-id-8 div.sk-parallel-item:last-child::after {\n", 142 " align-self: flex-start;\n", 143 " width: 50%;\n", 144 "}\n", 145 "\n", 146 "#sk-container-id-8 div.sk-parallel-item:only-child::after {\n", 147 " width: 0;\n", 148 "}\n", 149 "\n", 150 "/* Serial-specific style estimator block */\n", 151 "\n", 152 "#sk-container-id-8 div.sk-serial {\n", 153 " display: flex;\n", 154 " flex-direction: column;\n", 155 " align-items: center;\n", 156 " background-color: var(--sklearn-color-background);\n", 157 " padding-right: 1em;\n", 158 " padding-left: 1em;\n", 159 "}\n", 160 "\n", 161 "\n", 162 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 163 "clickable and can be expanded/collapsed.\n", 164 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 165 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 166 "*/\n", 167 "\n", 168 "/* Pipeline and ColumnTransformer style (default) */\n", 169 "\n", 170 "#sk-container-id-8 div.sk-toggleable {\n", 171 " /* Default theme specific background. It is overwritten whether we have a\n", 172 " specific estimator or a Pipeline/ColumnTransformer */\n", 173 " background-color: var(--sklearn-color-background);\n", 174 "}\n", 175 "\n", 176 "/* Toggleable label */\n", 177 "#sk-container-id-8 label.sk-toggleable__label {\n", 178 " cursor: pointer;\n", 179 " display: block;\n", 180 " width: 100%;\n", 181 " margin-bottom: 0;\n", 182 " padding: 0.5em;\n", 183 " box-sizing: border-box;\n", 184 " text-align: center;\n", 185 "}\n", 186 "\n", 187 "#sk-container-id-8 label.sk-toggleable__label-arrow:before {\n", 188 " /* Arrow on the left of the label */\n", 189 " content: \"▸\";\n", 190 " float: left;\n", 191 " margin-right: 0.25em;\n", 192 " color: var(--sklearn-color-icon);\n", 193 "}\n", 194 "\n", 195 "#sk-container-id-8 label.sk-toggleable__label-arrow:hover:before {\n", 196 " color: var(--sklearn-color-text);\n", 197 "}\n", 198 "\n", 199 "/* Toggleable content - dropdown */\n", 200 "\n", 201 "#sk-container-id-8 div.sk-toggleable__content {\n", 202 " max-height: 0;\n", 203 " max-width: 0;\n", 204 " overflow: hidden;\n", 205 " text-align: left;\n", 206 " /* unfitted */\n", 207 " background-color: var(--sklearn-color-unfitted-level-0);\n", 208 "}\n", 209 "\n", 210 "#sk-container-id-8 div.sk-toggleable__content.fitted {\n", 211 " /* fitted */\n", 212 " background-color: var(--sklearn-color-fitted-level-0);\n", 213 "}\n", 214 "\n", 215 "#sk-container-id-8 div.sk-toggleable__content pre {\n", 216 " margin: 0.2em;\n", 217 " border-radius: 0.25em;\n", 218 " color: var(--sklearn-color-text);\n", 219 " /* unfitted */\n", 220 " background-color: var(--sklearn-color-unfitted-level-0);\n", 221 "}\n", 222 "\n", 223 "#sk-container-id-8 div.sk-toggleable__content.fitted pre {\n", 224 " /* unfitted */\n", 225 " background-color: var(--sklearn-color-fitted-level-0);\n", 226 "}\n", 227 "\n", 228 "#sk-container-id-8 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 229 " /* Expand drop-down */\n", 230 " max-height: 200px;\n", 231 " max-width: 100%;\n", 232 " overflow: auto;\n", 233 "}\n", 234 "\n", 235 "#sk-container-id-8 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 236 " content: \"▾\";\n", 237 "}\n", 238 "\n", 239 "/* Pipeline/ColumnTransformer-specific style */\n", 240 "\n", 241 "#sk-container-id-8 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 242 " color: var(--sklearn-color-text);\n", 243 " background-color: var(--sklearn-color-unfitted-level-2);\n", 244 "}\n", 245 "\n", 246 "#sk-container-id-8 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 247 " background-color: var(--sklearn-color-fitted-level-2);\n", 248 "}\n", 249 "\n", 250 "/* Estimator-specific style */\n", 251 "\n", 252 "/* Colorize estimator box */\n", 253 "#sk-container-id-8 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 254 " /* unfitted */\n", 255 " background-color: var(--sklearn-color-unfitted-level-2);\n", 256 "}\n", 257 "\n", 258 "#sk-container-id-8 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 259 " /* fitted */\n", 260 " background-color: var(--sklearn-color-fitted-level-2);\n", 261 "}\n", 262 "\n", 263 "#sk-container-id-8 div.sk-label label.sk-toggleable__label,\n", 264 "#sk-container-id-8 div.sk-label label {\n", 265 " /* The background is the default theme color */\n", 266 " color: var(--sklearn-color-text-on-default-background);\n", 267 "}\n", 268 "\n", 269 "/* On hover, darken the color of the background */\n", 270 "#sk-container-id-8 div.sk-label:hover label.sk-toggleable__label {\n", 271 " color: var(--sklearn-color-text);\n", 272 " background-color: var(--sklearn-color-unfitted-level-2);\n", 273 "}\n", 274 "\n", 275 "/* Label box, darken color on hover, fitted */\n", 276 "#sk-container-id-8 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 277 " color: var(--sklearn-color-text);\n", 278 " background-color: var(--sklearn-color-fitted-level-2);\n", 279 "}\n", 280 "\n", 281 "/* Estimator label */\n", 282 "\n", 283 "#sk-container-id-8 div.sk-label label {\n", 284 " font-family: monospace;\n", 285 " font-weight: bold;\n", 286 " display: inline-block;\n", 287 " line-height: 1.2em;\n", 288 "}\n", 289 "\n", 290 "#sk-container-id-8 div.sk-label-container {\n", 291 " text-align: center;\n", 292 "}\n", 293 "\n", 294 "/* Estimator-specific */\n", 295 "#sk-container-id-8 div.sk-estimator {\n", 296 " font-family: monospace;\n", 297 " border: 1px dotted var(--sklearn-color-border-box);\n", 298 " border-radius: 0.25em;\n", 299 " box-sizing: border-box;\n", 300 " margin-bottom: 0.5em;\n", 301 " /* unfitted */\n", 302 " background-color: var(--sklearn-color-unfitted-level-0);\n", 303 "}\n", 304 "\n", 305 "#sk-container-id-8 div.sk-estimator.fitted {\n", 306 " /* fitted */\n", 307 " background-color: var(--sklearn-color-fitted-level-0);\n", 308 "}\n", 309 "\n", 310 "/* on hover */\n", 311 "#sk-container-id-8 div.sk-estimator:hover {\n", 312 " /* unfitted */\n", 313 " background-color: var(--sklearn-color-unfitted-level-2);\n", 314 "}\n", 315 "\n", 316 "#sk-container-id-8 div.sk-estimator.fitted:hover {\n", 317 " /* fitted */\n", 318 " background-color: var(--sklearn-color-fitted-level-2);\n", 319 "}\n", 320 "\n", 321 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 322 "\n", 323 "/* Common style for \"i\" and \"?\" */\n", 324 "\n", 325 ".sk-estimator-doc-link,\n", 326 "a:link.sk-estimator-doc-link,\n", 327 "a:visited.sk-estimator-doc-link {\n", 328 " float: right;\n", 329 " font-size: smaller;\n", 330 " line-height: 1em;\n", 331 " font-family: monospace;\n", 332 " background-color: var(--sklearn-color-background);\n", 333 " border-radius: 1em;\n", 334 " height: 1em;\n", 335 " width: 1em;\n", 336 " text-decoration: none !important;\n", 337 " margin-left: 1ex;\n", 338 " /* unfitted */\n", 339 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 340 " color: var(--sklearn-color-unfitted-level-1);\n", 341 "}\n", 342 "\n", 343 ".sk-estimator-doc-link.fitted,\n", 344 "a:link.sk-estimator-doc-link.fitted,\n", 345 "a:visited.sk-estimator-doc-link.fitted {\n", 346 " /* fitted */\n", 347 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 348 " color: var(--sklearn-color-fitted-level-1);\n", 349 "}\n", 350 "\n", 351 "/* On hover */\n", 352 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 353 ".sk-estimator-doc-link:hover,\n", 354 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 355 ".sk-estimator-doc-link:hover {\n", 356 " /* unfitted */\n", 357 " background-color: var(--sklearn-color-unfitted-level-3);\n", 358 " color: var(--sklearn-color-background);\n", 359 " text-decoration: none;\n", 360 "}\n", 361 "\n", 362 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 363 ".sk-estimator-doc-link.fitted:hover,\n", 364 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 365 ".sk-estimator-doc-link.fitted:hover {\n", 366 " /* fitted */\n", 367 " background-color: var(--sklearn-color-fitted-level-3);\n", 368 " color: var(--sklearn-color-background);\n", 369 " text-decoration: none;\n", 370 "}\n", 371 "\n", 372 "/* Span, style for the box shown on hovering the info icon */\n", 373 ".sk-estimator-doc-link span {\n", 374 " display: none;\n", 375 " z-index: 9999;\n", 376 " position: relative;\n", 377 " font-weight: normal;\n", 378 " right: .2ex;\n", 379 " padding: .5ex;\n", 380 " margin: .5ex;\n", 381 " width: min-content;\n", 382 " min-width: 20ex;\n", 383 " max-width: 50ex;\n", 384 " color: var(--sklearn-color-text);\n", 385 " box-shadow: 2pt 2pt 4pt #999;\n", 386 " /* unfitted */\n", 387 " background: var(--sklearn-color-unfitted-level-0);\n", 388 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 389 "}\n", 390 "\n", 391 ".sk-estimator-doc-link.fitted span {\n", 392 " /* fitted */\n", 393 " background: var(--sklearn-color-fitted-level-0);\n", 394 " border: var(--sklearn-color-fitted-level-3);\n", 395 "}\n", 396 "\n", 397 ".sk-estimator-doc-link:hover span {\n", 398 " display: block;\n", 399 "}\n", 400 "\n", 401 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 402 "\n", 403 "#sk-container-id-8 a.estimator_doc_link {\n", 404 " float: right;\n", 405 " font-size: 1rem;\n", 406 " line-height: 1em;\n", 407 " font-family: monospace;\n", 408 " background-color: var(--sklearn-color-background);\n", 409 " border-radius: 1rem;\n", 410 " height: 1rem;\n", 411 " width: 1rem;\n", 412 " text-decoration: none;\n", 413 " /* unfitted */\n", 414 " color: var(--sklearn-color-unfitted-level-1);\n", 415 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 416 "}\n", 417 "\n", 418 "#sk-container-id-8 a.estimator_doc_link.fitted {\n", 419 " /* fitted */\n", 420 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 421 " color: var(--sklearn-color-fitted-level-1);\n", 422 "}\n", 423 "\n", 424 "/* On hover */\n", 425 "#sk-container-id-8 a.estimator_doc_link:hover {\n", 426 " /* unfitted */\n", 427 " background-color: var(--sklearn-color-unfitted-level-3);\n", 428 " color: var(--sklearn-color-background);\n", 429 " text-decoration: none;\n", 430 "}\n", 431 "\n", 432 "#sk-container-id-8 a.estimator_doc_link.fitted:hover {\n", 433 " /* fitted */\n", 434 " background-color: var(--sklearn-color-fitted-level-3);\n", 435 "}\n", 436 "</style><div id=\"sk-container-id-8\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 437 " ('rf', RandomForestClassifier(random_state=42)),\n", 438 " ('svc', SVC(random_state=42))])</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-28\" type=\"checkbox\" ><label for=\"sk-estimator-id-28\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> VotingClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.VotingClassifier.html\">?<span>Documentation for VotingClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 439 " ('rf', RandomForestClassifier(random_state=42)),\n", 440 " ('svc', SVC(random_state=42))])</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\"><label>lr</label></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-29\" type=\"checkbox\" ><label for=\"sk-estimator-id-29\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LogisticRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html\">?<span>Documentation for LogisticRegression</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>LogisticRegression(random_state=42)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>rf</label></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-30\" type=\"checkbox\" ><label for=\"sk-estimator-id-30\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> RandomForestClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(random_state=42)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>svc</label></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-31\" type=\"checkbox\" ><label for=\"sk-estimator-id-31\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> SVC<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(random_state=42)</pre></div> </div></div></div></div></div></div></div></div></div>" 441 ], 442 "text/plain": [ 443 "VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 444 " ('rf', RandomForestClassifier(random_state=42)),\n", 445 " ('svc', SVC(random_state=42))])" 446 ] 447 }, 448 "execution_count": 43, 449 "metadata": {}, 450 "output_type": "execute_result" 451 } 452 ], 453 "source": [ 454 "voting_clf = VotingClassifier(\n", 455 " estimators=[\n", 456 " ('lr' , LogisticRegression(random_state=42)),\n", 457 " ('rf',RandomForestClassifier(random_state=42)),\n", 458 " ('svc', SVC(random_state=42))\n", 459 " ]\n", 460 ")\n", 461 "\n", 462 "voting_clf.fit(X_train,y_train)" 463 ] 464 }, 465 { 466 "cell_type": "code", 467 "execution_count": 44, 468 "metadata": {}, 469 "outputs": [ 470 { 471 "name": "stdout", 472 "output_type": "stream", 473 "text": [ 474 "lr = 0.864\n", 475 "rf = 0.896\n", 476 "svc = 0.896\n" 477 ] 478 } 479 ], 480 "source": [ 481 "for name, clf in voting_clf.named_estimators_.items():\n", 482 " print(name, '=', clf.score(X_test,y_test))" 483 ] 484 }, 485 { 486 "cell_type": "code", 487 "execution_count": 45, 488 "metadata": {}, 489 "outputs": [ 490 { 491 "data": { 492 "text/plain": [ 493 "array([1])" 494 ] 495 }, 496 "execution_count": 45, 497 "metadata": {}, 498 "output_type": "execute_result" 499 } 500 ], 501 "source": [ 502 "voting_clf.predict(X_test[:1])" 503 ] 504 }, 505 { 506 "cell_type": "code", 507 "execution_count": 46, 508 "metadata": {}, 509 "outputs": [ 510 { 511 "data": { 512 "text/plain": [ 513 "[array([1]), array([1]), array([0])]" 514 ] 515 }, 516 "execution_count": 46, 517 "metadata": {}, 518 "output_type": "execute_result" 519 } 520 ], 521 "source": [ 522 "[clf.predict(X_test[:1]) for clf in voting_clf.estimators_]" 523 ] 524 }, 525 { 526 "cell_type": "code", 527 "execution_count": 47, 528 "metadata": {}, 529 "outputs": [ 530 { 531 "data": { 532 "text/plain": [ 533 "0.912" 534 ] 535 }, 536 "execution_count": 47, 537 "metadata": {}, 538 "output_type": "execute_result" 539 } 540 ], 541 "source": [ 542 "voting_clf.score(X_test,y_test)" 543 ] 544 }, 545 { 546 "cell_type": "code", 547 "execution_count": 48, 548 "metadata": {}, 549 "outputs": [ 550 { 551 "data": { 552 "text/html": [ 553 "<style>#sk-container-id-9 {\n", 554 " /* Definition of color scheme common for light and dark mode */\n", 555 " --sklearn-color-text: black;\n", 556 " --sklearn-color-line: gray;\n", 557 " /* Definition of color scheme for unfitted estimators */\n", 558 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 559 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 560 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 561 " --sklearn-color-unfitted-level-3: chocolate;\n", 562 " /* Definition of color scheme for fitted estimators */\n", 563 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 564 " --sklearn-color-fitted-level-1: #d4ebff;\n", 565 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 566 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 567 "\n", 568 " /* Specific color for light theme */\n", 569 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 570 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 571 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 572 " --sklearn-color-icon: #696969;\n", 573 "\n", 574 " @media (prefers-color-scheme: dark) {\n", 575 " /* Redefinition of color scheme for dark theme */\n", 576 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 577 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 578 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 579 " --sklearn-color-icon: #878787;\n", 580 " }\n", 581 "}\n", 582 "\n", 583 "#sk-container-id-9 {\n", 584 " color: var(--sklearn-color-text);\n", 585 "}\n", 586 "\n", 587 "#sk-container-id-9 pre {\n", 588 " padding: 0;\n", 589 "}\n", 590 "\n", 591 "#sk-container-id-9 input.sk-hidden--visually {\n", 592 " border: 0;\n", 593 " clip: rect(1px 1px 1px 1px);\n", 594 " clip: rect(1px, 1px, 1px, 1px);\n", 595 " height: 1px;\n", 596 " margin: -1px;\n", 597 " overflow: hidden;\n", 598 " padding: 0;\n", 599 " position: absolute;\n", 600 " width: 1px;\n", 601 "}\n", 602 "\n", 603 "#sk-container-id-9 div.sk-dashed-wrapped {\n", 604 " border: 1px dashed var(--sklearn-color-line);\n", 605 " margin: 0 0.4em 0.5em 0.4em;\n", 606 " box-sizing: border-box;\n", 607 " padding-bottom: 0.4em;\n", 608 " background-color: var(--sklearn-color-background);\n", 609 "}\n", 610 "\n", 611 "#sk-container-id-9 div.sk-container {\n", 612 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 613 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 614 " so we also need the `!important` here to be able to override the\n", 615 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 616 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 617 " display: inline-block !important;\n", 618 " position: relative;\n", 619 "}\n", 620 "\n", 621 "#sk-container-id-9 div.sk-text-repr-fallback {\n", 622 " display: none;\n", 623 "}\n", 624 "\n", 625 "div.sk-parallel-item,\n", 626 "div.sk-serial,\n", 627 "div.sk-item {\n", 628 " /* draw centered vertical line to link estimators */\n", 629 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 630 " background-size: 2px 100%;\n", 631 " background-repeat: no-repeat;\n", 632 " background-position: center center;\n", 633 "}\n", 634 "\n", 635 "/* Parallel-specific style estimator block */\n", 636 "\n", 637 "#sk-container-id-9 div.sk-parallel-item::after {\n", 638 " content: \"\";\n", 639 " width: 100%;\n", 640 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 641 " flex-grow: 1;\n", 642 "}\n", 643 "\n", 644 "#sk-container-id-9 div.sk-parallel {\n", 645 " display: flex;\n", 646 " align-items: stretch;\n", 647 " justify-content: center;\n", 648 " background-color: var(--sklearn-color-background);\n", 649 " position: relative;\n", 650 "}\n", 651 "\n", 652 "#sk-container-id-9 div.sk-parallel-item {\n", 653 " display: flex;\n", 654 " flex-direction: column;\n", 655 "}\n", 656 "\n", 657 "#sk-container-id-9 div.sk-parallel-item:first-child::after {\n", 658 " align-self: flex-end;\n", 659 " width: 50%;\n", 660 "}\n", 661 "\n", 662 "#sk-container-id-9 div.sk-parallel-item:last-child::after {\n", 663 " align-self: flex-start;\n", 664 " width: 50%;\n", 665 "}\n", 666 "\n", 667 "#sk-container-id-9 div.sk-parallel-item:only-child::after {\n", 668 " width: 0;\n", 669 "}\n", 670 "\n", 671 "/* Serial-specific style estimator block */\n", 672 "\n", 673 "#sk-container-id-9 div.sk-serial {\n", 674 " display: flex;\n", 675 " flex-direction: column;\n", 676 " align-items: center;\n", 677 " background-color: var(--sklearn-color-background);\n", 678 " padding-right: 1em;\n", 679 " padding-left: 1em;\n", 680 "}\n", 681 "\n", 682 "\n", 683 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 684 "clickable and can be expanded/collapsed.\n", 685 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 686 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 687 "*/\n", 688 "\n", 689 "/* Pipeline and ColumnTransformer style (default) */\n", 690 "\n", 691 "#sk-container-id-9 div.sk-toggleable {\n", 692 " /* Default theme specific background. It is overwritten whether we have a\n", 693 " specific estimator or a Pipeline/ColumnTransformer */\n", 694 " background-color: var(--sklearn-color-background);\n", 695 "}\n", 696 "\n", 697 "/* Toggleable label */\n", 698 "#sk-container-id-9 label.sk-toggleable__label {\n", 699 " cursor: pointer;\n", 700 " display: block;\n", 701 " width: 100%;\n", 702 " margin-bottom: 0;\n", 703 " padding: 0.5em;\n", 704 " box-sizing: border-box;\n", 705 " text-align: center;\n", 706 "}\n", 707 "\n", 708 "#sk-container-id-9 label.sk-toggleable__label-arrow:before {\n", 709 " /* Arrow on the left of the label */\n", 710 " content: \"▸\";\n", 711 " float: left;\n", 712 " margin-right: 0.25em;\n", 713 " color: var(--sklearn-color-icon);\n", 714 "}\n", 715 "\n", 716 "#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {\n", 717 " color: var(--sklearn-color-text);\n", 718 "}\n", 719 "\n", 720 "/* Toggleable content - dropdown */\n", 721 "\n", 722 "#sk-container-id-9 div.sk-toggleable__content {\n", 723 " max-height: 0;\n", 724 " max-width: 0;\n", 725 " overflow: hidden;\n", 726 " text-align: left;\n", 727 " /* unfitted */\n", 728 " background-color: var(--sklearn-color-unfitted-level-0);\n", 729 "}\n", 730 "\n", 731 "#sk-container-id-9 div.sk-toggleable__content.fitted {\n", 732 " /* fitted */\n", 733 " background-color: var(--sklearn-color-fitted-level-0);\n", 734 "}\n", 735 "\n", 736 "#sk-container-id-9 div.sk-toggleable__content pre {\n", 737 " margin: 0.2em;\n", 738 " border-radius: 0.25em;\n", 739 " color: var(--sklearn-color-text);\n", 740 " /* unfitted */\n", 741 " background-color: var(--sklearn-color-unfitted-level-0);\n", 742 "}\n", 743 "\n", 744 "#sk-container-id-9 div.sk-toggleable__content.fitted pre {\n", 745 " /* unfitted */\n", 746 " background-color: var(--sklearn-color-fitted-level-0);\n", 747 "}\n", 748 "\n", 749 "#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 750 " /* Expand drop-down */\n", 751 " max-height: 200px;\n", 752 " max-width: 100%;\n", 753 " overflow: auto;\n", 754 "}\n", 755 "\n", 756 "#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 757 " content: \"▾\";\n", 758 "}\n", 759 "\n", 760 "/* Pipeline/ColumnTransformer-specific style */\n", 761 "\n", 762 "#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 763 " color: var(--sklearn-color-text);\n", 764 " background-color: var(--sklearn-color-unfitted-level-2);\n", 765 "}\n", 766 "\n", 767 "#sk-container-id-9 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 768 " background-color: var(--sklearn-color-fitted-level-2);\n", 769 "}\n", 770 "\n", 771 "/* Estimator-specific style */\n", 772 "\n", 773 "/* Colorize estimator box */\n", 774 "#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 775 " /* unfitted */\n", 776 " background-color: var(--sklearn-color-unfitted-level-2);\n", 777 "}\n", 778 "\n", 779 "#sk-container-id-9 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 780 " /* fitted */\n", 781 " background-color: var(--sklearn-color-fitted-level-2);\n", 782 "}\n", 783 "\n", 784 "#sk-container-id-9 div.sk-label label.sk-toggleable__label,\n", 785 "#sk-container-id-9 div.sk-label label {\n", 786 " /* The background is the default theme color */\n", 787 " color: var(--sklearn-color-text-on-default-background);\n", 788 "}\n", 789 "\n", 790 "/* On hover, darken the color of the background */\n", 791 "#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {\n", 792 " color: var(--sklearn-color-text);\n", 793 " background-color: var(--sklearn-color-unfitted-level-2);\n", 794 "}\n", 795 "\n", 796 "/* Label box, darken color on hover, fitted */\n", 797 "#sk-container-id-9 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 798 " color: var(--sklearn-color-text);\n", 799 " background-color: var(--sklearn-color-fitted-level-2);\n", 800 "}\n", 801 "\n", 802 "/* Estimator label */\n", 803 "\n", 804 "#sk-container-id-9 div.sk-label label {\n", 805 " font-family: monospace;\n", 806 " font-weight: bold;\n", 807 " display: inline-block;\n", 808 " line-height: 1.2em;\n", 809 "}\n", 810 "\n", 811 "#sk-container-id-9 div.sk-label-container {\n", 812 " text-align: center;\n", 813 "}\n", 814 "\n", 815 "/* Estimator-specific */\n", 816 "#sk-container-id-9 div.sk-estimator {\n", 817 " font-family: monospace;\n", 818 " border: 1px dotted var(--sklearn-color-border-box);\n", 819 " border-radius: 0.25em;\n", 820 " box-sizing: border-box;\n", 821 " margin-bottom: 0.5em;\n", 822 " /* unfitted */\n", 823 " background-color: var(--sklearn-color-unfitted-level-0);\n", 824 "}\n", 825 "\n", 826 "#sk-container-id-9 div.sk-estimator.fitted {\n", 827 " /* fitted */\n", 828 " background-color: var(--sklearn-color-fitted-level-0);\n", 829 "}\n", 830 "\n", 831 "/* on hover */\n", 832 "#sk-container-id-9 div.sk-estimator:hover {\n", 833 " /* unfitted */\n", 834 " background-color: var(--sklearn-color-unfitted-level-2);\n", 835 "}\n", 836 "\n", 837 "#sk-container-id-9 div.sk-estimator.fitted:hover {\n", 838 " /* fitted */\n", 839 " background-color: var(--sklearn-color-fitted-level-2);\n", 840 "}\n", 841 "\n", 842 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 843 "\n", 844 "/* Common style for \"i\" and \"?\" */\n", 845 "\n", 846 ".sk-estimator-doc-link,\n", 847 "a:link.sk-estimator-doc-link,\n", 848 "a:visited.sk-estimator-doc-link {\n", 849 " float: right;\n", 850 " font-size: smaller;\n", 851 " line-height: 1em;\n", 852 " font-family: monospace;\n", 853 " background-color: var(--sklearn-color-background);\n", 854 " border-radius: 1em;\n", 855 " height: 1em;\n", 856 " width: 1em;\n", 857 " text-decoration: none !important;\n", 858 " margin-left: 1ex;\n", 859 " /* unfitted */\n", 860 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 861 " color: var(--sklearn-color-unfitted-level-1);\n", 862 "}\n", 863 "\n", 864 ".sk-estimator-doc-link.fitted,\n", 865 "a:link.sk-estimator-doc-link.fitted,\n", 866 "a:visited.sk-estimator-doc-link.fitted {\n", 867 " /* fitted */\n", 868 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 869 " color: var(--sklearn-color-fitted-level-1);\n", 870 "}\n", 871 "\n", 872 "/* On hover */\n", 873 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 874 ".sk-estimator-doc-link:hover,\n", 875 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 876 ".sk-estimator-doc-link:hover {\n", 877 " /* unfitted */\n", 878 " background-color: var(--sklearn-color-unfitted-level-3);\n", 879 " color: var(--sklearn-color-background);\n", 880 " text-decoration: none;\n", 881 "}\n", 882 "\n", 883 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 884 ".sk-estimator-doc-link.fitted:hover,\n", 885 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 886 ".sk-estimator-doc-link.fitted:hover {\n", 887 " /* fitted */\n", 888 " background-color: var(--sklearn-color-fitted-level-3);\n", 889 " color: var(--sklearn-color-background);\n", 890 " text-decoration: none;\n", 891 "}\n", 892 "\n", 893 "/* Span, style for the box shown on hovering the info icon */\n", 894 ".sk-estimator-doc-link span {\n", 895 " display: none;\n", 896 " z-index: 9999;\n", 897 " position: relative;\n", 898 " font-weight: normal;\n", 899 " right: .2ex;\n", 900 " padding: .5ex;\n", 901 " margin: .5ex;\n", 902 " width: min-content;\n", 903 " min-width: 20ex;\n", 904 " max-width: 50ex;\n", 905 " color: var(--sklearn-color-text);\n", 906 " box-shadow: 2pt 2pt 4pt #999;\n", 907 " /* unfitted */\n", 908 " background: var(--sklearn-color-unfitted-level-0);\n", 909 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 910 "}\n", 911 "\n", 912 ".sk-estimator-doc-link.fitted span {\n", 913 " /* fitted */\n", 914 " background: var(--sklearn-color-fitted-level-0);\n", 915 " border: var(--sklearn-color-fitted-level-3);\n", 916 "}\n", 917 "\n", 918 ".sk-estimator-doc-link:hover span {\n", 919 " display: block;\n", 920 "}\n", 921 "\n", 922 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 923 "\n", 924 "#sk-container-id-9 a.estimator_doc_link {\n", 925 " float: right;\n", 926 " font-size: 1rem;\n", 927 " line-height: 1em;\n", 928 " font-family: monospace;\n", 929 " background-color: var(--sklearn-color-background);\n", 930 " border-radius: 1rem;\n", 931 " height: 1rem;\n", 932 " width: 1rem;\n", 933 " text-decoration: none;\n", 934 " /* unfitted */\n", 935 " color: var(--sklearn-color-unfitted-level-1);\n", 936 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 937 "}\n", 938 "\n", 939 "#sk-container-id-9 a.estimator_doc_link.fitted {\n", 940 " /* fitted */\n", 941 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 942 " color: var(--sklearn-color-fitted-level-1);\n", 943 "}\n", 944 "\n", 945 "/* On hover */\n", 946 "#sk-container-id-9 a.estimator_doc_link:hover {\n", 947 " /* unfitted */\n", 948 " background-color: var(--sklearn-color-unfitted-level-3);\n", 949 " color: var(--sklearn-color-background);\n", 950 " text-decoration: none;\n", 951 "}\n", 952 "\n", 953 "#sk-container-id-9 a.estimator_doc_link.fitted:hover {\n", 954 " /* fitted */\n", 955 " background-color: var(--sklearn-color-fitted-level-3);\n", 956 "}\n", 957 "</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 958 " ('rf', RandomForestClassifier(random_state=42)),\n", 959 " ('svc', SVC(probability=True, random_state=42))],\n", 960 " voting='soft')</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-32\" type=\"checkbox\" ><label for=\"sk-estimator-id-32\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> VotingClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.VotingClassifier.html\">?<span>Documentation for VotingClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 961 " ('rf', RandomForestClassifier(random_state=42)),\n", 962 " ('svc', SVC(probability=True, random_state=42))],\n", 963 " voting='soft')</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\"><label>lr</label></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-33\" type=\"checkbox\" ><label for=\"sk-estimator-id-33\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LogisticRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html\">?<span>Documentation for LogisticRegression</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>LogisticRegression(random_state=42)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>rf</label></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-34\" type=\"checkbox\" ><label for=\"sk-estimator-id-34\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> RandomForestClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.RandomForestClassifier.html\">?<span>Documentation for RandomForestClassifier</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestClassifier(random_state=42)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>svc</label></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-35\" type=\"checkbox\" ><label for=\"sk-estimator-id-35\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> SVC<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(probability=True, random_state=42)</pre></div> </div></div></div></div></div></div></div></div></div>" 964 ], 965 "text/plain": [ 966 "VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", 967 " ('rf', RandomForestClassifier(random_state=42)),\n", 968 " ('svc', SVC(probability=True, random_state=42))],\n", 969 " voting='soft')" 970 ] 971 }, 972 "execution_count": 48, 973 "metadata": {}, 974 "output_type": "execute_result" 975 } 976 ], 977 "source": [ 978 "# Same thing, but adding soft voting to average probabilities\n", 979 "# from each output. Also, need to specify the svc estimator to use\n", 980 "# probabilistic outputs instead of binary like svcs normally do. \n", 981 "\n", 982 "voting_clf.voting = 'soft'\n", 983 "voting_clf.named_estimators['svc'].probability = True\n", 984 "voting_clf.fit(X_train, y_train)" 985 ] 986 }, 987 { 988 "cell_type": "code", 989 "execution_count": 49, 990 "metadata": {}, 991 "outputs": [ 992 { 993 "data": { 994 "text/plain": [ 995 "0.92" 996 ] 997 }, 998 "execution_count": 49, 999 "metadata": {}, 1000 "output_type": "execute_result" 1001 } 1002 ], 1003 "source": [ 1004 "voting_clf.score(X_test, y_test)" 1005 ] 1006 }, 1007 { 1008 "cell_type": "code", 1009 "execution_count": 50, 1010 "metadata": {}, 1011 "outputs": [ 1012 { 1013 "data": { 1014 "text/html": [ 1015 "<style>#sk-container-id-10 {\n", 1016 " /* Definition of color scheme common for light and dark mode */\n", 1017 " --sklearn-color-text: black;\n", 1018 " --sklearn-color-line: gray;\n", 1019 " /* Definition of color scheme for unfitted estimators */\n", 1020 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 1021 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 1022 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 1023 " --sklearn-color-unfitted-level-3: chocolate;\n", 1024 " /* Definition of color scheme for fitted estimators */\n", 1025 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 1026 " --sklearn-color-fitted-level-1: #d4ebff;\n", 1027 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 1028 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 1029 "\n", 1030 " /* Specific color for light theme */\n", 1031 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1032 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 1033 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1034 " --sklearn-color-icon: #696969;\n", 1035 "\n", 1036 " @media (prefers-color-scheme: dark) {\n", 1037 " /* Redefinition of color scheme for dark theme */\n", 1038 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1039 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 1040 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1041 " --sklearn-color-icon: #878787;\n", 1042 " }\n", 1043 "}\n", 1044 "\n", 1045 "#sk-container-id-10 {\n", 1046 " color: var(--sklearn-color-text);\n", 1047 "}\n", 1048 "\n", 1049 "#sk-container-id-10 pre {\n", 1050 " padding: 0;\n", 1051 "}\n", 1052 "\n", 1053 "#sk-container-id-10 input.sk-hidden--visually {\n", 1054 " border: 0;\n", 1055 " clip: rect(1px 1px 1px 1px);\n", 1056 " clip: rect(1px, 1px, 1px, 1px);\n", 1057 " height: 1px;\n", 1058 " margin: -1px;\n", 1059 " overflow: hidden;\n", 1060 " padding: 0;\n", 1061 " position: absolute;\n", 1062 " width: 1px;\n", 1063 "}\n", 1064 "\n", 1065 "#sk-container-id-10 div.sk-dashed-wrapped {\n", 1066 " border: 1px dashed var(--sklearn-color-line);\n", 1067 " margin: 0 0.4em 0.5em 0.4em;\n", 1068 " box-sizing: border-box;\n", 1069 " padding-bottom: 0.4em;\n", 1070 " background-color: var(--sklearn-color-background);\n", 1071 "}\n", 1072 "\n", 1073 "#sk-container-id-10 div.sk-container {\n", 1074 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 1075 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 1076 " so we also need the `!important` here to be able to override the\n", 1077 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 1078 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 1079 " display: inline-block !important;\n", 1080 " position: relative;\n", 1081 "}\n", 1082 "\n", 1083 "#sk-container-id-10 div.sk-text-repr-fallback {\n", 1084 " display: none;\n", 1085 "}\n", 1086 "\n", 1087 "div.sk-parallel-item,\n", 1088 "div.sk-serial,\n", 1089 "div.sk-item {\n", 1090 " /* draw centered vertical line to link estimators */\n", 1091 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 1092 " background-size: 2px 100%;\n", 1093 " background-repeat: no-repeat;\n", 1094 " background-position: center center;\n", 1095 "}\n", 1096 "\n", 1097 "/* Parallel-specific style estimator block */\n", 1098 "\n", 1099 "#sk-container-id-10 div.sk-parallel-item::after {\n", 1100 " content: \"\";\n", 1101 " width: 100%;\n", 1102 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 1103 " flex-grow: 1;\n", 1104 "}\n", 1105 "\n", 1106 "#sk-container-id-10 div.sk-parallel {\n", 1107 " display: flex;\n", 1108 " align-items: stretch;\n", 1109 " justify-content: center;\n", 1110 " background-color: var(--sklearn-color-background);\n", 1111 " position: relative;\n", 1112 "}\n", 1113 "\n", 1114 "#sk-container-id-10 div.sk-parallel-item {\n", 1115 " display: flex;\n", 1116 " flex-direction: column;\n", 1117 "}\n", 1118 "\n", 1119 "#sk-container-id-10 div.sk-parallel-item:first-child::after {\n", 1120 " align-self: flex-end;\n", 1121 " width: 50%;\n", 1122 "}\n", 1123 "\n", 1124 "#sk-container-id-10 div.sk-parallel-item:last-child::after {\n", 1125 " align-self: flex-start;\n", 1126 " width: 50%;\n", 1127 "}\n", 1128 "\n", 1129 "#sk-container-id-10 div.sk-parallel-item:only-child::after {\n", 1130 " width: 0;\n", 1131 "}\n", 1132 "\n", 1133 "/* Serial-specific style estimator block */\n", 1134 "\n", 1135 "#sk-container-id-10 div.sk-serial {\n", 1136 " display: flex;\n", 1137 " flex-direction: column;\n", 1138 " align-items: center;\n", 1139 " background-color: var(--sklearn-color-background);\n", 1140 " padding-right: 1em;\n", 1141 " padding-left: 1em;\n", 1142 "}\n", 1143 "\n", 1144 "\n", 1145 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 1146 "clickable and can be expanded/collapsed.\n", 1147 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 1148 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 1149 "*/\n", 1150 "\n", 1151 "/* Pipeline and ColumnTransformer style (default) */\n", 1152 "\n", 1153 "#sk-container-id-10 div.sk-toggleable {\n", 1154 " /* Default theme specific background. It is overwritten whether we have a\n", 1155 " specific estimator or a Pipeline/ColumnTransformer */\n", 1156 " background-color: var(--sklearn-color-background);\n", 1157 "}\n", 1158 "\n", 1159 "/* Toggleable label */\n", 1160 "#sk-container-id-10 label.sk-toggleable__label {\n", 1161 " cursor: pointer;\n", 1162 " display: block;\n", 1163 " width: 100%;\n", 1164 " margin-bottom: 0;\n", 1165 " padding: 0.5em;\n", 1166 " box-sizing: border-box;\n", 1167 " text-align: center;\n", 1168 "}\n", 1169 "\n", 1170 "#sk-container-id-10 label.sk-toggleable__label-arrow:before {\n", 1171 " /* Arrow on the left of the label */\n", 1172 " content: \"▸\";\n", 1173 " float: left;\n", 1174 " margin-right: 0.25em;\n", 1175 " color: var(--sklearn-color-icon);\n", 1176 "}\n", 1177 "\n", 1178 "#sk-container-id-10 label.sk-toggleable__label-arrow:hover:before {\n", 1179 " color: var(--sklearn-color-text);\n", 1180 "}\n", 1181 "\n", 1182 "/* Toggleable content - dropdown */\n", 1183 "\n", 1184 "#sk-container-id-10 div.sk-toggleable__content {\n", 1185 " max-height: 0;\n", 1186 " max-width: 0;\n", 1187 " overflow: hidden;\n", 1188 " text-align: left;\n", 1189 " /* unfitted */\n", 1190 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1191 "}\n", 1192 "\n", 1193 "#sk-container-id-10 div.sk-toggleable__content.fitted {\n", 1194 " /* fitted */\n", 1195 " background-color: var(--sklearn-color-fitted-level-0);\n", 1196 "}\n", 1197 "\n", 1198 "#sk-container-id-10 div.sk-toggleable__content pre {\n", 1199 " margin: 0.2em;\n", 1200 " border-radius: 0.25em;\n", 1201 " color: var(--sklearn-color-text);\n", 1202 " /* unfitted */\n", 1203 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1204 "}\n", 1205 "\n", 1206 "#sk-container-id-10 div.sk-toggleable__content.fitted pre {\n", 1207 " /* unfitted */\n", 1208 " background-color: var(--sklearn-color-fitted-level-0);\n", 1209 "}\n", 1210 "\n", 1211 "#sk-container-id-10 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 1212 " /* Expand drop-down */\n", 1213 " max-height: 200px;\n", 1214 " max-width: 100%;\n", 1215 " overflow: auto;\n", 1216 "}\n", 1217 "\n", 1218 "#sk-container-id-10 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 1219 " content: \"▾\";\n", 1220 "}\n", 1221 "\n", 1222 "/* Pipeline/ColumnTransformer-specific style */\n", 1223 "\n", 1224 "#sk-container-id-10 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1225 " color: var(--sklearn-color-text);\n", 1226 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1227 "}\n", 1228 "\n", 1229 "#sk-container-id-10 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1230 " background-color: var(--sklearn-color-fitted-level-2);\n", 1231 "}\n", 1232 "\n", 1233 "/* Estimator-specific style */\n", 1234 "\n", 1235 "/* Colorize estimator box */\n", 1236 "#sk-container-id-10 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1237 " /* unfitted */\n", 1238 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1239 "}\n", 1240 "\n", 1241 "#sk-container-id-10 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1242 " /* fitted */\n", 1243 " background-color: var(--sklearn-color-fitted-level-2);\n", 1244 "}\n", 1245 "\n", 1246 "#sk-container-id-10 div.sk-label label.sk-toggleable__label,\n", 1247 "#sk-container-id-10 div.sk-label label {\n", 1248 " /* The background is the default theme color */\n", 1249 " color: var(--sklearn-color-text-on-default-background);\n", 1250 "}\n", 1251 "\n", 1252 "/* On hover, darken the color of the background */\n", 1253 "#sk-container-id-10 div.sk-label:hover label.sk-toggleable__label {\n", 1254 " color: var(--sklearn-color-text);\n", 1255 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1256 "}\n", 1257 "\n", 1258 "/* Label box, darken color on hover, fitted */\n", 1259 "#sk-container-id-10 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 1260 " color: var(--sklearn-color-text);\n", 1261 " background-color: var(--sklearn-color-fitted-level-2);\n", 1262 "}\n", 1263 "\n", 1264 "/* Estimator label */\n", 1265 "\n", 1266 "#sk-container-id-10 div.sk-label label {\n", 1267 " font-family: monospace;\n", 1268 " font-weight: bold;\n", 1269 " display: inline-block;\n", 1270 " line-height: 1.2em;\n", 1271 "}\n", 1272 "\n", 1273 "#sk-container-id-10 div.sk-label-container {\n", 1274 " text-align: center;\n", 1275 "}\n", 1276 "\n", 1277 "/* Estimator-specific */\n", 1278 "#sk-container-id-10 div.sk-estimator {\n", 1279 " font-family: monospace;\n", 1280 " border: 1px dotted var(--sklearn-color-border-box);\n", 1281 " border-radius: 0.25em;\n", 1282 " box-sizing: border-box;\n", 1283 " margin-bottom: 0.5em;\n", 1284 " /* unfitted */\n", 1285 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1286 "}\n", 1287 "\n", 1288 "#sk-container-id-10 div.sk-estimator.fitted {\n", 1289 " /* fitted */\n", 1290 " background-color: var(--sklearn-color-fitted-level-0);\n", 1291 "}\n", 1292 "\n", 1293 "/* on hover */\n", 1294 "#sk-container-id-10 div.sk-estimator:hover {\n", 1295 " /* unfitted */\n", 1296 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1297 "}\n", 1298 "\n", 1299 "#sk-container-id-10 div.sk-estimator.fitted:hover {\n", 1300 " /* fitted */\n", 1301 " background-color: var(--sklearn-color-fitted-level-2);\n", 1302 "}\n", 1303 "\n", 1304 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 1305 "\n", 1306 "/* Common style for \"i\" and \"?\" */\n", 1307 "\n", 1308 ".sk-estimator-doc-link,\n", 1309 "a:link.sk-estimator-doc-link,\n", 1310 "a:visited.sk-estimator-doc-link {\n", 1311 " float: right;\n", 1312 " font-size: smaller;\n", 1313 " line-height: 1em;\n", 1314 " font-family: monospace;\n", 1315 " background-color: var(--sklearn-color-background);\n", 1316 " border-radius: 1em;\n", 1317 " height: 1em;\n", 1318 " width: 1em;\n", 1319 " text-decoration: none !important;\n", 1320 " margin-left: 1ex;\n", 1321 " /* unfitted */\n", 1322 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1323 " color: var(--sklearn-color-unfitted-level-1);\n", 1324 "}\n", 1325 "\n", 1326 ".sk-estimator-doc-link.fitted,\n", 1327 "a:link.sk-estimator-doc-link.fitted,\n", 1328 "a:visited.sk-estimator-doc-link.fitted {\n", 1329 " /* fitted */\n", 1330 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1331 " color: var(--sklearn-color-fitted-level-1);\n", 1332 "}\n", 1333 "\n", 1334 "/* On hover */\n", 1335 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 1336 ".sk-estimator-doc-link:hover,\n", 1337 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 1338 ".sk-estimator-doc-link:hover {\n", 1339 " /* unfitted */\n", 1340 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1341 " color: var(--sklearn-color-background);\n", 1342 " text-decoration: none;\n", 1343 "}\n", 1344 "\n", 1345 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 1346 ".sk-estimator-doc-link.fitted:hover,\n", 1347 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 1348 ".sk-estimator-doc-link.fitted:hover {\n", 1349 " /* fitted */\n", 1350 " background-color: var(--sklearn-color-fitted-level-3);\n", 1351 " color: var(--sklearn-color-background);\n", 1352 " text-decoration: none;\n", 1353 "}\n", 1354 "\n", 1355 "/* Span, style for the box shown on hovering the info icon */\n", 1356 ".sk-estimator-doc-link span {\n", 1357 " display: none;\n", 1358 " z-index: 9999;\n", 1359 " position: relative;\n", 1360 " font-weight: normal;\n", 1361 " right: .2ex;\n", 1362 " padding: .5ex;\n", 1363 " margin: .5ex;\n", 1364 " width: min-content;\n", 1365 " min-width: 20ex;\n", 1366 " max-width: 50ex;\n", 1367 " color: var(--sklearn-color-text);\n", 1368 " box-shadow: 2pt 2pt 4pt #999;\n", 1369 " /* unfitted */\n", 1370 " background: var(--sklearn-color-unfitted-level-0);\n", 1371 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 1372 "}\n", 1373 "\n", 1374 ".sk-estimator-doc-link.fitted span {\n", 1375 " /* fitted */\n", 1376 " background: var(--sklearn-color-fitted-level-0);\n", 1377 " border: var(--sklearn-color-fitted-level-3);\n", 1378 "}\n", 1379 "\n", 1380 ".sk-estimator-doc-link:hover span {\n", 1381 " display: block;\n", 1382 "}\n", 1383 "\n", 1384 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 1385 "\n", 1386 "#sk-container-id-10 a.estimator_doc_link {\n", 1387 " float: right;\n", 1388 " font-size: 1rem;\n", 1389 " line-height: 1em;\n", 1390 " font-family: monospace;\n", 1391 " background-color: var(--sklearn-color-background);\n", 1392 " border-radius: 1rem;\n", 1393 " height: 1rem;\n", 1394 " width: 1rem;\n", 1395 " text-decoration: none;\n", 1396 " /* unfitted */\n", 1397 " color: var(--sklearn-color-unfitted-level-1);\n", 1398 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1399 "}\n", 1400 "\n", 1401 "#sk-container-id-10 a.estimator_doc_link.fitted {\n", 1402 " /* fitted */\n", 1403 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1404 " color: var(--sklearn-color-fitted-level-1);\n", 1405 "}\n", 1406 "\n", 1407 "/* On hover */\n", 1408 "#sk-container-id-10 a.estimator_doc_link:hover {\n", 1409 " /* unfitted */\n", 1410 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1411 " color: var(--sklearn-color-background);\n", 1412 " text-decoration: none;\n", 1413 "}\n", 1414 "\n", 1415 "#sk-container-id-10 a.estimator_doc_link.fitted:hover {\n", 1416 " /* fitted */\n", 1417 " background-color: var(--sklearn-color-fitted-level-3);\n", 1418 "}\n", 1419 "</style><div id=\"sk-container-id-10\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>BaggingClassifier(estimator=DecisionTreeClassifier(), max_samples=100,\n", 1420 " n_estimators=500, n_jobs=-1, random_state=10)</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-36\" type=\"checkbox\" ><label for=\"sk-estimator-id-36\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> BaggingClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.BaggingClassifier.html\">?<span>Documentation for BaggingClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>BaggingClassifier(estimator=DecisionTreeClassifier(), max_samples=100,\n", 1421 " n_estimators=500, n_jobs=-1, random_state=10)</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-37\" type=\"checkbox\" ><label for=\"sk-estimator-id-37\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">estimator: DecisionTreeClassifier</label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeClassifier()</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-38\" type=\"checkbox\" ><label for=\"sk-estimator-id-38\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> DecisionTreeClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.tree.DecisionTreeClassifier.html\">?<span>Documentation for DecisionTreeClassifier</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeClassifier()</pre></div> </div></div></div></div></div></div></div></div></div>" 1422 ], 1423 "text/plain": [ 1424 "BaggingClassifier(estimator=DecisionTreeClassifier(), max_samples=100,\n", 1425 " n_estimators=500, n_jobs=-1, random_state=10)" 1426 ] 1427 }, 1428 "execution_count": 50, 1429 "metadata": {}, 1430 "output_type": "execute_result" 1431 } 1432 ], 1433 "source": [ 1434 "# Bagging (voting) classifier using decision trees.\n", 1435 "\n", 1436 "# Bagging classifier by default uses soft voting when the underlying\n", 1437 "# model can output probabilities which decision trees can.\n", 1438 "\n", 1439 "from sklearn.ensemble import BaggingClassifier\n", 1440 "from sklearn.tree import DecisionTreeClassifier\n", 1441 "\n", 1442 "bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500, max_samples=100, n_jobs=-1,random_state=10)\n", 1443 "bag_clf.fit(X_train, y_train)" 1444 ] 1445 }, 1446 { 1447 "cell_type": "code", 1448 "execution_count": 51, 1449 "metadata": {}, 1450 "outputs": [ 1451 { 1452 "data": { 1453 "text/plain": [ 1454 "0.92" 1455 ] 1456 }, 1457 "execution_count": 51, 1458 "metadata": {}, 1459 "output_type": "execute_result" 1460 } 1461 ], 1462 "source": [ 1463 "# Same as before. Nice\n", 1464 "\n", 1465 "bag_clf.score(X_test,y_test)" 1466 ] 1467 }, 1468 { 1469 "cell_type": "code", 1470 "execution_count": 52, 1471 "metadata": {}, 1472 "outputs": [ 1473 { 1474 "data": { 1475 "text/plain": [ 1476 "0.8986666666666666" 1477 ] 1478 }, 1479 "execution_count": 52, 1480 "metadata": {}, 1481 "output_type": "execute_result" 1482 } 1483 ], 1484 "source": [ 1485 "# Train and then validate predictors on their out of bag samples.\n", 1486 "\n", 1487 "bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500, oob_score=True, n_jobs=-1, random_state=10)\n", 1488 "\n", 1489 "bag_clf.fit(X_train, y_train)\n", 1490 "bag_clf.oob_score_" 1491 ] 1492 }, 1493 { 1494 "cell_type": "code", 1495 "execution_count": 53, 1496 "metadata": {}, 1497 "outputs": [ 1498 { 1499 "data": { 1500 "text/plain": [ 1501 "0.896" 1502 ] 1503 }, 1504 "execution_count": 53, 1505 "metadata": {}, 1506 "output_type": "execute_result" 1507 } 1508 ], 1509 "source": [ 1510 "from sklearn.metrics import accuracy_score\n", 1511 "y_pred = bag_clf.predict(X_test)\n", 1512 "accuracy_score(y_test,y_pred)" 1513 ] 1514 }, 1515 { 1516 "cell_type": "code", 1517 "execution_count": 58, 1518 "metadata": {}, 1519 "outputs": [ 1520 { 1521 "data": { 1522 "text/plain": [ 1523 "0.92" 1524 ] 1525 }, 1526 "execution_count": 58, 1527 "metadata": {}, 1528 "output_type": "execute_result" 1529 } 1530 ], 1531 "source": [ 1532 "# Expected way to train a random forest (still uses bagging, but underlyingly)\n", 1533 "from sklearn.ensemble import RandomForestClassifier\n", 1534 "\n", 1535 "# Create random forest classifiers with 500 estimators (predictors)\n", 1536 "# max leaf nodes of 16 to give regularization, and n_jobs set to -1\n", 1537 "# which will allow training on all cpu cores (otherwise can specify some int for that\n", 1538 "# number of cores).\n", 1539 "\n", 1540 "rnd_clf = RandomForestClassifier(n_estimators=500 , max_leaf_nodes=16, n_jobs=-1, random_state=10)\n", 1541 "\n", 1542 "rnd_clf.fit(X_train, y_train)\n", 1543 "y_pred_rf = rnd_clf.predict(X_test)\n", 1544 "rnd_clf.score(X_test, y_test)" 1545 ] 1546 }, 1547 { 1548 "cell_type": "code", 1549 "execution_count": 65, 1550 "metadata": {}, 1551 "outputs": [ 1552 { 1553 "data": { 1554 "text/plain": [ 1555 "array([0.41214609, 0.58785391])" 1556 ] 1557 }, 1558 "execution_count": 65, 1559 "metadata": {}, 1560 "output_type": "execute_result" 1561 } 1562 ], 1563 "source": [ 1564 "rnd_clf.feature_importances_" 1565 ] 1566 }, 1567 { 1568 "cell_type": "code", 1569 "execution_count": 63, 1570 "metadata": {}, 1571 "outputs": [ 1572 { 1573 "data": { 1574 "text/plain": [ 1575 "0.92" 1576 ] 1577 }, 1578 "execution_count": 63, 1579 "metadata": {}, 1580 "output_type": "execute_result" 1581 } 1582 ], 1583 "source": [ 1584 "# extra trees testing (I think this will be very innacurate, but let's see!)\n", 1585 "\n", 1586 "from sklearn.ensemble import ExtraTreesClassifier\n", 1587 "ext_clf = ExtraTreesClassifier(n_estimators=800, max_leaf_nodes=16, n_jobs=-1, random_state=10)\n", 1588 "ext_clf.fit(X_train, y_train)\n", 1589 "ext_clf.score(X_test, y_test)\n", 1590 "\n", 1591 "# Damn that's pretty good, and quite fast to train." 1592 ] 1593 }, 1594 { 1595 "cell_type": "code", 1596 "execution_count": 64, 1597 "metadata": {}, 1598 "outputs": [ 1599 { 1600 "data": { 1601 "text/plain": [ 1602 "array([0.41388478, 0.58611522])" 1603 ] 1604 }, 1605 "execution_count": 64, 1606 "metadata": {}, 1607 "output_type": "execute_result" 1608 } 1609 ], 1610 "source": [ 1611 "# Gives the relative importance of each feature based on its\n", 1612 "# ability to reduce impurity on average. \n", 1613 "ext_clf.feature_importances_" 1614 ] 1615 }, 1616 { 1617 "cell_type": "code", 1618 "execution_count": 77, 1619 "metadata": {}, 1620 "outputs": [ 1621 { 1622 "name": "stderr", 1623 "output_type": "stream", 1624 "text": [ 1625 "/home/andrew/gitRepos/myvenv/lib/python3.11/site-packages/sklearn/ensemble/_weight_boosting.py:519: FutureWarning: The SAMME.R algorithm (the default) is deprecated and will be removed in 1.6. Use the SAMME algorithm to circumvent this warning.\n", 1626 " warnings.warn(\n" 1627 ] 1628 }, 1629 { 1630 "data": { 1631 "text/html": [ 1632 "<style>#sk-container-id-16 {\n", 1633 " /* Definition of color scheme common for light and dark mode */\n", 1634 " --sklearn-color-text: black;\n", 1635 " --sklearn-color-line: gray;\n", 1636 " /* Definition of color scheme for unfitted estimators */\n", 1637 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 1638 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 1639 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 1640 " --sklearn-color-unfitted-level-3: chocolate;\n", 1641 " /* Definition of color scheme for fitted estimators */\n", 1642 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 1643 " --sklearn-color-fitted-level-1: #d4ebff;\n", 1644 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 1645 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 1646 "\n", 1647 " /* Specific color for light theme */\n", 1648 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1649 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 1650 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1651 " --sklearn-color-icon: #696969;\n", 1652 "\n", 1653 " @media (prefers-color-scheme: dark) {\n", 1654 " /* Redefinition of color scheme for dark theme */\n", 1655 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1656 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 1657 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1658 " --sklearn-color-icon: #878787;\n", 1659 " }\n", 1660 "}\n", 1661 "\n", 1662 "#sk-container-id-16 {\n", 1663 " color: var(--sklearn-color-text);\n", 1664 "}\n", 1665 "\n", 1666 "#sk-container-id-16 pre {\n", 1667 " padding: 0;\n", 1668 "}\n", 1669 "\n", 1670 "#sk-container-id-16 input.sk-hidden--visually {\n", 1671 " border: 0;\n", 1672 " clip: rect(1px 1px 1px 1px);\n", 1673 " clip: rect(1px, 1px, 1px, 1px);\n", 1674 " height: 1px;\n", 1675 " margin: -1px;\n", 1676 " overflow: hidden;\n", 1677 " padding: 0;\n", 1678 " position: absolute;\n", 1679 " width: 1px;\n", 1680 "}\n", 1681 "\n", 1682 "#sk-container-id-16 div.sk-dashed-wrapped {\n", 1683 " border: 1px dashed var(--sklearn-color-line);\n", 1684 " margin: 0 0.4em 0.5em 0.4em;\n", 1685 " box-sizing: border-box;\n", 1686 " padding-bottom: 0.4em;\n", 1687 " background-color: var(--sklearn-color-background);\n", 1688 "}\n", 1689 "\n", 1690 "#sk-container-id-16 div.sk-container {\n", 1691 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 1692 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 1693 " so we also need the `!important` here to be able to override the\n", 1694 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 1695 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 1696 " display: inline-block !important;\n", 1697 " position: relative;\n", 1698 "}\n", 1699 "\n", 1700 "#sk-container-id-16 div.sk-text-repr-fallback {\n", 1701 " display: none;\n", 1702 "}\n", 1703 "\n", 1704 "div.sk-parallel-item,\n", 1705 "div.sk-serial,\n", 1706 "div.sk-item {\n", 1707 " /* draw centered vertical line to link estimators */\n", 1708 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 1709 " background-size: 2px 100%;\n", 1710 " background-repeat: no-repeat;\n", 1711 " background-position: center center;\n", 1712 "}\n", 1713 "\n", 1714 "/* Parallel-specific style estimator block */\n", 1715 "\n", 1716 "#sk-container-id-16 div.sk-parallel-item::after {\n", 1717 " content: \"\";\n", 1718 " width: 100%;\n", 1719 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 1720 " flex-grow: 1;\n", 1721 "}\n", 1722 "\n", 1723 "#sk-container-id-16 div.sk-parallel {\n", 1724 " display: flex;\n", 1725 " align-items: stretch;\n", 1726 " justify-content: center;\n", 1727 " background-color: var(--sklearn-color-background);\n", 1728 " position: relative;\n", 1729 "}\n", 1730 "\n", 1731 "#sk-container-id-16 div.sk-parallel-item {\n", 1732 " display: flex;\n", 1733 " flex-direction: column;\n", 1734 "}\n", 1735 "\n", 1736 "#sk-container-id-16 div.sk-parallel-item:first-child::after {\n", 1737 " align-self: flex-end;\n", 1738 " width: 50%;\n", 1739 "}\n", 1740 "\n", 1741 "#sk-container-id-16 div.sk-parallel-item:last-child::after {\n", 1742 " align-self: flex-start;\n", 1743 " width: 50%;\n", 1744 "}\n", 1745 "\n", 1746 "#sk-container-id-16 div.sk-parallel-item:only-child::after {\n", 1747 " width: 0;\n", 1748 "}\n", 1749 "\n", 1750 "/* Serial-specific style estimator block */\n", 1751 "\n", 1752 "#sk-container-id-16 div.sk-serial {\n", 1753 " display: flex;\n", 1754 " flex-direction: column;\n", 1755 " align-items: center;\n", 1756 " background-color: var(--sklearn-color-background);\n", 1757 " padding-right: 1em;\n", 1758 " padding-left: 1em;\n", 1759 "}\n", 1760 "\n", 1761 "\n", 1762 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 1763 "clickable and can be expanded/collapsed.\n", 1764 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 1765 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 1766 "*/\n", 1767 "\n", 1768 "/* Pipeline and ColumnTransformer style (default) */\n", 1769 "\n", 1770 "#sk-container-id-16 div.sk-toggleable {\n", 1771 " /* Default theme specific background. It is overwritten whether we have a\n", 1772 " specific estimator or a Pipeline/ColumnTransformer */\n", 1773 " background-color: var(--sklearn-color-background);\n", 1774 "}\n", 1775 "\n", 1776 "/* Toggleable label */\n", 1777 "#sk-container-id-16 label.sk-toggleable__label {\n", 1778 " cursor: pointer;\n", 1779 " display: block;\n", 1780 " width: 100%;\n", 1781 " margin-bottom: 0;\n", 1782 " padding: 0.5em;\n", 1783 " box-sizing: border-box;\n", 1784 " text-align: center;\n", 1785 "}\n", 1786 "\n", 1787 "#sk-container-id-16 label.sk-toggleable__label-arrow:before {\n", 1788 " /* Arrow on the left of the label */\n", 1789 " content: \"▸\";\n", 1790 " float: left;\n", 1791 " margin-right: 0.25em;\n", 1792 " color: var(--sklearn-color-icon);\n", 1793 "}\n", 1794 "\n", 1795 "#sk-container-id-16 label.sk-toggleable__label-arrow:hover:before {\n", 1796 " color: var(--sklearn-color-text);\n", 1797 "}\n", 1798 "\n", 1799 "/* Toggleable content - dropdown */\n", 1800 "\n", 1801 "#sk-container-id-16 div.sk-toggleable__content {\n", 1802 " max-height: 0;\n", 1803 " max-width: 0;\n", 1804 " overflow: hidden;\n", 1805 " text-align: left;\n", 1806 " /* unfitted */\n", 1807 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1808 "}\n", 1809 "\n", 1810 "#sk-container-id-16 div.sk-toggleable__content.fitted {\n", 1811 " /* fitted */\n", 1812 " background-color: var(--sklearn-color-fitted-level-0);\n", 1813 "}\n", 1814 "\n", 1815 "#sk-container-id-16 div.sk-toggleable__content pre {\n", 1816 " margin: 0.2em;\n", 1817 " border-radius: 0.25em;\n", 1818 " color: var(--sklearn-color-text);\n", 1819 " /* unfitted */\n", 1820 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1821 "}\n", 1822 "\n", 1823 "#sk-container-id-16 div.sk-toggleable__content.fitted pre {\n", 1824 " /* unfitted */\n", 1825 " background-color: var(--sklearn-color-fitted-level-0);\n", 1826 "}\n", 1827 "\n", 1828 "#sk-container-id-16 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 1829 " /* Expand drop-down */\n", 1830 " max-height: 200px;\n", 1831 " max-width: 100%;\n", 1832 " overflow: auto;\n", 1833 "}\n", 1834 "\n", 1835 "#sk-container-id-16 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 1836 " content: \"▾\";\n", 1837 "}\n", 1838 "\n", 1839 "/* Pipeline/ColumnTransformer-specific style */\n", 1840 "\n", 1841 "#sk-container-id-16 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1842 " color: var(--sklearn-color-text);\n", 1843 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1844 "}\n", 1845 "\n", 1846 "#sk-container-id-16 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1847 " background-color: var(--sklearn-color-fitted-level-2);\n", 1848 "}\n", 1849 "\n", 1850 "/* Estimator-specific style */\n", 1851 "\n", 1852 "/* Colorize estimator box */\n", 1853 "#sk-container-id-16 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1854 " /* unfitted */\n", 1855 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1856 "}\n", 1857 "\n", 1858 "#sk-container-id-16 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1859 " /* fitted */\n", 1860 " background-color: var(--sklearn-color-fitted-level-2);\n", 1861 "}\n", 1862 "\n", 1863 "#sk-container-id-16 div.sk-label label.sk-toggleable__label,\n", 1864 "#sk-container-id-16 div.sk-label label {\n", 1865 " /* The background is the default theme color */\n", 1866 " color: var(--sklearn-color-text-on-default-background);\n", 1867 "}\n", 1868 "\n", 1869 "/* On hover, darken the color of the background */\n", 1870 "#sk-container-id-16 div.sk-label:hover label.sk-toggleable__label {\n", 1871 " color: var(--sklearn-color-text);\n", 1872 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1873 "}\n", 1874 "\n", 1875 "/* Label box, darken color on hover, fitted */\n", 1876 "#sk-container-id-16 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 1877 " color: var(--sklearn-color-text);\n", 1878 " background-color: var(--sklearn-color-fitted-level-2);\n", 1879 "}\n", 1880 "\n", 1881 "/* Estimator label */\n", 1882 "\n", 1883 "#sk-container-id-16 div.sk-label label {\n", 1884 " font-family: monospace;\n", 1885 " font-weight: bold;\n", 1886 " display: inline-block;\n", 1887 " line-height: 1.2em;\n", 1888 "}\n", 1889 "\n", 1890 "#sk-container-id-16 div.sk-label-container {\n", 1891 " text-align: center;\n", 1892 "}\n", 1893 "\n", 1894 "/* Estimator-specific */\n", 1895 "#sk-container-id-16 div.sk-estimator {\n", 1896 " font-family: monospace;\n", 1897 " border: 1px dotted var(--sklearn-color-border-box);\n", 1898 " border-radius: 0.25em;\n", 1899 " box-sizing: border-box;\n", 1900 " margin-bottom: 0.5em;\n", 1901 " /* unfitted */\n", 1902 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1903 "}\n", 1904 "\n", 1905 "#sk-container-id-16 div.sk-estimator.fitted {\n", 1906 " /* fitted */\n", 1907 " background-color: var(--sklearn-color-fitted-level-0);\n", 1908 "}\n", 1909 "\n", 1910 "/* on hover */\n", 1911 "#sk-container-id-16 div.sk-estimator:hover {\n", 1912 " /* unfitted */\n", 1913 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1914 "}\n", 1915 "\n", 1916 "#sk-container-id-16 div.sk-estimator.fitted:hover {\n", 1917 " /* fitted */\n", 1918 " background-color: var(--sklearn-color-fitted-level-2);\n", 1919 "}\n", 1920 "\n", 1921 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 1922 "\n", 1923 "/* Common style for \"i\" and \"?\" */\n", 1924 "\n", 1925 ".sk-estimator-doc-link,\n", 1926 "a:link.sk-estimator-doc-link,\n", 1927 "a:visited.sk-estimator-doc-link {\n", 1928 " float: right;\n", 1929 " font-size: smaller;\n", 1930 " line-height: 1em;\n", 1931 " font-family: monospace;\n", 1932 " background-color: var(--sklearn-color-background);\n", 1933 " border-radius: 1em;\n", 1934 " height: 1em;\n", 1935 " width: 1em;\n", 1936 " text-decoration: none !important;\n", 1937 " margin-left: 1ex;\n", 1938 " /* unfitted */\n", 1939 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1940 " color: var(--sklearn-color-unfitted-level-1);\n", 1941 "}\n", 1942 "\n", 1943 ".sk-estimator-doc-link.fitted,\n", 1944 "a:link.sk-estimator-doc-link.fitted,\n", 1945 "a:visited.sk-estimator-doc-link.fitted {\n", 1946 " /* fitted */\n", 1947 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1948 " color: var(--sklearn-color-fitted-level-1);\n", 1949 "}\n", 1950 "\n", 1951 "/* On hover */\n", 1952 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 1953 ".sk-estimator-doc-link:hover,\n", 1954 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 1955 ".sk-estimator-doc-link:hover {\n", 1956 " /* unfitted */\n", 1957 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1958 " color: var(--sklearn-color-background);\n", 1959 " text-decoration: none;\n", 1960 "}\n", 1961 "\n", 1962 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 1963 ".sk-estimator-doc-link.fitted:hover,\n", 1964 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 1965 ".sk-estimator-doc-link.fitted:hover {\n", 1966 " /* fitted */\n", 1967 " background-color: var(--sklearn-color-fitted-level-3);\n", 1968 " color: var(--sklearn-color-background);\n", 1969 " text-decoration: none;\n", 1970 "}\n", 1971 "\n", 1972 "/* Span, style for the box shown on hovering the info icon */\n", 1973 ".sk-estimator-doc-link span {\n", 1974 " display: none;\n", 1975 " z-index: 9999;\n", 1976 " position: relative;\n", 1977 " font-weight: normal;\n", 1978 " right: .2ex;\n", 1979 " padding: .5ex;\n", 1980 " margin: .5ex;\n", 1981 " width: min-content;\n", 1982 " min-width: 20ex;\n", 1983 " max-width: 50ex;\n", 1984 " color: var(--sklearn-color-text);\n", 1985 " box-shadow: 2pt 2pt 4pt #999;\n", 1986 " /* unfitted */\n", 1987 " background: var(--sklearn-color-unfitted-level-0);\n", 1988 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 1989 "}\n", 1990 "\n", 1991 ".sk-estimator-doc-link.fitted span {\n", 1992 " /* fitted */\n", 1993 " background: var(--sklearn-color-fitted-level-0);\n", 1994 " border: var(--sklearn-color-fitted-level-3);\n", 1995 "}\n", 1996 "\n", 1997 ".sk-estimator-doc-link:hover span {\n", 1998 " display: block;\n", 1999 "}\n", 2000 "\n", 2001 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 2002 "\n", 2003 "#sk-container-id-16 a.estimator_doc_link {\n", 2004 " float: right;\n", 2005 " font-size: 1rem;\n", 2006 " line-height: 1em;\n", 2007 " font-family: monospace;\n", 2008 " background-color: var(--sklearn-color-background);\n", 2009 " border-radius: 1rem;\n", 2010 " height: 1rem;\n", 2011 " width: 1rem;\n", 2012 " text-decoration: none;\n", 2013 " /* unfitted */\n", 2014 " color: var(--sklearn-color-unfitted-level-1);\n", 2015 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 2016 "}\n", 2017 "\n", 2018 "#sk-container-id-16 a.estimator_doc_link.fitted {\n", 2019 " /* fitted */\n", 2020 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 2021 " color: var(--sklearn-color-fitted-level-1);\n", 2022 "}\n", 2023 "\n", 2024 "/* On hover */\n", 2025 "#sk-container-id-16 a.estimator_doc_link:hover {\n", 2026 " /* unfitted */\n", 2027 " background-color: var(--sklearn-color-unfitted-level-3);\n", 2028 " color: var(--sklearn-color-background);\n", 2029 " text-decoration: none;\n", 2030 "}\n", 2031 "\n", 2032 "#sk-container-id-16 a.estimator_doc_link.fitted:hover {\n", 2033 " /* fitted */\n", 2034 " background-color: var(--sklearn-color-fitted-level-3);\n", 2035 "}\n", 2036 "</style><div id=\"sk-container-id-16\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>AdaBoostClassifier(estimator=DecisionTreeClassifier(max_depth=1),\n", 2037 " learning_rate=0.5, n_estimators=30, random_state=10)</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-54\" type=\"checkbox\" ><label for=\"sk-estimator-id-54\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> AdaBoostClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.AdaBoostClassifier.html\">?<span>Documentation for AdaBoostClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>AdaBoostClassifier(estimator=DecisionTreeClassifier(max_depth=1),\n", 2038 " learning_rate=0.5, n_estimators=30, random_state=10)</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-55\" type=\"checkbox\" ><label for=\"sk-estimator-id-55\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">estimator: DecisionTreeClassifier</label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeClassifier(max_depth=1)</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-56\" type=\"checkbox\" ><label for=\"sk-estimator-id-56\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> DecisionTreeClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.tree.DecisionTreeClassifier.html\">?<span>Documentation for DecisionTreeClassifier</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeClassifier(max_depth=1)</pre></div> </div></div></div></div></div></div></div></div></div>" 2039 ], 2040 "text/plain": [ 2041 "AdaBoostClassifier(estimator=DecisionTreeClassifier(max_depth=1),\n", 2042 " learning_rate=0.5, n_estimators=30, random_state=10)" 2043 ] 2044 }, 2045 "execution_count": 77, 2046 "metadata": {}, 2047 "output_type": "execute_result" 2048 } 2049 ], 2050 "source": [ 2051 "# Use adaboosting with decision stumps (trees with a max of 1 depth)\n", 2052 "\n", 2053 "from sklearn.ensemble import AdaBoostClassifier\n", 2054 "\n", 2055 "ada_clf = AdaBoostClassifier(\n", 2056 " DecisionTreeClassifier(max_depth=1),\n", 2057 " n_estimators=30,\n", 2058 " learning_rate=.5,\n", 2059 " random_state=10\n", 2060 ")\n", 2061 "ada_clf.fit(X_train, y_train)" 2062 ] 2063 }, 2064 { 2065 "cell_type": "code", 2066 "execution_count": 78, 2067 "metadata": {}, 2068 "outputs": [ 2069 { 2070 "data": { 2071 "text/plain": [ 2072 "0.904" 2073 ] 2074 }, 2075 "execution_count": 78, 2076 "metadata": {}, 2077 "output_type": "execute_result" 2078 } 2079 ], 2080 "source": [ 2081 "# That's insane!! Using only 30 split nodes this was able\n", 2082 "# to get 90.4% accuracy!\n", 2083 "\n", 2084 "ada_clf.score(X_test, y_test)" 2085 ] 2086 }, 2087 { 2088 "cell_type": "code", 2089 "execution_count": 68, 2090 "metadata": {}, 2091 "outputs": [ 2092 { 2093 "data": { 2094 "text/plain": [ 2095 "0.872" 2096 ] 2097 }, 2098 "execution_count": 68, 2099 "metadata": {}, 2100 "output_type": "execute_result" 2101 } 2102 ], 2103 "source": [ 2104 "# Let's compare that with a decision tree of the same size\n", 2105 "# That's still pretty good but worse than the other one.\n", 2106 "\n", 2107 "dec_clf = DecisionTreeClassifier(random_state=10,max_leaf_nodes=30)\n", 2108 "dec_clf.fit(X_train,y_train)\n", 2109 "dec_clf.score(X_test,y_test)" 2110 ] 2111 } 2112 ], 2113 "metadata": { 2114 "kernelspec": { 2115 "display_name": "notebook", 2116 "language": "python", 2117 "name": "notebook" 2118 }, 2119 "language_info": { 2120 "codemirror_mode": { 2121 "name": "ipython", 2122 "version": 3 2123 }, 2124 "file_extension": ".py", 2125 "mimetype": "text/x-python", 2126 "name": "python", 2127 "nbconvert_exporter": "python", 2128 "pygments_lexer": "ipython3", 2129 "version": "3.11.2" 2130 } 2131 }, 2132 "nbformat": 4, 2133 "nbformat_minor": 2 2134 }