<?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: Bill Muli</title>
    <description>The latest articles on DEV Community by Bill Muli (@billymuli).</description>
    <link>https://dev.to/billymuli</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3849589%2F8d5a11db-40aa-45f8-a399-f62aec62eace.jpg</url>
      <title>DEV Community: Bill Muli</title>
      <link>https://dev.to/billymuli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/billymuli"/>
    <language>en</language>
    <item>
      <title>How Excel is Used In Real-World Data Analysis</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Sun, 04 Oct 2026 13:30:53 +0000</pubDate>
      <link>https://dev.to/billymuli/how-excel-is-used-in-real-world-data-analysis-c1l</link>
      <guid>https://dev.to/billymuli/how-excel-is-used-in-real-world-data-analysis-c1l</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Excel?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Excel&lt;/strong&gt;, also known as MS Excel, is a Microsoft Office application used in handling and editing of documents (spreadsheets) which data is laid out. It is a vastly used application for students and professionals alike for collecting and processing data by performing mathematical calculations, organizing, cleaning, presenting, summarizing, visualizing, and storing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real- World Uses of Excel&lt;/strong&gt;&lt;br&gt;
While Excel has a wide array of uses in real-world scenarios, we are going to focus on a few common uses as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Calculations&lt;/strong&gt;&lt;br&gt;
As mentioned earlier, MS Excel is used to perform mathematical calculations and this comes in handy for small and large business. For instance, with a huge data set of prices of goods and quantity of goods sold, it is easy to find the revenue by using simple Excel formula such as: = Quantity * Price or (=A2*B2), A2 and B2 being cells in rows and columns that contain the data set of quantity of goods sold and price of goods sold respectively. It should be noted that MS Excel can perform even complex mathematical calculations. For instance, by using in-built functions or formula, users can easily calculate business concepts such as profit margins, discount percentages etc. Users can use in-built function to evaluate how a business is performing, all these without manual computations which would otherwise take a lot of time. In business calculations, it is crucial to mention that users can automate repetitive calculations and this massively saves time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Analysis Using Charts&lt;/strong&gt;&lt;br&gt;
Using structured data, one can create interactive charts in MS Excel to show the association of data sets, for instance, how a product sells in a certain region compared to other regions using bar charts or graphs. This is significantly essential in decision making for businesses because such visualization simplifies complex data and make it easier to interpret. When looking at raw large data set, it is difficult to understand patterns, but with visuals such as bar charts and graphs, it is easier. Also, these visuals are highly useful in presentation where the audience need a quick understanding of trends and insights. Moreover, in designing the visuals, MS Excel allows users to customize them so as to portray key findings such as Key Performance Indicators, which further makes interpretation easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tracking of Expenses&lt;/strong&gt;&lt;br&gt;
Tracking of expenses over an extended period of time can be hectic if it is done manually. However, with the use of MS Excel, users and/or businesses can easily manipulate the data and acquire their expenditure insights within minutes. One of the features I found interesting is the use of conditional formatting. Conditional formatting involves changing the look of a cell or data entry based on set rules, that is, highlighting a data entry using a specific color if it meets a certain condition. When tracking expenses, instead of manually scanning huge data sets, we can easily spot overspending immediately using conditional formatting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Cleaning&lt;/strong&gt;&lt;br&gt;
Businesses across the world often rely on data to make insights and decisions. More often than not, the data is acquired in its raw form, meaning that it is not only incomplete, but it is also filled with inconsistences; it is disorganized and incomplete. This is where MS Excel comes in! Perhaps one of its most important uses in a real-world scenario, MS Excel is widely used to clean the data and ensure a well-organized, complete and consistent set of data. In this sense, MS Excel offers many formulas and features that are used for data cleaning. Key among them is the FIND &amp;amp; REPLACE, function, which as the name suggests, is used to find a data in a range, and replace it with a desired data. As far as data cleaning is concerned, using MS Excel, users can filter data based on set requirements and also remove duplicates. All these steps are very essential because a disorganized data can lead to wrong conclusions which might affect the operations of a business. In this view, we can assert that MS Excel is used to improve the reliability of data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Forecasting&lt;/strong&gt;&lt;br&gt;
One of the most versatile benefits of MS Excel is forecasting future trends. In this regard, businesses can be able to predict market trends and assess risks. Additionally, businesses can use historical data in Excel to plan for future growth, strategies, and objectives. Evaluating past performance is useful for growth rate calculations. Businesses that need to plan ahead may need to utilize Excel to forecast, and budget ahead or even estimating future demand or products on services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Summarization&lt;/strong&gt;&lt;br&gt;
As mentioned earlier in this article, MS Excel can be useful in summarizing large data sets to offer quick insights. Instead of users going over hundreds of rows and columns manually, they can easily group the data in MS Excel based on specific variables such as product, discount, department, etc. and breakdown large complex data into manageable sections. One can, therefore, identify key relationships from those manageable sections. Moreover, users can compare different kinds of variables from their data set, without changing the original data. For instances, a business can compare the performance of departments. This feature is useful for businesses in exploring different perspectives and evaluate if there are trends. All these processes are mainly done with the use of Pivot tables in Excel. Pivot tables further allow dynamic and interactive reporting, where the summary can automatically update upon selecting new data within the data set. This is highly crucial in reporting where the data changes a lot and insights are required in real time. Also, it is crucial when decision makers in a business need to use the latest information to ensure accuracy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In conclusion, it is clear that MS Excel is a significantly important tool in real-word scenarios, especially when it comes to data analysis and management. Its versatility coupled with its availability is a significant advantage for many users, especially business owners. As seen from the article, MS Excel allows users to efficiently handle large data sets through process such as performing calculations and creating meaningful visuals. Through these processes, users transform raw, unorganized, and inconsistent data to meaningful analysis which support proper decision making. Perhaps one underrated feature of MS Excel is simplifying highly complex data, making the software effective for beginners. Also, we have seen that MS Excel performs beyond data handling but also it is effective in data cleaning, summarization, and forecasting. These processes ensure that the data provided is accurate, and can be used in strategic planning for businesses. Business can easily rely on MS Excel to pinpoint important trends, make predictions, plan for the future, and compared performances. All these can ultimately reduce uncertainties and risks in a highly competitive environment. All in all, MS Excel is a game changer in data analysis, due to its wide range of features and accessibility. Whether it is used for personal projects such as personal budgeting or business operations and academic work, MS Excel excels in the overall management and handling of data. It is, therefore, important for people to master MS Excel, especially for building data analytical skills.&lt;/p&gt;

</description>
      <category>excell</category>
      <category>datascience</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Neural Networks, its Inspiration and Various Components.</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Sun, 04 Oct 2026 13:21:22 +0000</pubDate>
      <link>https://dev.to/billymuli/neural-networks-its-inspiration-and-various-components-2k1h</link>
      <guid>https://dev.to/billymuli/neural-networks-its-inspiration-and-various-components-2k1h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
In this week, I got introduced to Deep learning, and one key takeaway was on neural networks. I discovered that a neural network is a way of getting a computer to learn patterns from data the whole concept is loosely inspired by how the human brain works. For instancem in your brain, neurons receive signals, decide whether those signals are strong enough to matter, and pass a signal onward if they are. A neural network copies this idea in a much simpler mathematical form where a "neuron" takes in some numbers, combines them, and passes the result forward, layer by layer, until the network produces a final answer.&lt;/p&gt;

&lt;p&gt;In this article we will walk through how one of these networks actually gets built and trained in code, using real screenshots from a working example.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Building the Architecture&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7f1irdi2cyepd6r3qmb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7f1irdi2cyepd6r3qmb.webp" alt=" " width="800" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the network's structure, built with tf.keras.Sequential. "Sequential" just means the data flows through the layers one after another, in a straight line, and with no branching.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The** input layer** does not do any calculating. It just tells the network the shape of the data coming in, based on how many columns X_train_processed has.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The three &lt;strong&gt;hidden layers&lt;/strong&gt; are where the actual learning happens. Each one is Dense, meaning every neuron in that layer is connected to every neuron in the layer before it. They use "relu" as their activation function, which is a simple rule that says if a neuron's combined signal is positive, pass it on as is and if it's negative, pass on zero instead. This small rule is what lets the network learn patterns that are not just straight lines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1.The** output layer** has 3 neurons with a "softmax" activation, which means the network is choosing between 3 possible classes. It turns the network's raw output into probabilities that add up to 1, so the class with the highest probability becomes the prediction.&lt;/p&gt;

&lt;p&gt;. &lt;strong&gt;Compiling the Model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34ic7ok90m1esnhgs2x5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34ic7ok90m1esnhgs2x5.webp" alt=" " width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before a network can learn anything, it needs to be compiled. Compiling tells the network how it should learn and how it should judge its own performance.&lt;/p&gt;

