# Gerekli kütüphaneleri yükleme
library(readr)
## Warning: package 'readr' was built under R version 4.3.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.92 loaded
library(caTools)
## Warning: package 'caTools' was built under R version 4.3.3
train <- read_csv("train_c.csv")
## Rows: 8693 Columns: 16
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Destination, deck, side
## dbl (8): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck, withgroup, ...
## lgl (3): CryoSleep, VIP, Transported
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
test <- read_csv("test_c.csv")
## Rows: 4277 Columns: 15
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Destination, deck, side
## dbl (8): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck, withgroup, ...
## lgl (2): CryoSleep, VIP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
library(rmarkdown)
## Warning: package 'rmarkdown' was built under R version 4.3.3
paged_table(train)
paged_table(test)
train$HomePlanet <- as.factor(train$HomePlanet)
train$Destination <- as.factor(train$Destination)
train$deck <- as.factor(train$deck)
train$side <- as.factor(train$side)
test$HomePlanet <- as.factor(test$HomePlanet)
test$Destination <- as.factor(test$Destination)
test$deck <- as.factor(test$deck)
test$side <- as.factor(test$side)
D <- train[,2:16] %>% mutate(across(everything(), ~as.integer(.)))
kor <- cor(D)
library(corrplot)
corrplot.mixed(kor)

model <- lm(Transported ~ ., data = train[, 2:16])
summary(model)
## 
## Call:
## lm(formula = Transported ~ ., data = train[, 2:16])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.42529 -0.31010 -0.02972  0.28890  1.79353 
## 
## Coefficients: (1 not defined because of singularities)
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               3.015e-01  4.015e-02   7.509 6.55e-14 ***
## HomePlanetEuropa          2.255e-01  2.866e-02   7.869 4.02e-15 ***
## HomePlanetMars            9.879e-02  1.478e-02   6.684 2.46e-11 ***
## CryoSleepTRUE             3.791e-01  1.154e-02  32.862  < 2e-16 ***
## DestinationPSO J318.5-22 -4.128e-02  1.807e-02  -2.285 0.022343 *  
## DestinationTRAPPIST-1e   -4.695e-02  1.131e-02  -4.150 3.35e-05 ***
## Age                      -2.170e-03  3.201e-04  -6.781 1.28e-11 ***
## VIPTRUE                  -3.835e-02  2.974e-02  -1.290 0.197237    
## RoomService              -1.179e-04  7.055e-06 -16.713  < 2e-16 ***
## FoodCourt                 4.263e-05  3.055e-06  13.953  < 2e-16 ***
## ShoppingMall              7.946e-05  7.457e-06  10.655  < 2e-16 ***
## Spa                      -8.693e-05  4.111e-06 -21.144  < 2e-16 ***
## VRDeck                   -8.289e-05  4.115e-06 -20.144  < 2e-16 ***
## withgroup                 2.030e-02  9.286e-03   2.186 0.028819 *  
## deckB                     1.109e-01  2.874e-02   3.858 0.000115 ***
## deckC                     1.491e-01  2.900e-02   5.142 2.78e-07 ***
## deckD                     5.528e-02  3.472e-02   1.592 0.111351    
## deckE                     1.614e-02  3.611e-02   0.447 0.655048    
## deckF                     1.129e-01  3.702e-02   3.051 0.002291 ** 
## deckG                     6.925e-02  3.861e-02   1.793 0.072943 .  
## deckT                     6.696e-02  1.815e-01   0.369 0.712284    
## sideS                     8.501e-02  8.630e-03   9.851  < 2e-16 ***
## expense                          NA         NA      NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4012 on 8671 degrees of freedom
## Multiple R-squared:  0.3576, Adjusted R-squared:  0.3561 
## F-statistic: 229.9 on 21 and 8671 DF,  p-value: < 2.2e-16
# Veriyi eğitim ve test seti olarak ayırma
set.seed(123)
split = sample.split(train$Transported, SplitRatio = 0.75)
train_train = subset(train, split == TRUE)
train_test = subset(train, split == FALSE)

