Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(GA)
- library(caret)
- library(ROCR)
- Dane_treningowe <- read.csv("C:/Users/Maciek/Desktop/SMUwAP-lab3/3/Dane_treningowe.csv",header = T, sep = ",");
- 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))
- for (i in (2:12))
- {
- regress<-glm(Status.kredytu~Dane_treningowe[,i] , data=Dane_treningowe, family = binomial(logit))
- print(i)
- print(summary(regress)$coefficient)
- }
- precision <- function(matrix) {
- # True positive
- tp <- matrix[2, 2]
- # false positive
- fp <- matrix[1, 2]
- return (tp / (tp + fp))
- }
- recall <- function(matrix) {
- # true positive
- tp <- matrix[2, 2]
- # false positive
- fn <- matrix[2, 1]
- return (tp / (tp + fn))
- }
- x = 0
- while(x < 0.8)
- {
- x = x + 0.05
- print("próg=")
- print(x)
- predict <- predict(regress_all, Dane_treningowe, type='response')
- table_mat <- table(Dane_treningowe$Status.kredytu, predict > x)
- print(table_mat)
- accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
- print("acc = ")
- print(accuracy_Test)
- print("prec = ")
- prec <- precision(table_mat)
- print(prec)
- print("rec = ")
- rec <- recall(table_mat)
- print(rec)
- F1 <- (2*(prec*rec)/(prec+rec))
- print("F1")
- print(F1)
- }
- temp <- Dane_treningowe[,2:12]
- FitFun<-function(string)
- {
- formula <- Dane_treningowe$Status.kredytu~.
- inc <- which(string == 1)
- X <- as.data.frame(cbind(temp[,inc]))
- #print(X[1:5,])
- reg<-glm(formula, data = X, family = binomial(logit))
- BIC.f<-BIC(reg)
- return(-BIC.f)
- }
- GA <- ga("binary",fitness = FitFun, nBits = 11, maxiter= 20, popSize= 75, pcrossover= 0.8, pmutation= 0.2, monitor = plot)
- summary(GA)
- temp <- temp[,10:11]
- reg_po_ga<-glm(Dane_treningowe$Status.kredytu~., data = temp, family = binomial(logit))
- summary(reg_po_ga)
- x = 0
- while(x < 0.8)
- {
- x = x + 0.1
- print("próg=")
- print(x)
- predict <- predict(reg_po_ga, Dane_treningowe, type='response')
- table_mat <- table(Dane_treningowe$Status.kredytu, predict > x)
- print(table_mat)
- accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
- print("acc = ")
- print(accuracy_Test)
- print("prec = ")
- prec <- precision(table_mat)
- print(prec)
- print("rec = ")
- rec <- recall(table_mat)
- print(rec)
- F1 <- (2*(prec*rec)/(prec+rec))
- print("F1")
- print(F1)
- }
- rm(Dane_treningowe)
- Dane_treningowe <- read.csv("C:/Users/Maciek/Desktop/SMUwAP-lab3/3/Dane_testowe.csv",header = T, sep = ",")
- x = 0
- while(x == 0){
- x = 0.5
- print("próg=");
- print(x);
- predict <- predict(reg_po_ga, Dane_treningowe, type='response');
- table_mat <- table(Dane_treningowe$Status.kredytu, predict > 0.5);
- print(table_mat);
- accuracy_Test <- sum(diag(table_mat)) / sum(table_mat);
- print("acc = ");
- print(accuracy_Test);
- print("prec = ");
- prec <- precision(table_mat);
- print(prec);
- print("rec = ");
- rec <- recall(table_mat);
- print(rec);
- F1 <- (2*(prec*rec)/(prec+rec));
- print("F1");
- print(F1)}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement