Trending February 2024 # Ios 7: The Ultimate Weather App Guide # Suggested March 2024 # Top 5 Popular

You are reading the article Ios 7: The Ultimate Weather App Guide updated in February 2024 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 March 2024 Ios 7: The Ultimate Weather App Guide

The stock Weather app is a simple pre-installed application that utilizes weather data from Yahoo. The Weather app makes it easy to quickly view weather conditions and forecasts for a variety of locations at once. It feature location awareness, meaning it can dynamically update to reflect weather conditions in your current area, even when jet-setting across the country or the world.

The Weather app isn’t the most robust or feature-filled app on the block, but it’s good enough to get you by in a pinch. Have a look as we walk through each of the features available in this stock application.

Table of contents


The stock Weather app’s main view is broken up into three different sections: location details, hourly forecast, and 5-day forecast. There’s also a weather rollup available, which will show you a brief overview of all of your added weather locations simultaneously.

In this tutorial, we’ll show you how to add a new weather location, and how to enable or disable location awareness. By the end of this guide, you should know everything that there is to know about the stock Weather app.

Location details

The very top of the Weather app contains the location details for the current location selected. These details include the name of the city, the current weather status, and the current temperature. At the bottom of this section, you’ll see the day of the week, along with the low and high temperature for the day.

Tap to view additional location details

If you tap on the location details, you’ll gain additional weather information for the location. These details include the current humidity, chance of rain, wind direction and speed, and the “feels like” temperature, which takes into account things like the the wind chill factor.

The background of the location details will also reflect the current weather status. Sometimes you’ll see things like animated rain drops, snow flurries, or, if it’s nice in your current location, sunshine.

Hourly forecast

Below the location details rests the hourly forecast for the current location selected. The hourly forecast is a scrollable section that extends for the next 12 hours on the hour. The hourly forecast includes the hour, temperature predicted for that hour, and a glyph representing the predicted conditions.

You can scroll the hourly forecast

The hourly forecast features listings for both sunrise and sunset with exact times for each event. For hours with chances for precipitation, you’ll find a percentage representing the chance of said precipitation.

5-day forecast

The 5-day forecast is static

The 5-day forecast is a static prediction of the next five days for a particular location. Here, you’ll find the day of the week, a glyph representing prediction conditions, and low and high temperatures for that day. Unlike the hourly forecast, precipitation chances aren’t represented by percentages, even if precipitation is expected for a given day.

Switching between locations

There are two ways to switch between the locations that you have configured in the stock Weather app. The easiest way to do so is to use a swipe gesture on any main weather view. You can gain context as to where you are within the app by looking at the page indicators at the bottom of the app. The dots represent pages, and the arrow indicator, which should always appear first, represents the location based aware page.

Swiping through multiple locations

You can also switch between pages by using the rollup feature. For more details on the rollup feature, see the next section of this tutorial.

Weather rollup

The weather rollup is a way to view all of the locations that you have configured in the stock Weather app, and it can be used to switch between locations. It’s also the only way to access the ability to add locations, remove locations, or switch between Fahrenheit and Celsius.

Using the list button or pinch-to-close

To access the weather rollup, you have two options: use a pinch-to-close gesture on any main weather view, or tap the list button located in the bottom right-hand corner. To switch back to any main view, tap the location that you wish to switch to, or use a pinch-to-open gesture on the cell containing your desired location.


Adding, deleting, and rearranging locations

You may add, delete, or rearrange any of the cells appearing in the weather rollup view, except for the city that’s present due to location awareness. This cell cannot be deleted or moved. If you wish to remove the location aware cell, see the Enabling and disabling local weather section of this tutorial.

Adding locations

Adding a new weather location

To add a location to the Weather app, tap the ‘+’ button in the bottom right-hand corner of the weather rollup view. You’ll see a sheet that allows you to enter a city, zip code, or airport location. Enter the desired location details, and then tap on the result that you wish to add.

Deleting locations

Deleting a location

To delete a location, simply perform a swipe from right to left gesture on a location while in rollup view. Doing this will display a red Delete button, which, when tapped, will delete a location.

Rearranging locations

Rearranging locations

To rearrange a location, tap and hold on the cell you wish to move while in rollup view. This will cause the location to zoom in, which indicates that it’s ready to move. Drag the cell to the desired resting place, and lift your finger to finalize the move.

Switching between Fahrenheit and Celsius

Switching temperature measurements

To switch between Fahrenheit and Celsius temperature measurements, open the weather rollup view, and tap the C/F button located in the bottom left-hand corner.

Enabling and disabling local weather

The location aware feature is handy, because it allows you to see the weather in your current location with zero configuration. In other words, you don’t have to actually add a location, because it’s location aware; it knows where you are by using the iPhone’s GPS radio.

The location service weather toggle

Upon launching the Weather app for the first time, you’ll be asked to give the app permission to use your current location. If you opt out of this, the Weather app will not be able to provide you with local weather details.


There are several weather commands that can be used with Siri. They are as follows:

What’s the weather for today?

What’s the weather for tomorrow?

What’s the forecast for this evening?

How’s the weather in Chicago right now?

What’s the high for Orlando on Thursday?

What’s the temperature outside?

How windy is it out there?

When is sunrise in Tokyo?

Should I bring an umbrella today?

Notification Center

One of the biggest changes to Notification Center in iOS 7, was the inclusion of the Today View. The Today View provides users with a brief snapshot of current conditions.


The stock Weather app is lacking in areas such as radar, weather alerts, and detailed forecasts. It’s a good app to get you by in a jam, but it’s definitely not the type of app that you’d want to rely on if weather is unpredictable in your area. If you’re looking for an app with more bells and whistles, have a look at our list of best weather apps.

You're reading Ios 7: The Ultimate Weather App Guide

Mastering App Cloning On Xiaomi Phones: The Ultimate Guide

In this article, we will discuss how to clone apps on Xiaomi phones in detail. We will cover both the Dual Apps menu and the MIUI Downloader app, so you can choose the method that works best for you.

How to Clone Apps on Xiaomi Phones: A Comprehensive Guide

Using the Dual Apps menu

The Dual Apps menu is the most common way to clone apps on Xiaomi phones. To do this, follow these steps:

Tap on the app that you want to clone.

Tap on the Create button.

Follow the on-screen instructions to complete the cloning process.

Here are some of the benefits of using the Dual Apps menu:

It is the most straightforward way to clone apps.

It is compatible with most Xiaomi phones.

It does not require any third-party apps.

However, there are also some drawbacks to using the Dual Apps menu:

Not all apps are compatible with Dual Apps.

The cloned apps are not always as stable as the original apps.

The cloned apps may not be able to access all of the features of the original app.

Using the MIUI Downloader app

Download and install the MIUI Downloader app from the Google Play Store.

Open the MIUI Downloader app.

Go to Func. hidden.

Scroll down and tap on Dual Apps.

Tap on the Create button.

Select the app that you want to clone.

Follow the on-screen instructions to complete the cloning process.

Here are some of the benefits of using the MIUI Downloader app:

It allows you to clone apps that are not compatible with the Dual Apps menu.

The cloned apps are more stable than the cloned apps created using the Dual Apps menu.

The cloned apps can access all of the features of the original app.

It is a third-party app, so it may not be as safe as the Dual Apps menu.

It may not be compatible with all Xiaomi phones.

Which method should I use?

The method that you use to clone apps on your Xiaomi phone depends on your preference. If you are comfortable with the default settings on your phone, then you can use the Dual Apps menu. However, if you want to clone apps that are not compatible with the Dual Apps menu, or if you want to have more stable cloned apps, then you can use the MIUI Downloader app.

