CoolFace
Apppublic

Shivashankar/Drug-Classification

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
notebook.ipynb1136 linesDownload Raw Back to root
1{2 "cells": [3  {4   "cell_type": "code",5   "execution_count": 1,6   "metadata": {},7   "outputs": [8    {9     "data": {10      "text/html": [11       "<div>\n",12       "<style scoped>\n",13       "    .dataframe tbody tr th:only-of-type {\n",14       "        vertical-align: middle;\n",15       "    }\n",16       "\n",17       "    .dataframe tbody tr th {\n",18       "        vertical-align: top;\n",19       "    }\n",20       "\n",21       "    .dataframe thead th {\n",22       "        text-align: right;\n",23       "    }\n",24       "</style>\n",25       "<table border=\"1\" class=\"dataframe\">\n",26       "  <thead>\n",27       "    <tr style=\"text-align: right;\">\n",28       "      <th></th>\n",29       "      <th>Age</th>\n",30       "      <th>Sex</th>\n",31       "      <th>BP</th>\n",32       "      <th>Cholesterol</th>\n",33       "      <th>Na_to_K</th>\n",34       "      <th>Drug</th>\n",35       "    </tr>\n",36       "  </thead>\n",37       "  <tbody>\n",38       "    <tr>\n",39       "      <th>176</th>\n",40       "      <td>48</td>\n",41       "      <td>M</td>\n",42       "      <td>HIGH</td>\n",43       "      <td>NORMAL</td>\n",44       "      <td>10.446</td>\n",45       "      <td>drugA</td>\n",46       "    </tr>\n",47       "    <tr>\n",48       "      <th>119</th>\n",49       "      <td>61</td>\n",50       "      <td>F</td>\n",51       "      <td>HIGH</td>\n",52       "      <td>HIGH</td>\n",53       "      <td>25.475</td>\n",54       "      <td>DrugY</td>\n",55       "    </tr>\n",56       "    <tr>\n",57       "      <th>65</th>\n",58       "      <td>68</td>\n",59       "      <td>F</td>\n",60       "      <td>NORMAL</td>\n",61       "      <td>NORMAL</td>\n",62       "      <td>27.050</td>\n",63       "      <td>DrugY</td>\n",64       "    </tr>\n",65       "  </tbody>\n",66       "</table>\n",67       "</div>"68      ],69      "text/plain": [70       "     Age Sex      BP Cholesterol  Na_to_K   Drug\n",71       "176   48   M    HIGH      NORMAL   10.446  drugA\n",72       "119   61   F    HIGH        HIGH   25.475  DrugY\n",73       "65    68   F  NORMAL      NORMAL   27.050  DrugY"74      ]75     },76     "execution_count": 1,77     "metadata": {},78     "output_type": "execute_result"79    }80   ],81   "source": [82    "import pandas as pd\n",83    "\n",84    "drug_df = pd.read_csv(\"Data/drug.csv\")\n",85    "drug_df = drug_df.sample(frac=1)\n",86    "drug_df.head(3)"87   ]88  },89  {90   "cell_type": "code",91   "execution_count": 2,92   "metadata": {},93   "outputs": [],94   "source": [95    "from sklearn.model_selection import train_test_split\n",96    "\n",97    "X = drug_df.drop(\"Drug\", axis=1).values\n",98    "y = drug_df.Drug.values\n",99    "\n",100    "X_train, X_test, y_train, y_test = train_test_split(\n",101    "    X, y, test_size=0.3, random_state=125\n",102    ")"103   ]104  },105  {106   "cell_type": "code",107   "execution_count": 3,108   "metadata": {},109   "outputs": [110    {111     "data": {112      "text/html": [113       "<style>#sk-container-id-1 {\n",114       "  /* Definition of color scheme common for light and dark mode */\n",115       "  --sklearn-color-text: black;\n",116       "  --sklearn-color-line: gray;\n",117       "  /* Definition of color scheme for unfitted estimators */\n",118       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",119       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",120       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",121       "  --sklearn-color-unfitted-level-3: chocolate;\n",122       "  /* Definition of color scheme for fitted estimators */\n",123       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",124       "  --sklearn-color-fitted-level-1: #d4ebff;\n",125       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",126       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",127       "\n",128       "  /* Specific color for light theme */\n",129       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",130       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",131       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",132       "  --sklearn-color-icon: #696969;\n",133       "\n",134       "  @media (prefers-color-scheme: dark) {\n",135       "    /* Redefinition of color scheme for dark theme */\n",136       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",137       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",138       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",139       "    --sklearn-color-icon: #878787;\n",140       "  }\n",141       "}\n",142       "\n",143       "#sk-container-id-1 {\n",144       "  color: var(--sklearn-color-text);\n",145       "}\n",146       "\n",147       "#sk-container-id-1 pre {\n",148       "  padding: 0;\n",149       "}\n",150       "\n",151       "#sk-container-id-1 input.sk-hidden--visually {\n",152       "  border: 0;\n",153       "  clip: rect(1px 1px 1px 1px);\n",154       "  clip: rect(1px, 1px, 1px, 1px);\n",155       "  height: 1px;\n",156       "  margin: -1px;\n",157       "  overflow: hidden;\n",158       "  padding: 0;\n",159       "  position: absolute;\n",160       "  width: 1px;\n",161       "}\n",162       "\n",163       "#sk-container-id-1 div.sk-dashed-wrapped {\n",164       "  border: 1px dashed var(--sklearn-color-line);\n",165       "  margin: 0 0.4em 0.5em 0.4em;\n",166       "  box-sizing: border-box;\n",167       "  padding-bottom: 0.4em;\n",168       "  background-color: var(--sklearn-color-background);\n",169       "}\n",170       "\n",171       "#sk-container-id-1 div.sk-container {\n",172       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",173       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",174       "     so we also need the `!important` here to be able to override the\n",175       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",176       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",177       "  display: inline-block !important;\n",178       "  position: relative;\n",179       "}\n",180       "\n",181       "#sk-container-id-1 div.sk-text-repr-fallback {\n",182       "  display: none;\n",183       "}\n",184       "\n",185       "div.sk-parallel-item,\n",186       "div.sk-serial,\n",187       "div.sk-item {\n",188       "  /* draw centered vertical line to link estimators */\n",189       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",190       "  background-size: 2px 100%;\n",191       "  background-repeat: no-repeat;\n",192       "  background-position: center center;\n",193       "}\n",194       "\n",195       "/* Parallel-specific style estimator block */\n",196       "\n",197       "#sk-container-id-1 div.sk-parallel-item::after {\n",198       "  content: \"\";\n",199       "  width: 100%;\n",200       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",201       "  flex-grow: 1;\n",202       "}\n",203       "\n",204       "#sk-container-id-1 div.sk-parallel {\n",205       "  display: flex;\n",206       "  align-items: stretch;\n",207       "  justify-content: center;\n",208       "  background-color: var(--sklearn-color-background);\n",209       "  position: relative;\n",210       "}\n",211       "\n",212       "#sk-container-id-1 div.sk-parallel-item {\n",213       "  display: flex;\n",214       "  flex-direction: column;\n",215       "}\n",216       "\n",217       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",218       "  align-self: flex-end;\n",219       "  width: 50%;\n",220       "}\n",221       "\n",222       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",223       "  align-self: flex-start;\n",224       "  width: 50%;\n",225       "}\n",226       "\n",227       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",228       "  width: 0;\n",229       "}\n",230       "\n",231       "/* Serial-specific style estimator block */\n",232       "\n",233       "#sk-container-id-1 div.sk-serial {\n",234       "  display: flex;\n",235       "  flex-direction: column;\n",236       "  align-items: center;\n",237       "  background-color: var(--sklearn-color-background);\n",238       "  padding-right: 1em;\n",239       "  padding-left: 1em;\n",240       "}\n",241       "\n",242       "\n",243       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",244       "clickable and can be expanded/collapsed.\n",245       "- Pipeline and ColumnTransformer use this feature and define the default style\n",246       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",247       "*/\n",248       "\n",249       "/* Pipeline and ColumnTransformer style (default) */\n",250       "\n",251       "#sk-container-id-1 div.sk-toggleable {\n",252       "  /* Default theme specific background. It is overwritten whether we have a\n",253       "  specific estimator or a Pipeline/ColumnTransformer */\n",254       "  background-color: var(--sklearn-color-background);\n",255       "}\n",256       "\n",257       "/* Toggleable label */\n",258       "#sk-container-id-1 label.sk-toggleable__label {\n",259       "  cursor: pointer;\n",260       "  display: block;\n",261       "  width: 100%;\n",262       "  margin-bottom: 0;\n",263       "  padding: 0.5em;\n",264       "  box-sizing: border-box;\n",265       "  text-align: center;\n",266       "}\n",267       "\n",268       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",269       "  /* Arrow on the left of the label */\n",270       "  content: \"▸\";\n",271       "  float: left;\n",272       "  margin-right: 0.25em;\n",273       "  color: var(--sklearn-color-icon);\n",274       "}\n",275       "\n",276       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",277       "  color: var(--sklearn-color-text);\n",278       "}\n",279       "\n",280       "/* Toggleable content - dropdown */\n",281       "\n",282       "#sk-container-id-1 div.sk-toggleable__content {\n",283       "  max-height: 0;\n",284       "  max-width: 0;\n",285       "  overflow: hidden;\n",286       "  text-align: left;\n",287       "  /* unfitted */\n",288       "  background-color: var(--sklearn-color-unfitted-level-0);\n",289       "}\n",290       "\n",291       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",292       "  /* fitted */\n",293       "  background-color: var(--sklearn-color-fitted-level-0);\n",294       "}\n",295       "\n",296       "#sk-container-id-1 div.sk-toggleable__content pre {\n",297       "  margin: 0.2em;\n",298       "  border-radius: 0.25em;\n",299       "  color: var(--sklearn-color-text);\n",300       "  /* unfitted */\n",301       "  background-color: var(--sklearn-color-unfitted-level-0);\n",302       "}\n",303       "\n",304       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",305       "  /* unfitted */\n",306       "  background-color: var(--sklearn-color-fitted-level-0);\n",307       "}\n",308       "\n",309       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",310       "  /* Expand drop-down */\n",311       "  max-height: 200px;\n",312       "  max-width: 100%;\n",313       "  overflow: auto;\n",314       "}\n",315       "\n",316       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",317       "  content: \"▾\";\n",318       "}\n",319       "\n",320       "/* Pipeline/ColumnTransformer-specific style */\n",321       "\n",322       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",323       "  color: var(--sklearn-color-text);\n",324       "  background-color: var(--sklearn-color-unfitted-level-2);\n",325       "}\n",326       "\n",327       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",328       "  background-color: var(--sklearn-color-fitted-level-2);\n",329       "}\n",330       "\n",331       "/* Estimator-specific style */\n",332       "\n",333       "/* Colorize estimator box */\n",334       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",335       "  /* unfitted */\n",336       "  background-color: var(--sklearn-color-unfitted-level-2);\n",337       "}\n",338       "\n",339       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",340       "  /* fitted */\n",341       "  background-color: var(--sklearn-color-fitted-level-2);\n",342       "}\n",343       "\n",344       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",345       "#sk-container-id-1 div.sk-label label {\n",346       "  /* The background is the default theme color */\n",347       "  color: var(--sklearn-color-text-on-default-background);\n",348       "}\n",349       "\n",350       "/* On hover, darken the color of the background */\n",351       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",352       "  color: var(--sklearn-color-text);\n",353       "  background-color: var(--sklearn-color-unfitted-level-2);\n",354       "}\n",355       "\n",356       "/* Label box, darken color on hover, fitted */\n",357       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",358       "  color: var(--sklearn-color-text);\n",359       "  background-color: var(--sklearn-color-fitted-level-2);\n",360       "}\n",361       "\n",362       "/* Estimator label */\n",363       "\n",364       "#sk-container-id-1 div.sk-label label {\n",365       "  font-family: monospace;\n",366       "  font-weight: bold;\n",367       "  display: inline-block;\n",368       "  line-height: 1.2em;\n",369       "}\n",370       "\n",371       "#sk-container-id-1 div.sk-label-container {\n",372       "  text-align: center;\n",373       "}\n",374       "\n",375       "/* Estimator-specific */\n",376       "#sk-container-id-1 div.sk-estimator {\n",377       "  font-family: monospace;\n",378       "  border: 1px dotted var(--sklearn-color-border-box);\n",379       "  border-radius: 0.25em;\n",380       "  box-sizing: border-box;\n",381       "  margin-bottom: 0.5em;\n",382       "  /* unfitted */\n",383       "  background-color: var(--sklearn-color-unfitted-level-0);\n",384       "}\n",385       "\n",386       "#sk-container-id-1 div.sk-estimator.fitted {\n",387       "  /* fitted */\n",388       "  background-color: var(--sklearn-color-fitted-level-0);\n",389       "}\n",390       "\n",391       "/* on hover */\n",392       "#sk-container-id-1 div.sk-estimator:hover {\n",393       "  /* unfitted */\n",394       "  background-color: var(--sklearn-color-unfitted-level-2);\n",395       "}\n",396       "\n",397       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",398       "  /* fitted */\n",399       "  background-color: var(--sklearn-color-fitted-level-2);\n",400       "}\n",401       "\n",402       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",403       "\n",404       "/* Common style for \"i\" and \"?\" */\n",405       "\n",406       ".sk-estimator-doc-link,\n",407       "a:link.sk-estimator-doc-link,\n",408       "a:visited.sk-estimator-doc-link {\n",409       "  float: right;\n",410       "  font-size: smaller;\n",411       "  line-height: 1em;\n",412       "  font-family: monospace;\n",413       "  background-color: var(--sklearn-color-background);\n",414       "  border-radius: 1em;\n",415       "  height: 1em;\n",416       "  width: 1em;\n",417       "  text-decoration: none !important;\n",418       "  margin-left: 1ex;\n",419       "  /* unfitted */\n",420       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",421       "  color: var(--sklearn-color-unfitted-level-1);\n",422       "}\n",423       "\n",424       ".sk-estimator-doc-link.fitted,\n",425       "a:link.sk-estimator-doc-link.fitted,\n",426       "a:visited.sk-estimator-doc-link.fitted {\n",427       "  /* fitted */\n",428       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",429       "  color: var(--sklearn-color-fitted-level-1);\n",430       "}\n",431       "\n",432       "/* On hover */\n",433       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",434       ".sk-estimator-doc-link:hover,\n",435       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",436       ".sk-estimator-doc-link:hover {\n",437       "  /* unfitted */\n",438       "  background-color: var(--sklearn-color-unfitted-level-3);\n",439       "  color: var(--sklearn-color-background);\n",440       "  text-decoration: none;\n",441       "}\n",442       "\n",443       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",444       ".sk-estimator-doc-link.fitted:hover,\n",445       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",446       ".sk-estimator-doc-link.fitted:hover {\n",447       "  /* fitted */\n",448       "  background-color: var(--sklearn-color-fitted-level-3);\n",449       "  color: var(--sklearn-color-background);\n",450       "  text-decoration: none;\n",451       "}\n",452       "\n",453       "/* Span, style for the box shown on hovering the info icon */\n",454       ".sk-estimator-doc-link span {\n",455       "  display: none;\n",456       "  z-index: 9999;\n",457       "  position: relative;\n",458       "  font-weight: normal;\n",459       "  right: .2ex;\n",460       "  padding: .5ex;\n",461       "  margin: .5ex;\n",462       "  width: min-content;\n",463       "  min-width: 20ex;\n",464       "  max-width: 50ex;\n",465       "  color: var(--sklearn-color-text);\n",466       "  box-shadow: 2pt 2pt 4pt #999;\n",467       "  /* unfitted */\n",468       "  background: var(--sklearn-color-unfitted-level-0);\n",469       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",470       "}\n",471       "\n",472       ".sk-estimator-doc-link.fitted span {\n",473       "  /* fitted */\n",474       "  background: var(--sklearn-color-fitted-level-0);\n",475       "  border: var(--sklearn-color-fitted-level-3);\n",476       "}\n",477       "\n",478       ".sk-estimator-doc-link:hover span {\n",479       "  display: block;\n",480       "}\n",481       "\n",482       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",483       "\n",484       "#sk-container-id-1 a.estimator_doc_link {\n",485       "  float: right;\n",486       "  font-size: 1rem;\n",487       "  line-height: 1em;\n",488       "  font-family: monospace;\n",489       "  background-color: var(--sklearn-color-background);\n",490       "  border-radius: 1rem;\n",491       "  height: 1rem;\n",492       "  width: 1rem;\n",493       "  text-decoration: none;\n",494       "  /* unfitted */\n",495       "  color: var(--sklearn-color-unfitted-level-1);\n",496       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",497       "}\n",498       "\n",499       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",500       "  /* fitted */\n",501       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",502       "  color: var(--sklearn-color-fitted-level-1);\n",503       "}\n",504       "\n",505       "/* On hover */\n",506       "#sk-container-id-1 a.estimator_doc_link:hover {\n",507       "  /* unfitted */\n",508       "  background-color: var(--sklearn-color-unfitted-level-3);\n",509       "  color: var(--sklearn-color-background);\n",510       "  text-decoration: none;\n",511       "}\n",512       "\n",513       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",514       "  /* fitted */\n",515       "  background-color: var(--sklearn-color-fitted-level-3);\n",516       "}\n",517       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocessing&#x27;,\n",518       "                 ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(),\n",519       "                                                  [1, 2, 3]),\n",520       "                                                 (&#x27;num_imputer&#x27;,\n",521       "                                                  SimpleImputer(strategy=&#x27;median&#x27;),\n",522       "                                                  [0, 4]),\n",523       "                                                 (&#x27;num_scaler&#x27;,\n",524       "                                                  StandardScaler(), [0, 4])])),\n",525       "                (&#x27;model&#x27;,\n",526       "                 RandomForestClassifier(n_estimators=10, random_state=125))])</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-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;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=[(&#x27;preprocessing&#x27;,\n",527       "                 ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(),\n",528       "                                                  [1, 2, 3]),\n",529       "                                                 (&#x27;num_imputer&#x27;,\n",530       "                                                  SimpleImputer(strategy=&#x27;median&#x27;),\n",531       "                                                  [0, 4]),\n",532       "                                                 (&#x27;num_scaler&#x27;,\n",533       "                                                  StandardScaler(), [0, 4])])),\n",534       "                (&#x27;model&#x27;,\n",535       "                 RandomForestClassifier(n_estimators=10, random_state=125))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;preprocessing: ColumnTransformer<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocessing: ColumnTransformer</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(), [1, 2, 3]),\n",536       "                                (&#x27;num_imputer&#x27;,\n",537       "                                 SimpleImputer(strategy=&#x27;median&#x27;), [0, 4]),\n",538       "                                (&#x27;num_scaler&#x27;, StandardScaler(), [0, 4])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">encoder</label><div class=\"sk-toggleable__content fitted\"><pre>[1, 2, 3]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;OrdinalEncoder<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.preprocessing.OrdinalEncoder.html\">?<span>Documentation for OrdinalEncoder</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>OrdinalEncoder()</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\"><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\">num_imputer</label><div class=\"sk-toggleable__content fitted\"><pre>[0, 4]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;SimpleImputer<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.impute.SimpleImputer.html\">?<span>Documentation for SimpleImputer</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>SimpleImputer(strategy=&#x27;median&#x27;)</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\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">num_scaler</label><div class=\"sk-toggleable__content fitted\"><pre>[0, 4]</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-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;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></div></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-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;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(n_estimators=10, random_state=125)</pre></div> </div></div></div></div></div></div>"539      ],540      "text/plain": [541       "Pipeline(steps=[('preprocessing',\n",542       "                 ColumnTransformer(transformers=[('encoder', OrdinalEncoder(),\n",543       "                                                  [1, 2, 3]),\n",544       "                                                 ('num_imputer',\n",545       "                                                  SimpleImputer(strategy='median'),\n",546       "                                                  [0, 4]),\n",547       "                                                 ('num_scaler',\n",548       "                                                  StandardScaler(), [0, 4])])),\n",549       "                ('model',\n",550       "                 RandomForestClassifier(n_estimators=10, random_state=125))])"551      ]552     },553     "execution_count": 3,554     "metadata": {},555     "output_type": "execute_result"556    }557   ],558   "source": [559    "from sklearn.compose import ColumnTransformer\n",560    "from sklearn.ensemble import RandomForestClassifier\n",561    "from sklearn.impute import SimpleImputer\n",562    "from sklearn.pipeline import Pipeline\n",563    "from sklearn.preprocessing import OrdinalEncoder, StandardScaler\n",564    "\n",565    "cat_col = [1,2,3]\n",566    "num_col = [0,4]\n",567    "\n",568    "transform = ColumnTransformer(\n",569    "    [\n",570    "        (\"encoder\", OrdinalEncoder(), cat_col),\n",571    "        (\"num_imputer\", SimpleImputer(strategy=\"median\"), num_col),\n",572    "        (\"num_scaler\", StandardScaler(), num_col),\n",573    "    ]\n",574    ")\n",575    "pipe = Pipeline(\n",576    "    steps=[\n",577    "        (\"preprocessing\", transform),\n",578    "        (\"model\", RandomForestClassifier(n_estimators=10, random_state=125)),\n",579    "    ]\n",580    ")\n",581    "pipe.fit(X_train, y_train)"582   ]583  },584  {585   "cell_type": "code",586   "execution_count": 4,587   "metadata": {},588   "outputs": [589    {590     "name": "stdout",591     "output_type": "stream",592     "text": [593      "Accuracy:  90.0% F1:  0.85\n"594     ]595    }596   ],597   "source": [598    "from sklearn.metrics import accuracy_score, f1_score\n",599    "\n",600    "predictions = pipe.predict(X_test)\n",601    "accuracy = accuracy_score(y_test, predictions)\n",602    "f1 = f1_score(y_test, predictions, average=\"macro\")\n",603    "\n",604    "print(\"Accuracy: \", str(round(accuracy, 2) * 100) + \"%\", \"F1: \", round(f1, 2))"605   ]606  },607  {608   "cell_type": "code",609   "execution_count": 5,610   "metadata": {},611   "outputs": [],612   "source": [613    "# Write metrics to file\n",614    "with open(\"Results/metrics.txt\", \"w\") as outfile:\n",615    "    outfile.write(f\"\\nAccuracy = {round(accuracy,2)}, F1 Score = {round(f1,2)}.\")"616   ]617  },618  {619   "cell_type": "code",620   "execution_count": 6,621   "metadata": {},622   "outputs": [623    {624     "data": {625      "image/png": "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4YKCUx5EREQkGUcoiIiILEUrIPlGElb6+HIWFERERBYihBZC4tNCpR5vLiwoiIiILEUI6SMMXENBREREtoojFERERJYiTLCGwkpHKFhQEBERWYpWCygkroGw0jUUnPIgIiIiyThCQUREZCmc8iAiIiKphFYLIXHKw1ovG+WUBxEREUnGEQoiIiJL4ZQHERERSaYVgMI2CwpOeRAREZFkHKEgIiKyFCEASL0PhXWOULCgICIishChFRASpzwECwoiIqKnnNBC+ggFLxslIiIiGXzyySeoV68eHB0d0bZtW/z0008m/wwWFERERBYitMIkmzG2bNmCSZMmYebMmTh58iRefPFFhIWF4dq1ayY9NxYUREREliK0ptmMsGzZMowYMQIjR45EkyZNsHz5cgQEBGD16tUmPTWuoTCB8gUypSiRfL8SIjKCtljuCKoE7b1CuUOwauX5scRiR1P8nihFCQAgJydHr12lUkGlUum1FRcXIyEhAR988IFee/fu3XHkyBFpgTyABYUJ5ObmAgB+xi6ZIyF6ytySO4AqYrzcAVQNubm5cHd3N0vf1apVg5+fH36+aZrfE66urggICNBrmzt3LiIiIvTabt++DY1GA19fX712X19f3Lx50ySxlGNBYQI1a9ZEamoq1Go1FAqF3OEAKKtcAwICkJqaCjc3N7nDsVrMk2GYp8djjgxjjXkSQiA3Nxc1a9Y022c4OjriypUrKC42zaiaEKLC75sHRyfu9+C+DzteKhYUJmBnZ4fatWvLHcZDubm5Wc0/WmvGPBmGeXo85sgw1pYnc41M3M/R0RGOjo5m/5z71ahRA/b29hVGI9LT0yuMWkjFRZlEREQ2qlq1amjbti3279+v175//348//zzJv0sjlAQERHZsMmTJ+Of//wngoOD0bFjR3z22We4du0aRo8ebdLPYUFho1QqFebOnVvpnBoxT4Zinh6POTIM82R5AwcOxJ07d/Cvf/0LaWlpaNasGXbt2oU6deqY9HMUwlpvCk5ERERVBtdQEBERkWQsKIiIiEgyFhREREQkGQsKshkhISGYNGmS3GFYNebIMMyTYZgnuh8LCisyfPhwKBQKKBQKKJVK+Pr6IjQ0FOvXr4dWa9zDYJ7EiBEj0Lx58wp3ctu1axeUSiVOnDhh9hiqknv37sHT0xNeXl64d++e3OFYlZiYGN13WaFQ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1nB0dERwcPBDH8X9OMuWLUPz5s3h4uKCgIAAjB07Fnl5eRX227FjBxo1agRHR0eEhoYiNTVV7/3vvvsObdu2haOjI+rXr4958+ahtLTU6HiIyHgsKIgszMnJCSUlJbrXFy9exNatW/H111/rphxeeeUV3Lx5E7t27UJCQgLatGmDl156CXfv3gUAbN26FXPnzsX8+fNx4sQJ+Pv7P/bZB9OnT8fChQsxe/ZsnD17Fps2bYKvry+AsqIAAA4cOIC0tDRs27YNALB27VrMnDkT8+fPR1JSEhYsWIDZs2cjNjYWAJCfn49evXohKCgICQkJiIiIwNSpU43OiZ2dHVasWIHff/8dsbGxOHjwIN577z29fQoKCjB//nzExsbil19+QU5ODgYNGqR7f+/evRgyZAgmTJiAs2fP4tNPP0VMTIyuaCIiM5P51t9ENm3YsGGib9++utfHjh0T1atXFwMGDBBCCDF37lyhVCpFenq6bp8ffvhBuLm5icLCQr2+GjRoID799FMhhBAdO3YUo0eP1nu/Q4cOomXLlg/97JycHKFSqcTatWsfGueVK1cEAHHy5Em99oCAALFp0ya9tg8//FB07NhRCCHEp59+Kry8vER+fr7u/dWrVz+0r/s96lHX5bZu3SqqV6+ue13+OPSjR4/q2pKSkgQAcezYMSGEEC+++KJYsGCBXj+ff/658Pf3170GILZv3/7IzyWiJ8c1FERmtnPnTri6uqK0tBQlJSXo27cvVq5cqXu/Tp068Pb21r1OSEhAXl4eqlevrtfPvXv3cOnSJQBAUlISRo8erfd+x44dcejQoYfGkJSUhKKiIrz00ksGx52RkYHU1FSMGDEC4eHhuvbS0lLd+oykpCS0bNkSzs7OenEY69ChQ1iwYAHOnj2LnJwclJaWorCwEPn5+XBxcQEAODg4IDg4WHdM48aN4eHhgaSkJLRv3x4JCQk4fvy43oiERqNBYWEhCgoK9GIkItNjQUFkZl27dsXq1auhVCpRs2bNCosuy39hltNqtfD390dcXFyFvp700kknJyejj9FqtQDKpj06dOig9569vT0AQJjg2YJXr17FP/7xD4wePRoffvghvLy88PPPP2PEiBF6U0NA2WWfDypv02q1mDdvHl577bUK+zg6OkqOk4gqx4KCyMxcXFwQGBho8P5t2rTBzZs34eDggLp16z50nyZNmuDo0aMYOnSoru3o0aOP7LNhw4ZwcnLCDz/8gJEjR1Z4v1q1agDK/kdfztfXF7Vq1cLly5fxxhtvPLTfpk2b4vPPP8e9e/d0RUtlcTzMiRMnUFpaiqVLl8LOrmxZ19atWyvsV1paihMnTqB9+/YAgOTkZGRlZaFx48YAyvKWnJxsVK6JyHRYUBBZmZdffhkdO3ZEv379sHDhQgQFBeHPP//Erl270K9fPwQHB2PixIkYNmwYgoOD8cILL2Djxo34448/UL9+/Yf26ejoiPfffx/vvfceqlWrhk6dOiEjIwN//PEHRowYAR8fHzg5OWHPnj2oXbs2HB0d4e7ujoiICEyYMAFubm4ICwtDUVERTpw4gczMTEyePBmDBw/GzJkzMWLECMyaNQspKSlYsmSJUefboEEDlJaWYuXKlejduzd++eUXrFmzpsJ+SqUS48ePx4oVK6BUKvHOO+/gueee0xUYc+bMQa9evRAQEID+/fvDzs4Op0+fxpkzZxAZGWn8XwQRGYVXeRBZGYVCgV27dqFz585466230KhRIwwaNAgpKSm6qzIGDhyIOXPm4P3330fbtm1x9epVjBkzptJ+Z8+ejSlTpmDOnDlo0qQJBg4ciPT0dABl6xNWrFiBTz/9FDVr1kTfvn0BACNHjsR///tfxMTEoHnz5ujSpQtiYmJ0l5m6urriu+++w9mzZ9G6dWvMnDkTCxcuNOp8W7VqhWXLlmHhwoVo1qwZNm7ciKioqAr7OTs74/3338fgwYPRsWNHODk54YsvvtC936NHD+zcuRP79+9Hu3bt8Nxzz2HZsmWoU6eOUfEQ0ZNRCFNMghIREdFTjSMUREREJBkLCiIiIpKMBQURERFJxoKCiIiIJGNBQURERJKxoCAiIiLJWFAQERGRZCwoiIiISDIWFERERCQZCwoiIiKSjAUFERERSfb/ATtyGPrNamVlAAAAAElFTkSuQmCC",626      "text/plain": [627       "<Figure size 640x480 with 2 Axes>"628      ]629     },630     "metadata": {},631     "output_type": "display_data"632    }633   ],634   "source": [635    "import matplotlib.pyplot as plt\n",636    "from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix\n",637    "\n",638    "predictions = pipe.predict(X_test)\n",639    "cm = confusion_matrix(y_test, predictions, labels=pipe.classes_)\n",640    "disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=pipe.classes_)\n",641    "disp.plot()\n",642    "plt.savefig(\"Results/model_results.png\", dpi=120)"643   ]644  },645  {646   "cell_type": "code",647   "execution_count": 7,648   "metadata": {},649   "outputs": [],650   "source": [651    "import skops.io as sio\n",652    "\n",653    "sio.dump(pipe, \"Model/drug_pipeline.skops\")"654   ]655  },656  {657   "cell_type": "code",658   "execution_count": 8,659   "metadata": {},660   "outputs": [661    {662     "data": {663      "text/html": [664       "<style>#sk-container-id-2 {\n",665       "  /* Definition of color scheme common for light and dark mode */\n",666       "  --sklearn-color-text: black;\n",667       "  --sklearn-color-line: gray;\n",668       "  /* Definition of color scheme for unfitted estimators */\n",669       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",670       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",671       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",672       "  --sklearn-color-unfitted-level-3: chocolate;\n",673       "  /* Definition of color scheme for fitted estimators */\n",674       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",675       "  --sklearn-color-fitted-level-1: #d4ebff;\n",676       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",677       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",678       "\n",679       "  /* Specific color for light theme */\n",680       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",681       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",682       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",683       "  --sklearn-color-icon: #696969;\n",684       "\n",685       "  @media (prefers-color-scheme: dark) {\n",686       "    /* Redefinition of color scheme for dark theme */\n",687       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",688       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",689       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",690       "    --sklearn-color-icon: #878787;\n",691       "  }\n",692       "}\n",693       "\n",694       "#sk-container-id-2 {\n",695       "  color: var(--sklearn-color-text);\n",696       "}\n",697       "\n",698       "#sk-container-id-2 pre {\n",699       "  padding: 0;\n",700       "}\n",701       "\n",702       "#sk-container-id-2 input.sk-hidden--visually {\n",703       "  border: 0;\n",704       "  clip: rect(1px 1px 1px 1px);\n",705       "  clip: rect(1px, 1px, 1px, 1px);\n",706       "  height: 1px;\n",707       "  margin: -1px;\n",708       "  overflow: hidden;\n",709       "  padding: 0;\n",710       "  position: absolute;\n",711       "  width: 1px;\n",712       "}\n",713       "\n",714       "#sk-container-id-2 div.sk-dashed-wrapped {\n",715       "  border: 1px dashed var(--sklearn-color-line);\n",716       "  margin: 0 0.4em 0.5em 0.4em;\n",717       "  box-sizing: border-box;\n",718       "  padding-bottom: 0.4em;\n",719       "  background-color: var(--sklearn-color-background);\n",720       "}\n",721       "\n",722       "#sk-container-id-2 div.sk-container {\n",723       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",724       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",725       "     so we also need the `!important` here to be able to override the\n",726       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",727       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",728       "  display: inline-block !important;\n",729       "  position: relative;\n",730       "}\n",731       "\n",732       "#sk-container-id-2 div.sk-text-repr-fallback {\n",733       "  display: none;\n",734       "}\n",735       "\n",736       "div.sk-parallel-item,\n",737       "div.sk-serial,\n",738       "div.sk-item {\n",739       "  /* draw centered vertical line to link estimators */\n",740       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",741       "  background-size: 2px 100%;\n",742       "  background-repeat: no-repeat;\n",743       "  background-position: center center;\n",744       "}\n",745       "\n",746       "/* Parallel-specific style estimator block */\n",747       "\n",748       "#sk-container-id-2 div.sk-parallel-item::after {\n",749       "  content: \"\";\n",750       "  width: 100%;\n",751       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",752       "  flex-grow: 1;\n",753       "}\n",754       "\n",755       "#sk-container-id-2 div.sk-parallel {\n",756       "  display: flex;\n",757       "  align-items: stretch;\n",758       "  justify-content: center;\n",759       "  background-color: var(--sklearn-color-background);\n",760       "  position: relative;\n",761       "}\n",762       "\n",763       "#sk-container-id-2 div.sk-parallel-item {\n",764       "  display: flex;\n",765       "  flex-direction: column;\n",766       "}\n",767       "\n",768       "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",769       "  align-self: flex-end;\n",770       "  width: 50%;\n",771       "}\n",772       "\n",773       "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",774       "  align-self: flex-start;\n",775       "  width: 50%;\n",776       "}\n",777       "\n",778       "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",779       "  width: 0;\n",780       "}\n",781       "\n",782       "/* Serial-specific style estimator block */\n",783       "\n",784       "#sk-container-id-2 div.sk-serial {\n",785       "  display: flex;\n",786       "  flex-direction: column;\n",787       "  align-items: center;\n",788       "  background-color: var(--sklearn-color-background);\n",789       "  padding-right: 1em;\n",790       "  padding-left: 1em;\n",791       "}\n",792       "\n",793       "\n",794       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",795       "clickable and can be expanded/collapsed.\n",796       "- Pipeline and ColumnTransformer use this feature and define the default style\n",797       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",798       "*/\n",799       "\n",800       "/* Pipeline and ColumnTransformer style (default) */\n",801       "\n",802       "#sk-container-id-2 div.sk-toggleable {\n",803       "  /* Default theme specific background. It is overwritten whether we have a\n",804       "  specific estimator or a Pipeline/ColumnTransformer */\n",805       "  background-color: var(--sklearn-color-background);\n",806       "}\n",807       "\n",808       "/* Toggleable label */\n",809       "#sk-container-id-2 label.sk-toggleable__label {\n",810       "  cursor: pointer;\n",811       "  display: block;\n",812       "  width: 100%;\n",813       "  margin-bottom: 0;\n",814       "  padding: 0.5em;\n",815       "  box-sizing: border-box;\n",816       "  text-align: center;\n",817       "}\n",818       "\n",819       "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",820       "  /* Arrow on the left of the label */\n",821       "  content: \"▸\";\n",822       "  float: left;\n",823       "  margin-right: 0.25em;\n",824       "  color: var(--sklearn-color-icon);\n",825       "}\n",826       "\n",827       "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",828       "  color: var(--sklearn-color-text);\n",829       "}\n",830       "\n",831       "/* Toggleable content - dropdown */\n",832       "\n",833       "#sk-container-id-2 div.sk-toggleable__content {\n",834       "  max-height: 0;\n",835       "  max-width: 0;\n",836       "  overflow: hidden;\n",837       "  text-align: left;\n",838       "  /* unfitted */\n",839       "  background-color: var(--sklearn-color-unfitted-level-0);\n",840       "}\n",841       "\n",842       "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",843       "  /* fitted */\n",844       "  background-color: var(--sklearn-color-fitted-level-0);\n",845       "}\n",846       "\n",847       "#sk-container-id-2 div.sk-toggleable__content pre {\n",848       "  margin: 0.2em;\n",849       "  border-radius: 0.25em;\n",850       "  color: var(--sklearn-color-text);\n",851       "  /* unfitted */\n",852       "  background-color: var(--sklearn-color-unfitted-level-0);\n",853       "}\n",854       "\n",855       "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",856       "  /* unfitted */\n",857       "  background-color: var(--sklearn-color-fitted-level-0);\n",858       "}\n",859       "\n",860       "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",861       "  /* Expand drop-down */\n",862       "  max-height: 200px;\n",863       "  max-width: 100%;\n",864       "  overflow: auto;\n",865       "}\n",866       "\n",867       "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",868       "  content: \"▾\";\n",869       "}\n",870       "\n",871       "/* Pipeline/ColumnTransformer-specific style */\n",872       "\n",873       "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",874       "  color: var(--sklearn-color-text);\n",875       "  background-color: var(--sklearn-color-unfitted-level-2);\n",876       "}\n",877       "\n",878       "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",879       "  background-color: var(--sklearn-color-fitted-level-2);\n",880       "}\n",881       "\n",882       "/* Estimator-specific style */\n",883       "\n",884       "/* Colorize estimator box */\n",885       "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",886       "  /* unfitted */\n",887       "  background-color: var(--sklearn-color-unfitted-level-2);\n",888       "}\n",889       "\n",890       "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",891       "  /* fitted */\n",892       "  background-color: var(--sklearn-color-fitted-level-2);\n",893       "}\n",894       "\n",895       "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",896       "#sk-container-id-2 div.sk-label label {\n",897       "  /* The background is the default theme color */\n",898       "  color: var(--sklearn-color-text-on-default-background);\n",899       "}\n",900       "\n",901       "/* On hover, darken the color of the background */\n",902       "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",903       "  color: var(--sklearn-color-text);\n",904       "  background-color: var(--sklearn-color-unfitted-level-2);\n",905       "}\n",906       "\n",907       "/* Label box, darken color on hover, fitted */\n",908       "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",909       "  color: var(--sklearn-color-text);\n",910       "  background-color: var(--sklearn-color-fitted-level-2);\n",911       "}\n",912       "\n",913       "/* Estimator label */\n",914       "\n",915       "#sk-container-id-2 div.sk-label label {\n",916       "  font-family: monospace;\n",917       "  font-weight: bold;\n",918       "  display: inline-block;\n",919       "  line-height: 1.2em;\n",920       "}\n",921       "\n",922       "#sk-container-id-2 div.sk-label-container {\n",923       "  text-align: center;\n",924       "}\n",925       "\n",926       "/* Estimator-specific */\n",927       "#sk-container-id-2 div.sk-estimator {\n",928       "  font-family: monospace;\n",929       "  border: 1px dotted var(--sklearn-color-border-box);\n",930       "  border-radius: 0.25em;\n",931       "  box-sizing: border-box;\n",932       "  margin-bottom: 0.5em;\n",933       "  /* unfitted */\n",934       "  background-color: var(--sklearn-color-unfitted-level-0);\n",935       "}\n",936       "\n",937       "#sk-container-id-2 div.sk-estimator.fitted {\n",938       "  /* fitted */\n",939       "  background-color: var(--sklearn-color-fitted-level-0);\n",940       "}\n",941       "\n",942       "/* on hover */\n",943       "#sk-container-id-2 div.sk-estimator:hover {\n",944       "  /* unfitted */\n",945       "  background-color: var(--sklearn-color-unfitted-level-2);\n",946       "}\n",947       "\n",948       "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",949       "  /* fitted */\n",950       "  background-color: var(--sklearn-color-fitted-level-2);\n",951       "}\n",952       "\n",953       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",954       "\n",955       "/* Common style for \"i\" and \"?\" */\n",956       "\n",957       ".sk-estimator-doc-link,\n",958       "a:link.sk-estimator-doc-link,\n",959       "a:visited.sk-estimator-doc-link {\n",960       "  float: right;\n",961       "  font-size: smaller;\n",962       "  line-height: 1em;\n",963       "  font-family: monospace;\n",964       "  background-color: var(--sklearn-color-background);\n",965       "  border-radius: 1em;\n",966       "  height: 1em;\n",967       "  width: 1em;\n",968       "  text-decoration: none !important;\n",969       "  margin-left: 1ex;\n",970       "  /* unfitted */\n",971       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",972       "  color: var(--sklearn-color-unfitted-level-1);\n",973       "}\n",974       "\n",975       ".sk-estimator-doc-link.fitted,\n",976       "a:link.sk-estimator-doc-link.fitted,\n",977       "a:visited.sk-estimator-doc-link.fitted {\n",978       "  /* fitted */\n",979       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",980       "  color: var(--sklearn-color-fitted-level-1);\n",981       "}\n",982       "\n",983       "/* On hover */\n",984       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",985       ".sk-estimator-doc-link:hover,\n",986       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",987       ".sk-estimator-doc-link:hover {\n",988       "  /* unfitted */\n",989       "  background-color: var(--sklearn-color-unfitted-level-3);\n",990       "  color: var(--sklearn-color-background);\n",991       "  text-decoration: none;\n",992       "}\n",993       "\n",994       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",995       ".sk-estimator-doc-link.fitted:hover,\n",996       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",997       ".sk-estimator-doc-link.fitted:hover {\n",998       "  /* fitted */\n",999       "  background-color: var(--sklearn-color-fitted-level-3);\n",1000       "  color: var(--sklearn-color-background);\n",1001       "  text-decoration: none;\n",1002       "}\n",1003       "\n",1004       "/* Span, style for the box shown on hovering the info icon */\n",1005       ".sk-estimator-doc-link span {\n",1006       "  display: none;\n",1007       "  z-index: 9999;\n",1008       "  position: relative;\n",1009       "  font-weight: normal;\n",1010       "  right: .2ex;\n",1011       "  padding: .5ex;\n",1012       "  margin: .5ex;\n",1013       "  width: min-content;\n",1014       "  min-width: 20ex;\n",1015       "  max-width: 50ex;\n",1016       "  color: var(--sklearn-color-text);\n",1017       "  box-shadow: 2pt 2pt 4pt #999;\n",1018       "  /* unfitted */\n",1019       "  background: var(--sklearn-color-unfitted-level-0);\n",1020       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",1021       "}\n",1022       "\n",1023       ".sk-estimator-doc-link.fitted span {\n",1024       "  /* fitted */\n",1025       "  background: var(--sklearn-color-fitted-level-0);\n",1026       "  border: var(--sklearn-color-fitted-level-3);\n",1027       "}\n",1028       "\n",1029       ".sk-estimator-doc-link:hover span {\n",1030       "  display: block;\n",1031       "}\n",1032       "\n",1033       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",1034       "\n",1035       "#sk-container-id-2 a.estimator_doc_link {\n",1036       "  float: right;\n",1037       "  font-size: 1rem;\n",1038       "  line-height: 1em;\n",1039       "  font-family: monospace;\n",1040       "  background-color: var(--sklearn-color-background);\n",1041       "  border-radius: 1rem;\n",1042       "  height: 1rem;\n",1043       "  width: 1rem;\n",1044       "  text-decoration: none;\n",1045       "  /* unfitted */\n",1046       "  color: var(--sklearn-color-unfitted-level-1);\n",1047       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",1048       "}\n",1049       "\n",1050       "#sk-container-id-2 a.estimator_doc_link.fitted {\n",1051       "  /* fitted */\n",1052       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",1053       "  color: var(--sklearn-color-fitted-level-1);\n",1054       "}\n",1055       "\n",1056       "/* On hover */\n",1057       "#sk-container-id-2 a.estimator_doc_link:hover {\n",1058       "  /* unfitted */\n",1059       "  background-color: var(--sklearn-color-unfitted-level-3);\n",1060       "  color: var(--sklearn-color-background);\n",1061       "  text-decoration: none;\n",1062       "}\n",1063       "\n",1064       "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",1065       "  /* fitted */\n",1066       "  background-color: var(--sklearn-color-fitted-level-3);\n",1067       "}\n",1068       "</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocessing&#x27;,\n",1069       "                 ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(),\n",1070       "                                                  [1, 2, 3]),\n",1071       "                                                 (&#x27;num_imputer&#x27;,\n",1072       "                                                  SimpleImputer(strategy=&#x27;median&#x27;),\n",1073       "                                                  [0, 4]),\n",1074       "                                                 (&#x27;num_scaler&#x27;,\n",1075       "                                                  StandardScaler(), [0, 4])])),\n",1076       "                (&#x27;model&#x27;,\n",1077       "                 RandomForestClassifier(n_estimators=10, random_state=125))])</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-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;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=[(&#x27;preprocessing&#x27;,\n",1078       "                 ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(),\n",1079       "                                                  [1, 2, 3]),\n",1080       "                                                 (&#x27;num_imputer&#x27;,\n",1081       "                                                  SimpleImputer(strategy=&#x27;median&#x27;),\n",1082       "                                                  [0, 4]),\n",1083       "                                                 (&#x27;num_scaler&#x27;,\n",1084       "                                                  StandardScaler(), [0, 4])])),\n",1085       "                (&#x27;model&#x27;,\n",1086       "                 RandomForestClassifier(n_estimators=10, random_state=125))])</pre></div> </div></div><div class=\"sk-serial\"><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-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;preprocessing: ColumnTransformer<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocessing: ColumnTransformer</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;encoder&#x27;, OrdinalEncoder(), [1, 2, 3]),\n",1087       "                                (&#x27;num_imputer&#x27;,\n",1088       "                                 SimpleImputer(strategy=&#x27;median&#x27;), [0, 4]),\n",1089       "                                (&#x27;num_scaler&#x27;, StandardScaler(), [0, 4])])</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-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">encoder</label><div class=\"sk-toggleable__content fitted\"><pre>[1, 2, 3]</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-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;OrdinalEncoder<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.preprocessing.OrdinalEncoder.html\">?<span>Documentation for OrdinalEncoder</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>OrdinalEncoder()</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\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" ><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">num_imputer</label><div class=\"sk-toggleable__content fitted\"><pre>[0, 4]</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-15\" type=\"checkbox\" ><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;SimpleImputer<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.impute.SimpleImputer.html\">?<span>Documentation for SimpleImputer</span></a></label><div class=\"sk-toggleable__content fitted\"><pre>SimpleImputer(strategy=&#x27;median&#x27;)</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\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" ><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">num_scaler</label><div class=\"sk-toggleable__content fitted\"><pre>[0, 4]</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-17\" type=\"checkbox\" ><label for=\"sk-estimator-id-17\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;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></div></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-18\" type=\"checkbox\" ><label for=\"sk-estimator-id-18\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;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(n_estimators=10, random_state=125)</pre></div> </div></div></div></div></div></div>"1090      ],1091      "text/plain": [1092       "Pipeline(steps=[('preprocessing',\n",1093       "                 ColumnTransformer(transformers=[('encoder', OrdinalEncoder(),\n",1094       "                                                  [1, 2, 3]),\n",1095       "                                                 ('num_imputer',\n",1096       "                                                  SimpleImputer(strategy='median'),\n",1097       "                                                  [0, 4]),\n",1098       "                                                 ('num_scaler',\n",1099       "                                                  StandardScaler(), [0, 4])])),\n",1100       "                ('model',\n",1101       "                 RandomForestClassifier(n_estimators=10, random_state=125))])"1102      ]1103     },1104     "execution_count": 8,1105     "metadata": {},1106     "output_type": "execute_result"1107    }1108   ],1109   "source": [1110    "sio.load(\"Model/drug_pipeline.skops\", trusted=True)"1111   ]1112  }1113 ],1114 "metadata": {1115  "kernelspec": {1116   "display_name": "PY312",1117   "language": "python",1118   "name": "python3"1119  },1120  "language_info": {1121   "codemirror_mode": {1122    "name": "ipython",1123    "version": 31124   },1125   "file_extension": ".py",1126   "mimetype": "text/x-python",1127   "name": "python",1128   "nbconvert_exporter": "python",1129   "pygments_lexer": "ipython3",1130   "version": "3.9.18"1131  }1132 },1133 "nbformat": 4,1134 "nbformat_minor": 21135}1136