Q9.1

# import data
data = read.csv("kmdata.txt")

# split data
Y = data[, 3]
data = data[, 1:2]

# plot without color 
plot(data)

# plot with color
plot(data, col = Y + 1)

Color Plotted Data

Color Plotted Data

Q9.2

# create kMeans model
model <- kmeans(data, centers = 3)

# plot data with clusters
plot(data, col = model$cluster + 1)

# plot clusters' centers
points(model$centers, col = 1:length(model$centers) + 1, pch = "+", cex = 2)

kMeans Clustering Plot

kMeans Clustering Plot

Q9.3

# required libraries
library(mixtools)
# create Gaussian Mixture Model
model <- mvnormalmixEM(data, k = 3, epsilon = 0.01)

# clusters
clusters = max.col(model$posterior)

# centers
centers = matrix(unlist(model$mu), byrow = TRUE, ncol = 2)

# plot data
plot(data, col = clusters + 1)

# plot centers
points(centers, col = 1:length(centers) + 1, pch = "+", cex = 2)

Gaussian Mixture Model Plot

Gaussian Mixture Model Plot

Q9.4

<aside> 💡 (c) Τα Gaussian Mixture Models

</aside>