What are the benefits of cloning apps?

There are several benefits to cloning apps on your Xiaomi phone. For example, you can use it to:

Gizchina News of the week

Join GizChina on Telegram

Have two separate accounts for the same app. This is useful if you want to use two different WhatsApp accounts on the same phone, or if you want to have a separate work account for Facebook.

Use the same app for different purposes. For example, you could clone the Chrome app and use one instance for personal browsing and the other instance for work browsing.

Test new features. If you are a developer, you can clone an app to test new features before releasing them to the public.

Is there anything I should keep in mind when cloning apps?

Yes, there are a few things you should keep in mind when cloning apps:

Cloning apps can use up more storage space. This is because each cloned app will have its own data and settings.

Cloning apps can drain your battery. This is because each cloned app will be running in the background.

Cloning apps can slow down your phone. This is because your phone will have to run two instances of the same app.

What are the limitations of cloning apps?

There are a few limitations to cloning apps. For example, you cannot clone system apps, and some apps may not work properly when cloned. Additionally, cloning apps can use up more storage space and battery life.

What are some alternatives to cloning apps?

If you are looking for an alternative to cloning apps, you could use a different app that allows you to have multiple accounts. For example, you could use Parallel Space or App Cloner. These apps allow you to create multiple instances of the same app, each with its own data and settings.

What are the legal implications of cloning apps?

The legal implications of cloning apps vary depending on the app and the country in which you are using it. In some cases, it may be legal to clone an app, while in other cases it may be considered a violation of the app’s terms of service. It is important to check the laws in your country before cloning any apps.


Cloning apps is a useful feature that can be used for a variety of purposes. However, it is important to keep in mind the potential drawbacks of cloning apps before you use this feature.

Here are some additional tips for cloning apps on Xiaomi phones:

Only clone apps that you trust. Cloning apps that you do not trust could give them access to your personal data.

Be careful about how many apps you clone. Cloning too many apps could slow down your phone or use up too much storage space.

Keep your cloned apps up to date. Just like your original apps, your cloned apps should be kept up to date with the latest security patches.

Additional things to consider when cloning apps:

Some apps may not work properly when cloned. This is because some apps are not designed to be run in multiple instances.

Cloning apps can be a security risk. If you clone a social media app, for example, the cloned app could be used to access your personal data.

Cloning apps can be against the terms of service of some apps. If you are caught cloning an app that you are not supposed to clone, you could be banned from using the app.

Overall, cloning apps is a useful feature, but it is important to use it wisely. If you are considering cloning apps, be sure to weigh the benefits and risks before you do so.

The Ultimate Guide To Rotating Proxies Vs. Static Proxies

A proxy server protects individuals’ or businesses’ identities when they go online, provides anonymity, and allows access to geo-restricted content. However, determining which type of proxy server is appropriate for which applications and how to utilize proxy servers fully are challenging. Understanding rotating and static proxies, and the main differences between them, will help you make a decision more quickly. 

This article covers the main differences between rotating and static proxies, how they work, and when you should use them.

What is the definition of rotating and static proxies? Rotating proxies

A rotating proxy is an IP address constantly changing with each new request to the destination website. Rotation proxies assign new IP addresses to users each time they make a request to the target website. 

Static proxies

Unlike rotating proxies, static proxies assign users a fixed IP address for each request to the target website. Static proxy servers select IP addresses from a pool of datacenter and Internet Service Providers (ISP) IP addresses. Only datacenter and ISP proxies can be static. Other proxies, such as backconnect and residential, do not fall under static proxies since they rotate IP addresses.

How does a rotating proxy work?

Your device’s IP address is communicated directly with other web servers to connect to the websites. In both rotating and static proxies, a general proxy server working process is as follows: 

The user sends a connection request to the target website using their IP address. 

The proxy server receives the user’s request. 

The proxy server assigns a new IP address to the user to hide their real IP address.

The proxy server forwards the user’s request to the target website via a masked IP address. 

The website provides requested information to the user.

Rotating proxies change your current IP address and assign you a new IP address when you make a new connection request to the same or a different website (see Figure 1).

Figure 1: Representation of how a rotating proxy server works


Bright Data Rotating Proxies assign different IP addresses to users for each new connection request (see Figure 2). For example, when you scrape a massive amount of data from various websites, you must make multiple requests to the same website. The website will likely detect you as a bot if you make many connection requests from the same IP address. Rotating proxies are the best option when you need to change your IP address frequently.

Figure 2: Bright Data’s Rotating Proxy Network

How does a static proxy work?

From steps 1 to 5, the entire process works exactly the same in a static proxy server. Unlike rotating proxies, your current IP address remains constant when you make another connection request (see Figure 3).

Figure 3:  Representation of how a static proxy server works

Comparing Static and Rotating Proxies

Both static and rotating proxies hide and mask users’ real IP addresses. However, there are many critical differences between them (see Figure 6). Understanding how rotating proxies differ from static proxies will help you to determine which one you need. 

Figure 6: Comparison of static proxies and rotating proxies

Web scraping applications that you should use rotating proxies Gather travel data with rotating proxies

Web scraping bots help travel agencies collect data from multiple websites automatically. However, businesses are still struggling to collect massive amounts of travel data from different websites. They face many technical challenges while scraping data from websites, such as dynamic content, geo-restricted content, and IP bans. Proxy servers enable businesses to avoid such technical problems and extract data from websites on a large scale.

You can use a proxy server to: 

Scrape competitor data from various data sources: You can check out your competitors’ social media accounts to better understand their online presence and see what customers said and how they mentioned that brand. For example, you can extract customer reviews. Analyzing your competitors’ customer reviews help you understand why they are successful and what separates them from other companies. 

Know your customer: Changes in the travel industry impact your customers’ preferences and expectations regarding your services and products. Web scraping helps companies to keep up with the latest travel industry trends. You can collect current market data to improve your strategies and better understand customers’ preferences.

Challenges you may face

Restricted geo-locations:  Most travel websites detect and track their visitors’ location to offer localized products. They restrict or block certain areas to prevent access to their services or products. You might be in one of these restricted areas and cannot access geo-restricted data if you use your real IP address. You must use a proxy server to gain access to these geo-restricted contents.

Dynamic content: Dynamic IPs are temporary IP addresses that are constantly changing. Most travel websites use dynamic content to provide a more personalized customer experience. For example, if you try to book a hotel at a random website, you will receive multiple offers from websites (see Figure 4). Websites collect publicly available data from their visitors, including cookies, forms, or subscriptions, and then change the website content based on visitor behavior and preferences.

Figure 4: An example of personalized product recommendation

How rotating proxies help

Rotating proxies constantly change users’ IP addresses for each request. They help users extract dynamic content from various websites. The most common types of  rotating proxies are datacenter, residential and mobile proxies. 

Oxylabs provides rotating ISP proxies that allow users to circumvent anti-scraping measures such as rate limiting, IP blocking, and CAPTCHAs. You can access and extract public travel data from airline websites, travel agencies, and review platforms. 

Scrape product data from eCommerce websites with rotating proxies

Web scraping allows businesses to scrape product data information from eCommerce websites such as eBay and Amazon or supplier websites like Walmart. 

Enter the URL you would like to extract data from. It could be a specific product page on the website. For example, enter a specific product name into the search box like “printer,” then copy the URL that appears and paste it into the search on your web scraping bot (see Figure 5). 

When the scraping is complete, the web scraping bot will provide you with all available product information, including:

Price ranges.

Stock availability.



Product images/descriptions.

The scraping result can then be downloaded in the format of your choice.

Figure 5: Searching for a specific product to extract data from product pages

A quick tip: If you want to scrape more than one product, your web scraper will need to scrape hundreds of product pages. Collecting product data on a schedule prevents you from being detected and blocked. Using proxies is the most effective way to avoid any security issues that may arise when scraping websites. Proxies add an extra layer of privacy between users’ machine IP addresses and target websites by masking their real IP addresses.


Most eCommerce websites use anti-scraping techniques such as CAPTCHAs to set crawl rates to limit scraping. IP bans are one of the anti-scraping techniques used by websites. Suppose you frequently make connection requests to the same website using the same IP address. The website will quickly identify you as a bot and block your IP address to prevent scraping.

How rotating proxies help

Rotating IP addresses are the best solution when you need to change your IP addresses for each connection request. Rotating proxies send access requests to websites using different IP addresses each time.

NetNut offers 52M+ rotating residential proxies for data collection projects. Since they rotate IP addresses periodically, they are less likely to be detected and blocked by the target website. You can change your IP address after a certain period of time or after each connection request.

Web scraping applications that you should use static proxies Automate SEO tasks with static proxies

Crawling your website is required to perform technical SEO tasks. This way, you can identify which parts of your website need to be optimized and which issues need to be fixed. Low-quality pages, page speed, and metadata all harm your overall SEO performance.

Some of your pages, for example, may have 404 errors or missing metadata. You must crawl your website regularly. You can schedule and choose crawl frequency based on your needs, such as monthly, weekly, or daily. On the other hand, crawling your entire website at once is complex and inefficient. You need to prioritize the most important pages for your overall traffic. Then you can gradually crawl pages.

Challenge you may face

To detect issues, a web scraping bot browses your target pages like an average user. Your bot, for example, is supposed to crawl your articles or blogs. The web crawler will look at all article pages, follow all internal and external links, check meta tags and titles, and check all subtitles, URLs, image alt text, etc. 

After crawling is complete, the web crawling bot gives you all extracted data. You can review the crawl report to identify any technical issues. However, if your website has crawlability issues, web crawlers will be unable to access and crawl it. Most likely, your web crawler will be blocked by your website. 

How static proxies help

Both static and rotation proxies can be used for SEO tasks if the website is crawlable. When crawling web pages, a fast and stable connection is essential. The performance of static proxies is superior to that of rotation residential and mobile proxies.

More on Proxies

If you want to learn more about web scraping and how it can benefit your business, feel free to read our articles on the topic:

If you still have any questions about how to choose a proxy providers that is suitable for your specific application, feel free to read our data-driven whitepaper on the topic:

Also, don’t forget to check out our sortable/filterable list of proxy service / server.

For guidance to choose the right tool, reach out to us:

Gulbahar Karatas

Gülbahar is an AIMultiple industry analyst focused on web data collections and applications of web data.





How To Become A Machine Learning Engineer: The Ultimate Guide

blog / Artificial Intelligence and Machine Learning How to Become a Machine Learning Engineer and Have a Lucrative Career

Share link

Machine learning engineers became the talk of the town in 2023 after Indeed named it the No.1 job in the US. In the same year, Gartner reported that most organizations were desperately looking for machine learning talent to kick off their artificial intelligence initiatives. There cannot be a better testament to the scope of machine learning as a career. And it certainly makes one wonder how to become a machine learning engineer. 

But before we get into the details of how to become a machine learning engineer, let’s do a quick recap of what the career comprises. 

What is Machine Learning?

Machine learning is a branch of artificial intelligence where computer systems learn to solve problems without explicit commands. Computers use algorithms and models that analyze and derive patterns from large amounts of data to make the system better at solving problems. 

Machine learning is an essential aspect of modern automation, where it predicts possible outcomes. Therefore, it is incredibly critical in data analytics and business intelligence. Machine learning applications include speech recognition, image processing, self-driving cars, product recommendations, and health monitoring devices, to name a few. 

Also Read: Artificial Intelligence vs Machine Learning: 5 Vital Points to Know

What Does a Machine Learning Engineer Do?

Machine learning engineers are responsible for:

Designing, building, and training machine learning algorithms and models. 

Selecting appropriate data sets to train the machine learning tools and retrain them whenever necessary.

Determining proper data representation methods.

Analyzing the differences in data distribution that may affect the performance of the tools. 

Conducting research and running tests to improve the performance of machine learning models. 

Building new machine learning libraries. 

Building applications as per the client’s requirements when the models are ready.

Also Read: Four Types of Machine Learning and How to Build a Great Career in Each

What Skills Must a Machine Learning Engineer Have?

You will require a combination of soft and technical skills in your pursuit of how to become a machine learning engineer. You will need:

A sound understanding of basic mathematics 

Knowledge of linear algebra, probability, statistical analysis, and calculus

Acquaintance with computer science fundamentals 

Basics in data structures and algorithms

neural networks

Knowledge of data modeling,, and natural language processing (NLP) 

Skills in coordination with other engineers and team management

Excellent communication skills 

Now that we have discussed the skills required to be a machine learning engineer and also what the role entails, let’s take you through a step-by-step guide on how to become a machine learning engineer. 

How to Become a Machine Learning Engineer?

Machine learning is already an extremely lucrative field with immense scope for the future. If you are considering how to become a machine learning engineer, here is a checklist of things you should do: 

Step 1: Learn to Code with Python

Python is a computer programming language that every aspiring machine learning engineer should pick up. As a high-level, general-purpose language, the syntax used in Python is extremely easy to remember. It is also relatively more straightforward than other computer programming languages since it uses fewer lines of code to accomplish the same tasks. 

Moreover, Python comes with many built-in libraries for artificial intelligence and machine learning, including a modular machine learning library known as PyBrain, which provides easy-to-use algorithms for machine learning tasks. 

Also Read: What is Python Coding & Why its the Ticket to a Great Career

Step 2: Enroll in a Machine Learning Course

For a career in machine learning, you require a strong background in computer programming, data science, and mathematics. Since most jobs you take up will need at least a Bachelor’s degree, it is a good idea to start from there. To stay updated, you might also want to consider machine learning courses offered by Emeritus from the best universities in the world. 

Step 3: Work on Machine Learning Projects

Just academic knowledge is not enough to build a machine learning career. After all, machine learning is a constantly evolving field. So, you will need practical experience through relevant projects. These give you ample opportunities to learn. 

Taking up machine learning projects will also help you better understand machine learning applications and be looked upon favorably by recruiters from top tech companies. Additionally, they will help your CV stand out from the crowd.

Step 4: Connect with Others in the Industry

Networking is vital when it comes to machine learning. It is an emerging field with several exciting applications emerging not only from leading businesses but also from universities and research labs worldwide. Connect with industry professionals and students in the field to learn more about the projects they are taking on. 

Joining online communities is also highly beneficial for aspiring machine learning engineers. They can expose you to various new applications of machine learning technology, offer online courses, and host competitions that will help you hone your skills.

Step 5. Ask Someone to Mentor You Step 6: Look for Internships

A machine learning internship can put you in direct contact with software engineers and data scientists who are working on the latest machine learning software. This can provide you with valuable practical experience in the field and also help you establish a solid professional network. While personal projects are great, internships will teach you the business-specific skills needed to meet the needs of your future job. 

Is Machine Learning a Good Career?

According to insights from Indeed, machine learning ranks number one in salary and demand. In 2023, the average salary of a machine learning engineer in the US is $146,085. Machine learning is now finding an application in almost every field. As a result, it makes for a great career option. Gaining the relevant skills, qualifications, and certifications in the area will help you outperform the competition, which is bound to arise as demand continues to increase.  

