Advertisement
piotranon

Untitled

Jun 17th, 2020
619
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 2.28 KB | None | 0 0
  1. library("class")
  2. require("mlbench")
  3.  
  4. accuracy <-function(x){
  5.   cat("\nPoprawność klasyfikacji przypadków testowych: ",sum(diag(x)/(sum(x))))
  6.   cat(" %")
  7. }
  8.  
  9. info <-function(x){
  10.   cat("\n=================================================================")
  11.   accuracy(x)
  12.   cat("\nIlość poprawnie rozpoznanych przypadków: ",sum(diag(x)))
  13.   cat("\nIlość błędnie rozpoznanych przypadków: ",sum(x)-sum(diag(x)))
  14.   cat("\n=================================================================\n")
  15. }
  16.  
  17. #dane wejsciowe z mlbench tez do zmiany
  18. data(Ionosphere)
  19.  
  20. #seed do zmiany
  21. set.seed(8)
  22.  
  23. #zmiana kolejnosci danych
  24. #do zmiany nazwa danych wejsciowych Ionosphere
  25. data<- Ionosphere[base::sample(nrow(Ionosphere)),]
  26.  
  27. #utworzenie zbioru treningowego 75% z całości
  28. bound<-floor(0.75*nrow(data))
  29. v_train <-data[1:bound,]
  30.  
  31.  
  32.  
  33. ###
  34. # Dane testowe ilość % jeżeli reszta z całości odkomentuj 2 linie next,
  35. # Jesli wiecej niż reszta to usuń 2 kolejne zakomentowane linie
  36. ###
  37.  
  38. #reszta danego zbioru czyli 25% z całosci
  39. #v_test <-data[(bound + 1):nrow(data), ]
  40.  
  41. #zmiana kolejnosci danych
  42. #do zmiany nazwa danych wejsciowych Ionosphere
  43. data<- Ionosphere[base::sample(nrow(Ionosphere)),]
  44.  
  45. #utworzenie zbioru testowego 75% z całości
  46. bound<-floor(0.75*nrow(data))
  47. v_test <-data[1:bound,]
  48.  
  49. ###
  50.  
  51. cat("\nIlość danych treningowych: ", nrow(v_train))
  52. cat("\nIlość danych testowych: ", nrow(v_test))
  53. cat("\nIlość klas treningowych: ", base::table(v_train$Class)/nrow(v_train))
  54. cat("\nIlość klas testowych: ", base::table(v_test$Class)/nrow(v_test))
  55.  
  56.  
  57. trainData <-subset(v_train,select = -Class)
  58. testData <-subset(v_test,select = -Class)
  59.  
  60. cl_train<-v_train$Class
  61. cl_test<-v_test$Class
  62.  
  63. ##
  64. # Metoda KNN
  65. # zmieniamy tylko k
  66. ##
  67.  
  68. knn <-knn(train=trainData,test=testData,cl=cl_train,k=4)
  69. conf_mat<-base::table(cl_test,knn)
  70.  
  71. knn2 <-knn(train=trainData,test=testData,cl=cl_train,k=6)
  72. conf_mat2<-base::table(cl_test,knn2)
  73.  
  74. ##
  75.  
  76.  
  77. info(conf_mat)
  78. info(conf_mat2)
  79.  
  80. ##
  81. # Metoda LOOCV
  82. # zmieniamy tylko k
  83. ##
  84.  
  85. knn_loocv<-knn.cv(train=trainData,cl=cl_train,k=4)
  86. conf_mat_loocv <- base::table(cl_train,knn_loocv)
  87.  
  88. knn_loocv2<-knn.cv(train=trainData,cl=cl_train,k=6)
  89. conf_mat_loocv2 <- base::table(cl_train,knn_loocv2)
  90.  
  91. ##
  92. accuracy(conf_mat_loocv)
  93. accuracy(conf_mat_loocv2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement