Advertisement
Guest User

BOGA NIE MA!!

a guest
Nov 18th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. library(GA)
  2. library(caret)
  3. library(ROCR)
  4. Dane_treningowe <- read.csv("C:/Users/Maciek/Desktop/SMUwAP-lab3/3/Dane_treningowe.csv",header = T, sep = ",");
  5. regress_all<-glm(Dane_treningowe$Status.kredytu~Dane_treningowe[,2]+Dane_treningowe[,3]+ Dane_treningowe[,4]+Dane_treningowe[,5]+Dane_treningowe[,6]+Dane_treningowe[,7]+Dane_treningowe[,8]+Dane_treningowe[,9]+ Dane_treningowe[,10]+Dane_treningowe[,11]+Dane_treningowe[,12], family = binomial(logit))
  6. for (i in (2:12))
  7. {
  8. regress<-glm(Status.kredytu~Dane_treningowe[,i] , data=Dane_treningowe, family = binomial(logit))
  9. print(i)
  10. print(summary(regress)$coefficient)
  11. }
  12.  
  13. precision <- function(matrix) {
  14. # True positive
  15. tp <- matrix[2, 2]
  16. # false positive
  17. fp <- matrix[1, 2]
  18. return (tp / (tp + fp))
  19. }
  20.  
  21. recall <- function(matrix) {
  22. # true positive
  23. tp <- matrix[2, 2]
  24. # false positive
  25. fn <- matrix[2, 1]
  26. return (tp / (tp + fn))
  27. }
  28.  
  29. x = 0
  30. while(x < 0.8)
  31. {
  32. x = x + 0.05
  33. print("próg=")
  34. print(x)
  35. predict <- predict(regress_all, Dane_treningowe, type='response')
  36.  
  37. table_mat <- table(Dane_treningowe$Status.kredytu, predict > x)
  38. print(table_mat)
  39.  
  40. accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
  41. print("acc = ")
  42. print(accuracy_Test)
  43.  
  44. print("prec = ")
  45. prec <- precision(table_mat)
  46. print(prec)
  47.  
  48. print("rec = ")
  49. rec <- recall(table_mat)
  50. print(rec)
  51.  
  52. F1 <- (2*(prec*rec)/(prec+rec))
  53. print("F1")
  54. print(F1)
  55.  
  56. }
  57.  
  58. temp <- Dane_treningowe[,2:12]
  59.  
  60. FitFun<-function(string)
  61. {
  62. formula <- Dane_treningowe$Status.kredytu~.
  63. inc <- which(string == 1)
  64. X <- as.data.frame(cbind(temp[,inc]))
  65. #print(X[1:5,])
  66. reg<-glm(formula, data = X, family = binomial(logit))
  67. BIC.f<-BIC(reg)
  68. return(-BIC.f)
  69. }
  70. GA <- ga("binary",fitness = FitFun, nBits = 11, maxiter= 20, popSize= 75, pcrossover= 0.8, pmutation= 0.2, monitor = plot)
  71.  
  72. summary(GA)
  73.  
  74.  
  75. temp <- temp[,10:11]
  76. reg_po_ga<-glm(Dane_treningowe$Status.kredytu~., data = temp, family = binomial(logit))
  77. summary(reg_po_ga)
  78.  
  79. x = 0
  80. while(x < 0.8)
  81. {
  82. x = x + 0.1
  83. print("próg=")
  84. print(x)
  85. predict <- predict(reg_po_ga, Dane_treningowe, type='response')
  86.  
  87. table_mat <- table(Dane_treningowe$Status.kredytu, predict > x)
  88. print(table_mat)
  89.  
  90. accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
  91. print("acc = ")
  92. print(accuracy_Test)
  93.  
  94. print("prec = ")
  95. prec <- precision(table_mat)
  96. print(prec)
  97.  
  98. print("rec = ")
  99. rec <- recall(table_mat)
  100. print(rec)
  101.  
  102. F1 <- (2*(prec*rec)/(prec+rec))
  103. print("F1")
  104. print(F1)
  105. }
  106.  
  107.  
  108. rm(Dane_treningowe)
  109. Dane_treningowe <- read.csv("C:/Users/Maciek/Desktop/SMUwAP-lab3/3/Dane_testowe.csv",header = T, sep = ",")
  110. x = 0
  111. while(x == 0){
  112. x = 0.5
  113. print("próg=");
  114. print(x);
  115. predict <- predict(reg_po_ga, Dane_treningowe, type='response');
  116.  
  117. table_mat <- table(Dane_treningowe$Status.kredytu, predict > 0.5);
  118. print(table_mat);
  119.  
  120. accuracy_Test <- sum(diag(table_mat)) / sum(table_mat);
  121. print("acc = ");
  122. print(accuracy_Test);
  123.  
  124. print("prec = ");
  125. prec <- precision(table_mat);
  126. print(prec);
  127.  
  128. print("rec = ");
  129. rec <- recall(table_mat);
  130. print(rec);
  131.  
  132. F1 <- (2*(prec*rec)/(prec+rec));
  133. print("F1");
  134. print(F1)}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement