Trending December 2023 # How To Use Google Tasks: The Complete Guide # Suggested January 2024 # Top 20 Popular

You are reading the article How To Use Google Tasks: The Complete Guide updated in December 2023 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested January 2024 How To Use Google Tasks: The Complete Guide

Whether it’s taking out the garbage or picking up your suit from the dry cleaners, there are always things you need to get done. You may already have a to-do app installed to stay on top of things, but you can bet that Google would like you to try their Task appg.

If you like apps that keep things simple, then you just might like the Google Tasks app. At least you have the assurance that the app is from a company whose other services you’re probably already using.

What Google Tasks Has to Offer (Android)

Besides offering a very essential feature for a to-do app, Google Tasks also makes the app easy to use. Tap on the “Add a new task” button and add what you need to do. To add details to your new task, tap on the “+” sign.

If you select the uneven lines, you can add details to your new task, and by tapping on the Calendar icon, you can also add a date. So far, there are no options to add an image or a specific time to your task.

You can also change your list’s name if you’re not happy with the name. Tap on the three vertical dots at the bottom-right, and there you can either change the name or delete altogether. At the top you can also change the order you see your tasks. For example, you can either sort them by date, or you can order them in the way you created them.

There’s also the possibility of adding sub-tasks to your already-created tasks.  If you’ve already created your task, just tap on it, and the “Add subtasks” option should be the last one.

Tap on the dropdown menu to the side of the name of the task, and you can move your task to another list. When you’ve completed a task, tap on the empty circle to the side of the task, and it will be placed in the completed tasks list. To edit your task, just tap on the pencil icon.

Drag and Drop Your Tasks

Placing your tasks in a different order is also possible. Long-press on the task you want to move and drop it in the order you want. You can even make a particular task stand out from the rest by placing the task slightly to the right  of where you drop it.

Having a task placed slightly to the right from the rest is something that can’t be done on the desktop version.

Google Tasks on Your Desktop

Once you have the new design, you’ll see a couple of icons right below your profile picture. One of those icons will be Tasks, and it will have a blue circle with a while pencil in the middle.

This last option does not appear on Tasks for Android. Instead, it offers an option to delete all completed tasks.

How to Add an Email to Google Tasks List

If there’s an email you’ve been meaning to answer but just keep forgetting, add it to your task list. Just find the email and drag it to your already-open task list.


Fabio Buckell

Just a simple guy that can’t enough of Technology in general and is always surrounded by at least one Android and iOS device. I’m a Pizza addict as well.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.

By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time.

You're reading How To Use Google Tasks: The Complete Guide

A Complete Guide To The Google Fred Algorithm

March 8, 2023, was a day that started out like any other…

You were sat at your desk, casually sipping your first cup of coffee and catching up with the search news here on Search Engine Journal, or perhaps scrolling through your Facebook feed, when it hit you…

You headed over to your favorite rank-checking tool.

“Please God, just let my site/clients be OK,” you quietly prayed.

Depending on your strategies and sites, the impact was almost certainly significant. Losers lost big, and the winners took their place.

Fred was here.

Why Name the Algorithm Fred?

According to Google’s very sarcastic Gary Illyes, ‘Fred’ is the name of every update Google doesn’t give us a name for.

sure! From now on every update, unless otherwise stated, shall be called Fred

— Gary 鯨理/경리 Illyes (@methode) March 9, 2023

With that said, when we refer to the “Fred Update,” we are typically referring to the update that rolled out on March 7, 2023.

Unless otherwise noted, any reference to Fred below will be in this context and not a compilation of all the “unnamed” updates since then.

Fred’s Timing

Fred has interesting timing.

Fred was preceded a month earlier by a major Google Core Update, which was said to focus on E-A-T.

A week after Fred, Google announced Project Owl, which was designed to clear away misleading and offensive information based on feedback from their quality raters.

Now, let’s be clear: The raters were training the system to recognize inaccurate or offensive information, not making the decision as to what sites should be purged from the results.

Clearly, Google was highly focused on quality and using data from their quality raters.

Fred was no exception.

What Was Google’s Fred Algorithm?

Google’s Fred algorithm update rolled out in an attempt to remove what Google perceived as low-quality results — sites that relied on thin content and aggressive ad placement.

Many were affiliate sites, though not all.

The majority used content as their primary traffic driver. Ordinarily, we hear Google telling folks to do just that.

While Gary gave us a name for the update, he didn’t give us a list of the areas they were addressing aside from the statement:

Fred is closely related to quality section of rater guidelines. @methode #smx

— Jennifer Slegg (@jenstar) June 13, 2023

That tells us that it did have to do with E-A-T, and the impacted sites imply that the areas it targeted were some or all of:

Thin content.

Poor link quality.

Poor content quality.

Aggressive affiliate linking.

Overwhelming interstitials.

Disproportionate Main Content/Supplemental Content ratio.

If you want a refresher on E-A-T and the Quality Raters’ Guidelines, you’ll find one here.

From the Horse’s Mouth

Jenn Slegg interviewed Gary Illyes on the topic at Brighton SEO in 2023.

Here’s a transcript of their discussion.

When it came to Fred, it all came basically down to the following:

Freds, Not Fred

Gary reinforced in the interview that Fred is the name of every unnamed update. As noted above, that’s all well and good for him to state but is a bit useless for SEO pros.

This is why we are typically referring to the single update.

Google Doesn’t Like That We Care About Updates

Gary goes on to note,

“I don’t like that people are focusing on [updates]. Every single update that we make is around quality of the site or general quality, perceived quality of the site, content, and the links or whatever.”

They would rather we just focused our time and attention on meeting the user’s needs than analyzing updates and chasing the metrics they imply.

Most Updates are Unactionable

With two to three updates per day, Gary rightfully points out that most are addressing unactionable areas like how words are structured on a page in a specific language.

I just want to stress the use of the word “most.”

Links Matter

Gary says,

“Basically, if you publish high quality content that is highly cited on the internet …”

He goes on to be a bit tongue-in-cheek, but it’s clear that a goal should be building quality content that attracts links.

It’s not news or Fred-specific, but worth noting.

Q&A with Gary Illyes

You can watch a full video of the interview below. The portion on Fred begins at 4:30.

Dave’s Take

I’m not a huge fan of how Gary sort of sidesteps what Fred is by discussing it in the plural. He knows the question is about the March 7 update and not all of the Freds.

And the likelihood that they updated all the algorithms at once is… well, I suppose I can’t say 0%, but it’s as close to that as possible.

Other than that, his answers were predictable but revealing:

Most updates aren’t actionable (in that there’s literally nothing that can be done – not that there are only things Google tells you they don’t want you to do like link building).

All sites fluctuate.

When in doubt, read the Webmaster Guidelines (and I would add the Quality Raters Guidelines).

Gary is sarcastic and pretty funny.

Recovering From the Fred Update

Thankfully, if you’re ranking now, you’ve probably been doing the things that will keep you from getting hit by similar updates.

Those who wanted to recover from this update had a big, big task ahead of them. Typically, they needed to revisit their site structure to reduce the ad layout and on top of that, revisit their content page-by-page to ensure it actually deserved a spot in the top 10.

Some did. But many didn’t.

Some tried to shortcut it.

Barry Schwartz compiled a list of sites he knew to have been hit.

Here’s how some did:

Seems they tried to trick their way back in.

Looks familiar, but the second drop took a bit longer. The follow-up hit would be one of three updates.

A flurry of manual actions were sent out around this time. This is the least likely.

Quality updates that occurred around this time.

And Marie Haynes reported seeing a number of sites impacted around June 17th and 18th that had previous link-related issues.

I suspect the third is the most likely.

Again, we see some recovery, and then subsequent hits in additional quality updates.

Google will get their way eventually.


Those who’ve been doing SEO recently will be used to updates like Fred, but in 2023 it was different than updates before it.

Stronger. More targeted. More effective. More devastating… or rewarding.

I remember when Fred rolled out. While my own clients weren’t impacted significantly one way or the other, it put a stamp on what was to come.

We’d seen quality updates and spam cleansers before, but this one somehow felt different. And it was.

After Fred, the updates around quality came more frequently and more varied. I credit that with the rise of machine learning but whatever the reason, as a searcher and someone who likes informative content, I appreciate it.

And hopefully, you feel you’ve found it here as well.

More Resources:

Image Credits

All screenshots taken by author, August of 2023

How To Use The Driving Focus On Iphone : A Complete Guide

When it comes to driving, there’s one thing you should never do: “check your phone,” and you should surely do is use Driving Focus on your iPhone.

Most people drive because they enjoy the freedom of cruising down the road while listening to music or talking on their cell phones. However, many forget that these activities can be quite risky. We’ve all experienced a time when the phone starts ringing while driving.

A simple solution to manage the situation is iPhone’s Driving Focus mode. But do you know how to use it? I’ll show you how to set it up and how exactly it works.

What is Driving Focus mode on your iPhone?

Earlier dubbed as Do Not Disturb While Driving, it is now incorporated in Focus mode with iOS 15. It helps you to concentrate on the road and reduces clutter while driving. It temporarily limits calls, texts, and other notifications.

A “Motor Car” icon appears on your iPhone after you turn on the Driving Focus mode. The icon’s appearance indicates that your device will now support features such as auto-reply and read replies with Siri.

How to set up Driving Focus mode

Setting up the Driving Focus was a bit complex on iOS 15. To fix it, Apple has smoothened it and made it fairly simple on iOS 16. We’ll see how to set up the Driving Focus mode in both versions.

In iOS 16

Select who can or can’t call you: Tap the People tab; you’ll have two options to choose from:

Customize your Lock Screen: iOS 16 brings automation and customizations to the Lock Screen. Thanks to it, you can link your Focus mode profiles with a lockscreen to reduce driving distractions.

In iOS 15

Note: If you’ve tried setting up Driving Focus before, simply go to Settings → Focus and select Driving to start customizing it.

Turn on or off Driving Focus mode 

To enable/disable the Driving Focus mode in iOS 16 or iOS 15.

Alternatively, you can also:

In iOS 16 – On the Lock Screen, long-press the screen → swipe left or right to choose the look screen for which you’ve linked the Focus status.

In iOS 15 – On the Lock Screen, long-press the Motor car icon (or Driving text) → tap Driving mode to turn it off.

Sometimes, you may get an alert when trying to unlock your screen. Choose, I’m not driving to disable Driving Focus.

Automate replies while driving

You can even set a custom message to inform people that you’re driving or will call later, etc. Notably, you can select a certain person or group that this message goes to. To set an automated message:

Notably, the selected contacts can also notify you if there’s something essential that needs to be delivered by sending “Urgent” as a supplement message.

Automate the Driving Focus mode

You can turn on Driving Focus mode on its own if the iPhone is connected to the car’s Bluetooth or CarPlay and the car is in motion (or you’re moving fast). To enable the automation:

Share Focus Status

You can let others know you’re driving by sharing a Focus status. This will let others know that you have your notifications silenced. Apple has tweaked the setting with iOS 16 as the Focus status now gets a separate section.

In iOS 15: Go to Settings → Focus → Driving → Focus Status → Toggle on Share Focus Status.

And that’s how it’s done!

Read more:

Author Profile


Tech Junkie and Computer Science Undergrad, who loves experimenting things and everything Apple.

The Complete Guide To Todoist Filters

If you’re already using Todoist to keep track of your life, you might wonder how you can make it even more useful. The simple answer: Todoist filters. These have the power to streamline and better organize all your tasks, especially when you’ve added so many to-dos that you don’t even know where to start. The good news is you can use built-in filters or create your own. Read on to learn more.

What Are Todoist Filters?

Todoist already has a handy search bar to quickly find tasks. Todoist filters, though, take it a step further by letting you create custom searches for those you use often. For example, you might create a filter for calls or emails you need to respond to by the end of the day. You can filter by tag and due date to quickly see just those tasks.

If you have a few hundred tasks on your to-do list, simply scrolling through isn’t enough. Even if you carefully categorize them with tags and priority, you could still waste valuable time trying to find what you need and could easily miss an important task.

