{"id":108,"date":"2021-12-06T15:55:43","date_gmt":"2021-12-06T15:55:43","guid":{"rendered":"https:\/\/websitebuilder-demo.net\/keynote\/?page_id=108"},"modified":"2026-06-06T09:00:45","modified_gmt":"2026-06-06T09:00:45","slug":"workshop","status":"publish","type":"page","link":"https:\/\/indabaxnamibia.com\/2024\/workshop\/","title":{"rendered":"Workshop"},"content":{"rendered":"<div class=\"brz brz-root__container brz-reset-all brz-root__container-page\" >\n<section id=\"vckvyezesholsmyhdapsevticsitagcuxkfl_vckvyezesholsmyhdapsevticsitagcuxkfl\" class=\"brz-section brz-css-d-section brz-css-1vd8t0w\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-sectionitem-bg brz-css-n41ga2\" data-brz-custom-id=\"qdlrnenlrdszkdawxfuemuzllfyquciqupya\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-image\"><\/div>\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-sectionitem-container brz-css-r8oti3\">\n<div class=\"brz-row__container brz-css-d-row-row brz-css-1hibk7a\" data-brz-custom-id=\"bkmoueyfmjcxpfcrztykteabdovimkeumcla\">\n<div class=\"brz-row brz-css-d-row-container brz-css-r-row-container brz-css-t942r5\">\n<div data-brz-iteration-count=\"1\" class=\"brz-columns brz-css-d-column-column brz-css-d9kl49 brz-animated brz-css-d-column-animation-fadeinleft-900-500-false brz-css-kwsunq\" data-brz-custom-id=\"sdpipqgadpdmdvbmigwkjriryrrrhggkeesy\">\n<div class=\"brz-column__items brz-css-d-column-bg brz-css-udrvwy\">\n<div id=\"\" class=\"brz-css-d-wrapper brz-css-l2649a brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-richtext brz-css-6pbyli\" data-brz-custom-id=\"qkxifazrhzdnjzuyunmrcdjrwajnnlffjuck\">\n<div data-brz-translate-text=\"1\">\n<h1 class=\"brz-tp-lg-heading1 brz-mb-lg-0 brz-text-lg-right brz-text-xs-center brz-css-gvHDr\" data-uniq-id=\"ao8Ay\" data-generated-css=\"brz-css-a3WIM\"><span class=\"brz-cp-color8\">HACHATHON<\/span><\/h1>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-column-column brz-css-7cu4ax\" data-brz-custom-id=\"qssguejgifrazmlbmdeiqwkbaiotauvqgloa\">\n<div class=\"brz-column__items brz-css-d-column-bg brz-css-wf5que\">\n<div class=\"brz-wrapper-clone brz-flex-xs-wrap brz-css-d-cloneable brz-css-1dsnblm\" data-brz-custom-id=\"ggbdwspxuwywfkakqwvkfmdxfkmpwedxswgo\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"ttdwkxrnmjlnmgyxfhtpcfrfofimmsqqanug\"><span class=\"brz-icon brz-span brz-css-d-icon-icon brz-css-3dmw5r\"><svg class=\"brz-icon-svg align-[initial]\"><use href=\"\/2024\/wp-content\/plugins\/brizy\/public\/editor-build\/prod\/editor\/icons\/outline\/bag-17.svg#nc_icon\"><\/use><\/svg><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div data-brz-iteration-count=\"1\" class=\"brz-columns brz-css-d-column-column brz-css-16n6s9o brz-animated brz-css-d-column-animation-fadeinright-900-500-false brz-css-qczn2t\" data-brz-custom-id=\"ozjupeuosnsgiipxonriwoxtalmaxohrcida\">\n<div class=\"brz-column__items brz-css-d-column-bg brz-css-1ln21cg\">\n<div id=\"\" class=\"brz-css-d-wrapper brz-css-1ol9odg brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-richtext brz-css-xvnlrd\" data-brz-custom-id=\"qkoanfnpokwcqozkbphpwbedxgrgjktnwnyg\">\n<div data-brz-translate-text=\"1\">\n<h1 class=\"brz-tp-lg-heading1 brz-mb-lg-0 brz-text-lg-left brz-text-xs-center brz-css-cczhm\" data-uniq-id=\"uh__7\" data-generated-css=\"brz-css-lBBjE\"><span class=\"brz-cp-color8\">OVERVIEW<\/span><\/h1>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"wviuusdbwrgxybcxsmzwfmpqnsfetvpujrld_wviuusdbwrgxybcxsmzwfmpqnsfetvpujrld\" class=\"brz-section brz-css-d-section brz-css-17rgmyh\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-sectionitem-bg brz-css-1av6d8h\" data-brz-custom-id=\"abplqyyobnapghtqbeoxzjhlwyxylbvuyvye\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-sectionitem-container brz-css-1o53mml\">\n<div id=\"\" class=\"brz-css-d-wrapper brz-css-l3gh3n brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-richtext brz-css-vuiwmu\" data-brz-custom-id=\"rualihmwcfsfbavrlyztowltrgwszftjxioi\">\n<div data-brz-translate-text=\"1\">\n<h2 class=\"brz-mb-lg-0 brz-tp-lg-heading2 brz-text-lg-center brz-text-xs-center brz-css-fLGL9\" data-uniq-id=\"fCN8U\" data-generated-css=\"brz-css-kTgiC\"><span class=\"brz-cp-color3\">WORKSHOP: Introduction to Machine Learning  with Python<\/span><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-wrapper brz-css-1slt6l brz-wrapper\">\n<div class=\"brz-line brz-line-default brz-css-d-line brz-css-18ghkoo\" data-brz-custom-id=\"nabuzwzdraemjadmtjlpdujknqkfkeuzzuje\">\n<hr class=\"brz-hr\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-wrapper brz-css-1q5ichs brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-embedcode brz-css-1pvsthb\" data-brz-custom-id=\"xSDT5MhKoiGj\">\n<div class=\"brz-embed-content\">\n<div>\n<p>    <meta charset=\"UTF-8\"><br \/>\n    <title>Introduction to Machine Learning with Python \u2014 IndabaX Namibia<\/title><\/p>\n<style>\n        \/* Modern, Clean Typography & Palette optimized for Technical Reading *\/\n        .ix-workshop-container {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n            color: #2d3748;\n            line-height: 1.65;\n            max-width: 900px;\n            margin: 0 auto;\n            padding: 20px;\n            background-color: #ffffff;\n        }<\/p>\n<p>        \/* Header Style mimicking a Premium Course Platform *\/\n        .ix-header-banner {\n            background: linear-gradient(135deg, #1a202c 0%, #2d3748 100%);\n            color: #ffffff;\n            padding: 40px 30px;\n            border-radius: 8px;\n            margin-bottom: 35px;\n            border-left: 6px solid #3182ce;\n        }\n        .ix-header-banner h1 {\n            margin: 0 0 10px 0;\n            font-size: 24pt;\n            font-weight: 700;\n            letter-spacing: -0.5px;\n        }\n        .ix-header-banner p {\n            margin: 0;\n            font-size: 12pt;\n            color: #e2e8f0;\n        }<\/p>\n<p>        \/* Headings Typography *\/\n        .ix-workshop-container h2 {\n            font-size: 16pt;\n            color: #1a202c;\n            border-bottom: 2px solid #edf2f7;\n            padding-bottom: 8px;\n            margin-top: 40px;\n            margin-bottom: 20px;\n            font-weight: 600;\n        }\n        .ix-workshop-container h3 {\n            font-size: 12pt;\n            color: #2b6cb0;\n            margin-top: 25px;\n            margin-bottom: 12px;\n            font-weight: 600;\n        }<\/p>\n<p>        \/* Roadmap Navigation Style *\/\n        .ix-roadmap-box {\n            background-color: #f7fafc;\n            border: 1px solid #e2e8f0;\n            border-radius: 6px;\n            padding: 20px;\n            margin-bottom: 30px;\n        }\n        .ix-roadmap-list {\n            list-style: none;\n            padding-left: 0;\n            margin: 0;\n        }\n        .ix-roadmap-list li {\n            position: relative;\n            padding-left: 25px;\n            margin-bottom: 8px;\n        }\n        .ix-roadmap-list li::before {\n            content: \"\u2794\";\n            position: absolute;\n            left: 0;\n            color: #3182ce;\n            font-weight: bold;\n        }<\/p>\n<p>        \/* Mathematical Notation Blocks *\/\n        .ix-math-block {\n            text-align: center;\n            margin: 20px 0;\n            padding: 15px;\n            background-color: #f8fafc;\n            border-radius: 6px;\n            font-size: 1.15em;\n        }\n        .ix-math-var {\n            font-family: 'Times New Roman', Times, serif;\n            font-style: italic;\n            font-weight: bold;\n            color: #2c5282;\n        }<\/p>\n<p>        \/* Table\/Layout Elements for Conceptual Comparisons *\/\n        .ix-comparison-table {\n            width: 100%;\n            border-collapse: collapse;\n            margin: 20px 0;\n        }\n        .ix-comparison-table th, .ix-comparison-table td {\n            border: 1px solid #e2e8f0;\n            padding: 12px 15px;\n            text-align: left;\n        }\n        .ix-comparison-table th {\n            background-color: #edf2f7;\n            color: #2d3748;\n        }<\/p>\n<p>        \/* Visual Callout for Challenge Sections *\/\n        .ix-challenge-box {\n            background-color: #fffaf0;\n            border: 1px solid #feebc8;\n            border-left: 4px solid #dd6b20;\n            border-radius: 6px;\n            padding: 25px;\n            margin: 35px 0;\n        }<\/p>\n<p>        \/* CSS-Based Diagram Blocks to Avoid Image Breakage *\/\n        .ix-diagram-container {\n            background: #edf2f7;\n            padding: 20px;\n            border-radius: 8px;\n            text-align: center;\n            margin: 25px 0;\n            font-family: monospace;\n            font-size: 10pt;\n        }<\/p>\n<p>        \/* Beautiful Code Snippet Blocks with Line-wrap & Preserved Indentations *\/\n        .ix-code-wrapper {\n            position: relative;\n            margin: 18px 0;\n        }\n        .ix-code-block {\n            background-color: #1a202c;\n            color: #edf2f7;\n            font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n            font-size: 10.5pt;\n            padding: 18px;\n            border-radius: 6px;\n            overflow-x: auto;\n            white-space: pre;\n            margin: 0;\n            border-left: 4px solid #48bb78;\n        }\n        .ix-code-label {\n            position: absolute;\n            top: -12px;\n            right: 15px;\n            background-color: #48bb78;\n            color: white;\n            font-size: 8pt;\n            padding: 2px 8px;\n            border-radius: 3px;\n            font-weight: bold;\n            text-transform: uppercase;\n        }\n    <\/style>\n<div class=\"ix-workshop-container\">\n<div class=\"ix-header-banner\">\n<h1>Introduction to Machine Learning with Python<\/h1>\n<p>A Self-Paced Workshop Designed for the Deep Learning IndabaX Namibia Community<\/p>\n<\/p><\/div>\n<p>Welcome to this practical, self-paced introduction to Machine Learning (ML). ML architectures are currently transforming industries across Africa\u2014from optimising agricultural yields and predicting health diagnostic metrics to building resilient cybersecurity systems. The purpose of this guide is to bridge the gap between basic coding syntax and statistical system development using Python.<\/p>\n<div class=\"ix-roadmap-box\">\n<h3 style=\"margin-top:0;\">Workshop Roadmap<\/h3>\n<ul class=\"ix-roadmap-list\">\n<li>Prerequisites &amp; Environment Setup<\/li>\n<li>Module 1: The Foundations of Machine Learning<\/li>\n<li>Module 2: The Machine Learning Pipeline Workflow<\/li>\n<li>Module 3: Hands-On Lab 1 \u2013 Property Price Tracking (Regression)<\/li>\n<li>Module 4: Hands-On Lab 2 \u2013 Credit Risk Evaluation (Classification)<\/li>\n<li>Module 5: The Cap-stone Project Challenge<\/li>\n<li>Next Steps &amp; Development Resources<\/li>\n<\/ul><\/div>\n<h2>Prerequisites &amp; Environment Setup<\/h2>\n<p>To successfully run the technical labs inside this curriculum, you require a computing environment equipped with Python 3 and fundamental data processing libraries.<\/p>\n<h3>Option A: Google Colab (Highly Recommended)<\/h3>\n<p>The fastest zero-configuration option. Code executes completely within your browser with free sandbox compute engines provided.<\/p>\n<p>\u2794 Go to <a href=\"https:\/\/colab.research.google.com\/\" target=\"_blank\" rel=\"noopener\">colab.research.google.com<\/a> and select <strong>New Notebook<\/strong>.<\/p>\n<h3>Option B: Local Deployment via Anaconda<\/h3>\n<p>If you prefer locally hosted processing, download the <a href=\"https:\/\/www.anaconda.com\/\" target=\"_blank\" rel=\"noopener\">Anaconda Individual Edition<\/a> and open up a clean instance of <strong>Jupyter Notebook<\/strong>.<\/p>\n<p>To ensure your environment handles calculations correctly, execute the following dependency call in your command terminal:<\/p>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Terminal<\/span><\/p>\n<pre class=\"ix-code-block\">pip install numpy pandas scikit-learn matplotlib seaborn<\/pre>\n<\/p><\/div>\n<h2>Module 1: The Foundations of Machine Learning<\/h2>\n<p>Before designing analytical algorithms, we must understand the shift away from deterministic application logic.<\/p>\n<table class=\"ix-comparison-table\">\n<thead>\n<tr>\n<th>Traditional Programming Paradigm<\/th>\n<th>Machine Learning Paradigm<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Developers manually write explicit logic rules. Systems accept raw data inputs and parse them through these rules to evaluate strict programmatic output solutions.<\/td>\n<td>Data structures and corresponding target outputs (labels) are fed collectively into a learning engine. The algorithm infers the mathematical patterns to engineer its own decision rules.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Mathematically, our primary objective within Supervised Learning models is to deduce an optimal target estimation function <span class=\"ix-math-var\">f<\/span> capable of establishing relationships such that:<\/p>\n<div class=\"ix-math-block\">\n        <span class=\"ix-math-var\">y = f(X) + \u03b5<\/span>\n    <\/div>\n<p>Where <span class=\"ix-math-var\">y<\/span> is our dependent target variable, <span class=\"ix-math-var\">X<\/span> represents the matrix of independent predictive features, and <span class=\"ix-math-var\">\u03b5<\/span> accounts for unavoidable structural noise (irreducible error).<\/p>\n<h2>Module 2: The Machine Learning Pipeline<\/h2>\n<p>A functional production-grade deployment relies heavily on systematic execution routines. The end-to-end lifecycle follows this structured, repeating lifecycle:<\/p>\n<div class=\"ix-diagram-container\">\n[Data Collection] \u2794 [Data Preprocessing] \u2794 [Feature Engineering]<br \/>\n                                                   \u2502<br \/>\n[Model Deployment] \ud83d\udd00 [Model Evaluation] \u2794 [Model Training]\n    <\/div>\n<ol>\n<li><strong>Problem Definition:<\/strong> Specifying the target metrics alongside quantitative assessment goals.<\/li>\n<li><strong>Data Ingestion:<\/strong> Parsing raw telemetry datasets from storage infrastructure.<\/li>\n<li><strong>Data Preprocessing:<\/strong> Re-encoding missing observations, eliminating duplicate matrices, and handling anomalies.<\/li>\n<li><strong>Feature Engineering:<\/strong> Transforming and transforming input arrays to elevate predictive visibility.<\/li>\n<li><strong>Model Training:<\/strong> Optimising weight weights by feeding data matrices directly into our target algorithms.<\/li>\n<li><strong>Evaluation:<\/strong> Scoring test arrays against validation standards (e.g., MSE or Classification Accuracy metrics).<\/li>\n<\/ol>\n<h2>Module 3: Hands-On Lab 1 \u2013 Property Price Tracking (Regression)<\/h2>\n<p>In this exercise, we will configure a basic **Linear Regression** system to predict continuous property values based on space scaling measurements (in square metres) located in Windhoek, mapped inside Namibian Dollars (NAD).<\/p>\n<h3>Step 1: Ingest Simulation Workspace Arrays<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_error, r2_score\n\n# Establish deterministic sequence seeds\nnp.random.seed(42)\n\n# Generate synthetic arrays: Size (sqm) vs Price (expressed in thousands NAD)\nsizes = np.random.normal(150, 40, 100).reshape(-1, 1)\nprices = 250 + (sizes * 4.5) + np.random.normal(0, 50, 100).reshape(-1, 1)\n\n# Format structured pandas data frame workspace\ndf = pd.DataFrame(data=np.hstack((sizes, prices)), columns=['Size_sqm', 'Price_NAD_k'])\nprint(df.head())<\/pre>\n<\/p><\/div>\n<h3>Step 2: Generate Exploratory Visualisation Models<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">plt.figure(figsize=(8, 5))\nplt.scatter(df['Size_sqm'], df['Price_NAD_k'], color='blue', alpha=0.7)\nplt.title('Property Size metric vs Baseline Valuation Profile')\nplt.xlabel('Size (Square Metres)')\nplt.ylabel('Price Index (Thousands NAD)')\nplt.grid(True)\nplt.show()<\/pre>\n<\/p><\/div>\n<h3>Step 3: Execute Train\/Test Partitioning Splitting<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">X = df[['Size_sqm']]  \ny = df['Price_NAD_k'] \n\n# Segment arrays allocating 80% to active model profiling sequences\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\nprint(f\"Active Training Footprint: {X_train.shape[0]} | Validation Test Matrices: {X_test.shape[0]}\")<\/pre>\n<\/p><\/div>\n<h3>Step 4: Instantiate and Train the Regression Engine<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\"># Initialize algorithm structure\nregressor = LinearRegression()\n\n# Run optimization processes\nregressor.fit(X_train, y_train)\n\nprint(\"Optimization Sequence Finished.\")\nprint(f\"Calculated Intercept Weight (w0): {regressor.intercept_:.2f}\")\nprint(f\"Feature Coefficient Multiplier (w1): {regressor.coef_[0]:.2f}\")<\/pre>\n<\/p><\/div>\n<h3>Step 5: Verify Predictive Operations Accuracy<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\"># Compute inference operations on validation blocks\ny_pred = regressor.predict(X_test)\n\n# Extract scoring indicators\nmse = mean_squared_error(y_test, y_pred)\nr2 = r2_score(y_test, y_pred)\n\nprint(f\"Calculated Mean Squared Error Trend: {mse:.2f}\")\nprint(f\"Calculated Coefficient of Determination (R2): {r2:.2f}\")<\/pre>\n<\/p><\/div>\n<h2>Module 4: Hands-On Lab 2 \u2013 Credit Risk Evaluation (Classification)<\/h2>\n<p>Classification strategies target explicit qualitative status boundaries. This segment configures a **Logistic Regression** layer to predict if a credit candidate reflects a <em>Low Risk (0)<\/em> or <em>High Risk (1)<\/em> system probability score profile.<\/p>\n<h3>Step 1: Instantiate the Synthetic Risk Data<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">from sklearn.datasets import make_classification\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import accuracy_score, confusion_matrix, classification_report\nimport seaborn as sns\n\n# Construct synthetic array targets reflecting user features\nX_class, y_class = make_classification(\n    n_samples=200, n_features=2, n_redundant=0, \n    n_informative=2, random_state=24, n_clusters_per_class=1, flip_y=0.05\n)\n\ndf_class = pd.DataFrame(X_class, columns=['Scaled_Credit_Score', 'Debt_to_Income_Ratio'])\ndf_class['Risk_Status'] = y_class\n\n# Graph raw coordinate distributions\nplt.figure(figsize=(8, 5))\nsns.scatterplot(data=df_class, x='Scaled_Credit_Score', y='Debt_to_Income_Ratio', hue='Risk_Status', palette='coolwarm')\nplt.title('Risk Profile Data Metric Map')\nplt.show()<\/pre>\n<\/p><\/div>\n<h3>Step 2: Train the Classification Model Layer<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">X_c_train, X_c_test, y_c_train, y_c_test = train_test_split(\n    df_class[['Scaled_Credit_Score', 'Debt_to_Income_Ratio']], \n    df_class['Risk_Status'], test_size=0.25, random_state=42\n)\n\nclassifier = LogisticRegression()\nclassifier.fit(X_c_train, y_c_train)<\/pre>\n<\/p><\/div>\n<h3>Step 3: Extract the Confusion Evaluation Metrics<\/h3>\n<div class=\"ix-code-wrapper\">\n        <span class=\"ix-code-label\">Python Script<\/span><\/p>\n<pre class=\"ix-code-block\">y_c_pred = classifier.predict(X_c_test)\n\nprint(f\"Overall Model Accuracy Evaluation: {accuracy_score(y_c_test, y_c_pred) * 100:.2f}%n\")\nprint(\"Target Classification Matrix Matrix Breakdown:\")\nprint(classification_report(y_c_test, y_c_pred))<\/pre>\n<\/p><\/div>\n<div class=\"ix-challenge-box\">\n<h2 style=\"margin-top:0; border:none; color: #c05621;\">Module 5: The Cap-stone Project Challenge<\/h2>\n<p><strong>Contextual Task Case:<\/strong> You are tasked with preparing an Automated Irrigation decision engine for an AgriTech setup operating within Namibia. Your core objective is to instruct a model component to infer whether a crops plot requires <strong>Active Irrigation (1)<\/strong> or <strong>No Action (0)<\/strong> based strictly on localized Soil Moisture and Environment Temperature feeds.<\/p>\n<p><strong>Your Code Objectives:<\/strong> Fill in the missing programmatic pipelines marked underneath the comment indicators to implement an automated classification workflow from end to end.<\/p>\n<div class=\"ix-code-wrapper\">\n            <span class=\"ix-code-label\">Challenge Workspace<\/span><\/p>\n<pre class=\"ix-code-block\">import numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import accuracy_score\n\n# Establish environmental simulation profiles\nnp.random.seed(7)\nmoisture = np.random.uniform(10, 50, 150)\ntemperature = np.random.uniform(18, 42, 150)\nneeds_water = ((moisture &lt; 25) &amp; (temperature &gt; 30)).astype(int)\n\nagri_df = pd.DataFrame({'Soil_Moisture': moisture, 'Temperature': temperature, 'Needs_Water': needs_water})\n\n# =========================================================\n# TODO: FILL IN THE CODE ENTRIES LOCATED DIRECTLY BELOW\n# =========================================================\n\n# Task 1: Isolate your predictive matrices (X) and standard labels (y) from agri_df\n\n\n# Task 2: Allocate exactly 20% of your array records into a validation test block\n\n\n# Task 3: Initialize your target estimator tracking framework (e.g., LogisticRegression)\n\n\n# Task 4: Execute model fit procedures on training subsets\n\n\n# Task 5: Extract predictive target validations metrics using the verification partition Arrays\n\n\n# Task 6: Compute and display final operational verification performance percentages\n\n# =========================================================\n# END OF ASSIGNMENT CODE TARGET BLOCKS\n# =========================================================<\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<h2>Next Steps &amp; Development Resources<\/h2>\n<p>Congratulations on executing this fundamental introductory framework dataset course! To build on these data engineering skills, consider these learning paths:<\/p>\n<ul>\n<li><strong>Scikit-Learn Documentation Guides:<\/strong> Explore the library&#8217;s core user guides at <a href=\"https:\/\/scikit-learn.org\" target=\"_blank\" rel=\"noopener\">scikit-learn.org<\/a>.<\/li>\n<li><strong>Kaggle Challenge Workspaces:<\/strong> Test your models using beginner environments such as the <em>Titanic ML Classification Framework<\/em>.<\/li>\n<li><strong>Deep Learning Indaba:<\/strong> Connect with regional African AI tracking clusters and find regional mentorship support tracks by checking out community opportunities.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section><\/div>\n<p><!-- version:1780736397 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>HACHATHON OVERVIEW WORKSHOP: Introduction to Machine Learning with Python Introduction to Machine Learning with Python \u2014 IndabaX Namibia Introduction to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"brizy-blank-template.php","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-108","page","type-page","status-publish","hentry"],"brizy_media":[],"_links":{"self":[{"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/pages\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":9,"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/pages\/108\/revisions"}],"predecessor-version":[{"id":588,"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/pages\/108\/revisions\/588"}],"wp:attachment":[{"href":"https:\/\/indabaxnamibia.com\/2024\/wp-json\/wp\/v2\/media?parent=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}