# You can write R code here and then click "Run" to run it on our platform

library(readr)

# The competition datafiles are in the directory ../input
# Read competition data files:
train <- read_csv("../input/train.csv")
test <- read_csv("../input/test.csv")

# Write to the log:
cat(sprintf("Training set has %d rows and %d columns\n", nrow(train), ncol(train)))
cat(sprintf("Test set has %d rows and %d columns\n", nrow(test), ncol(test)))

#Define accurate rate:
acc.rate<-function(x,y){
  return(sum(x==y)/length(y))
}

# Generate output files with write_csv(), plot() or ggplot()
# Any files you write to the current directory get shown as outputs
library(caret)
inTrain<-createDataPartition(train$label,p=0.02,list=F)
train.in<-train[inTrain,]
library(class)
cl=train.in$label
predictor<-train.in[,2:ncol(train.in)]

# kNN with cv assessing the accurat rate:
knncv<-knn.cv(train=predictor,cl=cl,k=1)
acc<-acc.rate(knncv,cl)
cat('the knn method with ', nrow(train.in), ' samples accurate rate is ',round(acc,2))
fit.knn<-knn(train=predictor,test=test,cl=cl,k=1)
predictions <- data.frame(ImageId=1:nrow(test), Label=fit.knn)
#Writing the submission
write_csv(predictions,'submission_kNN.csv')