&lt;p&gt;1.Optimizer = "adam" sets the method the network uses to adjust itself after each mistake. Adam is a popular default because it adapts how big each adjustment is as training goes on, rather than using one fixed step size the whole time.&lt;br&gt;
2.Loss = "sparse_categorical_crossentropy" is the function that measures how wrong a prediction was. This particular loss function is built for problems like this one, where there are several classes to choose from and the correct answer is given as a plain number (like 0, 1, or 2) rather than one-hot encoded.&lt;br&gt;
3.Metrics = ["accuracy"] doesn't affect learning at all and it is just a number reported after each epoch so you can see how the network is doing in a way that is easy to read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deciding When to Stop Training&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs59nckusnpjj1660itln.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs59nckusnpjj1660itln.webp" alt=" " width="794" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Neural networks do not automatically know when to stop learning and thus, if left alone, they can keep training long after they have stopped genuinely improving, and start memorizing the training data instead of learning general patterns. This callback protects against that.&lt;/p&gt;

&lt;p&gt;EarlyStopping(monitor = "val_loss", patience = 5, restore_best_weights = True) watches the loss on the validation data (data the network does not train on, used only to check its progress). If that validation loss does not improve for 5 epochs in a row (patience = 5), training stops early. restore_best_weights = True makes sure that when training stops, the network keeps the version of itself from its best epoch, not just whatever it looked like when it finally stopped.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Training the Model&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3y5y40mxtt94q0r3u55.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3y5y40mxtt94q0r3u55.webp" alt=" " width="799" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where everything comes together and the network actually starts learning.&lt;/p&gt;

&lt;p&gt;model.fit(...) feeds the training data, X_train_processed and y_train_encoded, into the network. validation_data gives it a separate set to check its progress on after each epoch, without training on it. epochs = 200 sets the maximum number of full passes through the training data, though the EarlyStopping callback from the step before may cut this short. batch_size = 32 means the network looks at 32 examples at a time before updating itself, rather than updating after every single example or waiting until it has seen the entire dataset. Finally, callbacks = [callbacks] plugs in the early stopping rule, so it's actually applied during this run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In conclusion, when these four pieces are put together, they form the full life cycle of a neural network which revolves around the axis of, the architecture deciding what the network looks like, compiling decides how it learns and how it is judged, the callback decides when it should stop, and fit is the step where all of that is actually put into motion. Each piece is simple enough on its own, but the network's real behavior comes from how these choices interact with each other during training.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Using Scikit-learn Pipelines. A Titanic Walkthrough</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Sun, 04 Oct 2026 12:47:21 +0000</pubDate>
      <link>https://dev.to/billymuli/using-scikit-learn-pipelines-a-titanic-walkthrough-2290</link>
      <guid>https://dev.to/billymuli/using-scikit-learn-pipelines-a-titanic-walkthrough-2290</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
When you build a machine learning model, you rarely feed it raw data straight away. You usually clean it first by filling in missing values, scaling numbers, and turning categories into a format the model can use. If you do each of these steps by hand, it's easy to forget one, or to accidentally let information from your test data influence how you clean your training data. A** pipeline** in scikit-learn fixes this by chaining all the cleaning steps and the model together into a single object. You call .fit() once, and every step runs in the correct order automatically, every time.&lt;/p&gt;

&lt;p&gt;In this article, we will use the Titanic dataset dataset from Kaggle. It lists real passengers from the Titanic, along with details like their age, sex, ticket class, and fare, and the goal is to predict who survived. We will walk through a real pipeline built for that dataset, one step at a time, in the order it actually runs.&lt;/p&gt;

&lt;p&gt;1.** Imports**&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F783zlwp3oimf7gn3u9ty.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F783zlwp3oimf7gn3u9ty.webp" alt=" " width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This brings in the pipeline tools (Pipeline, ColumnTransformer), the cleaning tools (SimpleImputer, StandardScaler, OneHotEncoder), and the models that we will use later, like logistic regression, random forest, and SVM. None of these lines run any code by themselves, they just make the tools available for the steps that follow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Two Small Pipelines, One per Column Type&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn9b6ykamii3ztj6uwlxu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn9b6ykamii3ztj6uwlxu.webp" alt=" " width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Titanic data has numeric columns (Age, Fare) and categorical columns (Sex, Embarked). Each one needs different treatment, so we create two small pipelines:&lt;/p&gt;