Benefits of an Online Machine Learning Program

Besides degrees, machine learning job aspirants can take up online courses to acquire the necessary skills. Traditional coding degrees don’t always provide the specific skills the bootcamp or short certificate courses will give you. Our need for artificial intelligence and machine learning will continue to rise. With that, the demand for machine learning engineers will also continue increasing. So now that you know how to become a machine learning engineer, are you up for a challenge? This field may just be for you. Start your journey today with an online machine learning course from Emeritus!

By Priya Iyer Vyas

Write to us at [email protected]

The Ultimate Guide To 12 Dimensionality Reduction Techniques (With Python Codes)


It’s not feasible to analyze each and every variable at a microscopic level. It might take us days or months to perform any meaningful analysis and we’ll lose a ton of time and money for our business! Not to mention the amount of computational power this will take. We need a better way to deal with high dimensional data so that we can quickly extract patterns and insights from it. So how do we approach such a dataset?

Using dimensionality reduction techniques, of course. You can use this concept to reduce the number of features in your dataset without having to lose much information and keep (or improve) the model’s performance. It’s a really powerful way to deal with huge datasets, as you’ll see in this article.

This is a comprehensive guide to various dimensionality reduction techniques that can be used in practical scenarios. We will first understand what this concept is and why we should use it, before diving into the 12 different techniques I have covered. Each technique has it’s own implementation in Python to get you well acquainted with it.

Table of Contents

What is Dimensionality Reduction?

Why is Dimensionality Reduction required?

3.12 UMAP

Applications of Various Dimensionality Reduction Techniques

1. What is Dimensionality Reduction?

We are generating a tremendous amount of data daily. In fact, 90% of the data in the world has been generated in the last 3-4 years! The numbers are truly mind boggling. Below are just some of the examples of the kind of data being collected:

Facebook collects data of what you like, share, post, places you visit, restaurants you like, etc.

Your smartphone apps collect a lot of personal information about you

Casinos keep a track of every move each customer makes

As data generation and collection keeps increasing, visualizing it and drawing inferences becomes more and more challenging. One of the most common ways of doing visualization is through charts. Suppose we have 2 variables, Age and Height. We can use a scatter or line plot between Age and Height and visualize their relationship easily:

Now consider a case in which we have, say 100 variables (p=100). In this case, we can have 100(100-1)/2 = 5000 different plots. It does not make much sense to visualize each of them separately, right? In such cases where we have a large number of variables, it is better to select a subset of these variables (p<<100) which captures as much information as the original set of variables.

Let us understand this with a simple example. Consider the below image:

Here we have weights of similar objects in Kg (X1) and Pound (X2). If we use both of these variables, they will convey similar information. So, it would make sense to use only one variable. We can convert the data from 2D (X1 and X2) to 1D (Y1) as shown below:

Similarly, we can reduce p dimensions of the data into a subset of k dimensions (k<<n). This is called dimensionality reduction.

2. Why is Dimensionality Reduction required?

Here are some of the benefits of applying dimensionality reduction to a dataset:

Space required to store the data is reduced as the number of dimensions comes down

Less dimensions lead to less computation/training time

Some algorithms do not perform well when we have a large dimensions. So reducing these dimensions needs to happen for the algorithm to be useful

It takes care of multicollinearity by removing redundant features. For example, you have two variables – ‘time spent on treadmill in minutes’ and ‘calories burnt’. These variables are highly correlated as the more time you spend running on a treadmill, the more calories you will burn. Hence, there is no point in storing both as just one of them does what you require

It helps in visualizing data. As discussed earlier, it is very difficult to visualize data in higher dimensions so reducing our space to 2D or 3D may allow us to plot and observe patterns more clearly

Time to dive into the crux of this article – the various dimensionality reduction techniques! We will be using the dataset from AV’s Practice Problem: Big Mart Sales III (register on this link and download the dataset from the data section).

3. Common Dimensionality Reduction Techniques

Dimensionality reduction can be done in two different ways:

By only keeping the most relevant variables from the original dataset (this technique is called feature selection)

By finding a smaller set of new variables, each being a combination of the input variables, containing basically the same information as the input variables (this technique is called dimensionality reduction)

We will now look at various dimensionality reduction techniques and how to implement each of them in Python.

3.1 Missing Value Ratio

Suppose you’re given a dataset. What would be your first step? You would naturally want to explore the data first before building model. While exploring the data, you find that your dataset has some missing values. Now what? You will try to find out the reason for these missing values and then impute them or drop the variables entirely which have missing values (using appropriate methods).

What if we have too many missing values (say more than 50%)? Should we impute the missing values or drop the variable? I would prefer to drop the variable since it will not have much information. However, this isn’t set in stone. We can set a threshold value and if the percentage of missing values in any variable is more than that threshold, we will drop the variable.

Python Code:

First, let’s load the data:

# read the data train=pd.read_csv("Train_UWu5bXk.csv")

Note: The path of the file should be added while reading the data.

Now, we will check the percentage of missing values in each variable. We can use .isnull().sum() to calculate this.

# checking the percentage of missing values in each variable train.isnull().sum()/len(train)*100

As you can see in the above table, there aren’t too many missing values (just 2 variables have them actually). We can impute the values using appropriate methods, or we can set a threshold of, say 20%, and remove the variable having more than 20% missing values. Let’s look at how this can be done in Python:

# saving missing values in a variable a = train.isnull().sum()/len(train)*100 # saving column names in a variable variables = train.columns variable = [ ] for i in range(0,12):     if a[i]<=20:   #setting the threshold as 20%     variable.append(variables[i])

So the variables to be used are stored in “variable”, which contains only those features where the missing values are less than 20%.

3.2 Low Variance Filter

Consider a variable in our dataset where all the observations have the same value, say 1. If we use this variable, do you think it can improve the model we will build? The answer is no, because this variable will have zero variance.

So, we need to calculate the variance of each variable we are given. Then drop the variables having low variance as compared to other variables in our dataset. The reason for doing this, as I mentioned above, is that variables with a low variance will not affect the target variable.

Let’s first impute the missing values in the Item_Weight column using the median value of the known Item_Weight observations. For the Outlet_Size column, we will use the mode of the known Outlet_Size values to impute the missing values:

train['Item_Weight'].fillna(train['Item_Weight'].median(), inplace=True) train['Outlet_Size'].fillna(train['Outlet_Size'].mode()[0], inplace=True)

Let’s check whether all the missing values have been filled:


Voila! We are all set. Now let’s calculate the variance of all the numerical variables.


As the above output shows, the variance of Item_Visibility is very less as compared to the other variables. We can safely drop this column. This is how we apply low variance filter. Let’s implement this in Python:

numeric = train[['Item_Weight', 'Item_Visibility', 'Item_MRP', 'Outlet_Establishment_Year']] var = numeric.var() numeric = numeric.columns variable = [ ] for i in range(0,len(var)):        variable.append(numeric[i+1])

The above code gives us the list of variables that have a variance greater than 10.

3.3 High Correlation filter

High correlation between two variables means they have similar trends and are likely to carry similar information. This can bring down the performance of some models drastically (linear and logistic regression models, for instance). We can calculate the correlation between independent numerical variables that are numerical in nature. If the correlation coefficient crosses a certain threshold value, we can drop one of the variables (dropping a variable is highly subjective and should always be done keeping the domain in mind).

As a general guideline, we should keep those variables which show a decent or high correlation with the target variable.

Let’s perform the correlation calculation in Python. We will drop the dependent variable (Item_Outlet_Sales) first and save the remaining variables in a new dataframe (df).

df=train.drop('Item_Outlet_Sales', 1) df.corr()

Wonderful, we don’t have any variables with a high correlation in our dataset. Generally, if the correlation between a pair of variables is greater than 0.5-0.6, we should seriously consider dropping one of those variables.

3.4 Random Forest

Random Forest is one of the most widely used algorithms for feature selection. It comes packaged with in-built feature importance so you don’t need to program that separately. This helps us select a smaller subset of features.

We need to convert the data into numeric form by applying one hot encoding, as Random Forest (Scikit-Learn Implementation) takes only numeric inputs. Let’s also drop the ID variables (Item_Identifier and Outlet_Identifier) as these are just unique numbers and hold no significant importance for us currently.

from sklearn.ensemble import RandomForestRegressor df=df.drop(['Item_Identifier', 'Outlet_Identifier'], axis=1) model = RandomForestRegressor(random_state=1, max_depth=10) df=pd.get_dummies(df),train.Item_Outlet_Sales)

After fitting the model, plot the feature importance graph:

features = df.columns importances = model.feature_importances_ indices = np.argsort(importances)[-9:]  # top 10 features plt.title('Feature Importances') plt.barh(range(len(indices)), importances[indices], color='b', align='center') plt.yticks(range(len(indices)), [features[i] for i in indices]) plt.xlabel('Relative Importance')

Based on the above graph, we can hand pick the top-most features to reduce the dimensionality in our dataset. Alernatively, we can use the SelectFromModel of sklearn to do so. It selects the features based on the importance of their weights.

from sklearn.feature_selection import SelectFromModel feature = SelectFromModel(model) Fit = feature.fit_transform(df, train.Item_Outlet_Sales) 3.5 Backward Feature Elimination

Follow the below steps to understand and use the ‘Backward Feature Elimination’ technique:

We first take all the n variables present in our dataset and train the model using them

We then calculate the performance of the model

Now, we compute the performance of the model after eliminating each variable (n times), i.e., we drop one variable every time and train the model on the remaining n-1 variables

We identify the variable whose removal has produced the smallest (or no) change in the performance of the model, and then drop that variable

Repeat this process until no variable can be dropped

This method can be used when building Linear Regression or Logistic Regression models. Let’s look at it’s Python implementation:

from sklearn.linear_model import LinearRegression from sklearn.feature_selection import RFE from sklearn import datasets lreg = LinearRegression() rfe = RFE(lreg, 10) rfe = rfe.fit_transform(df, train.Item_Outlet_Sales)

We need to specify the algorithm and number of features to select, and we get back the list of variables obtained from backward feature elimination. We can also check the ranking of the variables using the “rfe.ranking_” command.

3.6 Forward Feature Selection

This is the opposite process of the Backward Feature Elimination we saw above. Instead of eliminating features, we try to find the best features which improve the performance of the model. This technique works as follows:

We start with a single feature. Essentially, we train the model n number of times using each feature separately

The variable giving the best performance is selected as the starting variable

Then we repeat this process and add one variable at a time. The variable that produces the highest increase in performance is retained

We repeat this process until no significant improvement is seen in the model’s performance

Let’s implement it in Python:

from sklearn.feature_selection import f_regression ffs = f_regression(df,train.Item_Outlet_Sales )

This returns an array containing the F-values of the variables and the p-values corresponding to each F value. Refer to this link to learn more about F-values. For our purpose, we will select the variables having F-value greater than 10:

variable = [ ] for i in range(0,len(df.columns)-1):        variable.append(df.columns[i])

This gives us the top most variables based on the forward feature selection algorithm.

NOTE : Both Backward Feature Elimination and Forward Feature Selection are time consuming and computationally expensive.They are practically only used on datasets that have a small number of input variables.

The techniques we have seen so far are generally used when we do not have a very large number of variables in our dataset. These are more or less feature selection techniques. In the upcoming sections, we will be working with the Fashion MNIST dataset, which consists of images belonging to different types of apparel, e.g. T-shirt, trousers, bag, etc. The dataset can be downloaded from the “IDENTIFY THE APPAREL” practice problem.

The dataset has a total of 70,000 images, out of which 60,000 are in the training set and the remaining 10,000 are test images. For the scope of this article, we will be working only on the training images. The train file is in a zip format. Once you extract the zip file, you will get a .csv file and a train folder which includes these 60,000 images. The corresponding label of each image can be found in the ‘train.csv’ file.

3.7 Factor Analysis

Suppose we have two variables: Income and Education. These variables will potentially have a high correlation as people with a higher education level tend to have significantly higher income, and vice versa.

In the Factor Analysis technique, variables are grouped by their correlations, i.e., all variables in a particular group will have a high correlation among themselves, but a low correlation with variables of other group(s). Here, each group is known as a factor. These factors are small in number as compared to the original dimensions of the data. However, these factors are difficult to observe.

Let’s first read in all the images contained in the train folder:

import pandas as pd import numpy as np from glob import glob import cv2 images = [cv2.imread(file) for file in glob('train/*.png')]

NOTE: You must replace the path inside the glob function with the path of your train folder.

Now we will convert these images into a numpy array format so that we can perform mathematical operations and also plot the images.

images = np.array(images) images.shape

(60000, 28, 28, 3)

As you can see above, it’s a 3-dimensional array. We must convert it to 1-dimension as all the upcoming techniques only take 1-dimensional input. To do this, we need to flatten the images:

image = [] for i in range(0,60000): img = images[i].flatten() image.append(img) image = np.array(image)

Let us now create a dataframe containing the pixel values of every individual pixel present in each image, and also their corresponding labels (for labels, we will make use of the chúng tôi file).

train = pd.read_csv("train.csv") # Give the complete path of your chúng tôi file feat_cols = [ 'pixel'+str(i) for i in range(image.shape[1]) ] df = pd.DataFrame(image,columns=feat_cols) df['label'] = train['label']

Now we will decompose the dataset using Factor Analysis:

from sklearn.decomposition import FactorAnalysis FA = FactorAnalysis(n_components = 3).fit_transform(df[feat_cols].values)

Here, n_components will decide the number of factors in the transformed data. After transforming the data, it’s time to visualize the results:

%matplotlib inline import matplotlib.pyplot as plt plt.figure(figsize=(12,8)) plt.title('Factor Analysis Components') plt.scatter(FA[:,0], FA[:,1]) plt.scatter(FA[:,1], FA[:,2]) plt.scatter(FA[:,2],FA[:,0])

Looks amazing, doesn’t it? We can see all the different factors in the above graph. Here, the x-axis and y-axis represent the values of decomposed factors. As I mentioned earlier, it is hard to observe these factors individually but we have been able to reduce the dimensions of our data successfully.

3.8 Principal Component Analysis (PCA)

PCA is a technique which helps us in extracting a new set of variables from an existing large set of variables. These newly extracted variables are called Principal Components. You can refer to this article to learn more about PCA. For your quick reference, below are some of the key points you should know about PCA before proceeding further:

A principal component is a linear combination of the original variables

Principal components are extracted in such a way that the first principal component explains maximum variance in the dataset

Second principal component tries to explain the remaining variance in the dataset and is uncorrelated to the first principal component

Third principal component tries to explain the variance which is not explained by the first two principal components and so on

Before moving further, we’ll randomly plot some of the images from our dataset:

rndperm = np.random.permutation(df.shape[0]) plt.gray() fig = plt.figure(figsize=(20,10)) for i in range(0,15): ax = fig.add_subplot(3,5,i+1) ax.matshow(df.loc[rndperm[i],feat_cols].values.reshape((28,28*3)).astype(float))