# Model eğitimi
reg <- lm(Transported ~ ., data = train_train[, -c(1)])
summary(reg)
## 
## Call:
## lm(formula = Transported ~ ., data = train_train[, -c(1)])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.50135 -0.31246 -0.02948  0.29157  1.77270 
## 
## Coefficients: (1 not defined because of singularities)
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)               3.358e-01  4.638e-02   7.241 4.95e-13 ***
## HomePlanetEuropa          2.084e-01  3.341e-02   6.239 4.69e-10 ***
## HomePlanetMars            8.879e-02  1.703e-02   5.212 1.92e-07 ***
## CryoSleepTRUE             3.754e-01  1.329e-02  28.237  < 2e-16 ***
## DestinationPSO J318.5-22 -5.815e-02  2.081e-02  -2.795  0.00521 ** 
## DestinationTRAPPIST-1e   -5.058e-02  1.307e-02  -3.870  0.00011 ***
## Age                      -2.333e-03  3.723e-04  -6.266 3.95e-10 ***
## VIPTRUE                  -1.722e-02  3.384e-02  -0.509  0.61083    
## RoomService              -1.177e-04  7.788e-06 -15.113  < 2e-16 ***
## FoodCourt                 3.882e-05  3.468e-06  11.194  < 2e-16 ***
## ShoppingMall              8.269e-05  8.413e-06   9.829  < 2e-16 ***
## Spa                      -8.583e-05  4.707e-06 -18.232  < 2e-16 ***
## VRDeck                   -8.224e-05  4.775e-06 -17.221  < 2e-16 ***
## withgroup                 1.634e-02  1.075e-02   1.520  0.12866    
## deckB                     1.050e-01  3.289e-02   3.193  0.00142 ** 
## deckC                     1.448e-01  3.317e-02   4.365 1.29e-05 ***
## deckD                     3.583e-02  3.961e-02   0.905  0.36576    
## deckE                    -1.742e-02  4.196e-02  -0.415  0.67797    
## deckF                     9.287e-02  4.276e-02   2.172  0.02991 *  
## deckG                     5.093e-02  4.463e-02   1.141  0.25379    
## deckT                     5.756e-02  1.822e-01   0.316  0.75208    
## sideS                     8.875e-02  9.981e-03   8.892  < 2e-16 ***
## expense                          NA         NA      NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4012 on 6498 degrees of freedom
## Multiple R-squared:  0.3582, Adjusted R-squared:  0.3561 
## F-statistic: 172.7 on 21 and 6498 DF,  p-value: < 2.2e-16
# Tahmin yapma
reg_tahmin = predict(reg, newdata = train_test[, -c(1,12)])
reg_transported_tahmin <- ifelse(reg_tahmin > 0.5, 1, 0)

# Gerçek değerlerin hazırlanması
transported_gercek <- ifelse(train_test$Transported == TRUE, 1, 0)
cm = table(transported_gercek, reg_transported_tahmin)

# Confusion matrix ve doğruluk hesaplama
cm
##                   reg_transported_tahmin
## transported_gercek   0   1
##                  0 903 176
##                  1 323 771
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.7703636
reg_tahmin = predict(reg, newdata = train_train[, -c(1,12)])
reg_transported_tahmin <- ifelse(reg_tahmin > 0.5, 1, 0)
transported_gercek <- ifelse(train_train[12] == TRUE, 1, 0)
cm = table(transported_gercek, reg_transported_tahmin)
cm
##                   reg_transported_tahmin
## transported_gercek    0    1
##                  0 2681  555
##                  1  949 2335
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.7693252
reg_tahmin_bd = predict(model, newdata = test[, -c(1)])
reg_transported_test_tahmin <- ifelse(reg_tahmin_bd > 0.5, TRUE, FALSE)
Transported <- as.character(reg_transported_test_tahmin)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
submission_reg <- cbind(PassengerId, Transported)
submission_reg <- as.data.frame(submission_reg)
library(stringr)
## Warning: package 'stringr' was built under R version 4.3.3
submission_reg$Transported <- str_to_title(submission_reg$Transported)
write.csv(submission_reg, "sinif_tahmini.csv", row.names = FALSE, quote = FALSE)
train_log <- train %>%
  mutate_at(c(5, 7:11, 16), ~ log(1 + .))