&lt;p&gt;numerical_pipeline fills missing numbers with the** median** (the middle value once sorted), then scales everything so no column dominates just because its numbers happen to be bigger. Median is used instead of average here because a few very old or very young passengers wouldn't be able to skew it, or in simpler terms, outliers.&lt;br&gt;
categorical_pipeline fills missing categories with the** most common value,** then one-hot encodes them, turning each category into its own 0/1 column. For example, "Sex" becomes two columns, "is_male" and "is_female", each holding a 0 or a 1.&lt;br&gt;
Each of these is already a small pipeline on its own. What I have learnt working with these pipelines, is that building small, focused pipelines like this first, then combining them, is a pattern worth reusing on other datasets too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Combine Both with ColumnTransformer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq1m5xwizuh4ui2h4m7lp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq1m5xwizuh4ui2h4m7lp.webp" alt=" " width="800" height="121"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ColumnTransformer points each small pipeline at the right columns. It sends numeric columns through numerical_pipeline and categorical columns through categorical_pipeline. The result, preprocessor, handles the whole dataset correctly in one call, so every column gets the treatment it actually needs instead of one-size-fits-all cleaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Compare Models with Cross-Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgyamgwgczfh38l4sh75m.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgyamgwgczfh38l4sh75m.webp" alt=" " width="800" height="672"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The block of code above first sets up StratifiedKFold(n_splits=5, shuffle=True, random_state=42), which splits the training data into 5 parts while keeping the survived/died ratio balanced in every part, and this is important here, since more passengers died than survived, and an unbalanced split could make a model look better or worse than it really is.&lt;/p&gt;

&lt;p&gt;The loop then builds a &lt;strong&gt;fresh pipeline&lt;/strong&gt; for each model, chaining preprocessor → model. That way every model gets its own correctly-run preprocessing, instead of sharing an already-fitted copy that might carry information it shouldn't have.&lt;/p&gt;

&lt;p&gt;cross_val_score(..., scoring="f1") trains and tests each pipeline 5 times, once per fold, scoring with &lt;strong&gt;F1&lt;/strong&gt; which is a measure that balances catching real survivors against false "survived" predictions. It is often preferred over plain accuracy when one outcome is more common than the other, as is the case here. The mean and standard deviation of those 5 scores get saved per model. The mean shows average performance, and the standard deviation shows how much it swung between folds. In this regard, a model with a high mean and low standard deviation is both strong and reliable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Reading the Results&lt;/strong&gt;&lt;br&gt;
svm came out on top overall, reaching as high as 0.785 on one fold. random_forest and gradient_boosting followed close behind. kneighbours scored lower and bounced around more between folds, which means it was less consistent, not just weaker on average. Looking at all 5 scores per model, rather than just one number, makes it possible to judge both how well a model performs and how much you can trust that performance to hold up on new data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pattern Worth Noticing&lt;/strong&gt;&lt;br&gt;
Every model reuses the same preprocessor, but a fresh pipeline gets built for each one, refit from scratch inside every fold. If preprocessor had been fitted once outside the loop and reused everywhere, information could leak from test folds into training which is the exact problem pipelines exist to prevent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Across all five steps, the same idea keeps showing up, and this to build small pieces, combine them, and always test through the whole combined pipeline rather than one part in isolation. Two small pipelines handled the numeric and categorical columns separately. ColumnTransformer merged them into one preprocessor. A fresh full pipeline was built per model, and StratifiedKFold with cross_val_score tested each one fairly, five times over, without leaking data between folds. That combination is what made it possible to compare six very different models on equal footing, and to trust that the winning score was not just luck.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>python</category>
    </item>
    <item>
      <title>Introduction to Python for Data Analysis</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Fri, 15 May 2026 06:55:28 +0000</pubDate>
      <link>https://dev.to/billymuli/introduction-to-python-for-data-analysis-2abo</link>
      <guid>https://dev.to/billymuli/introduction-to-python-for-data-analysis-2abo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; is a programming language used for data analysis, artificial intelligence, create software, apps and automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason for Python Popularity&lt;/strong&gt;&lt;br&gt;
