<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Itsdru</title>
    <description>The latest articles on DEV Community by Itsdru (@itsdru).</description>
    <link>https://dev.to/itsdru</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1027420%2F9678ca02-df16-4fb2-aae7-118704f6e8d7.jpg</url>
      <title>DEV Community: Itsdru</title>
      <link>https://dev.to/itsdru</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itsdru"/>
    <language>en</language>
    <item>
      <title>Kenyan Small-Medium Enterprises &amp; The Digital Divide</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Wed, 07 Feb 2024 08:09:48 +0000</pubDate>
      <link>https://dev.to/itsdru/kenyan-small-medium-enterprises-the-digital-divide-40m8</link>
      <guid>https://dev.to/itsdru/kenyan-small-medium-enterprises-the-digital-divide-40m8</guid>
      <description>&lt;p&gt;Is there a digital divide between SMEs and digital business tools in Kenya? &lt;/p&gt;

&lt;p&gt;While Kenya boasts a vibrant entrepreneurial spirit, many small and medium-sized enterprises (SMEs) remain stuck in the paper age. This "digital divide" between awareness and adoption presents a crucial question: could bridging this gap unlock the key to Kenyan SME growth? Other factors considered.&lt;/p&gt;

&lt;p&gt;My recent participation in the Google Hustle Academy's 5-Day Bootcamp for Kenyan Small Businesses opened my eyes to this stark reality. From the conversations I picked on, they opened my eyes to a vast digital divide that separates the sophisticated business tools offered by tech companies and the everyday needs of small and medium-sized enterprises (SMEs) in Kenya. &lt;/p&gt;

&lt;p&gt;While I, a data and workflow automation enthusiast, envision building solutions to optimize business or organization operations, the reality was far more grounded – many small businesses still rely on paper records, or even lack any formal record-keeping system at all. Whether this is by design or lack of knowledge of existing tools, I do not know. &lt;/p&gt;

&lt;p&gt;This disconnect sparked a crucial question: are business tool providers failing to reach this critical segment of the Kenyan market? SMEs are the backbone of any economy, and Kenya is no exception. They contribute significantly to GDP and employment, and their success hinges on their ability to adapt to the digital landscape.&lt;/p&gt;

&lt;p&gt;Looking at the goals of business owners, at least during the bootcamp, which I guess is also the reality on the ground, majority if not all businesses are looking to: increase sales, access capital, branding, expand their operations whether through growth or scaling. So, definitely integrating business tools in their operations would come in handy; tools that include a selection of customer relationship management (CRM) software, data analytics tools, basic accounting software, online ordering software, social media marketing tools, digital payment systems, review and information platforms, etc.&lt;/p&gt;

&lt;p&gt;Well, it is not all gloomy as a number of businesses had already implemented some of these systems and were looking to tweak them some more. Even more interesting is the fact that some business owners mentioned they had implemented some of the tools during the bootcamp and seen some positive change. So it is not all gloom but the question still lingers, is this the case of digital divide or am I wrong?&lt;/p&gt;

&lt;p&gt;So, why this disconnect? While cost remains a significant barrier for many SMEs operating on tight margins, the lack of awareness about available tools plays an equally important role in hindering their digital adoption. Unlike advanced economies where having internet access was once a luxury, many Kenyan SMEs remain unaware of the vast possibilities offered by modern business tools. Stuck in their established, albeit outdated, systems, they are missing out on the transformative potential of digital solutions. This creates a significant knowledge gap that needs to be addressed.&lt;/p&gt;

&lt;p&gt;To effectively bridge this gap, we need to move beyond solely cost-related concerns. While affordability of these tools is crucial, let's not underestimate the power of targeted marketing strategies. Are current campaigns truly reaching this segment of the market? Do they resonate with the specific needs and concerns of smaller, less tech-savvy businesses? Perhaps a shift towards localized messaging, showcasing success stories of similar Kenyan SMEs who have embraced digitalization, could bridge the understanding gap and encourage wider adoption. By demonstrating the tangible benefits and impact of these tools, we can empower SMEs to move beyond outdated systems and embrace the opportunities of the digital age.&lt;/p&gt;

&lt;p&gt;Remember these businesses don't need to be convinced that digital tools exist, they need to see how these tools can solve their specific problems. It's not just about providing knowledge, it's about demonstrating the value and making it attainable.&lt;/p&gt;

&lt;p&gt;Bridging the digital divide for Kenyan SMEs isn't just about individual business success; it's about unlocking the collective potential of a vibrant and entrepreneurial sector. By addressing the knowledge gap, making tools more accessible, and tailoring marketing strategies, we can empower these businesses to thrive in the digital age. Let's not leave them behind with pen and paper, but equip them with the tools they need to write their own stories of success.&lt;/p&gt;

&lt;p&gt;Exploring the Possibilities with &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Andrew Muhoro&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>kenya</category>
      <category>business</category>
      <category>digitization</category>
      <category>smallmediumenterprises</category>
    </item>
    <item>
      <title>Python(/Programming Languages) and Human Languages(English)</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Tue, 30 Jan 2024 08:58:42 +0000</pubDate>
      <link>https://dev.to/itsdru/pythonprogramming-languages-and-human-languagesenglish-2fmh</link>
      <guid>https://dev.to/itsdru/pythonprogramming-languages-and-human-languagesenglish-2fmh</guid>
      <description>&lt;p&gt;What makes Python so similar to the language we use every day? &lt;/p&gt;

&lt;p&gt;We know Python is a general purpose programming language. Its design philosophy revolves around readability and indentation, space at the beginning of a line. At its core, it is like Python whispers a familiar tune, echoing the very language we use to navigate the world – human language. &lt;/p&gt;

&lt;p&gt;Human languages are “Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! A means to communicate to create understanding." This is according to two people, &lt;a href="https://www.linkedin.com/in/laura-litaba/"&gt;Laura&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/daniel-litaba-06922220b/"&gt;Dan&lt;/a&gt;, sitting right here at the time of writing this. That is the best I can do on explaining what human languages are. I know you know what a human language is by the virtue of you as a human being on earth reading this.&lt;/p&gt;

&lt;p&gt;Aliens on the other hand??? Eeeeeeeeeeeeh yup!!! &lt;/p&gt;

&lt;p&gt;Python is considered to be a beginner friendly programming language as it is easy to read and understand the flow of execution especially for English speakers. Not sure whether it is the case in other languages? Now looking at it, it is ironic that the majority of the programming languages I have come across are oriented to English speakers. For non-English speakers, what is your experience with programming languages in your language? I started here myself, &lt;a href="https://nlp.cs.gmu.edu/publication/otten-etal-23-unipy/#:~:text=The%20Python%20programming%20language%20plays,do%20not%20have%20this%20advantage"&gt;Towards a Universal Python: Translating the Natural Modality of Python into Other Human Languages&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the sake of my laziness in having to rewrite this article so far, we will use the English language as a representative of human languages. Do forgive me!&lt;/p&gt;

&lt;p&gt;If you think about it, any human language somewhat, be it English, Swahili, or Mandarin, rests on a foundation of building blocks – letters, numbers, and symbols. They are the basic foundation of building meaning using that language. Python, too, dances to this. Its fundamental units, the data types like integers, floats, and strings, act as its alphabet, forming the bedrock of complex programs. As we all know programming languages are built to process data into useful information which comes in the forms of bits,0s and 1s, state of on and off.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Human Language Building Blocks&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuu737ruval45511u20rf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuu737ruval45511u20rf.jpg" alt="Human Language Building Blocks" width="564" height="457"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Datatypes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Integer - 4, 99, 100&lt;/li&gt;
&lt;li&gt;Float - 4.0, 99.78, 100.29&lt;/li&gt;
&lt;li&gt;String - “Let Us”&lt;/li&gt;
&lt;li&gt;Boolean - True(1), False(0)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Human languages take these seemingly simple elements and turn them into words, sentences and stories giving meaning. This meaning is given by the characters mixed together to form words that are then structured according to the language’s syntax and semantics. Python on the other hand is built around the same structure where instructions that give meaning to the data types are built around the data type following the language’s syntax and semantics.&lt;/p&gt;