To really see how useful Todoist filters can be, let’s imagine a busy professional has several hundred tasks listed for the week. This could be a mixture of emails, calls, projects, and even things to do on their way home. When they log in to see their tasks at the start of the day, they want to get to work immediately.

They create a filter to first show only top priority tasks. They further customize the filter to show tasks that are due that day, possibly even tasks due before lunch. If they always handle emails left over from the day before the first thing in the morning, they’d customize the filter one more time to only show email tasks. Suddenly, that extremely long list only shows the handful of tasks the person needs to do as soon as they start working that day.

The same holds true for when they leave for the day. They’d filter tasks by Home along with the current day. They could also filter by person if they wanted to see upcoming tasks (such as extracurricular school activities) for their kids, spouse, friends, or charity organizations.

Best Default Todoist Filters

By default, Todoist gives you a few filters. These may vary based on the platform you’re using. For the purpose of this post, I’m using the free Web version.

The following filters are included by default without the need for you to create anything:

Assigned to me – only lists tasks that are assigned to you

Priority 1 – lists tasks labeled as Priority 1

No due date – only lists tasks without a due date

View all – shows all your tasks in one list

Out of these defaults, Priority 1 and Assigned to me are probably the most useful, as you can quickly see what your more urgent tasks may be.

Creating Your Own Filters

In the grand scheme of things, the default Todoist filters are extremely basic and may not be all that helpful. That’s when it’s best to create your own filters.

To make filters better, it’s important to use labels, dates (if applicable), and priorities when creating tasks. Otherwise, it’s difficult to create filters based on those criteria. You can create labels when creating or editing a task or by using the “Filters & Labels” section.

To create your own filter, select “Filters & Labels” in the left pane. On Android, drag the menu up from the bottom and select “Filters.” In iOS, tap “<” to open the menu and select “Filters & Labels.”

Beside “Filters,” select the “+” button to add a new filter. (For this example, I’m creating a filter that shows overdue tasks. This works well for those tasks that get overlooked but still need to be done. This only works if your tasks have a due date.)

When creating basic filters, there are a few things to keep in mind:

If your query is based on a label, always use “@” symbol before the label name, such as “@work.”

If your query is based on a project/main section or only a sub-section, always use “#” before the name, such as “#Inbox.”

If you want your query to include a main section along with all of its sub-sections, use “##” before the name.

If you want to exclude a specific sub-section, add a “!” before the sub-section name, such as “##Inbox & !#Followups.” (This includes all sections in the Inbox parent section, excluding anything from the Followups sub-section).

If you want to search sections with the same name across multiple projects, use “/” before the name, such as “/Emails,” which could be a sub-section in multiple parent sections.

Creating Advanced Todoist Filters

Creating a basic filter is fairly easy. Simply use the name of a label, section, date, or specific word or phrase (such as overdue, recurring, no date, no label). However, you’re not limited to a single filter criteria. For example, in the section above, you saw how to exclude a sub-section in a filter.

To use multiple criteria, use the following operators:

“*” (wildcard) – Make your filter more encompassing with a wildcard symbol. For instance, search for all tasks assigned to anyone with the last name Crowder with “assigned to: * crowder.”

If you love creating search filters in all the productivity apps you use, learn how to master VLOOKUP in Excel and Google Sheets.

Most Useful Filters

To help you get started, Todoist has an AI filter query generator. It may not get things quite right but can give you a starting point.

If you’re not sure where to start to create your own filters, consider using some of the most useful filter queries, including:

Finding Todoist Filter Inspiration

Want to become a master of Todoist filters? All you need is the right inspiration. The Doist blog has 24 incredible and highly useful filters to get you organized quickly. These are also great examples of using more complex filters.

Frequently Asked Questions 1. How can I access my most used filters faster?

If you only have a few filters, going to the “Filters & Labels” section isn’t a problem. However, if you have dozens of filters, finding the right one can be time consuming.

2. Can I filter completed tasks? 3. Do I have to create a filter for all my searches? 4. How can I organize my filters?

It’s easy for filters to get out of hand. There are several ways to keep them organized:

Add your most used to Favorites.

Group similar filters with color-coded labels.

Drag and drop to organize filters the way you want in your Filters & Labels list.

If there are filters you no longer use, delete them. The fewer filters you have, the easier it is to find what you need.

Crystal Crowder

Crystal Crowder has spent over 15 years working in the tech industry, first as an IT technician and then as a writer. She works to help teach others how to get the most from their devices, systems, and apps. She stays on top of the latest trends and is always finding solutions to common tech problems.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.

By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time.

Complete Guide To Python Stopiteration

Introduction to Python StopIteration

The following article outlines Python StopIteration as we know the topic ‘iterator’ and ‘iterable’ in Python. The basic idea of what the ‘iterator’ is? An iterator is an object that holds a value (generally a countable number) that is iterated upon. Iterator in Python uses the __next__() method to traverse to the next value. To tell that no more deals need to be traversed by the __next__() process, a StopIteration statement is used. Programmers usually write a terminating condition inside the __next__() method to stop it after reaching the specified state.

Syntax of Python StopIteration

When the method used for iterators and generators completes a specified number of iterations, it raises the StopIteration exception. It’s important to note that Python treats raising StopIteration as an exception rather than a mistake. Like how Python handles other exceptions, this exception can be handled by catching it. This active handling of the StopIteration exception allows for proper control and management of the iteration process, ensuring that the code can gracefully handle the termination of the iteration when required.

The general syntax of using StopIteration in if and else of next() method is as follows:

class classname: def __iter__(self): … … #set of statements return self; def __next__(self): if …. #condition till the loop needs to be executed …. #set of statements that needs to be performed till the traversing needs to be done return … else raise StopIteration #it will get raised when all the values of iterator are traversed How StopIteration works in Python?

It is raised by the method next() or __next__(), a built-in Python method to stop the iterations or to show that no more items are left to be iterated upon.

We can catch the StopIteration exception by writing the code inside the try block, catching the exception using the ‘except’ keyword, and printing it on screen using the ‘print’ keyword.

The following () method in both generators and iterators raises it when no more elements are present in the loop or any iterable object.

Examples of Python StopIteration

Given below are the examples mentioned:

Example #1

Stop the printing of numbers after 20 or printing numbers incrementing by 2 till 20 in the case of Iterators.


class printNum: def __iter__(self): self.z = 2 return self def __next__(self): if self.z <= 20: #performing the action like printing the value on console till the value reaches 20 y = self.z self.z += 2 return y else: raise StopIteration #raising the StopIteration exception once the value gets increased from 20 obj = printNum() value_passed = iter(obj) for u in value_passed: print(u)



In the above example, we use two methods, namely iter() and next(), to iterate through the values. The next() method utilizes if and else statements to check for the termination condition of the iteration actively.

If the iterable value is less than or equal to 20, it continues to print those values at the increment of 2. Once the value exceeds 20, the next() method raises a StopIteration exception.

Example #2

Finding the cubes of number and stop executing once the value becomes equal to the value passed using StopIteration in the case of generators.


def values(): #list of integer values with no limits x = 1 #initializing the value of integer to 1 while True: yield x x+= 1 def findingcubes(): for x in values(): yield x * x *x #finding the cubes of value ‘x’ def func(y, sequence): sequence = iter(sequence) output = [ ] #creating an output blank array try: for x in range(y): #using the range function of python to use for loop output.append(next(sequence)) #appending the output in the array except StopIteration: #catching the exception pass return output print(func(5, findingcubes())) #passing the value in the method ‘func’



In the above example, we find the cubes of numbers from 1 to the number passed in the function. We generate multiple values at a time using generators in Python, and to stop the execution once the value reaches the one passed in the function, we raise a StopIteration exception.

We create different methods serving their respective purposes, such as generating the values, finding the cubes, and printing the values by storing them in the output array. The program uses basic Python functions like range and append, which should be clear to the programmer in the initial stages of learning.

How to Avoid StopIteration Exception in Python?

As seen above StopIteration is not an error in Python but an exception and is used to run the next() method for the specified number of iterations. Iterator in Python uses two methods, i.e. iter() and next().