-It is east to read and learn because of its syntax.&lt;br&gt;
-It works well with large datasets thus do ETL processes.&lt;br&gt;
-It is good for visualization.&lt;br&gt;
-Python can also automate tasks e.g generating reports&lt;br&gt;
-It also has powerful libraries e.g pandas, matplotlib, scikit-learn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python Libraries used in Data Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pandas&lt;/strong&gt;- It is used for tables and datasets&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matplotlib&lt;/strong&gt;-It is used for charts and graphs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Numpy&lt;/strong&gt;-It is the fundamental package for computing in python. It provides support for large, multi-dimensional arrays and matrices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scikit-learn-&lt;/strong&gt;It is the go to machine learning library in python&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real World examples of Python in Data Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Business and Finance-Used for customer and revenue analytics, customer lifetime modelling and risk and fraud detection.&lt;br&gt;
2.Healthcare-Used for clinical data analysis by processing electronic health records extracts to identify patient cohorts,&lt;br&gt;
treatment outcomes and adverse event patterns.&lt;br&gt;
3.Operations and Supply Chain-Retailers like Walmart use python to build time-series model, predict inventory needs by region.&lt;br&gt;
4.Public Sector and Research-Governments use Python to weight survey responses, impute missing data and generate population estimates.&lt;/p&gt;

&lt;p&gt;Beginners should learn python because it removes friction at nearly every stage of learning, lets you focus on problem-solving rather than fighting the language itself&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>beginners</category>
      <category>database</category>
    </item>
    <item>
      <title>A Practical Introduction to SQL: DDL, DML, and Data Analysis</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Fri, 15 May 2026 06:45:54 +0000</pubDate>
      <link>https://dev.to/billymuli/a-practical-introduction-to-sql-ddl-dml-and-data-analysis-17hj</link>
      <guid>https://dev.to/billymuli/a-practical-introduction-to-sql-ddl-dml-and-data-analysis-17hj</guid>
      <description>&lt;p&gt;&lt;strong&gt;What are DDL and DML?&lt;br&gt;
DDL (Data Definition Language)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DDL refers to SQL commands used to define and manage the structure of a database. These commands control how data is stored.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;1.CREATE – used to create tables or databases &lt;br&gt;
2.ALTER – used to modify existing structures&lt;br&gt;
3.DROP – used to delete tables or databases&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ly3oukkq1y31lam858k.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ly3oukkq1y31lam858k.webp" alt=" " width="800" height="494"&gt;&lt;/a&gt;&lt;br&gt;
Table structure after executing CREATE statement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DML (Data Manipulation Language)&lt;/strong&gt;&lt;br&gt;
DML deals with the data inside the database. It allows you to insert, update, retrieve, and delete data.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;1.INSERT – adds new records&lt;br&gt;
2.UPDATE – modifies existing records&lt;br&gt;
3.DELETE – removes records&lt;br&gt;
4.SELECT – retrieves data&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtq5h4znxtlxrcq09txx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtq5h4znxtlxrcq09txx.webp" alt=" " width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference&lt;/strong&gt;&lt;br&gt;
DDL focuses on the &lt;strong&gt;structure&lt;/strong&gt;, while DML focuses on the &lt;strong&gt;data itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In simple terms,** DDL builds the house*&lt;em&gt;, and&lt;/em&gt;* DML manages what’s inside it.**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application of CREATE, INSERT, UPDATE, and DELETE&lt;/strong&gt;&lt;br&gt;
In this assignment, I used several SQL commands to build and manage a school database:&lt;/p&gt;

&lt;p&gt;I used the CREATE statement to define tables such as students, subjects, and exam_results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;INSERT&lt;/strong&gt;&lt;br&gt;
The INSERT statement was used to populate tables with data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;br&gt;
I used UPDATE to modify existing data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frite6lc0w5jcmffal5r9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frite6lc0w5jcmffal5r9.png" alt=" " width="568" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DELETE&lt;/strong&gt;&lt;br&gt;
Used to remove incorrect or unnecessary records.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1w50h91qjrjpu8suw754.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1w50h91qjrjpu8suw754.png" alt=" " width="514" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filtering Data with WHERE&lt;/strong&gt;&lt;br&gt;
The WHERE clause is essential for retrieving specific data.&lt;/p&gt;

&lt;p&gt;Operators used:&lt;/p&gt;

&lt;p&gt;= → exact match&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;→ greater than&lt;br&gt;
BETWEEN → range filtering&lt;br&gt;
IN → multiple values&lt;br&gt;
LIKE → pattern matching&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96hw44lax8r4rex7z31f.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96hw44lax8r4rex7z31f.webp" alt=" " width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using CASE WHEN for Data Transformation&lt;/strong&gt;&lt;br&gt;
The CASE WHEN statement applies conditional logic.&lt;/p&gt;