&lt;p&gt;So can I go ahead and say that these two share the following concepts but not limited to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Building Blocks - Just like any alphabet/symbols/numerals constructs words, Python's data types (int, float, string) serve as the fundamental elements for building complex instructions. &lt;/li&gt;
&lt;li&gt;Meaning &amp;amp; Structure - Similar to how words combine with syntax and semantics to convey meaning in human languages, Python follows a specific grammatical structure (syntax) and rules of interpretation (semantics) to give meaning to the combinations of data types and instructions.&lt;/li&gt;
&lt;li&gt;Flow of Execution - The emphasis on readability and the clear flow of execution in Python mirrors how human languages strive for clarity and logical progression in spoken or written communication.&lt;/li&gt;
&lt;li&gt;Abstraction - Python, and many other high-level languages, utilize abstraction to hide the underlying machinery of bits and bytes, allowing programmers to focus on the bigger picture logic, just like human languages allow us to express complex ideas without dwelling on the mechanics of sound or symbols.&lt;/li&gt;
&lt;li&gt;Evolution - Both human languages and programming languages evolve over time. New words and expressions arise in languages, while features and libraries are added to programming languages. Exploring the parallels in how these changes occur and impact usage and understanding could be another interesting angle.&lt;/li&gt;
&lt;li&gt;Limitation - Despite the similarities, it's important to acknowledge the differences. Human languages have ambiguity and nuance that programming languages struggle with. Conversely, programming languages offer precision and determinism that are often absent in human communication.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, is Python truly a linguistic twin to the human languages? Perhaps not a perfect mirror image, but certainly a close cousin. &lt;/p&gt;

&lt;p&gt;I could be wrong but I think I am onto something. It's a conversation worth having, reminding us that even in the cold logic of machines, there beats a familiar rhythm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Andrew Muhoro&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>humanlanguage</category>
      <category>learning</category>
    </item>
    <item>
      <title>Streamlining Your Feedback Workflow: An Automated Solution</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Wed, 08 Nov 2023 10:18:46 +0000</pubDate>
      <link>https://dev.to/itsdru/streamlining-your-feedback-workflow-an-automated-solution-2o6e</link>
      <guid>https://dev.to/itsdru/streamlining-your-feedback-workflow-an-automated-solution-2o6e</guid>
      <description>&lt;p&gt;In today's fast-paced world, efficiency is key, especially when it comes to handling customer feedback. We've all been there, managing feedback forms, deciding where they should go, and storing valuable data. But what if I told you that there's a way to streamline this process and make your life easier?&lt;/p&gt;

&lt;p&gt;In this article, we'll explore a simple yet powerful implementation of an automated workflow for a feedback form. Our mission is clear: save all submissions to a database and send relevant details to a Slack channel, based on the type of feedback.&lt;/p&gt;

&lt;p&gt;Here are the tools we'll be using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Automation: &lt;a href="https://www.perceptif.ai/"&gt;Perceptif AI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Form: &lt;a href="https://www.jotform.com/"&gt;Jotform&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Database: &lt;a href="https://supabase.com/"&gt;Supabase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Communication: &lt;a href="https://slack.com/"&gt;Slack&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our workflow, created in &lt;a href="https://www.perceptif.ai/"&gt;Perceptif AI&lt;/a&gt;, is triggered by a submission made in the &lt;a href="https://www.jotform.com/"&gt;Jotform&lt;/a&gt; form. But here's where the magic happens. We've integrated a decision-making node into our workflow. This node assesses the feedback type and makes a crucial choice: should we send it to a &lt;a href="https://slack.com/"&gt;Slack&lt;/a&gt; channel, or should we leave it as it is?&lt;/p&gt;

&lt;p&gt;The next step involves sending the submission to a table in a &lt;a href="https://supabase.com/"&gt;Supabase&lt;/a&gt; database, where we can safely store and organize the data. The entire process is beautifully demonstrated in this &lt;a href="https://vimeo.com/882030575?share=copy#t=0"&gt;video&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're intrigued and eager to explore the platform we're building, don't hesitate to reach out. You can schedule a demo by following this link, &lt;a href="https://lnkd.in/dyDAxTFz"&gt;Schedule Demo Form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We're excited to show you how this solution can streamline your operations and elevate your business to new heights. Join us on this journey of process mining, automation, and business process optimization. Let's make your workflow work for you!&lt;/p&gt;

</description>
      <category>processinsights</category>
      <category>processautomation</category>
      <category>processmining</category>
      <category>perceptifai</category>
    </item>
    <item>
      <title>My Current Data Project Workflow: Simplifying Complexity with a Touch of Humor</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Wed, 23 Aug 2023 07:00:00 +0000</pubDate>
      <link>https://dev.to/itsdru/my-current-data-project-workflow-simplifying-complexity-with-a-touch-of-humor-377e</link>
      <guid>https://dev.to/itsdru/my-current-data-project-workflow-simplifying-complexity-with-a-touch-of-humor-377e</guid>
      <description>&lt;p&gt;As the curtains draw back on the realm of data projects, I find myself standing at the intersection of experience and reflection. A simple thought crossed my mind: how can I make this journey even better? With an imaginary cup of coffee in one hand and a notepad in the other, I embarked on a quest to review my data project routine, dissecting each step to reveal its strengths, shortcomings, and the potential pitfalls that often hide in the shadows.&lt;/p&gt;

&lt;p&gt;To make it even more interesting, I will be dissecting a &lt;a href="https://dev.to/itsdru/case-example-elevating-customer-insights-for-e-commerce-success-45fp"&gt;case example&lt;/a&gt; where a client seeks to unravel the story hidden in their E-commerce business data. &lt;/p&gt;

&lt;p&gt;It's essential to note that these steps are not standalone; they interact and iterate with each other in a dynamic dance of refinement and improvement. Each phase influences the other, creating a continuous loop of enhancement and adaptation. &lt;/p&gt;

&lt;p&gt;This iterative nature ensures that insights gained from one step can ripple through the entire workflow, sparking adjustments and enhancements elsewhere. As one progresses, the synergy between these steps becomes evident, enriching the overall quality and depth of the data projects.&lt;/p&gt;

&lt;p&gt;Time to put on our data detective hats! &lt;/p&gt;

&lt;h2&gt;
  
  
  A Walkthrough of My Data Project Workflow
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Project Introduction: The Spark of Possibility
&lt;/h4&gt;

&lt;p&gt;Every journey begins with that first spark, the client reaching out with their data enigma. Our paths converge, each with its unique mysteries to unravel.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Deep Dive Discussion: Navigating the Landscape
&lt;/h4&gt;

&lt;p&gt;A collaborative dance of conversations, where the intricacies of the data landscape are mapped out. Like cartographers of information, we navigate challenges and chart solutions.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Blueprint Creation: Sketching the Masterplan
&lt;/h4&gt;

&lt;p&gt;In the solitude of preparation, I sit down to craft the masterplan. It's the blueprint that guides our actions and charts our course.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Client Synergy: Transforming Plans into Reality
&lt;/h4&gt;

&lt;p&gt;A client rendezvous, a moment of truth. Ideas merge, and the plan inches closer to reality. It's the bridge between concept and execution.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Execution: Breathing Life into the Blueprint
&lt;/h4&gt;

&lt;p&gt;The stage is set, and the script is in hand. Code is written, algorithms executed, data's transformation begins.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Pipeline Development: Laying Digital Foundations
&lt;/h4&gt;

&lt;p&gt;Data pipelines weave like a digital tapestry. Yet, the challenge lies in their seamless integration. Like architects, we build these invisible bridges.&lt;/p&gt;

&lt;h4&gt;
  
  
  7. Data Understanding: The Core Unveiled
&lt;/h4&gt;

&lt;p&gt;Data's anatomy is unveiled, its structure and intricacies laid bare. In this process, we uncover insights hidden within the layers.&lt;/p&gt;

&lt;h4&gt;
  
  
  8. Filtering and Enhancement: Crafting the Gem
&lt;/h4&gt;

&lt;p&gt;Raw data, a mine of potential. But like mining, it requires sifting through the rubble to reveal the gem within.&lt;/p&gt;

&lt;h4&gt;
  
  
  9. Analysis: The Alchemist's Touch
&lt;/h4&gt;

&lt;p&gt;Data is raw material. Analysis, the alchemy that turns it into gold. Insights shimmer in the crucible of statistical exploration.&lt;/p&gt;

&lt;h4&gt;
  
  
  10. Dashboard Design: Visual Tales Unfold
&lt;/h4&gt;

