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