test_log <- test %>%
  mutate_at(c(5, 7:11, 15), ~ log(1 + .))
modellog <- lm(Transported ~ 1 + HomePlanet + Destination + deck + side + CryoSleep + Age + RoomService + FoodCourt + ShoppingMall + Spa , data = train_log)
reg_tahmin_log = predict(modellog, newdata = test_log[, -c(1)])
reg_transported_test_tahmin_log <- ifelse(reg_tahmin_log > 0.5, TRUE, FALSE)
Transported <- as.character(reg_transported_test_tahmin_log)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
submission_reg_log <- cbind(PassengerId, Transported)
submission_reg_log <- as.data.frame(submission_reg_log)
submission_reg_log$Transported <- str_to_title(submission_reg_log$Transported)
write.csv(submission_reg, "submission_reg_log.csv", row.names = FALSE, quote = FALSE)

logistic = glm(formula = Transported ~ .,
               family = binomial,
               data = train_train[, -c(1)])
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(logistic)
## 
## Call:
## glm(formula = Transported ~ ., family = binomial, data = train_train[, 
##     -c(1)])
## 
## Coefficients: (1 not defined because of singularities)
##                            Estimate Std. Error z value Pr(>|z|)    
## (Intercept)              -4.855e-01  3.587e-01  -1.353 0.175933    
## HomePlanetEuropa          1.570e+00  2.653e-01   5.918 3.26e-09 ***
## HomePlanetMars            5.361e-01  1.105e-01   4.849 1.24e-06 ***
## CryoSleepTRUE             1.276e+00  9.197e-02  13.873  < 2e-16 ***
## DestinationPSO J318.5-22 -4.923e-01  1.299e-01  -3.790 0.000151 ***
## DestinationTRAPPIST-1e   -4.611e-01  9.418e-02  -4.896 9.78e-07 ***
## Age                      -8.311e-03  2.460e-03  -3.379 0.000728 ***
## VIPTRUE                  -1.679e-01  2.924e-01  -0.574 0.565911    
## RoomService              -1.738e-03  1.135e-04 -15.313  < 2e-16 ***
## FoodCourt                 4.547e-04  4.453e-05  10.211  < 2e-16 ***
## ShoppingMall              5.275e-04  7.562e-05   6.976 3.04e-12 ***
## Spa                      -1.968e-03  1.166e-04 -16.878  < 2e-16 ***
## VRDeck                   -1.896e-03  1.156e-04 -16.400  < 2e-16 ***
## withgroup                 1.267e-01  7.183e-02   1.764 0.077800 .  
## deckB                     1.126e+00  2.899e-01   3.884 0.000103 ***
## deckC                     2.454e+00  3.315e-01   7.404 1.33e-13 ***
## deckD                     6.903e-01  3.245e-01   2.127 0.033389 *  
## deckE                     9.830e-02  3.352e-01   0.293 0.769339    
## deckF                     7.773e-01  3.397e-01   2.288 0.022127 *  
## deckG                     3.810e-01  3.490e-01   1.092 0.274904    
## deckT                    -1.275e-01  1.869e+00  -0.068 0.945583    
## sideS                     5.984e-01  6.663e-02   8.981  < 2e-16 ***
## expense                          NA         NA      NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 9038.3  on 6519  degrees of freedom
## Residual deviance: 5601.5  on 6498  degrees of freedom
## AIC: 5645.5
## 
## Number of Fisher Scoring iterations: 7
log_tahmin = predict(logistic, newdata = train_test[, -c(1,12)])
head(log_tahmin)
##           1           2           3           4           5           6 
##  -1.1063121 -11.0565547   0.9680020  -1.6266855  -0.4167855  -1.7011268
log_transported_tahmin <- ifelse(log_tahmin >0.5, 1, 0)
head(log_transported_tahmin)
## 1 2 3 4 5 6 
## 0 0 1 0 0 0
transported_gercek <- ifelse(train_test[12] == TRUE, 1, 0)
library(tidymodels)
## Warning: package 'tidymodels' was built under R version 4.3.3
## ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ──
## ✔ broom        1.0.5      ✔ rsample      1.2.1 
## ✔ dials        1.2.1      ✔ tibble       3.2.1 
## ✔ ggplot2      3.5.0      ✔ tidyr        1.3.1 
## ✔ infer        1.0.7      ✔ tune         1.2.1 
## ✔ modeldata    1.3.0      ✔ workflows    1.1.4 
## ✔ parsnip      1.2.1      ✔ workflowsets 1.1.0 
## ✔ purrr        1.0.2      ✔ yardstick    1.3.1 
## ✔ recipes      1.0.10
## Warning: package 'broom' was built under R version 4.3.3
## Warning: package 'dials' was built under R version 4.3.3
## Warning: package 'scales' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'infer' was built under R version 4.3.3
## Warning: package 'modeldata' was built under R version 4.3.3
## Warning: package 'parsnip' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'recipes' was built under R version 4.3.3
## Warning: package 'rsample' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.3
## Warning: package 'tune' was built under R version 4.3.3
## Warning: package 'workflows' was built under R version 4.3.3
## Warning: package 'workflowsets' was built under R version 4.3.3
## Warning: package 'yardstick' was built under R version 4.3.3
## ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
## ✖ purrr::discard()  masks scales::discard()
## ✖ dplyr::filter()   masks stats::filter()
## ✖ recipes::fixed()  masks stringr::fixed()
## ✖ dplyr::lag()      masks stats::lag()
## ✖ yardstick::spec() masks readr::spec()
## ✖ recipes::step()   masks stats::step()
## • Learn how to get started at https://www.tidymodels.org/start/
result = data.frame(cbind(transported_gercek, log_transported_tahmin))
result$Transported <- as.factor(result$Transported)
result$log_transported_tahmin <- as.factor(result$log_transported_tahmin)
result$Transported <- as.factor(result$Transported)
result$log_transported_tahmin <- as.factor(result$log_transported_tahmin)
library(caret)
## Warning: package 'caret' was built under R version 4.3.3
## Zorunlu paket yükleniyor: lattice
## 
## Attaching package: 'caret'
## The following objects are masked from 'package:yardstick':
## 
##     precision, recall, sensitivity, specificity
## The following object is masked from 'package:purrr':
## 
##     lift
cm = table(transported_gercek, log_transported_tahmin)
cm
##                   log_transported_tahmin
## transported_gercek   0   1
##                  0 918 161
##                  1 308 786
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.7841694
confusionMatrix(as.factor(transported_gercek), as.factor(log_transported_tahmin))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 918 161
##          1 308 786
##                                           
##                Accuracy : 0.7842          
##                  95% CI : (0.7663, 0.8013)
##     No Information Rate : 0.5642          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.5687          
##                                           
##  Mcnemar's Test P-Value : 1.566e-11       
##                                           
##             Sensitivity : 0.7488          
##             Specificity : 0.8300          
##          Pos Pred Value : 0.8508          
##          Neg Pred Value : 0.7185          
##              Prevalence : 0.5642          
##          Detection Rate : 0.4225          
##    Detection Prevalence : 0.4965          
##       Balanced Accuracy : 0.7894          
##                                           
##        'Positive' Class : 0               
## 
logistic_bd = glm(formula = Transported ~ .,
               family = binomial,
               data = train[, -c(1)])
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
log_tahmin_bd = predict(logistic_bd, newdata = test[, -c(1)])
log_transported_test_tahmin <- ifelse(log_tahmin_bd > 0.5, TRUE, FALSE)
Transported <- as.character(log_transported_test_tahmin)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
submission_logistic <- cbind(PassengerId, Transported)
submission_logistic <- as.data.frame(submission_logistic)
submission_logistic$Transported <- str_to_title(submission_logistic$Transported)
write.csv(submission_logistic, "submission_log.csv", row.names = FALSE, quote = FALSE)

logistic_bd = glm(formula = Transported ~ .,
               family = binomial,
               data = train_log[, -c(1)])
log_tahmin_bd = predict(logistic_bd, newdata = test_log[, -c(1)])
log_transported_test_tahmin <- ifelse(log_tahmin_bd > 0.5, TRUE, FALSE)
Transported <- as.character(log_transported_test_tahmin)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
submission_llogistic <- cbind(PassengerId, Transported)
submission_llogistic <- as.data.frame(submission_llogistic)
submission_llogistic$Transported <- str_to_title(submission_llogistic$Transported)
write.csv(submission_logistic, "submission_llog.csv", row.names = FALSE, quote = FALSE)

library(e1071)
## Warning: package 'e1071' was built under R version 4.3.3
## 
## Attaching package: 'e1071'
## The following object is masked from 'package:tune':
## 
##     tune
## The following object is masked from 'package:rsample':
## 
##     permutations
## The following object is masked from 'package:parsnip':
## 
##     tune
fit_nb <- naiveBayes(Transported ~ ., data = train_train[, -1])
fit_nb
## 
## Naive Bayes Classifier for Discrete Predictors
## 
## Call:
## naiveBayes.default(x = X, y = Y, laplace = laplace)
## 
## A-priori probabilities:
## Y
##    FALSE     TRUE 
## 0.496319 0.503681 
## 
## Conditional probabilities:
##        HomePlanet
## Y           Earth    Europa      Mars
##   FALSE 0.6220643 0.1755253 0.2024104
##   TRUE  0.4604141 0.3306943 0.2088916
## 
##        CryoSleep
## Y           FALSE      TRUE
##   FALSE 0.8702101 0.1297899
##   TRUE  0.4336175 0.5663825
## 
##        Destination
## Y       55 Cancri e PSO J318.5-22 TRAPPIST-1e
##   FALSE  0.16069221    0.09363412  0.74567367
##   TRUE   0.24969549    0.09043849  0.65986602
## 
##        Age
## Y           [,1]     [,2]
##   FALSE 30.01119 13.45225
##   TRUE  27.85293 14.87588
## 
##        VIP
## Y            FALSE       TRUE
##   FALSE 0.97126082 0.02873918
##   TRUE  0.98142509 0.01857491
## 
##        RoomService
## Y            [,1]     [,2]
##   FALSE 402.20365 916.6547
##   TRUE   56.93484 246.8105
## 
##        FoodCourt
## Y           [,1]     [,2]
##   FALSE 396.2923 1258.123
##   TRUE  514.8018 1918.620
## 
##        ShoppingMall
## Y           [,1]     [,2]
##   FALSE 160.2250 432.1103
##   TRUE  182.7135 748.5867
## 
##        Spa
## Y            [,1]      [,2]
##   FALSE 561.16193 1554.2636
##   TRUE   61.11571  264.0556
## 
##        VRDeck
## Y            [,1]      [,2]
##   FALSE 533.98733 1542.8703
##   TRUE   69.07186  295.0542
## 
##        withgroup
## Y            [,1]      [,2]
##   FALSE 0.3952410 0.4889780
##   TRUE  0.4960414 0.5000605
## 
##        deck
## Y                  A            B            C            D            E
##   FALSE 0.0296662546 0.0543881335 0.0574783684 0.0661310260 0.1344252163
##   TRUE  0.0310596833 0.1385505481 0.1199756395 0.0490255786 0.0676004872
##        deck
## Y                  F            G            T
##   FALSE 0.3637206428 0.2929542645 0.0012360939
##   TRUE  0.2828867235 0.3105968331 0.0003045067
## 
##        side
## Y               P         S
##   FALSE 0.5568603 0.4431397
##   TRUE  0.4448843 0.5551157
## 
##        expense
## Y            [,1]     [,2]
##   FALSE 2053.8702 3224.219
##   TRUE   884.6376 2307.962
pred_nb <- predict(fit_nb, newdata = train_test[, -c(1,12)], type = "raw") %>%
  data.frame()