Let’s implement PCA using Python and transform the dataset:

from sklearn.decomposition import PCA pca = PCA(n_components=4) pca_result = pca.fit_transform(df[feat_cols].values)

In this case, n_components will decide the number of principal components in the transformed data. Let’s visualize how much variance has been explained using these 4 components. We will use explained_variance_ratio_ to calculate the same.

plt.plot(range(4), pca.explained_variance_ratio_) plt.plot(range(4), np.cumsum(pca.explained_variance_ratio_)) plt.title("Component-wise and Cumulative Explained Variance")

In the above graph, the blue line represents component-wise explained variance while the orange line represents the cumulative explained variance. We are able to explain around 60% variance in the dataset using just four components. Let us now try to visualize each of these decomposed components:

import seaborn as sns'fivethirtyeight') fig, axarr = plt.subplots(2, 2, figsize=(12, 8)) axarr[0][0].set_title( "{0:.2f}% Explained Variance".format(pca.explained_variance_ratio_[0]*100), fontsize=12 ) axarr[0][1].set_title( "{0:.2f}% Explained Variance".format(pca.explained_variance_ratio_[1]*100), fontsize=12 ) axarr[1][0].set_title( "{0:.2f}% Explained Variance".format(pca.explained_variance_ratio_[2]*100), fontsize=12 ) axarr[1][1].set_title( "{0:.2f}% Explained Variance".format(pca.explained_variance_ratio_[3]*100), fontsize=12 ) axarr[0][0].set_aspect('equal') axarr[0][1].set_aspect('equal') axarr[1][0].set_aspect('equal') axarr[1][1].set_aspect('equal') plt.suptitle('4-Component PCA')

Each additional dimension we add to the PCA technique captures less and less of the variance in the model. The first component is the most important one, followed by the second, then the third, and so on.

We can also use Singular Value Decomposition (SVD) to decompose our original dataset into its constituents, resulting in dimensionality reduction. To learn the mathematics behind SVD, refer to this article.

SVD decomposes the original variables into three constituent matrices. It is essentially used to remove redundant features from the dataset. It uses the concept of Eigenvalues and Eigenvectors to determine those three matrices. We will not go into the mathematics of it due to the scope of this article, but let’s stick to our plan, i.e. reducing the dimensions in our dataset.

Let’s implement SVD and decompose our original variables:

from sklearn.decomposition import TruncatedSVD svd = TruncatedSVD(n_components=3, random_state=42).fit_transform(df[feat_cols].values)

Let us visualize the transformed variables by plotting the first two principal components:

plt.figure(figsize=(12,8)) plt.title('SVD Components') plt.scatter(svd[:,0], svd[:,1]) plt.scatter(svd[:,1], svd[:,2]) plt.scatter(svd[:,2],svd[:,0])

The above scatter plot shows us the decomposed components very neatly. As described earlier, there is not much correlation between these components.

3.9 Independent Component Analysis

Independent Component Analysis (ICA) is based on information-theory and is also one of the most widely used dimensionality reduction techniques. The major difference between PCA and ICA is that PCA looks for uncorrelated factors while ICA looks for independent factors.

If two variables are uncorrelated, it means there is no linear relation between them. If they are independent, it means they are not dependent on other variables. For example, the age of a person is independent of what that person eats, or how much television he/she watches.

This algorithm assumes that the given variables are linear mixtures of some unknown latent variables. It also assumes that these latent variables are mutually independent, i.e., they are not dependent on other variables and hence they are called the independent components of the observed data.

Let’s compare PCA and ICA visually to get a better understanding of how they are different:

Here, image (a) represents the PCA results while image (b) represents the ICA results on the same dataset.

The equation of PCA is x = Wχ.


x is the observations

W is the mixing matrix

χ is the source or the independent components

Now we have to find an un-mixing matrix such that the components become as independent as possible. Most common method to measure independence of components is Non-Gaussianity:

As per the central limit theorem, distribution of the sum of independent components tends to be normally distributed (Gaussian).

So we can look for the transformations that maximize the kurtosis of each component of the independent components. Kurtosis is the third order moment of the distribution. To learn more about kurtosis, head over here.

Maximizing the kurtosis will make the distribution non-gaussian and hence we will get independent components.

The above distribution is non-gaussian which in turn makes the components independent. Let’s try to implement ICA in Python:

from sklearn.decomposition import FastICA ICA = FastICA(n_components=3, random_state=12) X=ICA.fit_transform(df[feat_cols].values)

Here, n_components will decide the number of components in the transformed data. We have transformed the data into 3 components using ICA. Let’s visualize how well it has transformed the data:

plt.figure(figsize=(12,8)) plt.title('ICA Components') plt.scatter(X[:,0], X[:,1]) plt.scatter(X[:,1], X[:,2]) plt.scatter(X[:,2], X[:,0])

The data has been separated into different independent components which can be seen very clearly in the above image. X-axis and Y-axis represent the value of decomposed independent components.

Now we shall look at some of the methods which reduce the dimensions of the data using projection techniques.

3.10 Methods Based on Projections

To start off, we need to understand what projection is. Suppose we have two vectors, vector a and vector b, as shown below:

We want to find the projection of a on b. Let the angle between a and b be ∅. The projection (a1) will look like:

a1 is the vector parallel to b. So, we can get the projection of vector a on vector b using the below equation:


a1 = projection of a onto b

b̂ = unit vector in the direction of b

By projecting one vector onto the other, dimensionality can be reduced.

In projection techniques, multi-dimensional data is represented by projecting its points onto a lower-dimensional space. Now we will discuss different methods of projections:

Projection onto interesting directions:

Interesting directions depend on specific problems but generally, directions in which the projected values are non-gaussian are considered to be interesting

Similar to ICA (Independent Component Analysis), projection looks for directions maximizing the kurtosis of the projected values as a measure of non-gaussianity

Projection onto Manifolds:

Once upon a time, it was assumed that the Earth was flat. No matter where you go on Earth, it keeps looking flat (let’s ignore the mountains for a while). But if you keep walking in one direction, you will end up where you started. That wouldn’t happen if the Earth was flat. The Earth only looks flat because we are minuscule as compared to the size of the Earth.

These small portions where the Earth looks flat are manifolds, and if we combine all these manifolds we get a large scale view of the Earth, i.e., original data. Similarly for an n-dimensional curve, small flat pieces are manifolds and a combination of these manifolds will give us the original n-dimensional curve. Let us look at the steps for projection onto manifolds:

We first look for a manifold that is close to the data

Then project the data onto that manifold

Finally for representation, we unfold the manifold

There are various techniques to get the manifold, and all of these techniques consist of a three-step approach:

Collecting information from each data point to construct a graph having data points as vertices

Transforming the above generated graph into suitable input for embedding steps

Computing an (nXn) eigen equation

Let us understand manifold projection technique with an example.

If a manifold is continuously differentiable to any order, it is known as smooth or differentiable manifold. ISOMAP is an algorithm which aims to recover full low-dimensional representation of a non-linear manifold. It assumes that the manifold is smooth.

It also assumes that for any pair of points on manifold, the geodesic distance (shortest distance between two points on a curved surface) between the two points is equal to the Euclidean distance (shortest distance between two points on a straight line). Let’s first visualize the geodesic and Euclidean distance between a pair of points:


Dn1n2 = geodesic distance between X1 and X2

dn1n2 = Euclidean distance between X1 and X2

ISOMAP assumes both of these distances to be equal. Let’s now look at a more detailed explanation of this technique. As mentioned earlier, all these techniques work on a three-step approach. We will look at each of these steps in detail:

Neighborhood Graph:

|| xi-xj || = Euclidean distance between xi and xj

After calculating the distance, we determine which data points are neighbors of manifold

Finally the neighborhood graph is generated: G=G(V,ℰ), where the set of vertices V = {x1, x2,…., xn} are input data points and set of edges ℰ = {eij} indicate neighborhood relationship between the points

Compute Graph Distances:

Now we calculate the geodesic distance between pairs of points in manifold by graph distances

Graph distance is the shortest path distance between all pairs of points in graph G


Once we have the distances, we form a symmetric (nXn) matrix of squared graph distance

Now we choose embedding vectors to minimize the difference between geodesic distance and graph distance

Finally, the graph G is embedded into Y by the (t Xn) matrix

Let’s implement it in Python and get a clearer picture of what I’m talking about. We will perform non-linear dimensionality reduction through Isometric Mapping. For visualization, we will only take a subset of our dataset as running it on the entire dataset will require a lot of time.

from sklearn import manifold trans_data = manifold.Isomap(n_neighbors=5, n_components=3, n_jobs=-1).fit_transform(df[feat_cols][:6000].values)

Parameters used:

n_neighbors decides the number of neighbors for each point

n_components decides the number of coordinates for manifold

n_jobs = -1 will use all the CPU cores available

Visualizing the transformed data:

plt.figure(figsize=(12,8)) plt.title('Decomposition using ISOMAP') plt.scatter(trans_data[:,0], trans_data[:,1]) plt.scatter(trans_data[:,1], trans_data[:,2]) plt.scatter(trans_data[:,2], trans_data[:,0])

You can see above that the correlation between these components is very low. In fact, they are even less correlated as compared to the components we obtained using SVD earlier!

3.11 t- Distributed Stochastic Neighbor Embedding (t-SNE)

Local approaches :  They maps nearby points on the manifold to nearby points in the low dimensional representation.

Global approaches : They attempt to preserve geometry at all scales, i.e. mapping nearby points on manifold to nearby points in low dimensional representation as well as far away points to far away points.

t-SNE is one of the few algorithms which is capable of retaining both local and global structure of the data at the same time

It calculates the probability similarity of points in high dimensional space as well as in low dimensional space

After calculating both the probabilities, it minimizes the difference between both the probabilities

You can refer to this article to learn about t-SNE in more detail.

We will now implement it in Python and visualize the outcomes:

from sklearn.manifold import TSNE tsne = TSNE(n_components=3, n_iter=300).fit_transform(df[feat_cols][:6000].values)

n_components will decide the number of components in the transformed data. Time to visualize the transformed data:

plt.figure(figsize=(12,8)) plt.title('t-SNE components') plt.scatter(tsne[:,0], tsne[:,1]) plt.scatter(tsne[:,1], tsne[:,2]) plt.scatter(tsne[:,2], tsne[:,0])

Here you can clearly see the different components that have been transformed using the powerful t-SNE technique.

3.12 UMAP

t-SNE works very well on large datasets but it also has it’s limitations, such as loss of large-scale information, slow computation time, and inability to meaningfully represent very large datasets. Uniform Manifold Approximation and Projection (UMAP) is a dimension reduction technique that can preserve as much of the local, and more of the global data structure as compared to t-SNE, with a shorter runtime. Sounds intriguing, right?

It can handle large datasets and high dimensional data without too much difficulty

It combines the power of visualization with the ability to reduce the dimensions of the data

Along with preserving the local structure, it also preserves the global structure of the data. UMAP maps nearby points on the manifold to nearby points in the low dimensional representation, and does the same for far away points

This method uses the concept of k-nearest neighbor and optimizes the results using stochastic gradient descent. It first calculates the distance between the points in high dimensional space, projects them onto the low dimensional space, and calculates the distance between points in this low dimensional space. It then uses Stochastic Gradient Descent to minimize the difference between these distances. To get a more in-depth understanding of how UMAP works, check out this paper.

Refer here to see the documentation and installation guide of UMAP. We will now implement it in Python:

import umap umap_data = umap.UMAP(n_neighbors=5, min_dist=0.3, n_components=3).fit_transform(df[feat_cols][:6000].values)


n_neighbors determines the number of neighboring points used

min_dist controls how tightly embedding is allowed. Larger values ensure embedded points are more evenly distributed

Let us visualize the transformation:

plt.figure(figsize=(12,8)) plt.title('Decomposition using UMAP') plt.scatter(umap_data[:,0], umap_data[:,1]) plt.scatter(umap_data[:,1], umap_data[:,2]) plt.scatter(umap_data[:,2], umap_data[:,0])

The dimensions have been reduced and we can visualize the different transformed components. There is very less correlation between the transformed variables. Let us compare the results from UMAP and t-SNE:

We can see that the correlation between the components obtained from UMAP is quite less as compared to the correlation between the components obtained from t-SNE. Hence, UMAP tends to give better results.

As mentioned in UMAP’s GitHub repository, it often performs better at preserving aspects of the global structure of the data than t-SNE. This means that it can often provide a better “big picture” view of the data as well as preserving local neighbor relations.

Take a deep breath. We have covered quite a lot of the dimensionality reduction techniques out there. Let’s briefly summarize where each of them can be used.

4. Brief Summary of when to use each Dimensionality Reduction Technique

In this section, we will briefly summarize the use cases of each dimensionality reduction technique that we covered. It’s important to understand where you can, and should, use a certain technique as it helps save time, effort and computational power.

Missing Value Ratio: If the dataset has too many missing values, we use this approach to reduce the number of variables. We can drop the variables having a large number of missing values in them

Low Variance filter: We apply this approach to identify and drop constant variables from the dataset. The target variable is not unduly affected by variables with low variance, and hence these variables can be safely dropped

High Correlation filter: A pair of variables having high correlation increases multicollinearity in the dataset. So, we can use this technique to find highly correlated features and drop them accordingly

Random Forest: This is one of the most commonly used techniques which tells us the importance of each feature present in the dataset. We can find the importance of each feature and keep the top most features, resulting in dimensionality reduction

Both Backward Feature Elimination and Forward Feature Selection techniques take a lot of computational time and are thus generally used on smaller datasets

Factor Analysis: This technique is best suited for situations where we have highly correlated set of variables. It divides the variables based on their correlation into different groups, and represents each group with a factor

Principal Component Analysis: This is one of the most widely used techniques for dealing with linear data. It divides the data into a set of components which try to explain as much variance as possible

Independent Component Analysis: We can use ICA to transform the data into independent components which describe the data using less number of components

ISOMAP: We use this technique when the data is strongly non-linear

t-SNE: This technique also works well when the data is strongly non-linear. It works extremely well for visualizations as well

UMAP: This technique works well for high dimensional data. Its run-time is shorter as compared to t-SNE

End Notes

This is as comprehensive an article on dimensionality reduction as you’ll find anywhere! I had a lot of fun writing it and found a few new ways of dealing with high number of variables I hadn’t used before (like UMAP).

Dealing with thousands and millions of features is a must-have skill for any data scientist. The amount of data we are generating each day is unprecedented and we need to find different ways to figure out how to use it. Dimensionality reduction is a very useful way to do this and has worked wonders for me, both in a professional setting as well as in machine learning hackathons.


What Is Power Bi? The Ultimate Guide To Microsoft’s Bi Tool

Microsoft Power BI or Power BI as we know it, is one of the world’s most popular business intelligence tools that allow users to analyze data and share insights.

