Checking the title
#load essential packages
library(dplyr)
library(ggplot2)
# Loading the data set and View the data set
View(iris)
# Step 2: Normalize numeric columns (IMPORTANT for kNN)
normalize <- function(x) {
  return((x - min(x)) / (max(x) - min(x)))
}
# Apply normalization to the first four columns (numeric features)
iris_norm <- as.data.frame(lapply(iris[, 1:4], normalize))
print(iris_norm)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1     0.22222222  0.62500000   0.06779661  0.04166667
## 2     0.16666667  0.41666667   0.06779661  0.04166667
## 3     0.11111111  0.50000000   0.05084746  0.04166667
## 4     0.08333333  0.45833333   0.08474576  0.04166667
## 5     0.19444444  0.66666667   0.06779661  0.04166667
## 6     0.30555556  0.79166667   0.11864407  0.12500000
## 7     0.08333333  0.58333333   0.06779661  0.08333333
## 8     0.19444444  0.58333333   0.08474576  0.04166667
## 9     0.02777778  0.37500000   0.06779661  0.04166667
## 10    0.16666667  0.45833333   0.08474576  0.00000000
## 11    0.30555556  0.70833333   0.08474576  0.04166667
## 12    0.13888889  0.58333333   0.10169492  0.04166667
## 13    0.13888889  0.41666667   0.06779661  0.00000000
## 14    0.00000000  0.41666667   0.01694915  0.00000000
## 15    0.41666667  0.83333333   0.03389831  0.04166667
## 16    0.38888889  1.00000000   0.08474576  0.12500000
## 17    0.30555556  0.79166667   0.05084746  0.12500000
## 18    0.22222222  0.62500000   0.06779661  0.08333333
## 19    0.38888889  0.75000000   0.11864407  0.08333333
## 20    0.22222222  0.75000000   0.08474576  0.08333333
## 21    0.30555556  0.58333333   0.11864407  0.04166667
## 22    0.22222222  0.70833333   0.08474576  0.12500000
## 23    0.08333333  0.66666667   0.00000000  0.04166667
## 24    0.22222222  0.54166667   0.11864407  0.16666667
## 25    0.13888889  0.58333333   0.15254237  0.04166667
## 26    0.19444444  0.41666667   0.10169492  0.04166667
## 27    0.19444444  0.58333333   0.10169492  0.12500000
## 28    0.25000000  0.62500000   0.08474576  0.04166667
## 29    0.25000000  0.58333333   0.06779661  0.04166667
## 30    0.11111111  0.50000000   0.10169492  0.04166667
## 31    0.13888889  0.45833333   0.10169492  0.04166667
## 32    0.30555556  0.58333333   0.08474576  0.12500000
## 33    0.25000000  0.87500000   0.08474576  0.00000000
## 34    0.33333333  0.91666667   0.06779661  0.04166667
## 35    0.16666667  0.45833333   0.08474576  0.04166667
## 36    0.19444444  0.50000000   0.03389831  0.04166667
## 37    0.33333333  0.62500000   0.05084746  0.04166667
## 38    0.16666667  0.66666667   0.06779661  0.00000000
## 39    0.02777778  0.41666667   0.05084746  0.04166667
## 40    0.22222222  0.58333333   0.08474576  0.04166667
## 41    0.19444444  0.62500000   0.05084746  0.08333333
## 42    0.05555556  0.12500000   0.05084746  0.08333333
## 43    0.02777778  0.50000000   0.05084746  0.04166667
## 44    0.19444444  0.62500000   0.10169492  0.20833333
## 45    0.22222222  0.75000000   0.15254237  0.12500000
## 46    0.13888889  0.41666667   0.06779661  0.08333333
## 47    0.22222222  0.75000000   0.10169492  0.04166667
## 48    0.08333333  0.50000000   0.06779661  0.04166667
## 49    0.27777778  0.70833333   0.08474576  0.04166667
## 50    0.19444444  0.54166667   0.06779661  0.04166667
## 51    0.75000000  0.50000000   0.62711864  0.54166667
## 52    0.58333333  0.50000000   0.59322034  0.58333333
## 53    0.72222222  0.45833333   0.66101695  0.58333333
## 54    0.33333333  0.12500000   0.50847458  0.50000000
## 55    0.61111111  0.33333333   0.61016949  0.58333333
## 56    0.38888889  0.33333333   0.59322034  0.50000000
## 57    0.55555556  0.54166667   0.62711864  0.62500000
## 58    0.16666667  0.16666667   0.38983051  0.37500000
## 59    0.63888889  0.37500000   0.61016949  0.50000000
## 60    0.25000000  0.29166667   0.49152542  0.54166667
## 61    0.19444444  0.00000000   0.42372881  0.37500000
## 62    0.44444444  0.41666667   0.54237288  0.58333333
## 63    0.47222222  0.08333333   0.50847458  0.37500000
## 64    0.50000000  0.37500000   0.62711864  0.54166667
## 65    0.36111111  0.37500000   0.44067797  0.50000000
## 66    0.66666667  0.45833333   0.57627119  0.54166667
## 67    0.36111111  0.41666667   0.59322034  0.58333333
## 68    0.41666667  0.29166667   0.52542373  0.37500000
## 69    0.52777778  0.08333333   0.59322034  0.58333333
## 70    0.36111111  0.20833333   0.49152542  0.41666667
## 71    0.44444444  0.50000000   0.64406780  0.70833333
## 72    0.50000000  0.33333333   0.50847458  0.50000000
## 73    0.55555556  0.20833333   0.66101695  0.58333333
## 74    0.50000000  0.33333333   0.62711864  0.45833333
## 75    0.58333333  0.37500000   0.55932203  0.50000000
## 76    0.63888889  0.41666667   0.57627119  0.54166667
## 77    0.69444444  0.33333333   0.64406780  0.54166667
## 78    0.66666667  0.41666667   0.67796610  0.66666667
## 79    0.47222222  0.37500000   0.59322034  0.58333333
## 80    0.38888889  0.25000000   0.42372881  0.37500000
## 81    0.33333333  0.16666667   0.47457627  0.41666667
## 82    0.33333333  0.16666667   0.45762712  0.37500000
## 83    0.41666667  0.29166667   0.49152542  0.45833333
## 84    0.47222222  0.29166667   0.69491525  0.62500000
## 85    0.30555556  0.41666667   0.59322034  0.58333333
## 86    0.47222222  0.58333333   0.59322034  0.62500000
## 87    0.66666667  0.45833333   0.62711864  0.58333333
## 88    0.55555556  0.12500000   0.57627119  0.50000000
## 89    0.36111111  0.41666667   0.52542373  0.50000000
## 90    0.33333333  0.20833333   0.50847458  0.50000000
## 91    0.33333333  0.25000000   0.57627119  0.45833333
## 92    0.50000000  0.41666667   0.61016949  0.54166667
## 93    0.41666667  0.25000000   0.50847458  0.45833333
## 94    0.19444444  0.12500000   0.38983051  0.37500000
## 95    0.36111111  0.29166667   0.54237288  0.50000000
## 96    0.38888889  0.41666667   0.54237288  0.45833333
## 97    0.38888889  0.37500000   0.54237288  0.50000000
## 98    0.52777778  0.37500000   0.55932203  0.50000000
## 99    0.22222222  0.20833333   0.33898305  0.41666667
## 100   0.38888889  0.33333333   0.52542373  0.50000000
## 101   0.55555556  0.54166667   0.84745763  1.00000000
## 102   0.41666667  0.29166667   0.69491525  0.75000000
## 103   0.77777778  0.41666667   0.83050847  0.83333333
## 104   0.55555556  0.37500000   0.77966102  0.70833333
## 105   0.61111111  0.41666667   0.81355932  0.87500000
## 106   0.91666667  0.41666667   0.94915254  0.83333333
## 107   0.16666667  0.20833333   0.59322034  0.66666667
## 108   0.83333333  0.37500000   0.89830508  0.70833333
## 109   0.66666667  0.20833333   0.81355932  0.70833333
## 110   0.80555556  0.66666667   0.86440678  1.00000000
## 111   0.61111111  0.50000000   0.69491525  0.79166667
## 112   0.58333333  0.29166667   0.72881356  0.75000000
## 113   0.69444444  0.41666667   0.76271186  0.83333333
## 114   0.38888889  0.20833333   0.67796610  0.79166667
## 115   0.41666667  0.33333333   0.69491525  0.95833333
## 116   0.58333333  0.50000000   0.72881356  0.91666667
## 117   0.61111111  0.41666667   0.76271186  0.70833333
## 118   0.94444444  0.75000000   0.96610169  0.87500000
## 119   0.94444444  0.25000000   1.00000000  0.91666667
## 120   0.47222222  0.08333333   0.67796610  0.58333333
## 121   0.72222222  0.50000000   0.79661017  0.91666667
## 122   0.36111111  0.33333333   0.66101695  0.79166667
## 123   0.94444444  0.33333333   0.96610169  0.79166667
## 124   0.55555556  0.29166667   0.66101695  0.70833333
## 125   0.66666667  0.54166667   0.79661017  0.83333333
## 126   0.80555556  0.50000000   0.84745763  0.70833333
## 127   0.52777778  0.33333333   0.64406780  0.70833333
## 128   0.50000000  0.41666667   0.66101695  0.70833333
## 129   0.58333333  0.33333333   0.77966102  0.83333333
## 130   0.80555556  0.41666667   0.81355932  0.62500000
## 131   0.86111111  0.33333333   0.86440678  0.75000000
## 132   1.00000000  0.75000000   0.91525424  0.79166667
## 133   0.58333333  0.33333333   0.77966102  0.87500000
## 134   0.55555556  0.33333333   0.69491525  0.58333333
## 135   0.50000000  0.25000000   0.77966102  0.54166667
## 136   0.94444444  0.41666667   0.86440678  0.91666667
## 137   0.55555556  0.58333333   0.77966102  0.95833333
## 138   0.58333333  0.45833333   0.76271186  0.70833333
## 139   0.47222222  0.41666667   0.64406780  0.70833333
## 140   0.72222222  0.45833333   0.74576271  0.83333333
## 141   0.66666667  0.45833333   0.77966102  0.95833333
## 142   0.72222222  0.45833333   0.69491525  0.91666667
## 143   0.41666667  0.29166667   0.69491525  0.75000000
## 144   0.69444444  0.50000000   0.83050847  0.91666667
## 145   0.66666667  0.54166667   0.79661017  1.00000000
## 146   0.66666667  0.41666667   0.71186441  0.91666667
## 147   0.55555556  0.20833333   0.67796610  0.75000000
## 148   0.61111111  0.41666667   0.71186441  0.79166667
## 149   0.52777778  0.58333333   0.74576271  0.91666667
## 150   0.44444444  0.41666667   0.69491525  0.70833333
# Add the 'Species' column (the target variable) back to the normalized data frame
iris_norm$Species <- iris$Species
# Plotting a Scatterplot using the iris dataset with ggplot2
ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) +
  geom_point(size = 3) +
  labs(
    title = "Sepal Length vs. Petal Length in Iris Flowers",
    x = "Sepal Length (cm)",
    y = "Petal Length (cm)",
    color = "Species"
  ) +
  theme_minimal()