head(pred_nb)
##       FALSE.         TRUE.
## 1 0.22290777  7.770922e-01
## 2 1.00000000 8.657607e-135
## 3 0.02738093  9.726191e-01
## 4 0.59333559  4.066644e-01
## 5 0.02412042  9.758796e-01
## 6 0.38532665  6.146734e-01
Transported_preb_nb = ifelse(pred_nb$TRUE. > 0.5, 1, 0)
head(Transported_preb_nb)
## [1] 1 0 1 0 1 1
Transported_train_test <- ifelse(train_test[12] == TRUE, 1, 0)
head(Transported_train_test)
##      Transported
## [1,]           1
## [2,]           0
## [3,]           1
## [4,]           0
## [5,]           0
## [6,]           0
cm = table(Transported_train_test, Transported_preb_nb)
cm
##                       Transported_preb_nb
## Transported_train_test    0    1
##                      0  481  598
##                      1   77 1017
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.6893695
nb = naiveBayes(Transported ~ ., data = train[, -1])
pred_nb <- predict(nb, newdata = test, type = "raw") %>%
  data.frame()
Transported_pred_nb = ifelse(pred_nb$TRUE. > 0.5, TRUE, FALSE)
Transported <- as.character(Transported_pred_nb)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
sample_submission <- cbind(PassengerId, Transported)
sample_submission <- as.data.frame(sample_submission)
sample_submission$Transported <- str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_nb.csv", row.names = FALSE, quote = FALSE)

