This article involves the use of different cluster analysis algorithms, with the target of clustering/grouping the senators using their votes as features for 15 different bills in the 114th United States Congress. Finally, the performance of the algorithms in clustering will be compared. I used the data and was inspired by the studies here.

Wikipedia’s definition for cluster analysis is: “Cluster analysis or clustering is the task of grouping a set of objects in such a way that objects in the same group are more similar to each other than to those in other groups.”

Another (more machine learning-wise) definition is: “Clustering or cluster analysis is an unsupervised learning problem.” This technique is most often used to understand the interesting patterns in data, such as groups of people based on their behavior.

Cluster analysis can be achieved by various algorithms that differ significantly in their understanding of what constitutes a cluster and how to efficiently find them. Cluster analysis is not an automatic task, but an iterative process of optimization that involves trial and failure. It is often necessary to modify data pre-processing and model parameters until the result achieves the desired properties.

There are many different algorithms for cluster analysis — some of them going back 1930s, so it may be beneficial to try different clustering algorithms in machine learning and compare their efficiency in this specific clustering task. In this paper, I will introduce the results of the following algorithms:

· K Means Clustering,

· Hierarchical Clustering,

· Gaussian Mixture Models.

I tried to concentrate on the following issues for the selected dataset and algorithms:

- How many clusters (parties) are there?
- Was the algorithm successful in detecting the clusters?
- Comparison of the performances of these algorithms.

Visual exploratory analysis of the results using Pandas and Seaborn give a better picture about the efficiency of clustering algorithms.

**Data Cleaning**

The first step is to import and clean the data (if needed) using pandas before starting the cluster analysis.