Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library("class")
- require("mlbench")
- accuracy <-function(x){
- cat("\nPoprawność klasyfikacji przypadków testowych: ",sum(diag(x)/(sum(x))))
- cat(" %")
- }
- info <-function(x){
- cat("\n=================================================================")
- accuracy(x)
- cat("\nIlość poprawnie rozpoznanych przypadków: ",sum(diag(x)))
- cat("\nIlość błędnie rozpoznanych przypadków: ",sum(x)-sum(diag(x)))
- cat("\n=================================================================\n")
- }
- #dane wejsciowe z mlbench tez do zmiany
- data(Ionosphere)
- #seed do zmiany
- set.seed(8)
- #zmiana kolejnosci danych
- #do zmiany nazwa danych wejsciowych Ionosphere
- data<- Ionosphere[base::sample(nrow(Ionosphere)),]
- #utworzenie zbioru treningowego 75% z całości
- bound<-floor(0.75*nrow(data))
- v_train <-data[1:bound,]
- ###
- # Dane testowe ilość % jeżeli reszta z całości odkomentuj 2 linie next,
- # Jesli wiecej niż reszta to usuń 2 kolejne zakomentowane linie
- ###
- #reszta danego zbioru czyli 25% z całosci
- #v_test <-data[(bound + 1):nrow(data), ]
- #zmiana kolejnosci danych
- #do zmiany nazwa danych wejsciowych Ionosphere
- data<- Ionosphere[base::sample(nrow(Ionosphere)),]
- #utworzenie zbioru testowego 75% z całości
- bound<-floor(0.75*nrow(data))
- v_test <-data[1:bound,]
- ###
- cat("\nIlość danych treningowych: ", nrow(v_train))
- cat("\nIlość danych testowych: ", nrow(v_test))
- cat("\nIlość klas treningowych: ", base::table(v_train$Class)/nrow(v_train))
- cat("\nIlość klas testowych: ", base::table(v_test$Class)/nrow(v_test))
- trainData <-subset(v_train,select = -Class)
- testData <-subset(v_test,select = -Class)
- cl_train<-v_train$Class
- cl_test<-v_test$Class
- ##
- # Metoda KNN
- # zmieniamy tylko k
- ##
- knn <-knn(train=trainData,test=testData,cl=cl_train,k=4)
- conf_mat<-base::table(cl_test,knn)
- knn2 <-knn(train=trainData,test=testData,cl=cl_train,k=6)
- conf_mat2<-base::table(cl_test,knn2)
- ##
- info(conf_mat)
- info(conf_mat2)
- ##
- # Metoda LOOCV
- # zmieniamy tylko k
- ##
- knn_loocv<-knn.cv(train=trainData,cl=cl_train,k=4)
- conf_mat_loocv <- base::table(cl_train,knn_loocv)
- knn_loocv2<-knn.cv(train=trainData,cl=cl_train,k=6)
- conf_mat_loocv2 <- base::table(cl_train,knn_loocv2)
- ##
- accuracy(conf_mat_loocv)
- accuracy(conf_mat_loocv2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement