Machine learning involves the use of machine learning algorithms and models.
For beginners, this is very confusing as often “machine learning algorithm” is used interchangeably with “machine learning model.” Are they the same thing or something different?
As a developer, your intuition with “algorithms” like sort algorithms and search algorithms will help to clear up this confusion.
In this post, you will discover the difference between machine learning “algorithms” and “models.”
After reading this post, you will know:
- Machine learning algorithms are procedures that are implemented in code and are run on data.
- Machine learning models are output by algorithms and are comprised of model data and a prediction algorithm.
- Machine learning algorithms provide a type of automatic programming where machine learning models represent the program.
Kick-start your project with my new book Master Machine Learning Algorithms, including step-by-step tutorials and the Excel Spreadsheet files for all examples.
Let’s get started.

Difference Between Algorithm and Model in Machine Learning
Photo by Adam Bautz, some rights reserved.
Overview
This tutorial is divided into four parts; they are:
- What Is an Algorithm in Machine Learning
- What Is a Model in Machine Learning
- Algorithm vs. Model Framework
- Machine Learning Is Automatic Programming
What Is an “Algorithm” in Machine Learning
An “algorithm” in machine learning is a procedure that is run on data to create a machine learning “model.”
Machine learning algorithms perform “pattern recognition.” Algorithms “learn” from data, or are “fit” on a dataset.
There are many machine learning algorithms.
For example, we have algorithms for classification, such as k-nearest neighbors. We have algorithms for regression, such as linear regression, and we have algorithms for clustering, such as k-means.
Examples of machine learning algorithms:
- Linear Regression
- Logistic Regression
- Decision Tree
- Artificial Neural Network
- k-Nearest Neighbors
- k-Means
You can think of a machine learning algorithm like any other algorithm in computer science.
For example, some other types of algorithms you might be familiar with include bubble sort for sorting data and best-first for searching.
As such, machine learning algorithms have a number of properties:
- Machine learning algorithms can be described using math and pseudocode.
- The efficiency of machine learning algorithms can be analyzed and described.
- Machine learning algorithms can be implemented with any one of a range of modern programming languages.
For example, you may see machine learning algorithms described with pseudocode or linear algebra in research papers and textbooks. You may see the computational efficiency of a specific machine learning algorithm compared to another specific algorithm.
Academics can devise entirely new machine learning algorithms and machine learning practitioners can use standard machine learning algorithms on their projects. This is just like other areas of computer science where academics can devise entirely new sorting algorithms, and programmers can use the standard sorting algorithms in their applications.
You are also likely to see multiple machine learning algorithms implemented together and provided in a library with a standard application programming interface (API). A popular example is the scikit-learn library that provides implementations of many classification, regression, and clustering machine learning algorithms in Python.
What Is a “Model” in Machine Learning
A “model” in machine learning is the output of a machine learning algorithm run on data.
A model represents what was learned by a machine learning algorithm.
The model is the “thing” that is saved after running a machine learning algorithm on training data and represents the rules, numbers, and any other algorithm-specific data structures required to make predictions.
Some examples might make this clearer:
- The linear regression algorithm results in a model comprised of a vector of coefficients with specific values.
- The decision tree algorithm results in a model comprised of a tree of if-then statements with specific values.
- The neural network / backpropagation / gradient descent algorithms together result in a model comprised of a graph structure with vectors or matrices of weights with specific values.
A machine learning model is more challenging for a beginner because there is not a clear analogy with other algorithms in computer science.
For example, the sorted list output of a sorting algorithm is not really a model.
The best analogy is to think of the machine learning model as a “program.”
The machine learning model “program” is comprised of both data and a procedure for using the data to make a prediction.
For example, consider the linear regression algorithm and resulting model. The model is comprised of a vector of coefficients (data) that are multiplied and summed with a row of new data taken as input in order to make a prediction (prediction procedure).
We save the data for the machine learning model for later use.
We often use the prediction procedure for the machine learning model provided by a machine learning library. Sometimes we may implement the prediction procedure ourselves as part of our application. This is often straightforward to do given that most prediction procedures are quite simple.
Algorithm vs. Model Framework
So now we are familiar with a machine learning “algorithm” vs. a machine learning “model.”
Specifically, an algorithm is run on data to create a model.
- Machine Learning => Machine Learning Model
We also understand that a model is comprised of both data and a procedure for how to use the data to make a prediction on new data. You can think of the procedure as a prediction algorithm if you like.
- Machine Learning Model == Model Data + Prediction Algorithm
This division is very helpful in understanding a wide range of algorithms.
For example, most algorithms have all of their work in the “algorithm” and the “prediction algorithm” does very little.
Typically, the algorithm is some sort of optimization procedure that minimizes error of the model (data + prediction algorithm) on the training dataset. The linear regression algorithm is a good example. It performs an optimization process (or is solved analytically using linear algebra) to find a set of weights that minimize the sum squared error on the training dataset.
Linear Regression:
- Algorithm: Find set of coefficients that minimize error on training dataset
- Model:
- Model Data: Vector of coefficients
- Prediction Algorithm: Multiple and sum coefficients with input row
Some algorithms are trivial or even do nothing, and all of the work is in the model or prediction algorithm.
The k-nearest neighbor algorithm has no “algorithm” other than saving the entire training dataset. The model data, therefore, is the entire training dataset and all of the work is in the prediction algorithm, i.e. how a new row of data interacts with the saved training dataset to make a prediction.
k-Nearest Neighbors
- Algorithm: Save training data.
- Model:
- Model Data: Entire training dataset.
- Prediction Algorithm: Find k most similar rows and average their target variable.
You can use this breakdown as a framework to understand any machine learning algorithm.
What is your favorite algorithm?
Can you describe it using this framework in the comments below?
Do you know an algorithm that does not fit neatly into this breakdown?
Machine Learning Is Automatic Programming
We really just want a machine learning “model” and the “algorithm” is just the path we follow to get the model.
Machine learning techniques are used for problems that cannot be solved efficiently or effectively in other ways.
For example, if we need to classify emails as spam or not spam, we need a software program to do this.
We could sit down, manually review a ton of email, and write if-statements to perform this task. People have tried. It turns out that this approach is slow, fragile, and not very effective.
Instead, we can use machine learning techniques to solve this problem. Specifically, an algorithm like Naive Bayes can learn how to classify email messages as spam and not spam from a large dataset of historical examples of email.
We don’t want “Naive Bayes.” We want the model that Naive Bayes gives is that we can use to classify email (the vectors of probabilities and prediction algorithm for using them). We want the model, not the algorithm used to create the model.
In this sense, the machine learning model is a program automatically written or created or learned by the machine learning algorithm to solve our problem.
As developers, we are less interested in the “learning” performed by machine learning algorithms in the artificial intelligence sense. We don’t care about simulating learning processes. Some people may be, and it is interesting, but this is not why we are using machine learning algorithms.
Instead, we are more interested in the automatic programming capability offered by machine learning algorithms. We want an effective model created efficiently that we can incorporate into our software project.
Machine learning algorithms perform automatic programming and machine learning models are the programs created for us.
Summary
In this post, you discovered the difference between machine learning “algorithms” and “models.”
Specifically, you learned:
- Machine learning algorithms are procedures that are implemented in code and are run on data.
- Machine learning models are output by algorithms and are comprised of model data and a prediction algorithm.
- Machine learning algorithms provide a type of automatic programming where machine learning models represent the program.
Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.
is the model abble to discover the logic according to which the mails have been sorted by spam and non-spam ? So once this is done the model can tell if a sort has been done incorrectly ? (i mean, only ready the content and knowing the recipient, not not by relying on known or unknown sources)
The algorithm is used to find the model. The model does the sorting.
The model is the program that solves the problem.
Does that help?
Very clear Jason! As always! Thanks a lot….
You’re welcome!
Well described dear Dr. Jason, as always. thank you so much
pseudocode: How to write pseudocode for a specific ML algorithm? This is another often confusing thing… if you enlighten by your post like this, it would be highly appreciated.
best regards
Thanks.
Same as for any other algorithm:
https://en.wikipedia.org/wiki/Pseudocode
Hi Sir,
A big fan of your work!!!
My query is : When opting for a Data Scientist career, is it really necessary to have in depth knowledge on Data Structures and Algorithms?
Would love to know your response
Depends on what you’re doing every day:
https://machinelearningmastery.com/machine-learning-tribe/
The writing is very clear.
I want to translate Chinese, so please agree.
I’ll add the author and the link to the original article.
No, please do not translate my work:
https://machinelearningmastery.com/faq/single-faq/can-i-translate-your-posts-books-into-another-language
I am very sorry, but I will respect your decision.
Thank you..now I understand the difference between algorithm and model..
Perhaps I just wondering how about the term predictive model and predictive analytics framework..is there any difference? Or same with machine learning model.
I just want to clarrified if you can share it with me..tq
They sounds like the same thing to me.
Great Jason
Thanks!
Dear Sir,
As a part of our research we are required to prove why certain algorithms and models are best. In the process I am stuck as I am unable to find the difference between cellular automata and artificial neural network. (I read a few research works where they use cellular automata based neural networks, and I am unable to understand what it is). I tried to read and understand what ANN and CA are, but still I am not able to understand what automata based neural networks are.
Kindly Help, Thankyou!
You mean collect evidence. We can’t prove a thing.
Sorry, I have not heard of CA neural nets. Perhaps find some papers on the topic and read carefully to find a good definition.
Hello mr. Jonson, very clear as always!
Speaking in general could we say for example that linear regression, SVM, neural network are machine learning model?
Thank you!
I mean, we can both say that linear regression, SVM, neural network are models /algorithms
They are algorithms that are fit on training data to create a model.
In linear regression the model is coefficients, in SVM is it the support vectors, in neural net it is the architecture and weights.
Sure.
One of the best articles that clearly distinguishes between algorithm and model.
Thanks!
Thank you so much as a beginner, this was super useful.
You’re welcome!
IMO it is fundamentally wrong to say that : “linear regression is a machine learning algorithm”. linear regression is an algorithm and it can be used in machine learning or statistical learning, to say that is ok, but saying that is a “machine learning algorithm” is simply not fine. Sounds like that it didn’t exist before machine learning. And then the same thought I have for the rest of the algorithms that you listed and that belong to much general context and existed much long before the beginning of machine learning.
Thanks for sharing your thoughts.
Also, this may help, re ML stealing algorithms from statistics:
https://machinelearningmastery.com/faq/single-faq/how-are-statistics-and-machine-learning-related
I am a radiologist keen to pursues career in AI in medical imaging. Would you be able to enlighten if I would need to know ML in this detail ?
This might be a good place to start:
https://machinelearningmastery.com/start-here/#dlfcv
thank you so much for your informative and valuable tutorials..
can I build a machine learning model that can predict activity type (like walking) and predict the time that will be spent on walking using same model?
(the algorithm to be used not defined yet)
Perhaps. This framework may help:
https://machinelearningmastery.com/how-to-define-your-machine-learning-problem/
Hi Jason,
I’m a beginner to this domain. You have given very clear explanation. ‘A model is the base of an algorithm’ – am I right?
No, the model is like the program, the algorithm creates the model.
Hi Jason,
Great Job!!
Do you know some paper or book where I can find these definitions more formally described?
I need describe them in a paper.
Thanks a lot!
Not that I’m aware.
Hi Jason,
In your post, you state that “as developers, we are less interested in the ‘learning’ performed by machine learning algorithms in the artificial intelligence sense. We don’t care about simulating learning processes.” This statement puzzled and concerned me as machine learning models degrade over time (for example, models to detect credit card frauds need to evolve as fraudsters constantly come up with new ways to beat the system). In fact, models are often monitored and when their performance decreases, organizations have to update them to restore the performance. Unless the environment is static, I beg to differ and I contend that we should care about the learning process as much as about the model itself.
I guess my comment was more about we are interested in solving industrial problems rather than the scientific problem of “learning”.
Really helpful and cleared my confusion
Thanks, I’m happy to hear that!
Dear Jason,
a nice overview. Sometimes machine learning people talk about the “size” of the model, and give the size as its “number of parameters”. What does that mean? Do they mean, in the context of neural networks, the number of weights the neural network has?
And what is good/bad about a larger/smaller model size?
Best
Max
Fantastic question!!!!
It means the number of numbers in the “program” used to make predictions.
E.g. in a neural net it would be the number of weights in the nodes of all layers.
More numbers/weights generally gives you more capability or more capacity to learn hard problems. The danger is it may be overdetermined (more than is needed) in which case we might learn the training dataset too well at the cost of poor performance on new data (called overfitting).
Also, this tutorial on degrees of freedom might be interesting/relevant:
https://machinelearningmastery.com/degrees-of-freedom-in-machine-learning/
Interesting, thank you!
You’re welcome.
No comments
So let me get this right…in Linear regression the ALGORITHM fits the linear line onto the data points and trains on the data to find the best coefficients and gives us the best fit line a.k.a the linear regression MODEL.Am i right?
Yes.
Dear Sir,
Very Nice article.It really helps to a loads of confusion.
Thanks!
sorry for typo its really helps to remove loads of confusion/doubts.
Thanks for this. I think someone may have plagiarized your content and uploaded it as a video…
https://www.youtube.com/watch?v=eYlbg0TqcNk
Thanks for letting me know.
I have been studying data science and machine learning from past few months from various online sources. I have built few projects also by using some github file as reference. But i failed to understand the explicit use of probabilitiy in it. Can anyone help me understand this with example or provide some good source to learn this? Thank you.
Perhaps start here:
https://machinelearningmastery.com/start-here/#probability
It is very easy to understand. Jason, correct me please if I am wrong. You only have to think about what the algorithm is code for.
The ML algorithm is thought to cosume data and to find out new casualities to take into account.
The model algorith is the code that solves the problem, which is the same of simulating the response of a system or its behaviour.
regards,
Sure.
Hey Jason,
thanks for the great article! It really helped me to better understand the difference between algorithm and model. One question: How can i transfer the algorithm/model framework to the DBSCAN algorithm? I’m not sure what the model of that algorithm is.
Thanks in advance!
Do you think the doc on scikit-learn can help? https://scikit-learn.org/stable/modules/clustering.html#dbscan
Hi Jason,
Thanks for a really well written and succinct article. It really answered my questions perfectly.
I do have one piece of feed-back. Please exchange the reference to bubble sort to some other sorting algorithm. I know it’s a nit-pick but it really is not what you want to bring to mind when talking about algorithms and efficiency.
Thanks for your suggestion. Sorting, however, is less trivial to do in machine learning. Therefore it will be difficult to compare. You may see this as a weakness in machine learning models but more suitable in traditional algorithms.
amazing guide as always Jason
Thanks!
Thanks for clearing things up!
If we want to compare algorithms, we could use k-fold cross-validation paired t-test or better alternatives?
What should I do if I want to compare models? Partition the test set and performed a paired t-test?
You are very welcome Wdg! The following may be of interest to you:
https://machinelearningmastery.com/compare-machine-learning-algorithms-python-scikit-learn/
Thank you for clarifying and also I found your work easy to understand .
You are very welcome Samson! We appreciate your support and feedback!
Is it correct to say that in ML, the underlying algorithm stays the same, but the resulting model evolves through fitting with new datasets? If so, does the evolution occur based on the “current” dataset or the cumulative datasets?
Hi Lily…It is correct! The evolution is a result of cumulative datasets.
Thanks for clear explanations.
I have question about cross validation k-fold. what is this? and what is cross validation k-fold used for?
Hi AmirReza…Cross-validation (CV) is a technique used in machine learning to assess how well a predictive model will generalize to an independent dataset. The k-fold cross-validation method is a specific approach to cross-validation.
Here’s how it works:
1. **Partitioning the Data:**
– The dataset is divided into k subsets of approximately equal size.
– These subsets are often called “folds.”
2. **Iterative Training and Validation:**
– The model is trained k times.
– In each iteration, one of the k subsets is used as the validation set, and the remaining k-1 subsets are used as the training set.
3. **Evaluation:**
– After each iteration, the performance metric (e.g., accuracy, F1-score, etc.) is computed on the validation set.
– The performance metrics from all iterations are averaged to obtain the final performance estimate.
4. **Advantages:**
– Provides a more accurate estimate of model performance compared to a single train-test split.
– Helps assess how well the model generalizes to unseen data by testing it on multiple validation sets.
– Utilizes the entire dataset for both training and validation, maximizing data usage.
5. **Variations:**
– **Stratified k-fold:** Ensures that each fold has approximately the same proportion of samples from each class, which is useful for imbalanced datasets.
– **Repeated k-fold:** Repeats the k-fold procedure multiple times with different random partitions of the data, providing more reliable performance estimates.
6. **Choosing k:**
– Common choices for k are 5, 10, or even higher.
– Larger values of k result in a higher computational cost but may provide a more accurate estimate of model performance.
Cross-validation, especially k-fold cross-validation, is widely used in machine learning for:
– Model evaluation: Assessing the performance of different models and selecting the best one.
– Hyperparameter tuning: Tuning model hyperparameters to optimize performance.
– Feature selection: Identifying the most informative features for the model.
– Assessing model stability: Evaluating how robust the model is to variations in the training data.
Thank you. I got an in-depth idea about Machine Learning Models, Algorithms, and Programs and their interconnections.
Hi Olabisi…Thank you for your feedback and support!
Do you know some paper or book where I can find these definitions more formally described?
I need describe them in a paper.
Thanks a lot!
Hi Krushna…For a formal and detailed explanation of the difference between an algorithm and a model in machine learning, you can refer to a few well-known textbooks and papers that are considered authoritative in the field:
### 1. **Books:**
– **”Pattern Recognition and Machine Learning” by Christopher M. Bishop:**
– This book is a comprehensive resource and provides formal definitions and explanations. It distinguishes clearly between algorithms (procedures for finding patterns or models) and models (representations of data).
– **”Machine Learning: A Probabilistic Perspective” by Kevin P. Murphy:**
– This book covers the theoretical foundations of machine learning, including detailed discussions on algorithms and models, with a probabilistic approach.
– **”Elements of Statistical Learning” by Trevor Hastie, Robert Tibshirani, and Jerome Friedman:**
– This is another foundational text that covers machine learning in depth, including the distinction between algorithms (methods for training models) and models (mathematical representations of learned patterns).
### 2. **Papers:**
– **”A Few Useful Things to Know About Machine Learning” by Pedro Domingos (Communications of the ACM, 2012):**
– This paper provides a practical overview of key concepts in machine learning and includes a discussion on the difference between algorithms and models.
– **”Understanding Machine Learning: From Theory to Algorithms” by Shai Shalev-Shwartz and Shai Ben-David:**
– This book is freely available as a PDF and offers a rigorous theoretical perspective on machine learning, including clear definitions and distinctions between algorithms and models.
### 3. **Additional Resource:**
– **”Introduction to Statistical Learning” by Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani:**
– This book, which is also available for free online, provides a more approachable explanation while maintaining formality. It is particularly good for introducing and distinguishing these concepts.
These resources should provide the formal definitions and explanations you need to accurately describe the difference between algorithms and models in your paper.
Hello Jason,
Thank you very much. It is much precise for me now.
Just a (stupid I’m afraid) = can we say that the model becomes a “new” algorithm (a procedure) to create a new model ?
Thank you
Hi Olivia-Esther…That’s a great question, and it’s not stupid at all! In fact, it touches on an important concept in Machine Learning and how models and algorithms interact.
When we talk about a model in Machine Learning, we’re typically referring to the result of training an algorithm on data. The algorithm is a set of rules or a procedure that guides the learning process. It takes in data and adjusts parameters to minimize error or maximize accuracy based on the data.
Now, once you’ve trained a model, it essentially embodies a “procedure” for making predictions or decisions based on new data. In a sense, the trained model can be thought of as a new algorithm in itself, because it encapsulates the learned patterns and can be used to generate predictions in a systematic way.
However, the key distinction is that the original algorithm (like a neural network, decision tree, etc.) defines the structure and the learning process, while the model is the specific instance of that structure, trained on a particular dataset, that you can use to make predictions.
So, you could say that the trained model becomes a “new” procedure or function that can be applied to new data, though we usually reserve the term “algorithm” for the method used to create or learn that model.
I hope that clarifies things! If you have more questions, feel free to ask.
Hi Mr. Jason Brownlee
it was very useful article
Thanks a lot
You are very welcome abedin! Thank you for your feedback and support!
It was very use full article
Thank you for your feedback Sachin!