library(e1071)
fit_svm <- svm(Transported ~ ., data = train_train[, -1],
               type = 'C-classification',
               kernel= 'linear')

preds <- predict(fit_svm, newdata = train_test[, -c(1,12)], type = "raw") %>% 
  data.frame()
head(preds)
##       .
## 1 FALSE
## 2 FALSE
## 3  TRUE
## 4 FALSE
## 5  TRUE
## 6 FALSE
Transported_pred_svm = ifelse(preds$. == TRUE, 1, 0)
cm = table(Transported_train_test, Transported_pred_svm)
cm
##                       Transported_pred_svm
## Transported_train_test   0   1
##                      0 831 248
##                      1 181 913
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.8025771
fit_svm <- svm(Transported ~ ., data = train[, -1],
               type = 'C-classification',
               kernel= 'linear')

preds <- predict(fit_svm, newdata = test, type = "raw") %>%
  data.frame()
Transported_pred_svm = ifelse(preds$. == TRUE, TRUE, FALSE)
Transported <- as.character(Transported_pred_svm)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
sample_submission <- cbind(PassengerId, Transported)
sample_submission <- as.data.frame(sample_submission)
sample_submission$Transported <- str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_svm.csv", row.names = FALSE, quote = FALSE)

library(rpart)
## Warning: package 'rpart' was built under R version 4.3.3
## 
## Attaching package: 'rpart'
## The following object is masked from 'package:dials':
## 
##     prune
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.3.3
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.3.3
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin
## The following object is masked from 'package:dplyr':
## 
##     combine
library(caret)
fit_forest <- randomForest(Transported ~ ., data = train_train[, -1])
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values.  Are you sure you want to do regression?
fit_forest$importance
##              IncNodePurity
## HomePlanet       46.919543
## CryoSleep        99.436934
## Destination      25.951083
## Age              91.938247
## VIP               2.525034
## RoomService     128.784644
## FoodCourt       120.807834
## ShoppingMall     97.094302
## Spa             126.281940
## VRDeck          121.810439
## withgroup        12.974556
## deck             92.402752
## side             22.730654
## expense         243.733448
##              IncNodePurity
## HomePlanet        48.21166
## CryoSleep        102.47495
## Destination       25.77605
## Age               92.07261
## VIP                2.43084
## RoomService      124.63959
## FoodCourt        117.08030
## ShoppingMall      99.23254
## Spa              126.77091
## VRDeck           119.08002
## withgroup         12.85779
## deck              91.49524
## side              22.59922
## expense          248.44639
varImpPlot(fit_forest)

