Data <- read.csv("C:\\Users\\Harisha\\Desktop\\Datascience Assignments\\KNN\\glass.csv")

View(Data)
table(Data$Type)
## 
##  1  2  3  5  6  7 
## 70 76 17 13  9 29
Data$Type <- factor(Data$Type,levels = c("1","2","3","5","6","7"),labels = c("LowModel","LowModel","HighModel","HighModel","HighModel","HighModel"))
summary(Data[c( "RI","Na","Mg","Al","Si","K","Ca","Ba","Fe")])
##        RI              Na              Mg              Al       
##  Min.   :1.511   Min.   :10.73   Min.   :0.000   Min.   :0.290  
##  1st Qu.:1.517   1st Qu.:12.91   1st Qu.:2.115   1st Qu.:1.190  
##  Median :1.518   Median :13.30   Median :3.480   Median :1.360  
##  Mean   :1.518   Mean   :13.41   Mean   :2.685   Mean   :1.445  
##  3rd Qu.:1.519   3rd Qu.:13.82   3rd Qu.:3.600   3rd Qu.:1.630  
##  Max.   :1.534   Max.   :17.38   Max.   :4.490   Max.   :3.500  
##        Si              K                Ca               Ba       
##  Min.   :69.81   Min.   :0.0000   Min.   : 5.430   Min.   :0.000  
##  1st Qu.:72.28   1st Qu.:0.1225   1st Qu.: 8.240   1st Qu.:0.000  
##  Median :72.79   Median :0.5550   Median : 8.600   Median :0.000  
##  Mean   :72.65   Mean   :0.4971   Mean   : 8.957   Mean   :0.175  
##  3rd Qu.:73.09   3rd Qu.:0.6100   3rd Qu.: 9.172   3rd Qu.:0.000  
##  Max.   :75.41   Max.   :6.2100   Max.   :16.190   Max.   :3.150  
##        Fe         
##  Min.   :0.00000  
##  1st Qu.:0.00000  
##  Median :0.00000  
##  Mean   :0.05701  
##  3rd Qu.:0.10000  
##  Max.   :0.51000
norm <- function(x){ 
  return((x-min(x))/(max(x)-min(x)))
}
Data_n <- as.data.frame(lapply(Data[1:9],norm))

Data_train <- Data_n[1:174,]
Data_test <- Data_n[175:214,]
Data_train_labels <- Data[1:174,10]
Data_test_lables <- Data[175:214,10]
library("class")
Data_pred <- knn(train = Data_train,test = Data_test,cl = Data_train_labels,k=16)
y <- as.data.frame(Data_pred)
y <- cbind(y,Data_test_lables)
library("gmodels")
CrossTable( x= Data_test_lables,y = Data_pred)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  40 
## 
##  
##                  | Data_pred 
## Data_test_lables |  LowModel | HighModel | Row Total | 
## -----------------|-----------|-----------|-----------|
##        HighModel |        36 |         4 |        40 | 
##                  |     0.900 |     0.100 |           | 
## -----------------|-----------|-----------|-----------|
##     Column Total |        36 |         4 |        40 | 
## -----------------|-----------|-----------|-----------|
## 
##