Motivatioin

K means clustering

# Load required packages
library(tidyverse)

# Load the iris dataset
data(iris)

# View the dataset
head(iris)

# Select relevant numeric columns for clustering
measurements <- iris %>% select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)

# Scale the data
measurements_scaled <- scale(measurements)

# Run K-Means Clustering
set.seed(123) # For reproducibility
kmeans_result <- kmeans(measurements_scaled, centers = 3)

# Print the cluster assignments
print(kmeans_result$cluster)

# Add cluster results to the original dataset
iris$cluster <- kmeans_result$cluster

# Visualize Clusters
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = as.factor(cluster))) +
    geom_point(size = 3) +
    labs(color = "Cluster") +
    ggtitle("K-Means Clustering of Iris Dataset")