Challenge

Project 2

Hi,

The code for the above question is mentioned below:

#Importing library

import pandas as pd

import numpy as np

from sklearn.preprocessing import StandardScaler

from sklearn.decomposition import PCA

from sklearn.cluster import KMeans, AgglomerativeClustering

import matplotlib.pyplot as plt

from scipy.cluster.hierarchy import dendrogram, linkage

# Load the data

data = pd.read_csv('Country-data.csv')

# Extract features

features = data.drop('country', axis=1)

features

# Data Preprocessing

# Handle missing values

features = features.dropna()

# Standardize the data

scaler = StandardScaler()

scaled_data = scaler.fit_transform(features)

# Principal Component Analysis (PCA)

pca = PCA(n_components=2)

pca_result = pca.fit_transform(scaled_data)

# K-Means Clustering

kmeans = KMeans(n_clusters=3, random_state=42) # Adjust the number of clusters as needed

kmeans_labels = kmeans.fit_predict(scaled_data)

# Hierarchical Clustering

hierarchical_clusters = AgglomerativeClustering(n_clusters=3, linkage='ward')

hierarchical_labels = hierarchical_clusters.fit_predict(scaled_data)

# Visualization (2D PCA plot)

plt.figure(figsize=(12, 5))

# K-Means Clustering

plt.subplot(1, 2, 1)

plt.scatter(pca_result[:, 0], pca_result[:, 1], c=kmeans_labels, cmap='viridis')

plt.title('K-Means Clustering')

# Hierarchical Clustering

plt.subplot(1, 2, 2)

linkage_matrix = linkage(scaled_data, method='ward')

dendrogram(linkage_matrix)

plt.title('Hierarchical Clustering')

plt.tight_layout()

plt.show()

# Combine results with the original data

data['KMeans_Cluster'] = kmeans_labels

data['Hierarchical_Cluster'] = hierarchical_labels

# Analyze the results and recommend countries for aid

cluster_0_countries = data[data['KMeans_Cluster'] == 0]['country']

# Display the countries in Cluster 0

print("Countries in Cluster 0 (K-Means):")

print(cluster_0_countries)

# Save the results to a CSV file

data.to_csv('clustered_countries_results.csv', index=False)

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.