The next() method raises a StopIteration exception when the next() method is called manually.

The best way to avoid this exception in Python is to use normal looping or use it as a normal iterator instead of writing the next() method repeatedly.

Otherwise, if not able to avoid StopIteration exception in Python, we can simply raise the exception in the next() method and catch the exception like a normal exception in Python using the except keyword.


As discussed above in the article, it must be clear to you what is the StopIteration exception and in which condition it is raised in Python. StopIteration exception could be an issue to deal with for the new programmers as it can be raised in many situations.

Recommended Articles

This is a guide to Python StopIteration. Here we discuss how StopIteration works in Python and how to avoid StopIteration exceptions with programming examples. You may also have a look at the following articles to learn more –

A Complete Guide To K


In the four years of my data science career, I have built more than 80% of classification models and just 15-20% of regression models. These ratios can be more or less generalized throughout the industry. The reason behind this bias towards classification models is that most analytical problems involve making decisions. In this article, we will talk about one such widely used machine learning classification technique called k nearest neighbor (KNN) algorithm. Our focus will primarily be on how the algorithm works on new data and how the input parameter affects the output/prediction.

Note: People who prefer to learn through videos can learn the same through our free course – K-Nearest Neighbors (KNN) Algorithm in Python and R. And if you are a complete beginner to Data Science and Machine Learning, check out our Certified BlackBelt program –

Learning Objectives

Understand the working of KNN and how it operates in python and R.

Get to know how to choose the right value of k for KNN

Understand the difference between training error rate and validation error rate

What is KNN (K-Nearest Neighbor) Algorithm?

The K-Nearest Neighbor (KNN) algorithm is a popular machine learning technique used for classification and regression tasks. It relies on the idea that similar data points tend to have similar labels or values.

During the training phase, the KNN algorithm stores the entire training dataset as a reference. When making predictions, it calculates the distance between the input data point and all the training examples, using a chosen distance metric such as Euclidean distance.

Next, the algorithm identifies the K nearest neighbors to the input data point based on their distances. In the case of classification, the algorithm assigns the most common class label among the K neighbors as the predicted label for the input data point. For regression, it calculates the average or weighted average of the target values of the K neighbors to predict the value for the input data point.

The KNN algorithm is straightforward and easy to understand, making it a popular choice in various domains. However, its performance can be affected by the choice of K and the distance metric, so careful parameter tuning is necessary for optimal results.

When Do We Use the KNN Algorithm?

KNN can be used for both classification and regression predictive problems. However, it is more widely used in classification problems in the industry. To evaluate any technique, we generally look at 3 important aspects:

1. Ease of interpreting output

2. Calculation time

3. Predictive Power

Let us take a few examples to  place KNN in the scale :

KNN classifier fairs across all parameters of consideration. It is commonly used for its ease of interpretation and low calculation time.

How Does the KNN Algorithm Work?

Let’s take a simple case to understand this algorithm. Following is a spread of red circles (RC) and green squares (GS):

You intend to find out the class of the blue star (BS). BS can either be RC or GS and nothing else. The “K” in KNN algorithm is the nearest neighbor we wish to take the vote from. Let’s say K = 3. Hence, we will now make a circle with BS as the center just as big as to enclose only three data points on the plane. Refer to the following diagram for more details:

The three closest points to BS are all RC. Hence, with a good confidence level, we can say that the BS should belong to the class RC. Here, the choice became obvious as all three votes from the closest neighbor went to RC. The choice of the parameter K is very crucial in this algorithm. Next, we will understand the factors to be considered to conclude the best K.

How Do We Choose the Factor K?

First, let us try to understand exactly the K influence in the algorithm. If we see the last example, given that all the 6 training observation remain constant, with a given K value we can make boundaries of each class. These decision boundaries will segregate RC from GS. In the same way, let’s try to see the effect of value “K” on the class boundaries. The following are the different boundaries separating the two classes with different values of K.

If you watch carefully, you can see that the boundary becomes smoother with increasing value of K. With K increasing to infinity it finally becomes all blue or all red depending on the total majority.  The training error rate and the validation error rate are two parameters we need to access different K-value. Following is the curve for the training error rate with a varying value of K :

