piotranon

Untitled

Jun 17th, 2020
399
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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)
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×