&lt;p&gt;Example classification:&lt;/p&gt;

&lt;p&gt;1.Marks ≥ 80 → Distinction&lt;br&gt;
2.Marks ≥ 60 → Merit&lt;br&gt;
3.Marks ≥ 40 → Pass&lt;br&gt;
4.Below 40 → Fail&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvba808s0kgbxbjh4sblm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvba808s0kgbxbjh4sblm.webp" alt=" " width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflection&lt;/strong&gt;&lt;br&gt;
This week was both challenging and rewarding. Errors like incorrect column names and missing tables helped me understand how strict SQL is and the importance of attention to detail.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Publish a Power BI Report and Embed It into a Website</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Mon, 13 Apr 2026 08:52:27 +0000</pubDate>
      <link>https://dev.to/billymuli/how-to-publish-a-power-bi-report-and-embed-it-into-a-website-3ng3</link>
      <guid>https://dev.to/billymuli/how-to-publish-a-power-bi-report-and-embed-it-into-a-website-3ng3</guid>
      <description>&lt;p&gt;&lt;strong&gt;What Is Power BI ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6b8i7gsb5nglu2kb4aoc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6b8i7gsb5nglu2kb4aoc.jpg" alt=" " width="32" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.Power BI is Microsoft’s tool for turning data into visual stories.&lt;/p&gt;

&lt;p&gt;.No one benefits from a report that is sitting on your laptop. Publishing makes it available online so that anyone, including your lecturer and team, may view it in a browser without the requirement for Power BI Desktop. Additionally, embedding takes it a step further by dropping your interactive, live report directly into a website, much like a movie player for data&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create a Workspace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of a workspace as a shared folder in the cloud. It’s where your published report lives so others can find it.&lt;/p&gt;

&lt;p&gt;Here’s how to set one up:&lt;/p&gt;

&lt;p&gt;1.Go to app.powerbi.com and sign in with your Microsoft account.&lt;br&gt;
 2.0n the left sidebar, click the Workspaces icon (it looks like a briefcase).&lt;br&gt;
 3.Scroll to the bottom of the panel and click + Create a workspace.&lt;br&gt;
 4.Give it a clear name — something like Electronics Sales Dashboard works perfectly.&lt;br&gt;
 5.Optionally add a short description, then click Save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt1ll53gheqmcxqbamud.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt1ll53gheqmcxqbamud.webp" alt=" " width="720" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Publish Your Report&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Open your .pbix file in Power BI Desktop.&lt;br&gt;
 2.Make sure you’re signed in — look for your name in the top-right corner. If it says Sign In, click it and enter your Microsoft credentials.&lt;br&gt;
 3.Go to the Home tab in the ribbon and click the yellow Publish button (far right).&lt;br&gt;
 4.A dialog box appears asking where to publish. Select the workspace you just created.&lt;br&gt;
 5.Click Select and wait. It usually takes under a minute. When you see ‘Publishing to Power BI succeeded!’ — you’re done!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqt9afvt6gpv04ikjjw4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqt9afvt6gpv04ikjjw4.webp" alt=" " width="720" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Generate the Embed Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The embed code is a small snippet of HTML that tells a web page to load your Power BI report inside it. Here’s how to get it:&lt;/p&gt;

&lt;p&gt;1.Open your published report in app.powerbi.com.&lt;br&gt;
 2.Click File (top-left) or the Share button, then hover over Embed report.&lt;br&gt;
 3.From the submenu, select Publish to web (public).&lt;br&gt;
 4.Read the warning — this makes your report viewable by anyone with the         link, which is fine for an academic assignment. Click Create embed code.&lt;br&gt;
 5.A box appears with two things: a share link (for email) and an iFrame code (for websites). Copy the iFrame code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Embed the Report on a Website&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Open your HTML file in a code editor like VS Code.&lt;br&gt;
 2.Find the spot in the where you want the report to appear.&lt;br&gt;
 3.Paste your iFrame code there. Wrap it in a&lt;br&gt;
if you want to add a heading above it.&lt;br&gt;
 4.Save the file and open it in your browser. Your live report should load right there on the page.&lt;/p&gt;

&lt;p&gt;On WordPress&lt;/p&gt;

