# Unsupervised Models

This category groups articles dealing with unsupervised problems. Each post focuses on either a specific unsupervised algorithm, or a tool used when tackling an unsupervised problem. The emphasis here is on understanding these models and techniques at a technical level. Here you will learn to build unsupervised models in Python from scratch.

## Calculating Maximum Flow with 1 Simple Example

This post will cover how to determine the Maximum Flow between 2 nodes in a directed graph. Illustrated and coded Python examples are included.

## Graph Traversal – The BFS Algorithm

This article covers the Breadth First Search, or BFS algorithm. We will first describe BFS, before working through an implementation in Python.

## Implement the Weighted PageRank Algorithm in Python

In this post, we will learn the Weighted PageRank algorithm. This will be done first mathematically, then we will implement this logic into code.

## Learn the PageRank Algorithm with 1 Simple Example

In this post, we will learn the PageRank algorithm. This will be done through describing PageRank mathematically, then implementing this logic into code.

## Using Decision Trees for Clustering In 1 Simple Example

Can Decision Trees be used for clustering? This post will outline one possible application of Decision Trees for clustering problems.

## Implement K-Means from Scratch in Python

In this post, I will implement K-Means from scratch in Python. We will start from first principals, and go on to code a fully-functional K-Means model.

## Build a PCA Machine Learning Model in Python

Here we will build a PCA machine learning model in Python from scratch. We will then apply this model to the task of stock portfolio analysis.