<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects | Ukant Jadia</title><link>https://ukantjadia.github.io/project/</link><atom:link href="https://ukantjadia.github.io/project/index.xml" rel="self" type="application/rss+xml"/><description>Projects</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 30 Dec 2024 14:15:59 +0530</lastBuildDate><image><url>https://ukantjadia.github.io/media/icon_hu5e29e1df12b63ca0c9252c8db4842f1b_8915_512x512_fill_lanczos_center_3.png</url><title>Projects</title><link>https://ukantjadia.github.io/project/</link></image><item><title>A Beginner's Guide to DevOps with Terraform and GitHub</title><link>https://ukantjadia.github.io/project/devops-journy/</link><pubDate>Mon, 30 Dec 2024 14:15:59 +0530</pubDate><guid>https://ukantjadia.github.io/project/devops-journy/</guid><description>&lt;h1 id="a-beginners-guide-to-devops-with-terraform-and-github">A Beginner&amp;rsquo;s Guide to DevOps with Terraform and GitHub&lt;/h1>
&lt;p>As a fresh graduate in Computer Science and Engineering, my exploration into the world of DevOps has been nothing short of an enlightening adventure. Coming from a machine learning background, I often found myself compelled to understand how backend systems could be crafted with such elegance. This curiosity fueled my capstone project, where I aimed to create a CI/CD pipeline that elegantly demonstrated the power of tools like Terraform and GitHub.&lt;/p>
&lt;h2 id="what-is-devops-and-why-is-it-important">What is DevOps and Why is it Important?&lt;/h2>
&lt;p>DevOps blends development and operations, aiming to minimize the distance between these two traditionally siloed groups. The goal is to improve collaboration, increase deployment frequency, and deliver more stable operating environments. The DevOps culture promotes continuous integration and continuous delivery (CI/CD), which significantly enhances the software development lifecycle.&lt;/p>
&lt;h3 id="key-components-of-devops">Key Components of DevOps&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Continuous Integration (CI)&lt;/strong>: Developers frequently integrate their changes in a shared repository.&lt;/li>
&lt;li>&lt;strong>Continuous Delivery (CD)&lt;/strong>: Automating the delivery of applications to selected infrastructure environments.&lt;/li>
&lt;li>&lt;strong>Infrastructure as Code (IaC)&lt;/strong>: Managing infrastructure through code, ensuring that setups are easy to replicate.&lt;/li>
&lt;/ul>
&lt;h3 id="a-personal-exploration-into-devops">A Personal Exploration into DevOps&lt;/h3>
&lt;p>Reflecting on my academic journey, the decision to delve into a DevOps project stemmed from a fundamental question: How can vast complexities be integrated seamlessly? My project aimed to demystify this by constructing a basic CI/CD pipeline orchestrated through Terraform and GitHub.&lt;/p>
&lt;h2 id="setting-the-stage-understanding-my-project">Setting the Stage: Understanding My Project&lt;/h2>
&lt;p>The core of my project revolved around leveraging Terraform for infrastructure automation, along with GitHub for version control and CI/CD capabilities. This combination would provide a straightforward yet powerful example of deploying applications in a cloud environment.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Demonstrate CI/CD using GitHub Actions&lt;/strong>: Show how automatic deployment can facilitate rapid product releases.&lt;/li>
&lt;li>&lt;strong>Use Terraform for Infrastructure Management&lt;/strong>: Illustrate how infrastructure can be provisioned and managed as code.&lt;/li>
&lt;li>&lt;strong>Visualize Workflows&lt;/strong>: Employ tools like Eraser.io to create flowcharts to help visualize the project&amp;rsquo;s structure.&lt;/li>
&lt;/ul>
&lt;h2 id="getting-started-with-terraform">Getting Started with Terraform&lt;/h2>
&lt;p>When I first explored Terraform, I was struck by how declarative it is. Terraform allows you to define your infrastructure in configuration files which can then be executed to provision that infrastructure automatically.&lt;/p>
&lt;h3 id="example-terraform-configuration">Example Terraform Configuration&lt;/h3>
&lt;p>Here’s a simple example of a Terraform configuration file that provisions an AWS EC2 instance:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="l">provider &amp;#34;&amp;#34;aws&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">region = &amp;#34;&amp;#34;us-west-2&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">resource &amp;#34;&amp;#34;aws_instance&amp;#34;&amp;#34; &amp;#34;&amp;#34;my_instance&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">ami = &amp;#34;&amp;#34;ami-0c55b159cbfafe1f0&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">instance_type = &amp;#34;&amp;#34;t2.micro&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">tags = {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">Name = &amp;#34;&amp;#34;MyInstance&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="key-features-of-terraform">Key Features of Terraform&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Infrastructure as Code&lt;/strong>: Treat infrastructure setup as code, making it easier to maintain and version control.&lt;/li>
&lt;li>&lt;strong>Execution Plan&lt;/strong>: Terraform generates a clear execution plan which shows what will happen before any changes are applied.&lt;/li>
&lt;/ul>
&lt;h2 id="integrating-github-actions-into-the-pipeline">Integrating GitHub Actions into the Pipeline&lt;/h2>
&lt;p>GitHub Actions provides a robust platform for automating workflows directly in your GitHub repository. For my project, I set up actions to automatically test and deploy the application upon code commit.&lt;/p>
&lt;h3 id="github-actions-workflow-configuration">GitHub Actions Workflow Configuration&lt;/h3>
&lt;p>This YAML file illustrates a basic GitHub Actions workflow:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">CI/CD Pipeline&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">push&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">branches&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">main ]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">jobs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">build&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">runs-on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">ubuntu-latest&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">steps&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Check out the code&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/checkout@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Set up Node.js&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/setup-node@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">node-version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;14&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Install dependencies&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm install&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Run tests&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm test&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Deploy to production&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm run deploy&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="benefits-of-using-github-actions">Benefits of Using GitHub Actions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Seamless Integration&lt;/strong>: Works directly with your repositories.&lt;/li>
&lt;li>&lt;strong>Customizability&lt;/strong>: Create tailored workflows to fit specific project needs.&lt;/li>
&lt;/ul>
&lt;h2 id="visualizing-the-workflow">Visualizing the Workflow&lt;/h2>
&lt;p>To visualize how data flows through the different stages of the pipeline, I employed Eraser.io. This tool allowed me to create flowcharts that represented the overall CI/CD process from code push to deployment.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Project Workflow Diagram" srcset="
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp 400w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_60e706c65945e27497b28bc21c1ec67c.webp 760w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp"
width="611"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;em>Figure 1: The flow of code and data in the CI/CD pipeline&lt;/em>&lt;/p>
&lt;h2 id="the-elegance-of-cicd-a-real-world-application">The Elegance of CI/CD: A Real-World Application&lt;/h2>
&lt;p>As I progressed through my project, witnessing the pipeline&amp;rsquo;s operation became one of the most rewarding aspects. It was astounding to see how a simple workflow could articulate the path of requests or data between containers and servers.&lt;/p>
&lt;h3 id="key-takeaways-from-the-cicd-pipeline-experience">Key Takeaways from the CI/CD Pipeline Experience&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Visual Learning&lt;/strong>: The flowcharts provided invaluable insight into how requests and data moved, making the whole process comprehensible.&lt;/li>
&lt;li>&lt;strong>Hands-on with Real Tools&lt;/strong>: Working directly with GitHub and Terraform solidified my understanding of cloud infrastructure and automation.&lt;/li>
&lt;/ul>
&lt;h2 id="final-thoughts">Final Thoughts&lt;/h2>
&lt;p>Reflecting on this project, I can confidently say that building a CI/CD pipeline using Terraform and GitHub not only quenched my curiosity about backend processes but also equipped me with practical skills for my career ahead. This journey reaffirmed my belief that technology can create elegant solutions to complex problems. I hope my exploration encourages others to dive into the DevOps ocean, where every wave brings new learning opportunities.&lt;/p>
&lt;h2 id="references">References&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code" target="_blank" rel="noopener">GitHub Repository - DevOps QR Code&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://app.eraser.io/workspace/FvUVWqTvzrhkXkz8aEch?origin=share" target="_blank" rel="noopener">Eraser.io Workspace&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/task.md" target="_blank" rel="noopener">GitHub Task Documentation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/README.md" target="_blank" rel="noopener">GitHub README Documentation&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>&lt;em>Feel free to explore these resources further to expand your knowledge and understanding of DevOps and CI/CD pipelines.&lt;/em>&lt;/p></description></item><item><title>ECG-Lense: Cardiac ECG Classification (IEEE Published)</title><link>https://ukantjadia.github.io/project/heart-ecg-project/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/heart-ecg-project/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Published at ETNCC 2024 · IEEE&lt;/strong> · DOI: &lt;a href="https://doi.org/10.1109/ETNCC63262.2024.10767459" target="_blank" rel="noopener">10.1109/ETNCC63262.2024.10767459&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="headline-numbers">Headline numbers&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>80% classification accuracy&lt;/strong>&lt;/li>
&lt;li>&lt;strong>90% ROC-AUC&lt;/strong>, the best of all six models tested&lt;/li>
&lt;li>&lt;strong>21,837 ECG records&lt;/strong> · 18,885 patients · 12-lead · PTB-XL dataset&lt;/li>
&lt;/ul>
&lt;h2 id="what-it-is">What it is&lt;/h2>
&lt;p>ECG-Lense is the deep CNN architecture I built and benchmarked against five other models for classifying cardiac ECG signals. Three classical ML, three deep learning, head-to-head on the same dataset and same metrics. ECG-Lense wins.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Model&lt;/th>
&lt;th>Type&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Decision Tree&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Random Forest&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Logistic Regression&lt;/td>
&lt;td>Classical&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Simple CNN&lt;/td>
&lt;td>Deep&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LSTM&lt;/td>
&lt;td>Deep&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>ECG-Lense (Complex CNN)&lt;/strong>&lt;/td>
&lt;td>&lt;strong>Deep (proposed)&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="what-i-actually-did">What I actually did&lt;/h2>
&lt;ul>
&lt;li>Worked off the &lt;a href="https://physionet.org/content/ptb-xl/1.0.3/" target="_blank" rel="noopener">PTB-XL dataset&lt;/a>: clinical 12-lead ECGs, 10 seconds each, sampled at 100 Hz, with hierarchical diagnostic labels (5 superclasses, 24 subclasses)&lt;/li>
&lt;li>Preprocessed signals with &lt;code>wfdb&lt;/code> and standard ML libraries&lt;/li>
&lt;li>Implemented a stationary wavelet transform (SWT) for &lt;strong>data augmentation&lt;/strong>. The dataset is imbalanced and the augmentation increased sample diversity while preserving signal characteristics&lt;/li>
&lt;li>Trained the deep models on raw ECG signals so feature extraction would be automatic&lt;/li>
&lt;li>Evaluated on accuracy, precision, recall, F1, and ROC-AUC&lt;/li>
&lt;/ul>
&lt;h2 id="what-broke-and-what-i-learned">What broke and what I learned&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Class imbalance was the actual problem.&lt;/strong> First CNN runs hit a wall around 70% accuracy because rare cardiac classes were under-represented. SWT-based augmentation unlocked the next 10 points.&lt;/li>
&lt;li>&lt;strong>Raw signals beat hand-crafted features.&lt;/strong> Classical ML on extracted features stalled. The deep models, given raw signals, found patterns the feature engineering had thrown away.&lt;/li>
&lt;li>&lt;strong>More layers wasn&amp;rsquo;t the answer.&lt;/strong> ECG-Lense is &amp;ldquo;complex&amp;rdquo; relative to the simple CNN baseline, but each block earns its place. Depth for depth&amp;rsquo;s sake didn&amp;rsquo;t help.&lt;/li>
&lt;/ul>
&lt;p>Six months of work. A+ thesis grade. Submitted to IEEE during the project, accepted, presented and published at ETNCC 2024.&lt;/p>
&lt;h2 id="stack">Stack&lt;/h2>
&lt;p>Python · TensorFlow · Keras · scikit-learn · MLFlow · &lt;code>wfdb&lt;/code> · NumPy · pandas&lt;/p>
&lt;h2 id="acknowledgements">Acknowledgements&lt;/h2>
&lt;p>Mentor: &lt;strong>Dr. Kamal Kant Hiran&lt;/strong> (PhD). He pushed me to write the paper, guided the work end-to-end.
Supervisors: &lt;strong>Alok Kumar&lt;/strong>, &lt;strong>Dr. Chandani Joshi&lt;/strong>, &lt;strong>Harsh Bansal&lt;/strong>.&lt;/p>
&lt;h2 id="dataset-images">Dataset images&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>The dataset comprises 21,837 clinical 12-lead ECG records of 10 seconds in length from 18,885 patients. Hierarchical diagnostic organization: 5 superclasses, 24 sub-classes.
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042174672" srcset="
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp 400w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_7382c3df4dbd7f3cb64751f8ed807327.webp 760w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp"
width="699"
height="511"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Metadata in &lt;code>ptbxl_database.csv&lt;/code>: each ECG identified by a unique &lt;code>ecg_id&lt;/code> with SCP codes for multi-label classification.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042188040" srcset="
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp 400w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_62d8ca151f00d39ca7ac06751c232aab.webp 760w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp"
width="760"
height="540"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>Demographic overview of patients in PTB-XL.&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="alt text" srcset="
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp 400w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_297b7db56075283464819cc7331aed69.webp 760w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp"
width="760"
height="176"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>
&lt;p>The dataset comprises 21837 clinical 12-lead ECG records of 10 seconds in length from 18885 patients.
For the diagnostic labels, it provides a hierarchical organization in terms of 5 coarse superclasses and 24 sub-classes for the diagnostic labels
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042174672" srcset="
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp 400w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_7382c3df4dbd7f3cb64751f8ed807327.webp 760w,
/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042174672_huab6aa6815c95dad34d3596f01d7dcac1_57806_d73d6067d9f8a17aa93adec711d3ef1b.webp"
width="699"
height="511"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Columns provided in the metadata table ptbxl_database.csv. Each ECG is identified by a unique ID (ecg_id) and comes with several ECG statements (scp_codes) that can be used to train a multi-label classifier that can be evaluated based on the proposed fold assignments (strat_fold).&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710042188040" srcset="
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp 400w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_62d8ca151f00d39ca7ac06751c232aab.webp 760w,
/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/1710042188040_hu17ead9c75a994f2e546e4e2de9491025_145455_60bb6de163d0ad0363a04ee12f410402.webp"
width="760"
height="540"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;ul>
&lt;li>Demographic overview of patients in PTB-XL.&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="alt text" srcset="
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp 400w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_297b7db56075283464819cc7331aed69.webp 760w,
/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/heart-ecg-project/image/index/image_hua18d158d4f382e7ba3fe30b58b906f8a_23731_3ff4e44550cef96969d1d53bcc039626.webp"
width="760"
height="176"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Super Market Data - A In-Depth EDA</title><link>https://ukantjadia.github.io/project/eda-super-market-data/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/eda-super-market-data/</guid><description>&lt;h1 id="retail-data-analysis">Retail-Data-Analysis&lt;/h1>
&lt;h2 id="problem-statement">Problem Statement&lt;/h2>
&lt;p>In today&amp;rsquo;s tough business world, companies need useful insights to grow and make money. But without data analysis, making decisions can be hard. This project aims to look at sales and profit data to find trends and chances for improvement. Using these insights, businesses can improve strategies and lead the market.&lt;/p>
&lt;h2 id="project-description">Project Description&lt;/h2>
&lt;ul>
&lt;li>Identify the region and city with the highest sales. &lt;a href="#sales-with-region-and-city">Link&lt;/a>&lt;/li>
&lt;li>Ship Mode&amp;rsquo;s Impact on Profitability and Sales. &lt;a href="#ship-mode">Link&lt;/a>&lt;/li>
&lt;li>Analyze the category and subcategory with the highest profit. &lt;a href="#profit-and-category-sub-category">Link&lt;/a>&lt;/li>
&lt;li>Identify the segment with the highest profit and sales. &lt;a href="profit-and-segment">Link&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="images">Images&lt;/h2>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710550289626" srcset="
/project/eda-super-market-data/image/index/1710550289626_huf8eea57786f037a431f4de7265922796_49860_eedd77c0363338e6717839130c80d816.webp 400w,
/project/eda-super-market-data/image/index/1710550289626_huf8eea57786f037a431f4de7265922796_49860_ccfd5ae108796f812e71c08662b43c18.webp 760w,
/project/eda-super-market-data/image/index/1710550289626_huf8eea57786f037a431f4de7265922796_49860_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/eda-super-market-data/image/index/1710550289626_huf8eea57786f037a431f4de7265922796_49860_eedd77c0363338e6717839130c80d816.webp"
width="760"
height="505"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710550303579" srcset="
/project/eda-super-market-data/image/index/1710550303579_hua1eaf34ee95fcb99837adf2b31dd102a_46466_e061713d40978e10ccaeecf9bc62c4aa.webp 400w,
/project/eda-super-market-data/image/index/1710550303579_hua1eaf34ee95fcb99837adf2b31dd102a_46466_180ef02d1c9917ad969fda021283ff1a.webp 760w,
/project/eda-super-market-data/image/index/1710550303579_hua1eaf34ee95fcb99837adf2b31dd102a_46466_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/eda-super-market-data/image/index/1710550303579_hua1eaf34ee95fcb99837adf2b31dd102a_46466_e061713d40978e10ccaeecf9bc62c4aa.webp"
width="760"
height="505"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710550312211" srcset="
/project/eda-super-market-data/image/index/1710550312211_hu11d94a0a928124c872d8c5891ca5ca60_23445_e44ca65bbeca6ab8834f2628468969b3.webp 400w,
/project/eda-super-market-data/image/index/1710550312211_hu11d94a0a928124c872d8c5891ca5ca60_23445_f4f62da088d4fd1379477df8a8ec3f1f.webp 760w,
/project/eda-super-market-data/image/index/1710550312211_hu11d94a0a928124c872d8c5891ca5ca60_23445_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/eda-super-market-data/image/index/1710550312211_hu11d94a0a928124c872d8c5891ca5ca60_23445_e44ca65bbeca6ab8834f2628468969b3.webp"
width="760"
height="409"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710550318773" srcset="
/project/eda-super-market-data/image/index/1710550318773_hubcacf259d3ebafad10886870d39de7cb_22762_c2548c313ff6a73545fa457eaf8cad21.webp 400w,
/project/eda-super-market-data/image/index/1710550318773_hubcacf259d3ebafad10886870d39de7cb_22762_dabe6a4f688003090a6af250e21a9b75.webp 760w,
/project/eda-super-market-data/image/index/1710550318773_hubcacf259d3ebafad10886870d39de7cb_22762_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/eda-super-market-data/image/index/1710550318773_hubcacf259d3ebafad10886870d39de7cb_22762_c2548c313ff6a73545fa457eaf8cad21.webp"
width="760"
height="409"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div>
&lt;iframe id="inlineFrameExample"
title="Analysis Notebook"
width="100%"
height="100%"
src="https://ukant.tech/Retail-Data-Analysis/">
&lt;/iframe>
&lt;/div></description></item><item><title>Food Image Classification</title><link>https://ukantjadia.github.io/project/food-image-classification/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/food-image-classification/</guid><description>&lt;p>This project tackles the challenge of applying computer vision to emphasize accurate food image classification. It compares Convolutional Neural Networks (CNN) with Traditional Machine Learning Models, leveraging CNN&amp;rsquo;s feature-rich capabilities and traditional models&amp;rsquo; transparency and computational efficiency. This dual approach enhances food image classification&amp;rsquo;s precision and efficiency, impacting quality assessment, dietary analysis, and food inventory management&lt;/p>
&lt;p>Used the 5K image dataset for classifying the food images and non-food images, Trained the neural network on the images for classification, and developed the model with streamlit application and achieved 80% accuracy.
The dataset is taken from &lt;a href="https://mmspg.epfl.ch/food-image-datasets" target="_blank" rel="noopener">https://mmspg.epfl.ch/food-image-datasets&lt;/a> and the name of the data set is 5K.&lt;/p>
&lt;p>Dataset description:
-. This dataset contains 2500 food and 2500 non-food images, for the task of food/non-food classification in our paper “Food/Non-food Image Classification and Food Categorization using Pre-Trained GoogLeNet Model”. The whole dataset is divided into three parts: training, validation and evaluation. The naming convention is as follows:
-. {ClassID}_{ImageID}.jpg
-. ClassID: 0 or 1; 0 means non-food and 1 means food.
-. ImageID: ID of the image within the class&lt;/p></description></item><item><title>OBE Module for University</title><link>https://ukantjadia.github.io/project/obe-module-for-spsu/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/obe-module-for-spsu/</guid><description>&lt;p>&lt;strong>This was a team project.&lt;/strong>&lt;/p>
&lt;p>The aim of this project is to provide the university with a web portal for the implementation of Outcome-Based Education (OBE).&lt;/p>
&lt;p>OBE can primarily be distinguished from traditional education methods by the way it incorporates three elements: a theory of education, a systematic structure for education, and a specific approach to instructional practice. It organizes the entire educational system towards what is considered essential for learners to successfully achieve at the end of their learning experiences. In this model, the term &amp;lsquo;outcome&amp;rsquo; is the core concept and is sometimes used interchangeably with the terms &amp;lsquo;competency,&amp;rsquo; &amp;lsquo;standards,&amp;rsquo; &amp;lsquo;benchmarks,&amp;rsquo; and &amp;lsquo;attainment targets.&amp;rsquo; OBE also utilizes the same methodology formally and informally adopted in the actual workplace to achieve outcomes.&lt;/p>
&lt;p>The web portal is built with the Laravel framework of PHP for the front end and utilizes MySQL for the database.&lt;/p>
&lt;p>My Role: My role is to build the business logic, conduct literature reviews, generate reports, and suggest the next steps based on those reports. I also assist in building the database&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710048747037" srcset="
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_192c78ddb3443505d092d22daa76c8ac.webp 400w,
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_bff25dde88565a1109fe7ec27ad32bcf.webp 760w,
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_192c78ddb3443505d092d22daa76c8ac.webp"
width="489"
height="680"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Bloom's Taxonomy Level Detection</title><link>https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/</link><pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/</guid><description>&lt;!-- For using this project here is a Streamlit app URL(it will take some time to launch) [https://ukant.tech/Boolm-s-Level-Detection-A-MLOPS-Project/] -->
&lt;p>To know Bloom&amp;rsquo;s Taxonomy in Detail see this pdf &lt;a href="./blooms-level.pdf">This&lt;/a>&lt;/p>
&lt;p>This project aims to classify the given statement into accurate Bloom&amp;rsquo;s taxonomy levels out of six levels. This is an NLP-based project. This project is built with TF-IDF vectorizer and multinomial Naive Bayes techniques.&lt;/p>
&lt;p>&lt;strong>Bloom&amp;rsquo;s Taxonomy Levels&lt;/strong>: Bloom’s Taxonomy is a classification system that arranges learning objectives into six hierarchical levels, each representing a different cognitive skill.&lt;/p>
&lt;p>The model is trained on 1800 augmented statements. Initially, I had 100 statements for each class, so a total of 600 statements for six classes. Then, this data is augmented three times using contextual word embedding augmentation, and the model used in the augmentation is BERT-based. An example of the augmentation methodology.&lt;/p>
&lt;!-- is inserted below
augmented each Text input 3 times with the following parameter with `nlpaug` library
```python
ContextualWordEmbsAug(model_path="bert-base-uncased", action="insert")
```
> before augmendatation data shape : 600,2
> total 6 unique calsses 100 each
> augmented data shape : 1800,2
> total 6 unique classes 300 each -->
&lt;p>This project follows MLOps techniques well. I have divided this project into 6 different pipelines for easy implementation and scalability. I created a class in the pipeline for each class using different entities and components. In generating a configuration file from the user input in the YAML format.&lt;/p>
&lt;p>In the end, I created a Docker image so it can be used by the Higher Education Institute(HEIs) for those who are using the OBE(Object Based Education) new curriculum technique. It just reduced the manual process of identifying each question and its root taxonomy level.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044827297" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_65c5983ca6fef4d3db443398d8482d70.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_523070eb35e1755ac001a6c84baad697.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_65c5983ca6fef4d3db443398d8482d70.webp"
width="391"
height="467"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044894646" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_96cd67fe86666383cd78b4ece48564c6.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_2f49ab52963c10560f1e43588d92e464.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_96cd67fe86666383cd78b4ece48564c6.webp"
width="760"
height="428"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044907287" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_675fe40bc76270607c7a4fce63812053.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_4c4e3ba1c6950e444a02a98d6ef4d855.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_675fe40bc76270607c7a4fce63812053.webp"
width="760"
height="390"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>A MLOps Project- Wine Quality Prediction</title><link>https://ukantjadia.github.io/project/wine-quality-prediction-mlops/</link><pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/wine-quality-prediction-mlops/</guid><description>&lt;p>This project demonstrates my ability to implement a highly scalable MLOPS project by following development techniques and project procedures. In this project, I divided the whole implementation part into six different pipelines and steps, which are as follows:&lt;/p>
&lt;p>&lt;strong>Data Ingestion&lt;/strong>: Collecting the data and setting it up for further use.&lt;/p>
&lt;p>&lt;strong>Data Validation&lt;/strong>: Checking the data type, format, and other conditions to see the validity and usability of the data.&lt;/p>
&lt;p>&lt;strong>Data Transformation&lt;/strong>: Performing preprocessing and splitting the data into test and train datasets.&lt;/p>
&lt;p>&lt;strong>Model Training&lt;/strong>: Selecting a suitable machine learning algorithm and creating a model by training.&lt;/p>
&lt;p>&lt;strong>Model Evaluation&lt;/strong>: Testing the data and verifying it with measurement/result metrics.&lt;/p>
&lt;p>&lt;strong>Model Prediction&lt;/strong>: Making predictions with user input.&lt;/p>
&lt;p>Each pipeline step followed a particular workflow in order to complete the pipeline successfully. See the following:&lt;/p>
&lt;ol>
&lt;li>Update config.yaml&lt;/li>
&lt;li>Update schema.yaml&lt;/li>
&lt;li>Update params.yaml&lt;/li>
&lt;li>Update the entity&lt;/li>
&lt;li>Update the configuration manager in the src config&lt;/li>
&lt;li>Update the components&lt;/li>
&lt;li>Update the pipeline&lt;/li>
&lt;li>Update the main.py&lt;/li>
&lt;li>Update the app.py&lt;/li>
&lt;/ol>
&lt;p>Follow the above workflow based on your current pipeline.&lt;/p>
&lt;p>Follow this markdown &lt;a href="https://github.com/ukantjadia/Boolm-s-Level-Detection-A-MLOPS-Project/blob/Main/MLOPS-setup.md" target="_blank" rel="noopener">link&lt;/a> to generate the base structure of your root repository for your project in order to implement MLOPS.&lt;/p>
&lt;p>Uses a mail flow for model registry and the model monitoring and model can be deployed from ML flow only&lt;/p>
&lt;p>Here is the tracking URL of my Molde &lt;a href="https://dagshub.com/ukantjadia/MLOPS-Wine-Quality-Prediction.mlflow/" target="_blank" rel="noopener">link&lt;/a>&lt;/p></description></item><item><title>Travel Tales AI</title><link>https://ukantjadia.github.io/project/travel-tales-ai/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/travel-tales-ai/</guid><description>&lt;p>This project is the combination of my flutter and prompt engineering skills. In this, I was trying to create an application for travelers or those who want to travel and are confused about where to go. This application can help them decide and explore the places and monuments. This app will work as a bot built on the top of chat GPT.&lt;/p></description></item><item><title>Smart Loan Model</title><link>https://ukantjadia.github.io/project/smart-loan-model-copy/</link><pubDate>Tue, 18 Apr 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/smart-loan-model-copy/</guid><description>&lt;!-- ![1710054038856](image/index/1710054038856.png) -->
&lt;p>This model is trained on a loan dataset with parameters like monthly income, gender, marital status, self-employment status, property area, etc. This model uses all the real-life factors and parameters to detect whether a loan should be given to a person or not. It helps banking or loan departments make an informed decision.&lt;/p>
&lt;p>In this project, the models used for classification are logistic regression, K-nearest neighbors classifier, support vector machine, and decision tree classifier.&lt;/p>
&lt;p>In this project, the following steps were taken: data collection, data preprocessing, data splitting, model implementation, and model evaluation. A detailed description of each step is given below:&lt;/p>
&lt;ol>
&lt;li>Data Collection: I collected the data from Kaggle and read it with the &lt;code>pandas&lt;/code> library. I analyzed the data frame using &lt;code>df.info()&lt;/code> and &lt;code>df.describe()&lt;/code>.&lt;/li>
&lt;li>Data Preprocessing: For preprocessing, I dropped the duplicate values and removed and filled the null values with their respective methods, like using the median for numerical data and the mode for objective data. For visualization, I drew some plots like line plots, countplots, and bar plots for counting the loan status employment status, and other attributes to get a brief understanding of the dataset. I also generated the categorical and numerical data separately for further splitting.&lt;/li>
&lt;li>Data Splitting: In this state, I divided the data into 80% for training and 20% for testing.&lt;/li>
&lt;li>Model Implementation: I created a dictionary where the keys are the model names, and the values are the model instances themselves with parameters. I applied functions like loss calculation and model evaluation to this dictionary.
Output: Finally, I saved the data in a suitable format using pandas.&lt;/li>
&lt;/ol>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710054240434" srcset="
/project/smart-loan-model-copy/image/index/1710054240434_hufdff07cdbc138cb9c8b48acf172d7b6d_73604_9d65aec09e8618a40223a02b1bd7b980.webp 400w,
/project/smart-loan-model-copy/image/index/1710054240434_hufdff07cdbc138cb9c8b48acf172d7b6d_73604_e3cd2f427d1e6bc5576fe8a53ccf4276.webp 760w,
/project/smart-loan-model-copy/image/index/1710054240434_hufdff07cdbc138cb9c8b48acf172d7b6d_73604_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/smart-loan-model-copy/image/index/1710054240434_hufdff07cdbc138cb9c8b48acf172d7b6d_73604_9d65aec09e8618a40223a02b1bd7b980.webp"
width="760"
height="380"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710054254673" srcset="
/project/smart-loan-model-copy/image/index/1710054254673_hu3634442776f3a7ba7a31ebbdabfe5c7a_44811_3999a3f157a1b6fb793b8b2d0e76d16c.webp 400w,
/project/smart-loan-model-copy/image/index/1710054254673_hu3634442776f3a7ba7a31ebbdabfe5c7a_44811_47f1e3fa00ee1f91041412135ec2c73a.webp 760w,
/project/smart-loan-model-copy/image/index/1710054254673_hu3634442776f3a7ba7a31ebbdabfe5c7a_44811_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/smart-loan-model-copy/image/index/1710054254673_hu3634442776f3a7ba7a31ebbdabfe5c7a_44811_3999a3f157a1b6fb793b8b2d0e76d16c.webp"
width="760"
height="381"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710054299247" srcset="
/project/smart-loan-model-copy/image/index/1710054299247_hue2868b409dbb0a22bab31815e766bf05_59766_a767bb59c960dbb68edbdc6a071faa09.webp 400w,
/project/smart-loan-model-copy/image/index/1710054299247_hue2868b409dbb0a22bab31815e766bf05_59766_4359dcc6f63f4a4765553e7ad6210399.webp 760w,
/project/smart-loan-model-copy/image/index/1710054299247_hue2868b409dbb0a22bab31815e766bf05_59766_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/smart-loan-model-copy/image/index/1710054299247_hue2868b409dbb0a22bab31815e766bf05_59766_a767bb59c960dbb68edbdc6a071faa09.webp"
width="760"
height="383"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Image Manipulation using OpenCV</title><link>https://ukantjadia.github.io/project/image-handling/</link><pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/image-handling/</guid><description>&lt;p>I implemented the core concept of image handling from my Digital Signal Processing class. This was a streamlit app with functionality of contrast handling, brightness, inverting, and other basic actions on the uploaded image with the help of OpenCV.&lt;/p></description></item><item><title>Exploratory Data Analysis - COVID-19 Data</title><link>https://ukantjadia.github.io/project/covid-19-eda/</link><pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/covid-19-eda/</guid><description>&lt;p>This is an EDA Sample Project on the India geographical dataset of COVID-19.&lt;/p>
&lt;p>Problem Definition for COVID-19 EDA Sample Project:&lt;/p>
&lt;ol>
&lt;li>Analyze the association between the number of doses taken and the number of deaths in each state.&lt;/li>
&lt;li>Calculate the growth rate of confirmed cases and death rate by state.&lt;/li>
&lt;li>Calculate the distribution of doses among the population of each state.&lt;/li>
&lt;li>Compare the population of each state based on the different doses taken.&lt;/li>
&lt;/ol>
&lt;p>I followed complete workflow stages to complete the task in terms of data extraction and visualization for better understanding.&lt;/p>
&lt;p>Workflow stages for COVID-19 EDA Project:&lt;/p>
&lt;ol>
&lt;li>Question or Problem Definition.&lt;/li>
&lt;li>Acquire training and testing data.&lt;/li>
&lt;li>Wrangle, prepare and cleanse the data(preprocessing and cleaning data).&lt;/li>
&lt;li>Analyze, identify patterns, and explore the data(Visualization and information extraction).&lt;/li>
&lt;li>Conclusion (Extracted information).&lt;/li>
&lt;/ol>
&lt;p>Earlier I learned about visualization with Seaborn. Along with that, I try to utilize those skills and&lt;/p>
&lt;p>Collab notebook link: &lt;a href="https://colab.research.google.com/drive/1XGbvb6vHTmOpxEebnkjjiewxd1P6M5Tw?usp=sharing" target="_blank" rel="noopener">Link&lt;/a>&lt;/p>
&lt;p>Dataset link: &lt;a href="https://lnkd.in/dh--vGh2" target="_blank" rel="noopener">Link&lt;/a>&lt;/p>
&lt;p>My Website link: &lt;a href="https://www.ukant.tech" target="_blank" rel="noopener">https://www.ukant.tech&lt;/a>&lt;/p></description></item><item><title>A Twitter Bot- WiseMonkey77</title><link>https://ukantjadia.github.io/project/wisemonkey77/</link><pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/wisemonkey77/</guid><description>&lt;p>This was an X(Twitter) bot that posted images containing a quote taken from the best quote REST API, every 24 hours, using cron jobs. I utilize the pillow library for adding quotes on the image. It generates images tweets them and also adds them to the local database&lt;/p>
&lt;p>The automated posting is done due to the cron jobs in the Linux OS.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710056367827" srcset="
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_023541de5c8fae3978c7a7358af0706b.webp 400w,
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_7e5d13b59d9bcce13f0f1a4c3d800351.webp 760w,
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_023541de5c8fae3978c7a7358af0706b.webp"
width="663"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710056397878" srcset="
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_58f6bae73422c2fb8f8418f874792490.webp 400w,
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_43a566b10475013d8bde3a8c3313ee7c.webp 760w,
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_58f6bae73422c2fb8f8418f874792490.webp"
width="624"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item></channel></rss>