As you can see, the error rate at K=1 is always zero for the training sample. This is because the closest point to any training data point is itself.Hence the prediction is always accurate with K=1. If validation error curve would have been similar, our choice of K would have been 1. Following is the validation error curve with varying value of K:

This makes the story more clear. At K=1, we were overfitting the boundaries. Hence, error rate initially decreases and reaches a minima. After the minima point, it then increase with increasing K. To get the optimal value of K, you can segregate the training and validation from the initial dataset. Now plot the validation error curve to get the optimal value of K. This value of K should be used for all predictions.

The above content can be understood more intuitively using our free course – K-Nearest Neighbors (KNN) Algorithm in Python and R

Breaking It Down – Pseudo Code of KNN

We can implement a KNN model by following the below steps:

Load the data

Initialise the value of k

For getting the predicted class, iterate from 1 to total number of training data points

Calculate the distance between test data and each row of training dataset. Here we will use Euclidean distance as our distance metric since it’s the most popular method. The other distance function or metrics that can be used are Manhattan distance, Minkowski distance, Chebyshev, cosine, etc. If there are categorical variables, hamming distance can be used.

Sort the calculated distances in ascending order based on distance values

Get top k rows from the sorted array

Get the most frequent class of these rows

Return the predicted class

Implementation in Python From Scratch

We will be using the popular Iris dataset for building our KNN model. You can download it from here.

Comparing Our Model With Scikit-learn from sklearn.neighbors import KNeighborsClassifier neigh = KNeighborsClassifier(n_neighbors=3)[:,0:4], data['Name']) # Predicted class print(neigh.predict(test)) # 3 nearest neighbors print(neigh.kneighbors(test)[1])

We can see that both the models predicted the same class (‘Iris-virginica’) and the same nearest neighbors ( [141 139 120] ). Hence we can conclude that our model runs as expected.

Implementation of KNN in R

View the code on Gist.


#Top observations present in the data SepalLength SepalWidth PetalLength PetalWidth Name 1 5.1 3.5 1.4 0.2 Iris-setosa 2 4.9 3.0 1.4 0.2 Iris-setosa 3 4.7 3.2 1.3 0.2 Iris-setosa 4 4.6 3.1 1.5 0.2 Iris-setosa 5 5.0 3.6 1.4 0.2 Iris-setosa 6 5.4 3.9 1.7 0.4 Iris-setosa #Check the dimensions of the data [1] 150 5 #Summarise the data SepalLength SepalWidth PetalLength PetalWidth Name Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 Iris-setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Iris-versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Iris-virginica :50 Mean :5.843 Mean :3.054 Mean :3.759 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500

Step 3: Splitting the Data

View the code on Gist.

Step 4: Calculating the Euclidean Distance

View the code on Gist. View the code on Gist.


For K=1 [1] "Iris-virginica"

In the same way, you can compute for other values of K.

Comparing Our KNN Predictor Function With “Class” Library

View the code on Gist.


For K=1 [1] "Iris-virginica"

We can see that both models predicted the same class (‘Iris-virginica’).


The KNN algorithm is one of the simplest classification algorithms. Even with such simplicity, it can give highly competitive results. KNN algorithm can also be used for regression problems. The only difference from the discussed methodology will be using averages of nearest neighbors rather than voting from nearest neighbors. KNN can be coded in a single line on R. I am yet to explore how we can use the KNN algorithm on SAS.

Key Takeaways

KNN classifier operates by finding the k nearest neighbors to a given data point, and it takes the majority vote to classify the data point.

The value of k is crucial, and one needs to choose it wisely to prevent overfitting or underfitting the model.

One can use cross-validation to select the optimal value of k for the k-NN algorithm, which helps improve its performance and prevent overfitting or underfitting. Cross-validation is also used to identify the outliers before applying the KNN algorithm.

The above article provides implementations of KNN in Python and R, and it compares the result with scikit-learn and the “Class” library in R.

Frequently Asked Questions Related

Update the detailed information about How To Use Google Tasks: The Complete Guide on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!