preds <- predict(fit_forest, newdata = train_test[,- c(1,12)]) %>%
  data.frame()
head(preds)
##           .
## 1 0.1123084
## 2 0.1135095
## 3 0.8005314
## 4 0.2482880
## 5 0.6827540
## 6 0.1608222
##           .
## 1 0.1049532
## 2 0.1112889
## 3 0.8129808
## 4 0.2158803
## 5 0.6832579
## 6 0.1744000
Transported_pred_forest = ifelse(preds$.  >0.5, 1, 0)
cm = table(Transported_train_test, Transported_pred_forest)
cm
##                       Transported_pred_forest
## Transported_train_test   0   1
##                      0 822 257
##                      1 175 919
##                       Transported_pred_forest
## Transported_train_test   0   1
##                      0 823 256
##                      1 175 919
accuracy <- (cm[1,1] + cm[2,2]) / sum(cm)
accuracy
## [1] 0.8011965
## [1] 0.8016567
fit_forest <- randomForest(Transported ~ ., data = train[, -1])
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values.  Are you sure you want to do regression?
preds <- predict(fit_forest, newdata = test) %>%
  data.frame()
Transported_pred_forest = ifelse(preds$. >0.5, TRUE, FALSE)
Transported <- as.character(Transported_pred_forest)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
sample_submission <- cbind(PassengerId, Transported)
sample_submission <- as.data.frame(sample_submission)
sample_submission$Transported <- str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_random_for.csv", row.names = FALSE, quote = FALSE)

# Başarı oranlarını tanımla
regresyon_accuracy <- 0.77
lojistik_regresyon_accuracy <- 0.79
naive_bayes_accuracy <- 0.72
svm_accuracy <- 0.79
svm_radial_accuracy <- 0.80
decision_tree_accuracy <- 0.77
random_forest_accuracy <- 0.80
# Veri çerçevesini oluştur
dogruluk_performans <- data.frame(
  Modeller = c("Regresyon", "Lojistik Regresyon", "Naive Bayes", "SVM", "SVM Radial","Decision Trees", "Random Forest"),
  Dogruluk = c(regresyon_accuracy, lojistik_regresyon_accuracy, naive_bayes_accuracy, svm_accuracy, svm_radial_accuracy,decision_tree_accuracy, random_forest_accuracy)
)
ggplot(data = dogruluk_performans, aes(x = Modeller, y = Dogruluk)) +
  geom_bar(stat = "identity", fill = "blue", width = 0.3) +
  labs(title = "Farklı Modellerin Doğruluk Karşılaştırması", x = "Modeller", y = "Doğruluk Oranı") +
  theme(plot.title = element_text(hjust = 0.5))

# Veri çerçevesini oluştur
dogruluk_performanss <- data.frame(
  Modeller = c("Regresyon", "Lojistik Regresyon", "Naive Bayes", "SVM", "SVM Radial","Decision Trees", "Random Forest"),
  Dogruluk = c(regresyon_accuracy, lojistik_regresyon_accuracy, naive_bayes_accuracy, svm_accuracy, svm_radial_accuracy, decision_tree_accuracy, random_forest_accuracy)
)
# Nokta grafiği oluştur
ggplot(data = dogruluk_performanss, aes(x = Modeller, y = Dogruluk)) +
  geom_point(size = 4, color = "blue") +
  labs(title = "Farklı Modellerin Doğruluk Karşılaştırması", x = "Modeller", y = "Doğruluk Oranı") +
  theme(plot.title = element_text(hjust = 0.5)) +
  geom_text(aes(label=Dogruluk), vjust=-1.5, size=3.5)