MNISTCustomClassicalML.ipynb (20145B)
1 { 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 26, 6 "metadata": {}, 7 "outputs": [ 8 { 9 "name": "stdout", 10 "output_type": "stream", 11 "text": [ 12 "(70000, 784)\n", 13 "(70000, 23)\n" 14 ] 15 } 16 ], 17 "source": [ 18 "from sklearn.datasets import fetch_openml\n", 19 "from sklearn.decomposition import PCA\n", 20 "\n", 21 "mnist = fetch_openml(\"mnist_784\", as_frame=False)\n", 22 "X,y = mnist.data,mnist.target\n", 23 "\n", 24 "# Reduce dimensions to 23 (optimal found using rndsearchcv)\n", 25 "\n", 26 "pca = PCA(n_components=23)\n", 27 "print(X.shape)\n", 28 "\n", 29 "X = pca.fit_transform(X)\n", 30 "print(X.shape)" 31 ] 32 }, 33 { 34 "cell_type": "code", 35 "execution_count": 27, 36 "metadata": {}, 37 "outputs": [], 38 "source": [ 39 "from sklearn.model_selection import train_test_split\n", 40 "\n", 41 "X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=10)" 42 ] 43 }, 44 { 45 "cell_type": "code", 46 "execution_count": 37, 47 "metadata": {}, 48 "outputs": [ 49 { 50 "data": { 51 "text/html": [ 52 "<style>#sk-container-id-11 {\n", 53 " /* Definition of color scheme common for light and dark mode */\n", 54 " --sklearn-color-text: black;\n", 55 " --sklearn-color-line: gray;\n", 56 " /* Definition of color scheme for unfitted estimators */\n", 57 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 58 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 59 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 60 " --sklearn-color-unfitted-level-3: chocolate;\n", 61 " /* Definition of color scheme for fitted estimators */\n", 62 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 63 " --sklearn-color-fitted-level-1: #d4ebff;\n", 64 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 65 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 66 "\n", 67 " /* Specific color for light theme */\n", 68 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 69 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 70 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 71 " --sklearn-color-icon: #696969;\n", 72 "\n", 73 " @media (prefers-color-scheme: dark) {\n", 74 " /* Redefinition of color scheme for dark theme */\n", 75 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 76 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 77 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 78 " --sklearn-color-icon: #878787;\n", 79 " }\n", 80 "}\n", 81 "\n", 82 "#sk-container-id-11 {\n", 83 " color: var(--sklearn-color-text);\n", 84 "}\n", 85 "\n", 86 "#sk-container-id-11 pre {\n", 87 " padding: 0;\n", 88 "}\n", 89 "\n", 90 "#sk-container-id-11 input.sk-hidden--visually {\n", 91 " border: 0;\n", 92 " clip: rect(1px 1px 1px 1px);\n", 93 " clip: rect(1px, 1px, 1px, 1px);\n", 94 " height: 1px;\n", 95 " margin: -1px;\n", 96 " overflow: hidden;\n", 97 " padding: 0;\n", 98 " position: absolute;\n", 99 " width: 1px;\n", 100 "}\n", 101 "\n", 102 "#sk-container-id-11 div.sk-dashed-wrapped {\n", 103 " border: 1px dashed var(--sklearn-color-line);\n", 104 " margin: 0 0.4em 0.5em 0.4em;\n", 105 " box-sizing: border-box;\n", 106 " padding-bottom: 0.4em;\n", 107 " background-color: var(--sklearn-color-background);\n", 108 "}\n", 109 "\n", 110 "#sk-container-id-11 div.sk-container {\n", 111 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 112 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 113 " so we also need the `!important` here to be able to override the\n", 114 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 115 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 116 " display: inline-block !important;\n", 117 " position: relative;\n", 118 "}\n", 119 "\n", 120 "#sk-container-id-11 div.sk-text-repr-fallback {\n", 121 " display: none;\n", 122 "}\n", 123 "\n", 124 "div.sk-parallel-item,\n", 125 "div.sk-serial,\n", 126 "div.sk-item {\n", 127 " /* draw centered vertical line to link estimators */\n", 128 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 129 " background-size: 2px 100%;\n", 130 " background-repeat: no-repeat;\n", 131 " background-position: center center;\n", 132 "}\n", 133 "\n", 134 "/* Parallel-specific style estimator block */\n", 135 "\n", 136 "#sk-container-id-11 div.sk-parallel-item::after {\n", 137 " content: \"\";\n", 138 " width: 100%;\n", 139 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 140 " flex-grow: 1;\n", 141 "}\n", 142 "\n", 143 "#sk-container-id-11 div.sk-parallel {\n", 144 " display: flex;\n", 145 " align-items: stretch;\n", 146 " justify-content: center;\n", 147 " background-color: var(--sklearn-color-background);\n", 148 " position: relative;\n", 149 "}\n", 150 "\n", 151 "#sk-container-id-11 div.sk-parallel-item {\n", 152 " display: flex;\n", 153 " flex-direction: column;\n", 154 "}\n", 155 "\n", 156 "#sk-container-id-11 div.sk-parallel-item:first-child::after {\n", 157 " align-self: flex-end;\n", 158 " width: 50%;\n", 159 "}\n", 160 "\n", 161 "#sk-container-id-11 div.sk-parallel-item:last-child::after {\n", 162 " align-self: flex-start;\n", 163 " width: 50%;\n", 164 "}\n", 165 "\n", 166 "#sk-container-id-11 div.sk-parallel-item:only-child::after {\n", 167 " width: 0;\n", 168 "}\n", 169 "\n", 170 "/* Serial-specific style estimator block */\n", 171 "\n", 172 "#sk-container-id-11 div.sk-serial {\n", 173 " display: flex;\n", 174 " flex-direction: column;\n", 175 " align-items: center;\n", 176 " background-color: var(--sklearn-color-background);\n", 177 " padding-right: 1em;\n", 178 " padding-left: 1em;\n", 179 "}\n", 180 "\n", 181 "\n", 182 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 183 "clickable and can be expanded/collapsed.\n", 184 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 185 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 186 "*/\n", 187 "\n", 188 "/* Pipeline and ColumnTransformer style (default) */\n", 189 "\n", 190 "#sk-container-id-11 div.sk-toggleable {\n", 191 " /* Default theme specific background. It is overwritten whether we have a\n", 192 " specific estimator or a Pipeline/ColumnTransformer */\n", 193 " background-color: var(--sklearn-color-background);\n", 194 "}\n", 195 "\n", 196 "/* Toggleable label */\n", 197 "#sk-container-id-11 label.sk-toggleable__label {\n", 198 " cursor: pointer;\n", 199 " display: block;\n", 200 " width: 100%;\n", 201 " margin-bottom: 0;\n", 202 " padding: 0.5em;\n", 203 " box-sizing: border-box;\n", 204 " text-align: center;\n", 205 "}\n", 206 "\n", 207 "#sk-container-id-11 label.sk-toggleable__label-arrow:before {\n", 208 " /* Arrow on the left of the label */\n", 209 " content: \"▸\";\n", 210 " float: left;\n", 211 " margin-right: 0.25em;\n", 212 " color: var(--sklearn-color-icon);\n", 213 "}\n", 214 "\n", 215 "#sk-container-id-11 label.sk-toggleable__label-arrow:hover:before {\n", 216 " color: var(--sklearn-color-text);\n", 217 "}\n", 218 "\n", 219 "/* Toggleable content - dropdown */\n", 220 "\n", 221 "#sk-container-id-11 div.sk-toggleable__content {\n", 222 " max-height: 0;\n", 223 " max-width: 0;\n", 224 " overflow: hidden;\n", 225 " text-align: left;\n", 226 " /* unfitted */\n", 227 " background-color: var(--sklearn-color-unfitted-level-0);\n", 228 "}\n", 229 "\n", 230 "#sk-container-id-11 div.sk-toggleable__content.fitted {\n", 231 " /* fitted */\n", 232 " background-color: var(--sklearn-color-fitted-level-0);\n", 233 "}\n", 234 "\n", 235 "#sk-container-id-11 div.sk-toggleable__content pre {\n", 236 " margin: 0.2em;\n", 237 " border-radius: 0.25em;\n", 238 " color: var(--sklearn-color-text);\n", 239 " /* unfitted */\n", 240 " background-color: var(--sklearn-color-unfitted-level-0);\n", 241 "}\n", 242 "\n", 243 "#sk-container-id-11 div.sk-toggleable__content.fitted pre {\n", 244 " /* unfitted */\n", 245 " background-color: var(--sklearn-color-fitted-level-0);\n", 246 "}\n", 247 "\n", 248 "#sk-container-id-11 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 249 " /* Expand drop-down */\n", 250 " max-height: 200px;\n", 251 " max-width: 100%;\n", 252 " overflow: auto;\n", 253 "}\n", 254 "\n", 255 "#sk-container-id-11 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 256 " content: \"▾\";\n", 257 "}\n", 258 "\n", 259 "/* Pipeline/ColumnTransformer-specific style */\n", 260 "\n", 261 "#sk-container-id-11 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 262 " color: var(--sklearn-color-text);\n", 263 " background-color: var(--sklearn-color-unfitted-level-2);\n", 264 "}\n", 265 "\n", 266 "#sk-container-id-11 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 267 " background-color: var(--sklearn-color-fitted-level-2);\n", 268 "}\n", 269 "\n", 270 "/* Estimator-specific style */\n", 271 "\n", 272 "/* Colorize estimator box */\n", 273 "#sk-container-id-11 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 274 " /* unfitted */\n", 275 " background-color: var(--sklearn-color-unfitted-level-2);\n", 276 "}\n", 277 "\n", 278 "#sk-container-id-11 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 279 " /* fitted */\n", 280 " background-color: var(--sklearn-color-fitted-level-2);\n", 281 "}\n", 282 "\n", 283 "#sk-container-id-11 div.sk-label label.sk-toggleable__label,\n", 284 "#sk-container-id-11 div.sk-label label {\n", 285 " /* The background is the default theme color */\n", 286 " color: var(--sklearn-color-text-on-default-background);\n", 287 "}\n", 288 "\n", 289 "/* On hover, darken the color of the background */\n", 290 "#sk-container-id-11 div.sk-label:hover label.sk-toggleable__label {\n", 291 " color: var(--sklearn-color-text);\n", 292 " background-color: var(--sklearn-color-unfitted-level-2);\n", 293 "}\n", 294 "\n", 295 "/* Label box, darken color on hover, fitted */\n", 296 "#sk-container-id-11 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 297 " color: var(--sklearn-color-text);\n", 298 " background-color: var(--sklearn-color-fitted-level-2);\n", 299 "}\n", 300 "\n", 301 "/* Estimator label */\n", 302 "\n", 303 "#sk-container-id-11 div.sk-label label {\n", 304 " font-family: monospace;\n", 305 " font-weight: bold;\n", 306 " display: inline-block;\n", 307 " line-height: 1.2em;\n", 308 "}\n", 309 "\n", 310 "#sk-container-id-11 div.sk-label-container {\n", 311 " text-align: center;\n", 312 "}\n", 313 "\n", 314 "/* Estimator-specific */\n", 315 "#sk-container-id-11 div.sk-estimator {\n", 316 " font-family: monospace;\n", 317 " border: 1px dotted var(--sklearn-color-border-box);\n", 318 " border-radius: 0.25em;\n", 319 " box-sizing: border-box;\n", 320 " margin-bottom: 0.5em;\n", 321 " /* unfitted */\n", 322 " background-color: var(--sklearn-color-unfitted-level-0);\n", 323 "}\n", 324 "\n", 325 "#sk-container-id-11 div.sk-estimator.fitted {\n", 326 " /* fitted */\n", 327 " background-color: var(--sklearn-color-fitted-level-0);\n", 328 "}\n", 329 "\n", 330 "/* on hover */\n", 331 "#sk-container-id-11 div.sk-estimator:hover {\n", 332 " /* unfitted */\n", 333 " background-color: var(--sklearn-color-unfitted-level-2);\n", 334 "}\n", 335 "\n", 336 "#sk-container-id-11 div.sk-estimator.fitted:hover {\n", 337 " /* fitted */\n", 338 " background-color: var(--sklearn-color-fitted-level-2);\n", 339 "}\n", 340 "\n", 341 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 342 "\n", 343 "/* Common style for \"i\" and \"?\" */\n", 344 "\n", 345 ".sk-estimator-doc-link,\n", 346 "a:link.sk-estimator-doc-link,\n", 347 "a:visited.sk-estimator-doc-link {\n", 348 " float: right;\n", 349 " font-size: smaller;\n", 350 " line-height: 1em;\n", 351 " font-family: monospace;\n", 352 " background-color: var(--sklearn-color-background);\n", 353 " border-radius: 1em;\n", 354 " height: 1em;\n", 355 " width: 1em;\n", 356 " text-decoration: none !important;\n", 357 " margin-left: 1ex;\n", 358 " /* unfitted */\n", 359 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 360 " color: var(--sklearn-color-unfitted-level-1);\n", 361 "}\n", 362 "\n", 363 ".sk-estimator-doc-link.fitted,\n", 364 "a:link.sk-estimator-doc-link.fitted,\n", 365 "a:visited.sk-estimator-doc-link.fitted {\n", 366 " /* fitted */\n", 367 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 368 " color: var(--sklearn-color-fitted-level-1);\n", 369 "}\n", 370 "\n", 371 "/* On hover */\n", 372 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 373 ".sk-estimator-doc-link:hover,\n", 374 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 375 ".sk-estimator-doc-link:hover {\n", 376 " /* unfitted */\n", 377 " background-color: var(--sklearn-color-unfitted-level-3);\n", 378 " color: var(--sklearn-color-background);\n", 379 " text-decoration: none;\n", 380 "}\n", 381 "\n", 382 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 383 ".sk-estimator-doc-link.fitted:hover,\n", 384 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 385 ".sk-estimator-doc-link.fitted:hover {\n", 386 " /* fitted */\n", 387 " background-color: var(--sklearn-color-fitted-level-3);\n", 388 " color: var(--sklearn-color-background);\n", 389 " text-decoration: none;\n", 390 "}\n", 391 "\n", 392 "/* Span, style for the box shown on hovering the info icon */\n", 393 ".sk-estimator-doc-link span {\n", 394 " display: none;\n", 395 " z-index: 9999;\n", 396 " position: relative;\n", 397 " font-weight: normal;\n", 398 " right: .2ex;\n", 399 " padding: .5ex;\n", 400 " margin: .5ex;\n", 401 " width: min-content;\n", 402 " min-width: 20ex;\n", 403 " max-width: 50ex;\n", 404 " color: var(--sklearn-color-text);\n", 405 " box-shadow: 2pt 2pt 4pt #999;\n", 406 " /* unfitted */\n", 407 " background: var(--sklearn-color-unfitted-level-0);\n", 408 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 409 "}\n", 410 "\n", 411 ".sk-estimator-doc-link.fitted span {\n", 412 " /* fitted */\n", 413 " background: var(--sklearn-color-fitted-level-0);\n", 414 " border: var(--sklearn-color-fitted-level-3);\n", 415 "}\n", 416 "\n", 417 ".sk-estimator-doc-link:hover span {\n", 418 " display: block;\n", 419 "}\n", 420 "\n", 421 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 422 "\n", 423 "#sk-container-id-11 a.estimator_doc_link {\n", 424 " float: right;\n", 425 " font-size: 1rem;\n", 426 " line-height: 1em;\n", 427 " font-family: monospace;\n", 428 " background-color: var(--sklearn-color-background);\n", 429 " border-radius: 1rem;\n", 430 " height: 1rem;\n", 431 " width: 1rem;\n", 432 " text-decoration: none;\n", 433 " /* unfitted */\n", 434 " color: var(--sklearn-color-unfitted-level-1);\n", 435 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 436 "}\n", 437 "\n", 438 "#sk-container-id-11 a.estimator_doc_link.fitted {\n", 439 " /* fitted */\n", 440 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 441 " color: var(--sklearn-color-fitted-level-1);\n", 442 "}\n", 443 "\n", 444 "/* On hover */\n", 445 "#sk-container-id-11 a.estimator_doc_link:hover {\n", 446 " /* unfitted */\n", 447 " background-color: var(--sklearn-color-unfitted-level-3);\n", 448 " color: var(--sklearn-color-background);\n", 449 " text-decoration: none;\n", 450 "}\n", 451 "\n", 452 "#sk-container-id-11 a.estimator_doc_link.fitted:hover {\n", 453 " /* fitted */\n", 454 " background-color: var(--sklearn-color-fitted-level-3);\n", 455 "}\n", 456 "</style><div id=\"sk-container-id-11\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestRegressor(max_depth=30, max_features=10, n_jobs=-1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" checked><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> RandomForestRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.RandomForestRegressor.html\">?<span>Documentation for RandomForestRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestRegressor(max_depth=30, max_features=10, n_jobs=-1)</pre></div> </div></div></div></div>" 457 ], 458 "text/plain": [ 459 "RandomForestRegressor(max_depth=30, max_features=10, n_jobs=-1)" 460 ] 461 }, 462 "execution_count": 37, 463 "metadata": {}, 464 "output_type": "execute_result" 465 } 466 ], 467 "source": [ 468 "from sklearn.ensemble import RandomForestRegressor\n", 469 "\n", 470 "rnd_regressor = RandomForestRegressor(\n", 471 " n_estimators=100,\n", 472 " max_depth=30,\n", 473 " max_features=10,\n", 474 " n_jobs=-1\n", 475 ")\n", 476 "\n", 477 "rnd_regressor.fit(X_train,y_train)" 478 ] 479 }, 480 { 481 "cell_type": "code", 482 "execution_count": 38, 483 "metadata": {}, 484 "outputs": [ 485 { 486 "data": { 487 "text/plain": [ 488 "0.8842829028107758" 489 ] 490 }, 491 "execution_count": 38, 492 "metadata": {}, 493 "output_type": "execute_result" 494 } 495 ], 496 "source": [ 497 "rnd_regressor.score(X_test, y_test)" 498 ] 499 } 500 ], 501 "metadata": { 502 "kernelspec": { 503 "display_name": "notebook", 504 "language": "python", 505 "name": "notebook" 506 }, 507 "language_info": { 508 "codemirror_mode": { 509 "name": "ipython", 510 "version": 3 511 }, 512 "file_extension": ".py", 513 "mimetype": "text/x-python", 514 "name": "python", 515 "nbconvert_exporter": "python", 516 "pygments_lexer": "ipython3", 517 "version": "3.11.2" 518 } 519 }, 520 "nbformat": 4, 521 "nbformat_minor": 2 522 }