&lt;p&gt;Numbers have stories. Dashboards are the storytellers, presenting data as visual narratives that resonate with clients.&lt;/p&gt;

&lt;h4&gt;
  
  
  11. Creativity Unleashed: Designing Data's Home
&lt;/h4&gt;

&lt;p&gt;Dashboards are not just data displays; they're the homes where numbers find meaning. Design choices mirror the data's essence.&lt;/p&gt;

&lt;h4&gt;
  
  
  12. Client Preview: The Dress Rehearsal
&lt;/h4&gt;

&lt;p&gt;A moment of truth, clients review the draft. Feedback and iterations, the symphony of improvements begins.&lt;/p&gt;

&lt;h4&gt;
  
  
  13. Refinement: Polishing the Gem
&lt;/h4&gt;

&lt;p&gt;Revisions refine the data gem. It's the quest for perfection that guides us through the final stages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identifying Pitfalls and Seeking Improvement
&lt;/h2&gt;

&lt;p&gt;In this journey, I've observed moments that shimmer with efficiency and steps that occasionally stumble. Pitfalls, though often hidden, are stepping stones to progress. One notable aspect is the substantial time invested in building data pipelines and data preprocessing. While these steps are crucial, streamlining them might offer more room for the creative and analytical processes.&lt;/p&gt;

&lt;p&gt;Moreover, ensuring seamless communication with clients at each stage can help preempt misunderstandings and fine-tune the direction. A tighter integration of storytelling techniques within the data analysis and dashboard creation phases can also elevate the final presentation, making data more relatable and impactful.&lt;/p&gt;

&lt;p&gt;As the curtain falls on this introspection, I stand poised to elevate my data project routine, to transform challenges into opportunities, and data into insights. After all, it's in these evolutions that true mastery emerges.&lt;/p&gt;

&lt;p&gt;And now, a dry joke to wrap it up:&lt;br&gt;
Why did the data analyst stay calm during the storm? Because he knew it was just a data set in a sea of numbers!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>dataproject</category>
      <category>workflow</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>Case Example: Elevating Customer Insights for E-Commerce Success</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Wed, 23 Aug 2023 07:00:00 +0000</pubDate>
      <link>https://dev.to/itsdru/case-example-elevating-customer-insights-for-e-commerce-success-45fp</link>
      <guid>https://dev.to/itsdru/case-example-elevating-customer-insights-for-e-commerce-success-45fp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction: A Retailer's Dilemma&lt;/strong&gt;&lt;br&gt;
Step into the world of an e-commerce retailer facing a perplexing puzzle of customer behaviors. Despite their vigorous e-marketing efforts, their online sales remain frustratingly low. The client is on a quest to uncover the elusive reasons behind this discrepancy, seeking the key to unlock their website's true potential.&lt;/p&gt;

&lt;p&gt;This is the story of their journey and how I am about to apply my data project workflow to uncover insights that will fuel their understanding of their operations.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Project Introduction: The Call That Sparks Possibility
&lt;/h4&gt;

&lt;p&gt;The retailer's call reverberates with the struggle an e-commerce endeavour grappling with the intricacies of customer data. With that call, the wheels of possibility begin to turn.&lt;/p&gt;

&lt;p&gt;The retailer shares their story, describing the journey that led them to this crossroads. I listen keenly, probing for every detail. The challenge is intriguing, and I'm eager to dive into the data to uncover the hidden truths.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Deep Dive Discussion: Deciphering the Shopping Landscape
&lt;/h4&gt;

&lt;p&gt;In a virtual rendezvous, the retailer and I immerse ourselves in the intricacies of their business. We delve into the granular details of customer data, searching for patterns and insights that lie beneath the surface.&lt;/p&gt;

&lt;p&gt;By the end of this discussion, I've developed a nuanced understanding of the retailer's unique challenges. Their objectives and goals are etched into my mind as I mentally piece together the fragments of the puzzle.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Blueprint Creation: Mapping the Insight Pathway
&lt;/h4&gt;

&lt;p&gt;Alone in the realm of planning, I set the stage by sketching a comprehensive blueprint. I outline the systematic steps needed to unearth the coveted insights and identify the data sources that will fuel this journey.&lt;/p&gt;

&lt;p&gt;Though a work in progress, this blueprint serves as my guiding compass. With each element, I grow increasingly confident in my ability to navigate this complex data terrain.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Client Synergy: Breathing Life into the Blueprint
&lt;/h4&gt;

&lt;p&gt;In another virtual rendezvous, the blueprint takes center stage. The retailer's excitement mirrors my own as we explore the possibilities my ideas bring forth.&lt;/p&gt;

&lt;p&gt;Together, we refine the blueprint, aligning it with their vision. We discuss timelines, budgets, and set the stage for a collaborative journey to uncover the hidden treasures within their data.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Execution: Turning Plans into Data Transformation
&lt;/h4&gt;

&lt;p&gt;With the blueprint in hand, the data transformation begins. I collect the necessary data from their website, carefully preparing it for analysis.&lt;/p&gt;

&lt;p&gt;Data pipelines come to life, seamlessly channeling information from the retailer's website to my analytical tools. This ensures a constant flow of fresh data, enabling agile and informed decision-making.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Pipeline Development: Building Data Highways
&lt;/h4&gt;

&lt;p&gt;Data pipelines become our virtual construction sites. Like tributaries merging into a river, datasets converge to create a stream of information that guides us toward clarity.&lt;/p&gt;

&lt;p&gt;The pipelines I construct form the backbone of our analysis, ensuring that we have access to the most up-to-date data. These data highways empower me to derive meaningful insights.&lt;/p&gt;

&lt;h4&gt;
  
  
  7. Data Understanding: Peeling Layers of Customer Patterns
&lt;/h4&gt;

&lt;p&gt;Layer by layer, the intricate patterns of customer behavior are revealed. Their preferences and digital footprints guide us closer to understanding their motivations.&lt;/p&gt;

&lt;p&gt;As I delve into the data, I begin to unravel the narrative of the retailer's customers. I identify trends, preferences, and critical touchpoints that shape their online journey.&lt;/p&gt;

&lt;h4&gt;
  
  
  8. Filtering and Enhancement: Crafting Customer Insights
&lt;/h4&gt;

&lt;p&gt;Just as an artisan shapes raw stone into a gem, I refine the raw data. I filter out noise, extract valuable signals, and unveil the glittering insights hidden within.&lt;/p&gt;

&lt;p&gt;The data enhancement process ensures that the insights we extract are accurate and meaningful. It's akin to sculpting, revealing the true essence of customer behavior.&lt;/p&gt;

&lt;h4&gt;
  
  
  9. Analysis: Unveiling Shopping Patterns
&lt;/h4&gt;

&lt;p&gt;Like a detective deciphering a cryptic message, I analyze the data. Shopping patterns emerge a tale woven from clicks, selections, and purchases.&lt;/p&gt;

&lt;p&gt;With rigorous analysis techniques, I bring order to the data chaos. The patterns that surface hold the keys to understanding customer behavior and, subsequently, the keys to improving sales.&lt;/p&gt;

&lt;h4&gt;
  
  
  10. Dashboard Design: Visual Narratives Emerge
&lt;/h4&gt;

&lt;p&gt;Numbers transition into narratives as dashboards transform data into visual stories. These canvases illustrate the customer's journey, painting vibrant tales of interactions and decisions.&lt;/p&gt;

&lt;p&gt;Through thoughtful dashboard design, I create a visual symphony that resonates with the retailer. The insights embedded in these visuals bridge the gap between data and action.&lt;/p&gt;

&lt;h4&gt;
  
  
  11. Creativity Unleashed: Crafting Data's Visual Symphony
&lt;/h4&gt;

&lt;p&gt;Dashboards are more than a collage of graphs, they're an artistic symphony. Design choices harmonize, amplifying the resonance of the insights and enriching the data narrative.&lt;/p&gt;

&lt;p&gt;The creative process of dashboard design merges data and aesthetics. Colors, layout, and visual representations blend seamlessly to evoke understanding and engagement.&lt;/p&gt;

&lt;h4&gt;
  
  
  12. Client Preview: Revealing the First Act
&lt;/h4&gt;

&lt;p&gt;As the curtains rise on our insights, the retailer witnesses the first act of their data-driven success story. Draft dashboards are unveiled, offering a glimpse into the treasure trove of insights.&lt;/p&gt;