It is a collection of software services (SaaS), apps, and connectors that work together to turn your data into visually immersive and interactive insights.

Power BI takes business intelligence to a new level and is designed to be used by business professionals with varying levels of data knowledge.

Its dashboard is straightforward, and intuitive and is capable of reporting and visualizing data in a wide range of different styles, including graphs, maps, charts, and more.

Whether you’re a small business owner or a large enterprise, Power BI can help you make data-driven decisions. It provides a comprehensive view of your data, making it easier for you to identify trends, patterns, and insights. With Power BI, you can collaborate with your team, share reports and interactive dashboards, and access your data from anywhere, at any time.

In this article, we will explore the top features and functionality of Power BI, and how it can benefit you and your business.

Let’s get to it.

Power BI Desktop home screen.

Now, let’s check out some of the key features and benefits of Power BI

Power BI sales dashboard example withing Power BI.

Connectivity to a variety of data sources

Data modeling and transformation

Customizable visualizations and dashboards

Collaboration and sharing capabilities

AI-powered insights and recommendations

Power BI offers a number of benefits to businesses that use it.

Key benefits include:

Improved data visibility and insights

Increased efficiency and productivity

Better decision-making capabilities

Improved real-time collaboration and communication

Reduced costs and improved ROI

Overall, Power BI is a powerful tool that can help businesses gain insights into their data and make data-driven decisions.

With the addition of Artificial Intelligence, you will find your data preparation efforts will be supercharged in the BI platform.

Power BI works by connecting to various data sources so you can, well, extract data from them. We’ve broken compatible data sources into 5 main groups, including:

An overview of Power BI


Text (TXT)



Database sources:

SQL Server







Amazon Redshift


Azure SQL Database

Cloud-based sources:

Microsoft Azure (Blob Storage, Table Storage, Data Lake, Cosmos DB)

Amazon Web Services (S3, RDS)

Google Cloud Platform (BigQuery)

SharePoint Online (Lists, Excel files)

Dynamics 365


Google Analytics

Adobe Analytics

Other sources:

OData feeds


Web pages (by using the Web connector to scrape data)

R and Python scripts

Android Apps

On-premises data sources (using Power BI Gateway):

SQL Server Analysis Services (SSAS)

SAP Business Warehouse

SharePoint on-premises (Lists, Excel files)

Exchange on-premises

Please note that support is added for new data sources all the time, and you also have the option to use custom or create your own connectors using Power Query M or the Power BI REST API.

Utilizing DAX in Power BI


Column chart (stacked, clustered, 100% stacked)

Bar chart (stacked, clustered, 100% stacked)

Line chart

Area chart (stacked, line, 100% stacked)

Pie chart

Donut chart


Waterfall chart

Funnel chart

Ribbon chart

Radar chart


Map (with bubbles, heatmaps, or custom shapes)

Filled map (choropleth)

ArcGIS maps

Shape maps

Tables and matrices



Paginated report table

Cards and gauges


Multi-row card

KPI (Key Performance Indicator)


Slicers and filters


Date slicer

Relative date slicer

Filter pane

Advanced visuals

Scatter chart

Bubble chart

R script visual

Python script visual

Play axis (for animations)

Decomposition tree

Smart narratives

Custom visuals

Numerous custom visuals are available in the Power BI Visuals Marketplace, including Gantt chart, Sankey chart, Word cloud, Histogram, and more.

Now you have created your visuals, it is time to get sharing.

Finally, Power BI allows you to transform your data analytics and share your visualizations with others in a variety of ways, whether on windows or ios.

Firstly, you can publish your reports to the Power BI service, which allows others to view your reports online and is the primary way Power BI users share their dashboards.

Furthermore, you can also export your reports to various formats, including PDF and Excel, or embed them in other applications using Power BI’s APIs.

To get started with Power BI, you need to install the Power BI Desktop application on your computer.

The installation process is straightforward and can be completed in a few steps. First, visit the Microsoft Store page and download the Power BI Desktop application. Follow the prompts to complete the installation process.

Once the installation is complete, open the Power BI Desktop application and sign in using your Microsoft account.

Next steps? Try our free course on Power BI to get a good grasp of the basic concepts, and you will be a Power BI pro in no time!

Creating a date table in Power BI, one of the first things you will learn.

Microsft Power BI has revolutionized business analytics by allowing you to create customized reports and dashboards that can be used to visualize, analyze and share metrics and data.

Once you have imported the data, you can use the drag-and-drop interface to create visualizations such as charts, tables, and maps.

Dashboards are collections of visualizations that can be used to monitor key performance indicators (KPIs) and track progress toward business goals.

To create a dashboard, you need to add visualizations to a canvas and arrange them in a way that makes sense to the user. It really is that simple.

Power BI interface up showcasing data.

Once you have created a report or dashboard, you can publish it to the Power BI service and share it with others.

To publish a report, select the Publish button in the Power BI Desktop application and follow the prompts to upload the report to the Power BI service.

To share a report, you can either share a link to the report or embed it in a website or application.

Data Analysis Expressions (DAX) is a formula language used in Power BI that allows users to create custom calculations and measures.

DAX includes a range of functions and operators that enable users to manipulate data and perform complex calculations.

DAX formulas can be used to analyze data from multiple tables and create dynamic visualizations.

Some of the key features of DAX include:

Aggregation and filtering of data

Calculation of rolling averages, year-to-date totals, and other complex calculations

Integration with Excel formulas and functions

A great example of a Power BI dashboard for a hotel.

Power Query is a data transformation and cleansing tool that allows users to extract data from multiple sources, transform it, and load it into Power BI for analysis.

Power Query includes a range of data transformation functions and connectors that enable users to clean and shape data for analysis.

Some of the key features of Power Query include:

Integration with a wide range of data sources, including SQL Server, Oracle, and Excel

Data cleansing and transformation using a range of functions and operators

Automatic detection and correction of data errors

The Power BI mobile app allows users to access and analyze Power BI reports and big data dashboards on the go.

The app includes a range of features that enable users to view and interact with data on their mobile devices.

Some of the key features of the Power BI mobile app include:

Offline access to reports and dashboards

Integration with mobile device features such as GPS and camera

Ability to share reports and dashboards with others

Power BI Embedded is a cloud-based service that allows users to embed Power BI reports and dashboards into their own applications.

This enables users to integrate data analysis and visualization capabilities directly into their own software products and workspace.

Some of the key features of Power BI Embedded include:

Integration with a wide range of programming languages and frameworks

Customizable visualizations and branding options

Scalable and flexible pricing options

Another great example of using Power BI, this time for sports.

There are 4 versions of Power BI, we will give you an overview below:

Power BI Pro – This is a subscription-based service and offers a comprehensive list of features and functionality. You can access the full power of Power BI with this subscription. Prices ( at the time of writing) are $9.99 per user, per month (billed annually) or $20 per user, per month, billed monthly.

Power BI Premium – Designed for companies with a need for dedicated data needs, dedicated cloud capacity, and high performance. Pricing starts at $20,000usd per month, billed annually.

Simply put, Excel is best suited for small to medium-sized data sets and simpler tasks.

SQL is a language used to manipulate data with a focus on data management, not visualization.

Power pivot is an Excel add-on that enables you to easily analyze and manipulate large volumes of data. It basically increases Excel’s capabilities and functionality and allows you to pull in data from various sources.

Power View is an excel feature that was integrated back in 2013; it is now basically redundant as all of its features were incorporated into Power BI.

Update the detailed information about Ios 7: The Ultimate Weather App 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!