{"metadata":{"kernelspec":{"name":"conda-env-anaconda-2025.12-py312-py","display_name":"anaconda-2025.12-py312","language":"python"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"35255602-164f-43f9-a8c8-1f5327b26322","cell_type":"markdown","source":"# Activity 1: Data Cleaning Exercise ","metadata":{}},{"id":"9d3abeee-323b-40fd-b443-a9502e3b4d4a","cell_type":"code","source":"# Load dataset\nimport pandas as pd\n\ndata = pd.read_csv('titanic.csv')","metadata":{"trusted":true},"outputs":[],"execution_count":6},{"id":"1496d5f1-b05a-4f4d-a8db-9d762ed55324","cell_type":"code","source":"# Check missing values\nprint(data.isnull().sum())","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"PassengerId      0\nSurvived         0\nPclass           0\nName             0\nSex              0\nAge            177\nSibSp            0\nParch            0\nTicket           0\nFare             0\nCabin          687\nEmbarked         2\ndtype: int64\n"}],"execution_count":7},{"id":"9a570788-5954-4710-b3b7-8a3eb6889332","cell_type":"code","source":"# Fill missing Age values with mean\ndata['Age'] = data['Age'].fillna(data['Age'].mean())","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"id":"ad397366-b141-4176-95a3-e5b08dd1d720","cell_type":"code","source":"# Drop Cabin column\ndata = data.drop(columns=['Cabin'])","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"id":"4bdae9ec-c837-46f6-af54-ffcc87a000fb","cell_type":"code","source":"# Convert Sex to numeric\ndata['Sex'] = data['Sex'].map({'male': 0, 'female': 1})","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"id":"f7327423-c30c-4fba-94e5-243dd015515d","cell_type":"code","source":"# Display cleaned dataset\nprint(data.head(10))","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"   PassengerId  Survived  Pclass  \\\n0            1         0       3   \n1            2         1       1   \n2            3         1       3   \n3            4         1       1   \n4            5         0       3   \n5            6         0       3   \n6            7         0       1   \n7            8         0       3   \n8            9         1       3   \n9           10         1       2   \n\n                                                Name  Sex        Age  SibSp  \\\n0                           Braund\\t Mr. Owen Harris    0  22.000000      1   \n1  Cumings\\t Mrs. John Bradley (Florence Briggs T...    1  38.000000      1   \n2                             Heikkinen\\t Miss Laina    1  26.000000      0   \n3      Futrelle\\t Mrs. Jacques Heath (Lily May Peel)    1  35.000000      1   \n4                          Allen\\t Mr. William Henry    0  35.000000      0   \n5                                  Moran\\t Mr. James    0  29.699118      0   \n6                           McCarthy\\t Mr. Timothy J    0  54.000000      0   \n7                     Palsson\\t Master Gosta Leonard    0   2.000000      3   \n8  Johnson\\t Mrs. Oscar W (Elisabeth Vilhelmina B...    1  27.000000      0   \n9               Nasser\\t Mrs. Nicholas (Adele Achem)    1  14.000000      1   \n\n   Parch            Ticket     Fare Embarked  \n0      0         A/5 21171   7.2500        S  \n1      0          PC 17599  71.2833        C  \n2      0  STON/O2. 3101282   7.9250        S  \n3      0            113803  53.1000        S  \n4      0            373450   8.0500        S  \n5      0            330877   8.4583        Q  \n6      0             17463  51.8625        S  \n7      1            349909  21.0750        S  \n8      2            347742  11.1333        S  \n9      0            237736  30.0708        C  \n"}],"execution_count":12},{"id":"0094895b-9628-45a7-b161-28d51750461b","cell_type":"markdown","source":"## Observations\n- Missing values were found in the Age column.\n- Missing ages were replaced with the mean age.\n- The Cabin column was removed due to many missing values.\n- The Sex column was converted to numeric values.\n- The dataset is now cleaner and ready for analysis.","metadata":{}},{"id":"046937fe-9835-42cb-acd5-ad2c7298e48f","cell_type":"markdown","source":"# Activity 2: Working with SKlearn","metadata":{}},{"id":"fb9a5d99-2304-4244-acac-0fd783a1f703","cell_type":"code","source":"# Import Libraries\nimport pandas as pd\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\nimport matplotlib.pyplot as plt\n","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"716b9e57-83d1-4b7f-9f19-2f2befd59c17","cell_type":"code","source":"# Load the IRIS dataset\niris = load_iris()\nX = iris.data\ny = iris.target\n","metadata":{"trusted":true},"outputs":[],"execution_count":14},{"id":"a4e8bbdf-5591-4f81-ac6f-b8945993d5af","cell_type":"code","source":"# Split the dataset into training and testing sets\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"12cdf83f-d091-4ec8-9fc9-c8d0226efd37","cell_type":"code","source":"# Train a decision tree classifier\nclf = DecisionTreeClassifier(random_state=42)\nclf.fit(X_train, y_train)\n","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"DecisionTreeClassifier(random_state=42)","text/html":"<style>#sk-container-id-1 {\n  /* Definition of color scheme common for light and dark mode */\n  --sklearn-color-text: #000;\n  --sklearn-color-text-muted: #666;\n  --sklearn-color-line: gray;\n  /* Definition of color scheme for unfitted estimators */\n  --sklearn-color-unfitted-level-0: #fff5e6;\n  --sklearn-color-unfitted-level-1: #f6e4d2;\n  --sklearn-color-unfitted-level-2: #ffe0b3;\n  --sklearn-color-unfitted-level-3: chocolate;\n  /* Definition of color scheme for fitted estimators */\n  --sklearn-color-fitted-level-0: #f0f8ff;\n  --sklearn-color-fitted-level-1: #d4ebff;\n  --sklearn-color-fitted-level-2: #b3dbfd;\n  --sklearn-color-fitted-level-3: cornflowerblue;\n\n  /* Specific color for light theme */\n  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n  --sklearn-color-icon: #696969;\n\n  @media (prefers-color-scheme: dark) {\n    /* Redefinition of color scheme for dark theme */\n    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n    --sklearn-color-icon: #878787;\n  }\n}\n\n#sk-container-id-1 {\n  color: var(--sklearn-color-text);\n}\n\n#sk-container-id-1 pre {\n  padding: 0;\n}\n\n#sk-container-id-1 input.sk-hidden--visually {\n  border: 0;\n  clip: rect(1px 1px 1px 1px);\n  clip: rect(1px, 1px, 1px, 1px);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n#sk-container-id-1 div.sk-dashed-wrapped {\n  border: 1px dashed var(--sklearn-color-line);\n  margin: 0 0.4em 0.5em 0.4em;\n  box-sizing: border-box;\n  padding-bottom: 0.4em;\n  background-color: var(--sklearn-color-background);\n}\n\n#sk-container-id-1 div.sk-container {\n  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n     but bootstrap.min.css set `[hidden] { display: none !important; }`\n     so we also need the `!important` here to be able to override the\n     default hidden behavior on the sphinx rendered scikit-learn.org.\n     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n  display: inline-block !important;\n  position: relative;\n}\n\n#sk-container-id-1 div.sk-text-repr-fallback {\n  display: none;\n}\n\ndiv.sk-parallel-item,\ndiv.sk-serial,\ndiv.sk-item {\n  /* draw centered vertical line to link estimators */\n  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n  background-size: 2px 100%;\n  background-repeat: no-repeat;\n  background-position: center center;\n}\n\n/* Parallel-specific style estimator block */\n\n#sk-container-id-1 div.sk-parallel-item::after {\n  content: \"\";\n  width: 100%;\n  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n  flex-grow: 1;\n}\n\n#sk-container-id-1 div.sk-parallel {\n  display: flex;\n  align-items: stretch;\n  justify-content: center;\n  background-color: var(--sklearn-color-background);\n  position: relative;\n}\n\n#sk-container-id-1 div.sk-parallel-item {\n  display: flex;\n  flex-direction: column;\n}\n\n#sk-container-id-1 div.sk-parallel-item:first-child::after {\n  align-self: flex-end;\n  width: 50%;\n}\n\n#sk-container-id-1 div.sk-parallel-item:last-child::after {\n  align-self: flex-start;\n  width: 50%;\n}\n\n#sk-container-id-1 div.sk-parallel-item:only-child::after {\n  width: 0;\n}\n\n/* Serial-specific style estimator block */\n\n#sk-container-id-1 div.sk-serial {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  background-color: var(--sklearn-color-background);\n  padding-right: 1em;\n  padding-left: 1em;\n}\n\n\n/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\nclickable and can be expanded/collapsed.\n- Pipeline and ColumnTransformer use this feature and define the default style\n- Estimators will overwrite some part of the style using the `sk-estimator` class\n*/\n\n/* Pipeline and ColumnTransformer style (default) */\n\n#sk-container-id-1 div.sk-toggleable {\n  /* Default theme specific background. It is overwritten whether we have a\n  specific estimator or a Pipeline/ColumnTransformer */\n  background-color: var(--sklearn-color-background);\n}\n\n/* Toggleable label */\n#sk-container-id-1 label.sk-toggleable__label {\n  cursor: pointer;\n  display: flex;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 0.5em;\n  box-sizing: border-box;\n  text-align: center;\n  align-items: start;\n  justify-content: space-between;\n  gap: 0.5em;\n}\n\n#sk-container-id-1 label.sk-toggleable__label .caption {\n  font-size: 0.6rem;\n  font-weight: lighter;\n  color: var(--sklearn-color-text-muted);\n}\n\n#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n  /* Arrow on the left of the label */\n  content: \"▸\";\n  float: left;\n  margin-right: 0.25em;\n  color: var(--sklearn-color-icon);\n}\n\n#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n  color: var(--sklearn-color-text);\n}\n\n/* Toggleable content - dropdown */\n\n#sk-container-id-1 div.sk-toggleable__content {\n  display: none;\n  text-align: left;\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content.fitted {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content pre {\n  margin: 0.2em;\n  border-radius: 0.25em;\n  color: var(--sklearn-color-text);\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n  /* unfitted */\n  background-color: var(--sklearn-color-fitted-level-0);\n}\n\n#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n  /* Expand drop-down */\n  display: block;\n  width: 100%;\n  overflow: visible;\n}\n\n#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n  content: \"▾\";\n}\n\n/* Pipeline/ColumnTransformer-specific style */\n\n#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n  color: var(--sklearn-color-text);\n  background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n  background-color: var(--sklearn-color-fitted-level-2);\n}\n\n/* Estimator-specific style */\n\n/* Colorize estimator box */\n#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-2);\n}\n\n#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n#sk-container-id-1 div.sk-label label {\n  /* The background is the default theme color */\n  color: var(--sklearn-color-text-on-default-background);\n}\n\n/* On hover, darken the color of the background */\n#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n  color: var(--sklearn-color-text);\n  background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n/* Label box, darken color on hover, fitted */\n#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n  color: var(--sklearn-color-text);\n  background-color: var(--sklearn-color-fitted-level-2);\n}\n\n/* Estimator label */\n\n#sk-container-id-1 div.sk-label label {\n  font-family: monospace;\n  font-weight: bold;\n  display: inline-block;\n  line-height: 1.2em;\n}\n\n#sk-container-id-1 div.sk-label-container {\n  text-align: center;\n}\n\n/* Estimator-specific */\n#sk-container-id-1 div.sk-estimator {\n  font-family: monospace;\n  border: 1px dotted var(--sklearn-color-border-box);\n  border-radius: 0.25em;\n  box-sizing: border-box;\n  margin-bottom: 0.5em;\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-0);\n}\n\n#sk-container-id-1 div.sk-estimator.fitted {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-0);\n}\n\n/* on hover */\n#sk-container-id-1 div.sk-estimator:hover {\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-2);\n}\n\n#sk-container-id-1 div.sk-estimator.fitted:hover {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-2);\n}\n\n/* Specification for estimator info (e.g. \"i\" and \"?\") */\n\n/* Common style for \"i\" and \"?\" */\n\n.sk-estimator-doc-link,\na:link.sk-estimator-doc-link,\na:visited.sk-estimator-doc-link {\n  float: right;\n  font-size: smaller;\n  line-height: 1em;\n  font-family: monospace;\n  background-color: var(--sklearn-color-background);\n  border-radius: 1em;\n  height: 1em;\n  width: 1em;\n  text-decoration: none !important;\n  margin-left: 0.5em;\n  text-align: center;\n  /* unfitted */\n  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n  color: var(--sklearn-color-unfitted-level-1);\n}\n\n.sk-estimator-doc-link.fitted,\na:link.sk-estimator-doc-link.fitted,\na:visited.sk-estimator-doc-link.fitted {\n  /* fitted */\n  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n  color: var(--sklearn-color-fitted-level-1);\n}\n\n/* On hover */\ndiv.sk-estimator:hover .sk-estimator-doc-link:hover,\n.sk-estimator-doc-link:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link:hover,\n.sk-estimator-doc-link:hover {\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-3);\n  color: var(--sklearn-color-background);\n  text-decoration: none;\n}\n\ndiv.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover,\ndiv.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n.sk-estimator-doc-link.fitted:hover {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-3);\n  color: var(--sklearn-color-background);\n  text-decoration: none;\n}\n\n/* Span, style for the box shown on hovering the info icon */\n.sk-estimator-doc-link span {\n  display: none;\n  z-index: 9999;\n  position: relative;\n  font-weight: normal;\n  right: .2ex;\n  padding: .5ex;\n  margin: .5ex;\n  width: min-content;\n  min-width: 20ex;\n  max-width: 50ex;\n  color: var(--sklearn-color-text);\n  box-shadow: 2pt 2pt 4pt #999;\n  /* unfitted */\n  background: var(--sklearn-color-unfitted-level-0);\n  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n}\n\n.sk-estimator-doc-link.fitted span {\n  /* fitted */\n  background: var(--sklearn-color-fitted-level-0);\n  border: var(--sklearn-color-fitted-level-3);\n}\n\n.sk-estimator-doc-link:hover span {\n  display: block;\n}\n\n/* \"?\"-specific style due to the `<a>` HTML tag */\n\n#sk-container-id-1 a.estimator_doc_link {\n  float: right;\n  font-size: 1rem;\n  line-height: 1em;\n  font-family: monospace;\n  background-color: var(--sklearn-color-background);\n  border-radius: 1rem;\n  height: 1rem;\n  width: 1rem;\n  text-decoration: none;\n  /* unfitted */\n  color: var(--sklearn-color-unfitted-level-1);\n  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n}\n\n#sk-container-id-1 a.estimator_doc_link.fitted {\n  /* fitted */\n  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n  color: var(--sklearn-color-fitted-level-1);\n}\n\n/* On hover */\n#sk-container-id-1 a.estimator_doc_link:hover {\n  /* unfitted */\n  background-color: var(--sklearn-color-unfitted-level-3);\n  color: var(--sklearn-color-background);\n  text-decoration: none;\n}\n\n#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n  /* fitted */\n  background-color: var(--sklearn-color-fitted-level-3);\n}\n\n.estimator-table summary {\n    padding: .5rem;\n    font-family: monospace;\n    cursor: pointer;\n}\n\n.estimator-table details[open] {\n    padding-left: 0.1rem;\n    padding-right: 0.1rem;\n    padding-bottom: 0.3rem;\n}\n\n.estimator-table .parameters-table {\n    margin-left: auto !important;\n    margin-right: auto !important;\n}\n\n.estimator-table .parameters-table tr:nth-child(odd) {\n    background-color: #fff;\n}\n\n.estimator-table .parameters-table tr:nth-child(even) {\n    background-color: #f6f6f6;\n}\n\n.estimator-table .parameters-table tr:hover {\n    background-color: #e0e0e0;\n}\n\n.estimator-table table td {\n    border: 1px solid rgba(106, 105, 104, 0.232);\n}\n\n.user-set td {\n    color:rgb(255, 94, 0);\n    text-align: left;\n}\n\n.user-set td.value pre {\n    color:rgb(255, 94, 0) !important;\n    background-color: transparent !important;\n}\n\n.default td {\n    color: black;\n    text-align: left;\n}\n\n.user-set td i,\n.default td i {\n    color: black;\n}\n\n.copy-paste-icon {\n    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n    background-repeat: no-repeat;\n    background-size: 14px 14px;\n    background-position: 0;\n    display: inline-block;\n    width: 14px;\n    height: 14px;\n    cursor: pointer;\n}\n</style><body><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>DecisionTreeClassifier</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.7/modules/generated/sklearn.tree.DecisionTreeClassifier.html\">?<span>Documentation for DecisionTreeClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n        <div class=\"estimator-table\">\n            <details>\n                <summary>Parameters</summary>\n                <table class=\"parameters-table\">\n                  <tbody>\n                    \n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('criterion',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">criterion&nbsp;</td>\n            <td class=\"value\">&#x27;gini&#x27;</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('splitter',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">splitter&nbsp;</td>\n            <td class=\"value\">&#x27;best&#x27;</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('max_depth',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">max_depth&nbsp;</td>\n            <td class=\"value\">None</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('min_samples_split',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">min_samples_split&nbsp;</td>\n            <td class=\"value\">2</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('min_samples_leaf',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">min_samples_leaf&nbsp;</td>\n            <td class=\"value\">1</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('min_weight_fraction_leaf',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">min_weight_fraction_leaf&nbsp;</td>\n            <td class=\"value\">0.0</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('max_features',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">max_features&nbsp;</td>\n            <td class=\"value\">None</td>\n        </tr>\n    \n\n        <tr class=\"user-set\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('random_state',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">random_state&nbsp;</td>\n            <td class=\"value\">42</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('max_leaf_nodes',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">max_leaf_nodes&nbsp;</td>\n            <td class=\"value\">None</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('min_impurity_decrease',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">min_impurity_decrease&nbsp;</td>\n            <td class=\"value\">0.0</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('class_weight',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">class_weight&nbsp;</td>\n            <td class=\"value\">None</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('ccp_alpha',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">ccp_alpha&nbsp;</td>\n            <td class=\"value\">0.0</td>\n        </tr>\n    \n\n        <tr class=\"default\">\n            <td><i class=\"copy-paste-icon\"\n                 onclick=\"copyToClipboard('monotonic_cst',\n                          this.parentElement.nextElementSibling)\"\n            ></i></td>\n            <td class=\"param\">monotonic_cst&nbsp;</td>\n            <td class=\"value\">None</td>\n        </tr>\n    \n                  </tbody>\n                </table>\n            </details>\n        </div>\n    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n    // Get the parameter prefix from the closest toggleable content\n    const toggleableContent = element.closest('.sk-toggleable__content');\n    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n\n    const originalStyle = element.style;\n    const computedStyle = window.getComputedStyle(element);\n    const originalWidth = computedStyle.width;\n    const originalHTML = element.innerHTML.replace('Copied!', '');\n\n    navigator.clipboard.writeText(fullParamName)\n        .then(() => {\n            element.style.width = originalWidth;\n            element.style.color = 'green';\n            element.innerHTML = \"Copied!\";\n\n            setTimeout(() => {\n                element.innerHTML = originalHTML;\n                element.style = originalStyle;\n            }, 2000);\n        })\n        .catch(err => {\n            console.error('Failed to copy:', err);\n            element.style.color = 'red';\n            element.innerHTML = \"Failed!\";\n            setTimeout(() => {\n                element.innerHTML = originalHTML;\n                element.style = originalStyle;\n            }, 2000);\n        });\n    return false;\n}\n\ndocument.querySelectorAll('.fa-regular.fa-copy').forEach(function(element) {\n    const toggleableContent = element.closest('.sk-toggleable__content');\n    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n    const paramName = element.parentElement.nextElementSibling.textContent.trim();\n    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n\n    element.setAttribute('title', fullParamName);\n});\n</script></body>"},"metadata":{}}],"execution_count":16},{"id":"ef9363b7-6207-4491-8fc7-6c316da28e14","cell_type":"code","source":"# Make predictions on the test set\ny_pred = clf.predict(X_test)\n","metadata":{"trusted":true},"outputs":[],"execution_count":17},{"id":"9c10ab44-25af-43cb-8424-84d0348ac48b","cell_type":"code","source":"# Generate the confusion matrix\ncm = confusion_matrix(y_test, y_pred)\n","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"id":"4c33bc29-daf1-4481-9424-f87819f7b55b","cell_type":"code","source":"# Display the confusion matrix\ndisp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=iris.target_names)\ndisp.plot(cmap=plt.cm.Blues)\nplt.title('Confusion Matrix for Decision Tree Classifier')\nplt.show()\n","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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"},"metadata":{}}],"execution_count":19},{"id":"ee38f430-c99d-453d-85cf-6e1e0c5dadff","cell_type":"markdown","source":"The machine learning process involved loading the data, splitting it into training and testing sets, training a Decision Tree model, making predictions, evaluating performance using a confusion matrix, and visualising the results.","metadata":{}},{"id":"b284df2e-691a-438a-b701-ee547906b134","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}