&lt;p&gt;I present the draft dashboards to the retailer, their eyes lighting up as they absorb the revelations. This initial presentation marks the beginning of their journey toward data-enriched decision-making.&lt;/p&gt;

&lt;h4&gt;
  
  
  13. Refinement: From Rough Draft to Masterpiece
&lt;/h4&gt;

&lt;p&gt;Feedback becomes the guiding star as refinement takes center stage. The symphony crescendos, each iteration honing the dashboards into a masterpiece of actionable insights.&lt;/p&gt;

&lt;p&gt;The retailer's input guides me as I refine the dashboards, ensuring that the insights are crystal clear. The journey from rough draft to polished final form mirrors the data's transformation.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pitfalls and Lessons
&lt;/h4&gt;

&lt;p&gt;In this data voyage, potential pitfalls lurk amidst the excitement. One challenge lies in managing incomplete or inaccurate data, which can skew insights. Rigorous data quality checks are imperative to prevent such distortions.&lt;/p&gt;

&lt;p&gt;Another pitfall is the risk of drawing erroneous conclusions. Approaching analysis with a balanced perspective and corroborating findings through various techniques can counteract this.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion: A Symphony of Retail Insights
&lt;/h4&gt;

&lt;p&gt;In the end, this data project is about transforming data into insights and insights into actions. By following a structured workflow, I aim to provide the retailer with the information they need to improve their e-commerce performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>data</category>
      <category>workflow</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>A Short Story on Process Mining</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Thu, 27 Jul 2023 08:51:03 +0000</pubDate>
      <link>https://dev.to/itsdru/a-short-story-on-process-mining-4jg1</link>
      <guid>https://dev.to/itsdru/a-short-story-on-process-mining-4jg1</guid>
      <description>&lt;p&gt;Once upon a time in the bustling world of modern business, there was a powerful technique known as "Process Mining." This remarkable method held the key to unlocking hidden insights within an organization's processes, enabling them to embark on a journey of growth and improvement.&lt;/p&gt;

&lt;p&gt;At the heart of Process Mining were event logs and data, which acted as the building blocks of its magical capabilities. These event logs, derived from various systems like ERP, CRM, and data-capturing tools, revealed the secrets of how processes were executed in the organization.&lt;/p&gt;

&lt;p&gt;Our protagonist, an e-commerce company, found themselves facing a daunting challenge. Their once-thriving business was now plagued by a decrease in sales and a surge of customer complaints. The wise management suspected that inefficiencies and bottlenecks lurked within their order fulfillment process, causing delayed shipments and leaving customers dissatisfied.&lt;/p&gt;

&lt;p&gt;Feeling the weight of this challenge, the company turned to Process Mining for guidance. The first step on their adventure was to gather event logs from the different systems involved in the order fulfillment process – the order management system, inventory management system, shipping providers, and customer support system.&lt;/p&gt;

&lt;p&gt;With the event logs in hand, they embarked on a journey of data preprocessing, ensuring that irrelevant and sensitive information was cast aside, leaving behind pristine data in a suitable format for analysis.&lt;/p&gt;

&lt;p&gt;The hero's next step was process discovery, where Process Mining tools like &lt;a href="https://www.perceptif.ai/"&gt;Perceptif&lt;/a&gt; wove their magic, creating process flow diagrams that unveiled the intricate paths through which the order fulfillment process unfolded.&lt;/p&gt;

&lt;p&gt;As the story unfolded, the company delved into performance analysis. Here, they unveiled the hidden bottlenecks, delays, and deviations that had been sabotaging their efficiency all along. Patterns and trends began to emerge, shedding light on the mysterious forces impacting their operations.&lt;/p&gt;

&lt;p&gt;With determination and courage, they conducted a thorough root cause analysis, bravely drilling down into specific process steps to identify the culprits behind the delays and customer complaints. The true enemies were revealed – inventory issues, communication gaps, and pesky manual errors.&lt;/p&gt;

&lt;p&gt;Armed with these newfound insights, they knew what needed to be done. They embarked on a quest for process optimization, devising strategies to combat their adversaries. Automation was summoned to relieve the burden of manual tasks, steps were reorganized for greater harmony, and communication channels were fortified to facilitate smoother operations.&lt;/p&gt;

&lt;p&gt;The company's efforts did not end there. With the process now optimized, they embraced the practice of continuous monitoring. Using Process Mining techniques as their trusty compass, they kept a watchful eye on their journey, ensuring that the path they chose remained true and effective.&lt;/p&gt;

&lt;p&gt;The tale of their bravery did not go unnoticed. Key performance indicators such as order processing time, customer satisfaction, and sales metrics bore witness to the positive impact of their efforts. As sales soared and customer complaints dwindled, the company's success echoed throughout the land.&lt;/p&gt;

&lt;p&gt;And so, the e-commerce company's journey with Process Mining proved to be a story of transformation and triumph. With newfound insights and a commitment to improvement, they thrived in a world of competitive challenges, forever guided by the powerful technique that is Process Mining.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start Your Journey to Process Excellence
&lt;/h3&gt;

&lt;p&gt;Optimize Your Processes Today by Harnessing the Power of Process Mining!&lt;br&gt;
&lt;strong&gt;&lt;u&gt;&lt;a href="https://linktr.ee/andrewmuhoro"&gt;Get In Touch!&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>processmining</category>
      <category>efficiencyimprovement</category>
      <category>ecommerceoptimization</category>
      <category>perceptifai</category>
    </item>
    <item>
      <title>Tales from the Technical Writing 101 Trenches: An Imaginative Approach to Technical Writing</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Tue, 20 Jun 2023 11:39:08 +0000</pubDate>
      <link>https://dev.to/itsdru/tales-from-the-technical-writing-101-trenches-an-imaginative-approach-to-technical-writing-5elc</link>
      <guid>https://dev.to/itsdru/tales-from-the-technical-writing-101-trenches-an-imaginative-approach-to-technical-writing-5elc</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F719xp2bem0yuj66cig6a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F719xp2bem0yuj66cig6a.jpg" alt="Yeah" width="430" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I often wonder if I'm the only one whose mind immediately conjures up perplexing manuals filled with mind-boggling jargon and those oh-so-brief explanations that leave you scratching your head whenever I hear about technical writing. Unless you're a master in the field, it's like reading an alien language! But fear not, my fellow adventurer, for I have taken up the noble quest to unravel the secrets of technical writing. My hope is that, armed with this knowledge, I can banish confusion and make those complex materials delightfully simple for all. Or am I over-reaching, well there is no harm in trying.&lt;/p&gt;

&lt;p&gt;As technology zooms ahead at the speed at which it is, it's becoming crystal clear that regular folks like you and me are diving deeper into its intricate layers. No longer confined to the realm of tech wizards, we're all venturing into the exciting world of technical know-how. So bridging the gap between complex technical concepts and user-friendly documentation is highly needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does this mean?
&lt;/h2&gt;

&lt;p&gt;To translate technical concepts into short and simple text explanations that means I will probably need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Study the basics:&lt;/strong&gt; To master any skill, you must master the basics of that skill. This is no different, grasping the fundamental principles of technical writing is essential. Understanding the purpose of technical documentation, its target audience, and the importance of clarity and accuracy in conveying information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Become a master in plain language:&lt;/strong&gt; A key aspect of technical writing is communication in plain language. Key is to avoid unnecessary complex jargons, acronyms, and terminologies. Always keep the readers in mind, this means anyone can understand, regardless of their technical expertise. Opt for simple and concise wording.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understand the User's Perspective:&lt;/strong&gt; Wear the shoes of the user to anticipate their needs, possible questions and challenges they may have. This will help in proactively addressing them in the writings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Breakdown Complex Concepts:&lt;/strong&gt; This is the belly of technical writing, breaking complex concepts into the simplest forms of the concept. Peeling away the layers of complexity reveals the core essence of the concept, making it easier for you to communicate the idea and also, for the users to grasp and understand. This is a quest to simplify the seemingly insurmountable!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test and Iterate:&lt;/strong&gt; Now you have the document, seek feedback from users and subject matter experts. This will provide you with insights on the on clarity, comprehensibility, and usability. Based on that then you can review and improve your document. To create high quality technical documentation, always iterate and continuously improve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore Tools and Resources:&lt;/strong&gt; To make your work easier and pump out good quality work, take advantage of the numerous tools and resources available that support writing and technical writings. This could be in the form of style guides, grammar checkers, readability tools and technical writing communities or forums where you can connect with professionals in the field, learn from their experiences, and exchange insights.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Creative Approach to Technical Writing
&lt;/h2&gt;

