#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()