&lt;p&gt;1.Open the page editor in WordPress.&lt;br&gt;
 2.Add a Custom HTML block.&lt;br&gt;
 3.Paste your iFrame code into the block.&lt;br&gt;
 4.Click Update or Publish — done.&lt;/p&gt;

&lt;p&gt;Uploading Your .pbix File to GitHub&lt;/p&gt;

&lt;p&gt;1.Go to github.com and log in (or create a free account if you don’t have one).&lt;br&gt;
 2.Click the + icon (top right) → New repository. Name it something like electronics-sales-powerbi. Set it to Public and click Create repository.&lt;br&gt;
 3.Inside the repo, click Add file → Upload files. Drag your .pbix file in and click Commit changes.&lt;br&gt;
 4.Create a README.md file. Add a one-line description and paste your Power BI embed link so your instructor can view the live report directly from GitHub.&lt;br&gt;
 5.Copy the repo URL from your browser (e.g. github.com/yourname/electronics-sales-powerbi) and submit it.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Understanding Data modeling in power BI: Joins, relationships and Schemas explained</title>
      <dc:creator>Bill Muli</dc:creator>
      <pubDate>Sun, 29 Mar 2026 21:44:10 +0000</pubDate>
      <link>https://dev.to/billymuli/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-277d</link>
      <guid>https://dev.to/billymuli/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-277d</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data modeling is the backbone of every effective Power BI report. If dashboards feel slow, filters behave incorrectly, or numbers don’t match expectations, the issue is often the data model not the visuals.&lt;/p&gt;

&lt;p&gt;This guide explains how data modeling works in Power BI step‑by‑step. You’ll learn SQL joins, relationships, schemas, fact vs dimension tables, role‑playing dimensions, and how everything is created inside Power BI itself.&lt;/p&gt;

&lt;p&gt;This article is beginner‑friendly but structured like a professional BI reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL Joins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although Power BI relies on relationships, understanding SQL joins helps you prepare and transform data effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;INNER JOINS&lt;/strong&gt;&lt;br&gt;
Returns only matching records from both tables.&lt;/p&gt;

&lt;p&gt;.** LEFT JOIN **&lt;/p&gt;

&lt;p&gt;Returns all records from the left table and matching ones from the right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RIGHT JOIN (RIGHT OUTER JOIN)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Returns all records from the right table and matching ones from the left.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FULL OUTER JOIN&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Returns all records from both tables, matching where possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LEFT ANTI JOIN&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Returns records from the left table that have no match in the right.&lt;br&gt;
**&lt;br&gt;
RIGHT ANTI JOIN**&lt;/p&gt;

&lt;p&gt;Returns records from the right table that have no match in the left.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Power BI Handles Joins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI does not explicitly use SQL join syntax in reports. Instead:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power Query&lt;/strong&gt; → Performs joins (Merge Queries)&lt;br&gt;
&lt;strong&gt;Data Model&lt;/strong&gt; → Uses relationships instead of joins&lt;br&gt;
Key Difference:&lt;br&gt;
&lt;strong&gt;SQL Join **→ Combines tables physically&lt;br&gt;
**Power BI Relationship&lt;/strong&gt; → Connects tables logically&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Modeling Schemas&lt;/strong&gt;&lt;br&gt;
1*&lt;em&gt;. Star Schema&lt;/em&gt;* &lt;/p&gt;

&lt;p&gt;Central fact table connected to multiple dimension tables.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
         Customers&lt;br&gt;
             |&lt;br&gt;
Products ─ Orders ─ Dates&lt;br&gt;
             |&lt;br&gt;
         Sales&lt;br&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;br&gt;
Fast performance&lt;br&gt;
Easy to understand&lt;br&gt;
Best for Power BI&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Snowflake Schema&lt;/strong&gt;
Dimension tables are further normalized into multiple related tables.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drawbacks:&lt;br&gt;
More complex&lt;br&gt;
Slightly slower queries&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Practices for Power BI Data Modeling&lt;/strong&gt;&lt;br&gt;
Use Star Schema whenever possible&lt;br&gt;
Avoid many-to-many relationships unless necessary&lt;br&gt;
Use clean keys (IDs) for relationships&lt;br&gt;
Remove duplicate and unnecessary columns&lt;br&gt;
Use Power Query for joins, not DAX&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Understanding data modeling is essential for building reliable Power BI dashboards. While SQL joins help shape your data during preparation, Power BI relationships allow for dynamic and efficient analysis.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>dataengineering</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