&lt;p&gt;I think technical writing doesn't have to be monotonous and dry. For a fact we know it is often associated with rigid structures and formalities. I think injecting some creativity into it can make it more engaging, memorable, and effective.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos4dad7f7laxg6rmgufj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos4dad7f7laxg6rmgufj.jpg" alt="Yeeeeees" width="400" height="304"&gt;&lt;/a&gt;&lt;br&gt;
Here are some ideas I think can help and will be exploring in later articles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Storytelling Techniques:&lt;/strong&gt; Weave narratives to make technical content relatable and compelling.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualizing Complex Concepts:&lt;/strong&gt; Utilize illustrations, diagrams, and infographics to enhance understanding.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gamification:&lt;/strong&gt; Incorporate interactive elements and challenges to make learning technical concepts enjoyable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infusing Humour and Wit:&lt;/strong&gt; Use humor strategically to lighten the tone and engage readers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Multimedia Presentations:&lt;/strong&gt; Create dynamic presentations using multimedia elements like videos and interactive slides.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Step-by-Step Instructions:&lt;/strong&gt; Break down complex procedures into easy-to-follow steps, guiding users through the process.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By embracing and mastering the basics of technical writing and infusing creativity into it, we can transform technical writing into a more captive way of communicating complex ideas. In a world where technology rapidly advances, the need to bridge the gap between technical concepts and user-friendly documentation becomes increasingly vital. Let's strive to make technical writing friendlier, enabling everyone to navigate the intricate layers of technology with ease. We can conquer the challenges and create a harmonious connection between users and the technical world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;How did the technical writer fix their broken computer? They turned it off and on again, then documented the entire process.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>technicalwriting</category>
      <category>techwritingfoolishly</category>
      <category>artoftechnicalwriting</category>
      <category>creativetechwriting</category>
    </item>
    <item>
      <title>Simplifying Data Exploration with Dexplorer</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Mon, 15 May 2023 13:25:14 +0000</pubDate>
      <link>https://dev.to/itsdru/simplifying-data-exploration-with-dexplorer-aka</link>
      <guid>https://dev.to/itsdru/simplifying-data-exploration-with-dexplorer-aka</guid>
      <description>&lt;p&gt;Data exploration is a vital step in the field of data science, enabling analysts to uncover patterns, relationships, and the underlying structure within datasets. However, this process often proves time-consuming and demands expertise in data analysis tools and techniques. To address this challenge, I developed a user-friendly web application called Dexplorer. With its streamlined interface and automation capabilities, Dexplorer aims to simplify and accelerate the data cleaning and exploration process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Introducing Dexplorer: Making Data Exploration Effortless
&lt;/h3&gt;

&lt;p&gt;In my quest to harness the capabilities of Streamlit and eliminate repetitive initial data exploration steps, I set out to create a straightforward, bare-bone web application. Dexplorer, my solution, seeks to automate the data cleaning and exploration process, making it more accessible to a wider audience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvd7fqchwnvyn6594mfeb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvd7fqchwnvyn6594mfeb.png" alt="Dexplorer's transform view" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can access the Dexplorer application &lt;a href="https://andrewmuhoro-dexplorer-app-39bddc.streamlit.app/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Version 1.0 Features and Benefits
&lt;/h3&gt;

&lt;p&gt;In its current version, Dexplorer offers the following key features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Data Upload and Preview: Easily upload and preview data in various formats, including CSV and Excel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic Data Insights: Gain quick insights into the uploaded data, such as the number of rows, columns, missing values, and duplicates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Row Previews: View a sample of the first and last rows of the dataset, providing a glimpse into the data's structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Column Overview: Get an overview of data types, missing values, and column names presented side by side for easy reference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Descriptive Statistics: Obtain summary statistics for selected numeric columns, providing a deeper understanding of the data's distribution and characteristics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Sampling and Manipulation: Sample a percentage of the dataset, drop unnecessary columns, and select and order specific fields for customized data exploration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download Processed Data: Download the processed data as a CSV file, allowing for further analysis or sharing with colleagues.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Enhancements and Future Plans
&lt;/h3&gt;

&lt;p&gt;While Dexplorer's current version provides a basic yet powerful set of features, I have plans to expand its capabilities in future iterations. I aim to address more advanced data exploration techniques and incorporate user feedback to improve the application's functionality and usability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try Dexplorer Today
&lt;/h3&gt;

&lt;p&gt;You can access the live version of Dexplorer hosted on Streamlit's cloud deployment &lt;a href="https://andrewmuhoro-dexplorer-app-39bddc.streamlit.app/"&gt;here&lt;/a&gt;. I welcome your ideas and suggestions for future enhancements. Feel free to reach out and share any features or improvements that you believe would add value to Dexplorer.&lt;/p&gt;

&lt;p&gt;By simplifying the data exploration process, Dexplorer empowers analysts of all skill levels to gain meaningful insights from their datasets efficiently and effectively. Discover the power of automated data exploration today with Dexplorer!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>streamlit</category>
      <category>dexplorer</category>
      <category>data</category>
    </item>
    <item>
      <title>A Friendly Data Science Workflow</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Fri, 07 Apr 2023 11:02:37 +0000</pubDate>
      <link>https://dev.to/itsdru/a-friendly-data-science-workflow-20l3</link>
      <guid>https://dev.to/itsdru/a-friendly-data-science-workflow-20l3</guid>
      <description>&lt;p&gt;As a human being learning to build my problem-solving skills, I've found that data science projects can often feel daunting and overwhelming without a clear roadmap. However, by breaking down the project into smaller steps and following a simple workflow, I've discovered that the process becomes more manageable and less intimidating.&lt;/p&gt;

&lt;p&gt;From conception to completion, the steps involved in solving a problem in data science are iterative, much like in other areas. But the key to success is having a clear understanding of the problem you want to solve, the data you need, and the tools you'll use to analyze and model that data.&lt;/p&gt;

&lt;p&gt;One powerful approach to problem-solving is first-principle thinking, which involves breaking down a problem into its fundamental elements and reasoning from those basic principles. By taking this approach, you can develop a deeper understanding of the problem and identify more effective solutions.&lt;/p&gt;

&lt;p&gt;But first-principle thinking is just one part of a successful data science workflow. It's also important to have a clear plan for data collection, cleaning, and preprocessing, as well as a solid understanding of the tools and technologies needed to build and deploy models. Let us explore a basic workflow data science steps with an example that is hosted &lt;a href="https://github.com/andrewmuhoro/MilkGrade/blob/main/Predict_Milk_Quality.ipynb"&gt;here&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Define the problem: Start by clearly defining the problem you want to solve and identify what you want to achieve.&lt;br&gt;
&lt;em&gt;We want to predict the quality of milk based on certain parameters such as fat content, pH, temperature, turbidity, etc.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collect and clean data: Gather data from various sources and clean it so it's ready for analysis. &lt;br&gt;
&lt;em&gt;Gather data on milk quality from various sources such as dairy farms or milk processing plants. Clean the data to remove any missing values or outliers. In this case, we will just download a kaggle dataset that is already cleaned.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Download the dataset
!kaggle datasets download -d harinuu/milk-quality-prediction

# Unzip the downloaded dataset
!unzip milk-quality-prediction.zip

# Load data into a dataframe
data = pd.read_csv('milknew.csv')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Analyze data: Use exploratory data analysis to find patterns and insights in the data.
&lt;em&gt;We can plot the distribution of milk quality scores and see if there are any correlations between the different parameters.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# plot a scatter plot to visualize any correlation between fat and color  
plt.scatter(data_cp['Fat'], data_cp['Turbidity'])
plt.xlabel('Fat Content')
plt.ylabel('Turbidity')
plt.title('Correlation between Fat and Turbidity')
plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create features: Create new features or transform existing ones to extract more useful information.&lt;br&gt;
&lt;em&gt;For example, we can calculate the ratio of fat content to Turbidity to see if this has an impact on milk quality.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Train a model: Choose a machine learning algorithm, train it on the data, and evaluate its performance.&lt;br&gt;
&lt;em&gt;For example, we can use a random forest classifier to predict milk quality based on the parameters we've collected. We'll split the data into a training set and a testing set, and use the training set to train the model and the testing set to evaluate its performance.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Train the model
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)


print("Accuracy of SVM classifier: {:.2f}%".format(accuracy_svm * 100))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Optimize the model: Fine-tune the model by adjusting its parameters to improve its performance.&lt;br&gt;
&lt;em&gt;For example, we can try different values of n_estimators or max_depth for the random forest classifier and see which values give the best results.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Evaluate the model: Test the model's performance on a validation dataset to make sure it can generalize well.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Evaluate the support vector machine classifier
y_pred_svm = svm.predict(X_test)
accuracy_svm = accuracy_score(y_test, y_pred_svm)

print(classification_report(y_test, y_pred_svm))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Deploy the model: Once the model is ready, deploy it in a production environment so it can be used by others.
&lt;em&gt;This could involve creating a web application or integrating the model into an existing software system.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To make this workflow easier, you can use some tools like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Virtual environment: A virtual environment is a way to create an isolated environment for your project so that the dependencies and packages you use in your project don't conflict with other projects or the system-level packages. You can create a virtual environment using tools like virtualenv, conda, or pipenv.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Requirements.txt: A requirements.txt file is a text file that lists all the packages and dependencies needed for your project. This file makes it easy for others to install and set up your project without having to manually install all the dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;.gitignore: A .gitignore file is a configuration file that tells Git which files or directories to ignore when tracking changes to your project. This is useful when you have files or directories that don't need to be version controlled, such as temporary files, log files, or large data files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Version Control (DVC): DVC is a version control system for data and models that works alongside Git. DVC makes it easy to track changes to your data and models, collaborate with others, and reproduce experiments. DVC also provides tools for data pipeline management, data versioning, and data storage. You can refer to this &lt;a href="https://dev.to/itsdru/introduction-to-data-version-control-fpg"&gt;article&lt;/a&gt; I did on DVC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker: Docker is a containerization platform that allows you to package your project and its dependencies into a container that can be run on any platform or environment. Docker makes it easy to deploy and scale your project in a consistent and reproducible way. With Docker, you can create a container image of your project that includes all the dependencies, configurations, and files needed to run it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By combining first-principle thinking with a simple workflow and the right tools, you can approach data science projects with more confidence and focus, reducing the likelihood of giving up and increasing your chances of success.&lt;/p&gt;

&lt;p&gt;Why don't scientists trust atoms?&lt;br&gt;
Because they make up everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>workflow</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Introduction to Data Version Control</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Tue, 28 Mar 2023 12:00:33 +0000</pubDate>
      <link>https://dev.to/itsdru/introduction-to-data-version-control-fpg</link>
      <guid>https://dev.to/itsdru/introduction-to-data-version-control-fpg</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;While using &lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt; I have come to learn of "Git for data", specifically &lt;a href="https://dvc.org/"&gt;Data Version Control, DVC&lt;/a&gt;. This is an open-source tool that works like Git to manage versioning for data science projects.&lt;/p&gt;

&lt;p&gt;Developed by &lt;a href="https://iterative.ai/"&gt;iterative&lt;/a&gt; to build models faster with data and experiment versioning and reproducible pipelines. &lt;/p&gt;

&lt;p&gt;It is designed to simplify the process of tracking changes and collaborating on projects, and is increasingly becoming an essential tool for data scientists and machine learning engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;The main difference between Git and DVC is the purpose they both serve. Git is primarily a version control system for source code, while DVC is a version control system for data and machine learning models.&lt;/p&gt;

&lt;p&gt;The two have a somewhat similar structure in how they are used to control versioning.&lt;/p&gt;

&lt;p&gt;Using dvc, data experts can store and version control their datasets in a central repository, which is much like a code repository, ensuring there is seamless access to the latest project version by collaborators. This tool also allows versioning of machine learning models, which means it is easy to keep track of changes to models and experimenting with different parameters and techniques while keeping records of previous versions.&lt;/p&gt;

&lt;p&gt;A key benefit of dvc is its seamless integration with existing machine learning frameworks like &lt;a href="https://www.tensorflow.org/"&gt;TensorFlow&lt;/a&gt;, &lt;a href="https://pytorch.org/"&gt;PyTorch&lt;/a&gt; and &lt;a href="https://scikit-learn.org/stable/#"&gt;scikit-learn&lt;/a&gt;, etc. Not to forget it provides a range of other useful features like data and model pipelines, automated experiments, and visualization tools. These features can be used to automate many repetitive aspects associated with data science projects.&lt;/p&gt;

&lt;p&gt;Using for example, &lt;a href="https://iterative.ai/"&gt;iterative&lt;/a&gt;'s &lt;a href="https://studio.iterative.ai/"&gt;Studio&lt;/a&gt; one can automate bookkeeping tasks for example visualizing important metrics across projects, iterating faster by re-using code in a no-code environment, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;In this example, using git we will control a Python file and also use dvc to control a data file and a trained machine learning model. We will also go step by step of how versioning works: initialize, add, commit, etc. The task instructions for both git and dvc are listed in the same block to compare the two systems.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize a repository
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Initialize git repository
git init

# Initialize dvc repository
dvc init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add file to created repository
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Add a file to the git repository
git add example.py

# Add data file to dvc repository
dvc add data_file.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Commit changes to repository
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Commit the file to the git repository
git commit -m "Initial commit"

# Commit data file to dvc repository
git add data_file.csv.dvc
git commit -m "Add data file to dvc repository"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Make changes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Make changes to the file in git
echo "print('Hello, World!')" &amp;gt;&amp;gt; example.py

# Train machine learning model in dvc
python train_model.py data_file.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add changes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Add the changes to the git repository
git add example.py

# Add trained model to dvc repository
dvc add model.pkl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Commit changes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Commit the changes to the repository
git commit -m "Add print statement"

# Commit trained model to dvc repository
git add model.pkl.dvc
git commit -m "Add trained model to dvc repository"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As observed above, even though both share a lot of similarities they have different commands and workflows tailored to the specific use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;DVC is an essential tool for data scientists and machine learning engineers who are looking to streamline their workflow and collaborate effectively. It is a tool worth checking out for anyone doing data science/machine learning related projects. &lt;/p&gt;

&lt;p&gt;Please note this is not meant to be a comprehensive knowledge check rather it is a quick run over what the tool is. &lt;/p&gt;

&lt;p&gt;JokeofTheDay: Why did the data scientist use both Git and DVC?&lt;br&gt;
Because he didn't want to get data-tached from his version control!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>machinelearning</category>
      <category>git</category>
      <category>dataversioncontrol</category>
    </item>
    <item>
      <title>Getting started with Sentiment Analysis</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Tue, 21 Mar 2023 15:33:36 +0000</pubDate>
      <link>https://dev.to/itsdru/getting-started-with-sentiment-analysis-556a</link>
      <guid>https://dev.to/itsdru/getting-started-with-sentiment-analysis-556a</guid>
      <description>&lt;h3&gt;
  
  
  Intro'
&lt;/h3&gt;

&lt;p&gt;Sentiment analysis is a technique that is used to determine the emotional tone behind a particular text. For example, a business can use sentiment analysis to  classify reviews as positive, negative or neutral.&lt;/p&gt;

&lt;p&gt;Looking at online reviews, insights can be gained on the sentiment behind each review and then the common themes frequently mentioned in the reviews can be identified. Based on these insights, then a business/organisation or individuals can make informed decisions in their respective operations.&lt;/p&gt;

&lt;p&gt;In today's world, advancement in technology has made it possible for systems to learn how to do tasks. This is through Artificial Intelligence, AI. So it is also possible to teach a system how to perform sentiment analysis getting rid of the need for repetitive analysis of the data by a human.&lt;/p&gt;

&lt;p&gt;In this article, we will briefly go over how to get a computer to perform sentiment analysis by itself using machine learning algorithms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dataset
&lt;/h3&gt;

&lt;p&gt;In order to do this, we will use a collection of about 1.6 million tweets. This dataset &lt;a href="https://www.kaggle.com/datasets/kazanova/sentiment140"&gt;Sentiment140&lt;/a&gt; is hosted on &lt;a href="https://www.kaggle.com/"&gt;Kaggle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The tweets in the dataset were collected in February 2009 using the Twitter API and were labeled with sentiment polarity using emoticons present in the tweets. For instance, tweets with positive emoticons like :) were labeled as positive, tweets with negative emoticons like :( were labeled as negative, and tweets without any emoticons were labeled as neutral.&lt;/p&gt;

&lt;p&gt;The Sentiment140 dataset is commonly used in research and industry for sentiment analysis tasks due to its large size and labeled sentiment polarity. Researchers and practitioners can use this dataset to develop and evaluate machine learning models for sentiment analysis tasks, such as sentiment classification or sentiment regression.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementation
&lt;/h3&gt;

&lt;p&gt;Similar to any data science project, there are general steps involved in performing any data analysis. In this case, here are the steps:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Data Collection:
&lt;/h4&gt;

&lt;p&gt;Instead of downloading the data to the local machine, the dataset will be extracted from Kaggle directly into &lt;a&gt;Colab&lt;/a&gt; where the analysis will happen.&lt;/p&gt;

&lt;p&gt;Authenticating the Kaggle API client&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Get the username and key from your Kaggle account
os.environ['KAGGLE_USERNAME'] = "username"
os.environ['KAGGLE_KEY'] = "key"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download and unzip the dataset from Kaggle&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!kaggle datasets download -d kazanova/sentiment140

# Unzip the downloaded dataset
!unzip sentiment140
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Load the downloaded dataset&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tweets_df = pd.read_csv('training.1600000.processed.noemoticon.csv', encoding='latin-1')
tweets_df.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4p1ysz6hin33wb3usmep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4p1ysz6hin33wb3usmep.png" alt="Loaded DataFrame" width="800" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Data Pre-Processing:
&lt;/h4&gt;

&lt;p&gt;Next step is to preprocess the data by cleaning it and converting it into a structured format that can be used for analysis.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Using the .columns method insert a list of the column names
tweets_df.columns = ['target', 'id', 'date', 'flag', 'user', 'text']
tweets_df.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7cj84adhshevu1bdrl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7cj84adhshevu1bdrl9.png" alt="Column Headers Added" width="800" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pre-process the text column data using regular expressions to remove elements like punctuations, special characters, urls, hashtags, stop-words, usernames and convert all to lowercase.&lt;/p&gt;

&lt;p&gt;Before making any structural changes to the dataset, I created a copy of the original dataset and are working on the copy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import NLTK, Natural Language Toolkit, library
# This library provides good tools for loading and cleaning text
import nltk
import re
from nltk.corpus import stopwords

nltk.download('stopwords')

stop_words = set(stopwords.words('english'))

# define a function to implement the pre-processing &amp;amp; cleaning of the text data
def clean_text(text):
    text = re.sub(r'http\S+', '', text)  # Remove URLs
    text = re.sub(r'@[^\s]+', '', text)  # Remove usernames
    text = re.sub(r'#([^\s]+)', r'\1', text)  # Remove hashtags
    text = re.sub(r'[^\w\s]', '', text)  # Remove punctuation
    text = text.lower()  # Convert to lowercase
    text = ' '.join([word for word in text.split() if word not in stop_words])  # Remove stopwords
    return text

# Apply the above clean_text function to the text column values
# Drop the text column after adding the clean_text column to the dataframe
tweets_cp['clean_text'] = tweets_cp['text'].apply(clean_text)
tweets_cp.drop(['text'], axis=1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faperwef0j7sijh4um5nh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faperwef0j7sijh4um5nh.png" alt="Cleaned Text" width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Feature Extraction
&lt;/h4&gt;

&lt;p&gt;After data preprocessing then convert the preprocessed text into a numerical format that can be used for analysis. This involves a technique like TF-IDF, Term Frequency Inverse Document Frequency. TF-IDF can be defined as the calculation of how relevant a word in a series or corpus is to a text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Convert the text data into numerical features using TF-IDF
tfidf = TfidfVectorizer(stop_words='english', max_features=5000)
X = tfidf.fit_transform(tweets_cp['clean_text'])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, tweets_cp['target'], test_size=0.3, random_state=42)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Model Selection
&lt;/h4&gt;

&lt;p&gt;The next step is to pick an appropriate machine learning algorithm to classify the sentiment of the tweet text. In this case we will try this with Naive Bayes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Train a Naive Bayes classifier on the training data
nb = MultinomialNB()
nb.fit(X_train, y_train)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Test the model on the testing data
y_pred = nb.predict(X_test)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Model Training
&lt;/h4&gt;

&lt;p&gt;We will train the model using the labeled training dataset that we split in the Feature Extraction.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Test the model on the testing data
y_pred = nb.predict(X_test)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  6. Model Evaluation
&lt;/h4&gt;

&lt;p&gt;After training the model, we need to evaluate its performance on a test dataset(30% of the original dataset) that we split in the Feature Extraction section.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print('Accuracy:', accuracy_score(y_test, y_pred))
print('Precision:', precision_score(y_test, y_pred))
print('Recall:', recall_score(y_test, y_pred))
print('F1-Score:', f1_score(y_test, y_pred))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model without fine turning it has an accuracy score of 75% and a precision of 75%.&lt;/p&gt;

&lt;p&gt;Evaluation Score&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Accuracy: 0.7511354166666667
Precision: 0.7564523638210522
Recall: 0.7427183457378064
F1-Score: 0.7495224455818614
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  7. Predict
&lt;/h4&gt;

&lt;p&gt;We will try predict the sentiment of a new tweet using the model we have trained, tested and evaluated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new_tweet = 'I hate Mondays'
new_tweet_cleaned = clean_text(new_tweet)
new_tweet_vectorized = tfidf.transform([new_tweet_cleaned])
sentiment = nb.predict(new_tweet_vectorized)[0]
print('Sentiment:', sentiment)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model predicts the new tweet has a negative tone.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sentiment: 0&lt;/code&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Sentiment analysis can help gauge how the outside world feels about a business, product, trend and so many more. With the integration of machine learning models into such analysis, the results can be outstanding. Even with fine turning of a simple model like the one that we just built can really inform decision-making at the said entity.&lt;/p&gt;

&lt;p&gt;You can find the model code at this &lt;a href="https://github.com/andrewmuhoro/Tweets-SentimentAnalysis"&gt;Link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Why did the sentiment analyst's computer keep crashing? It couldn't handle all the feelings.&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>sentimentanalysis</category>
      <category>machinelearning</category>
      <category>naivebayes</category>
    </item>
    <item>
      <title>Essential SQL Commands for Data Science Tasks</title>
      <dc:creator>Itsdru</dc:creator>
      <pubDate>Tue, 14 Mar 2023 08:21:07 +0000</pubDate>
      <link>https://dev.to/itsdru/essential-sql-commands-for-data-science-tasks-m3i</link>
      <guid>https://dev.to/itsdru/essential-sql-commands-for-data-science-tasks-m3i</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;SQL is a language of asking or 'requesting' a store that holds information to provide you with specific information you are looking for. A real life example that illustrates why SQL is essential is going to a library that holds over thousands of books and you are looking to read or borrow one specific book. You could go to the library and manually look for the specific book from the many shelves or you could just go to the librarian and ask them whether they have the book or point you in the right direction to locate the book.&lt;/p&gt;

&lt;p&gt;Asking the librarian is pretty efficient and straightforward as they have access to a library system that keeps record of the books they have now, whether in the physical location or borrowed. The other way may take you days if you don't know how to locate the section that may hold the book and you may spend all that time looking for a book only to find out they don't have it. SQL in this case is the librarian you give requests to and it provides you with the information you are looking for.&lt;/p&gt;

&lt;p&gt;SQL is essential for working with data as it makes it possible to make queries to databases that may hold a few rows or as many as millions of rows. SQL(Structured Query Language) is a programming language used for managing and manipulating data in relational databases.&lt;/p&gt;

&lt;p&gt;SQL allows you to store, manipulate and retrieve data. Why SQL is widely used in transactional processing and analytical application include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inserting, updating, and deleting data from a relational database.&lt;/li&gt;
&lt;li&gt;Describing structured data.&lt;/li&gt;
&lt;li&gt;Building, deleting and updating databases and tables.&lt;/li&gt;
&lt;li&gt;To establish permissions and restrictions for table columns, views and stored procedures.&lt;/li&gt;
&lt;li&gt;Accessing data from a relational database management system.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Real Life Example of SQL at work
&lt;/h3&gt;

&lt;p&gt;Imagine you have a company that sells products, and you want to keep track of your inventory. You can create a database with a table called "products" that has columns such as "product_id", "product_name", "price", and "quantity_in_stock".&lt;/p&gt;

&lt;p&gt;To add a new product to the database, you would use an SQL INSERT statement. For example, to add a new product with product_id = 1001, product_name = "iPhone 13", price = 999.99, and quantity_in_stock = 50, you would write the following SQL statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSERT INTO products (product_id, product_name, price, quantity_in_stock) 
VALUES (1001, 'iPhone 13', 999.99, 50);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To update the price of an existing product, you would use an SQL UPDATE statement. For example, to update the price of the product with product_id = 1001 to 1099.99, you would write the following SQL statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UPDATE products 
SET price = 1099.99 
WHERE product_id = 1001;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To retrieve information about the products in your database, you would use an SQL SELECT statement. For example, to retrieve the product_id, product_name, price, and quantity_in_stock for all products in the database, you would write the following SQL statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT product_id, product_name, price, quantity_in_stock 
FROM products;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is just a simple example of what SQL can do, but it should give you an idea of how it can be used to manage and manipulate data in a database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Essential SQL Commands
&lt;/h3&gt;

&lt;p&gt;Please note that this post is by no means aimed to be a comprehensive list of the commands you need to know.&lt;/p&gt;

&lt;h4&gt;
  
  
  Data Retrieval
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;SELECT&lt;/em&gt; - Used to retrieve data from a database.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT * FROM customers;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will retrieve all data from the customers table.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;DISTINCT&lt;/em&gt; - Used to retrieve unique values only from  a column in a table.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT DISTINCT category FROM products;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will retrieve all the unique categories from the table products.&lt;/p&gt;

&lt;h4&gt;
  
  
  Data Retrieval with Conditions
&lt;/h4&gt;

&lt;p&gt;In this case the data retrieved meets specified condition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WHERE&lt;/em&gt; - This command is used to filter data based on certain conditions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM customers 
WHERE age &amp;gt; 30;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will retrieve all the data from the customers table where their age is greater than 30.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ORDER BY&lt;/em&gt; - This command sorts the data in a descending or ascending order.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM customers 
ORDER BY age DESC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will retrieve all data from the customers table and order it by age in a descending order.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LIMIT&lt;/em&gt; - This command limits the retrieved data to the specified count.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM customers 
LIMIT 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will retrieve the first 10 rows from the customers table.&lt;/p&gt;

&lt;p&gt;You can also specify the starting row for the retrieved data, using the 'offset' command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * FROM customers 
LIMIT 5 
OFFSET 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will retrieve 5 rows from the customers table starting from the 11th row.&lt;/p&gt;

&lt;h4&gt;
  
  
  Aggregations
&lt;/h4&gt;

&lt;p&gt;Aggregations are used to get a summary of a dataset.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;GROUP BY&lt;/em&gt; - This command groups data based on the specified criteria.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT country, COUNT(*) FROM customers 
GROUP BY country;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will retrieve the count of customers in each country.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;COUNT()&lt;/em&gt; - This command is used to count the number of rows that meet a specific condition in a table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT COUNT(*) FROM customers 
WHERE country = 'USA';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will return the number of rows where the customers have 'USA' as their country.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;SUM()&lt;/em&gt; - This command is used to total the values in a specified column.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT SUM(sales) FROM orders;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will return the sum of the values in the "sales" column of the table "orders".&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AVG()&lt;/em&gt; - This command is used to calculate the average of the values in the specified column.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT AVG(salary) FROM employees;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will return the average of the values in the "salary" column of table "employees".&lt;/p&gt;

&lt;p&gt;&lt;em&gt;HAVING&lt;/em&gt; - This command is used in combination with the GROUP BY command to filter out results based on a condition applying to the groups.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT category, SUM(sales) FROM products 
GROUP BY category 
HAVING SUM(sales) &amp;gt; 1000;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will group the rows in the "products" table by "category" and calculate the sum for each. Then the HAVING clause will filter the results to only include groups where the sum of sales is greater than 1000.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MIN()&lt;/em&gt; - This command is used to find the minimum value in a specified column.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT MIN(price) FROM products;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will return the minimum value in the "price" column of table "products".&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Alias&lt;/em&gt; - This command gives a temporary name to a table of column in a query. Used to make queries easier to read or avoid naming conflicts when combining data from multiple tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT p.product_name AS name, s.quantity AS stock 
FROM products p JOIN stock s ON p.product_id = s.product_id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query joins the "products" and "stock" tables using aliases to rename the "product_name" and "quantity" columns to "name" and "stock" respectively.&lt;/p&gt;

&lt;h4&gt;
  
  
  Joins
&lt;/h4&gt;

&lt;p&gt;Joins are used to combine data from multiple tables into a single result set based on a common key shared by the tables.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;INNER JOIN&lt;/em&gt; - Inner join returns only the rows that have matching values in both tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Customers.Name, Orders.OrderID, Orders.OrderDate
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query will return the Name of the customer, OrderID, and OrderDate for all customers who have placed an order.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LEFT JOIN&lt;/em&gt; - Returns all the rows from the left table and the matching rows from the right table. If there is no matching row in the right table, the result will contain NULL values for the right table columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Customers.Name, Orders.OrderID, Orders.OrderDate
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;RIGHT JOIN&lt;/em&gt; - Returns all the rows from the right table and the matching rows from the left table. If there is no matching row in the left table, the result will contain NULL values for the left table columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Customers.Name, Orders.OrderID, Orders.OrderDate
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;FULL OUTER JOIN&lt;/em&gt; - Returns all the rows from both tables, including those with no matching rows in the other table. If there is no matching row in one of the tables, the result will contain NULL values for the columns of the other table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Customers.Name, Orders.OrderID, Orders.OrderDate
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Create Database
&lt;/h4&gt;

&lt;p&gt;To create a database in SQL, you can use the CREATE DATABASE statement followed by the database name.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE DATABASE my_database;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will create a database named "my_database".&lt;/p&gt;

&lt;h4&gt;
  
  
  Create Table
&lt;/h4&gt;

&lt;p&gt;To create a table in SQL, you can use the CREATE TABLE statement followed by the table name and column definitions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE TABLE Customers (
CustomerID int,
Name varchar(255),
Address varchar(255)
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create a table named "Customers" with columns for CustomerID, Name, and Address.&lt;/p&gt;

&lt;h4&gt;
  
  
  Change Data Types
&lt;/h4&gt;

&lt;p&gt;To change the data type of a column in SQL, you can use the ALTER TABLE statement followed by the table name and column definition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER TABLE Customers
ALTER COLUMN CustomerID varchar(50);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will change the data type of the CustomerID column in the Customers table from int to varchar(50).&lt;/p&gt;

&lt;h4&gt;
  
  
  Complex Conditions
&lt;/h4&gt;

&lt;p&gt;SQL supports complex conditions using logical operators such as AND, OR, and NOT. You can also use parentheses to group conditions.&lt;/p&gt;

&lt;p&gt;Suppose we have a table named Products with columns for ProductID, ProductName, Category, and Price. We want to retrieve all products in the "Electronics" category that are either priced at $100 or less or have "Discounted" in their product name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT *
FROM Products
WHERE Category = 'Electronics'
AND (Price &amp;lt;= 100 OR ProductName LIKE '%Discounted%');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query will return all products in the "Electronics" category that are either priced at $100 or less or have "Discounted" in their product name.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;SQL is an essential tool for data scientists and data analysts alike. With its ability to manipulate and retrieve data, SQL is indispensable for managing and analyzing large datasets. By mastering the essential SQL commands, data scientists can more effectively and efficiently work with relational databases, providing insights that can drive critical business decisions.&lt;/p&gt;

&lt;p&gt;This is just a tip of the iceberg on what you can do with SQL and this is definitely not a comprehensive list of commands.&lt;/p&gt;

&lt;p&gt;In conclusion, we wonder why the SQL query crossed the road. Only to find out it went to get the other SELECT-ion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploring the Possibilities: Let's Collaborate on Your Next Data Venture! You can check me out at this &lt;a href="https://linktr.ee/andrewmuhoro"&gt;Link&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>sql</category>
      <category>programming</category>
      <category>computerscience</category>
    </item>
  </channel>
</rss>
