FİNAL PROJESİ

Yasemin Özdamar

2024-01-19

titanic spaceship

Kozmik bir gizemi çözmek için veri bilimi becerilerinize ihtiyaç duyulan 2912 yılına hoş geldiniz. Dört ışık yılı öteden bir sinyal aldık ve işler pek iyi görünmüyor.

Uzay Gemisi Titanik, bir ay önce fırlatılan yıldızlararası bir yolcu gemisiydi. Gemide neredeyse 13.000 yolcu bulunan gemi, güneş sistemimizden göçmenleri yakın yıldızların yörüngesinde bulunan üç yeni yaşanabilir dış gezegene taşımak üzere ilk yolculuğuna çıktı.

Dikkatsiz Uzay Gemisi Titanic , ilk varış noktası olan kavurucu 55 Cancri E’ye giderken Alpha Centauri’yi dönerken, bir toz bulutunun içine gizlenmiş bir uzay-zaman anormalliğiyle çarpıştı. Ne yazık ki 1000 yıl öncesindeki adaşı ile benzer bir kaderle karşılaştı. Gemi sağlam kalmasına rağmen yolcuların neredeyse yarısı alternatif bir boyuta taşındı! Kurtarma ekiplerine yardımcı olmak ve kayıp yolcuları geri almak için, uzay gemisinin hasarlı bilgisayar sisteminden elde edilen kayıtları kullanarak anormallik nedeniyle hangi yolcuların taşındığını tahmin etmeniz gerekiyor.

Onları kurtarmaya ve geçmişi değiştirmeye yardım edin!

library(readr)
train <- read_csv("train.csv")
## Rows: 8693 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
## dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
## 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.
View(train)

View(train) fonksiyonunu kullanarak bu veri çerçevesini görüntüler. View() fonksiyonu, R Studio’da bir veri çerçevesini interaktif bir şekilde gözlemlemenizi sağlayan bir fonksiyondur.

library(readr)
test <- read_csv("test.csv")
## Rows: 4277 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
## dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
## 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.
View(test)

ead_csv(“test.csv”): “test.csv” adlı CSV dosyasını okur. test <- read_csv(“test.csv”): Okunan veriyi “test” adlı bir veri çerçevesine atar. View(test): “test” veri çerçevesini R Studio ortamında gösterir.

str(test)
## spc_tbl_ [4,277 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ PassengerId : chr [1:4277] "0013_01" "0018_01" "0019_01" "0021_01" ...
##  $ HomePlanet  : chr [1:4277] "Earth" "Earth" "Europa" "Europa" ...
##  $ CryoSleep   : logi [1:4277] TRUE FALSE TRUE FALSE FALSE FALSE ...
##  $ Cabin       : chr [1:4277] "G/3/S" "F/4/S" "C/0/S" "C/1/S" ...
##  $ Destination : chr [1:4277] "TRAPPIST-1e" "TRAPPIST-1e" "55 Cancri e" "TRAPPIST-1e" ...
##  $ Age         : num [1:4277] 27 19 31 38 20 31 21 20 23 24 ...
##  $ VIP         : logi [1:4277] FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ RoomService : num [1:4277] 0 0 0 0 10 0 0 0 0 0 ...
##  $ FoodCourt   : num [1:4277] 0 9 0 6652 0 ...
##  $ ShoppingMall: num [1:4277] 0 0 0 0 635 263 0 0 0 0 ...
##  $ Spa         : num [1:4277] 0 2823 0 181 0 ...
##  $ VRDeck      : num [1:4277] 0 0 0 585 0 60 0 0 0 0 ...
##  $ Name        : chr [1:4277] "Nelly Carsoning" "Lerome Peckers" "Sabih Unhearfus" "Meratz Caltilter" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   PassengerId = col_character(),
##   ..   HomePlanet = col_character(),
##   ..   CryoSleep = col_logical(),
##   ..   Cabin = col_character(),
##   ..   Destination = col_character(),
##   ..   Age = col_double(),
##   ..   VIP = col_logical(),
##   ..   RoomService = col_double(),
##   ..   FoodCourt = col_double(),
##   ..   ShoppingMall = col_double(),
##   ..   Spa = col_double(),
##   ..   VRDeck = col_double(),
##   ..   Name = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
library(DataExplorer)
create_report(train)
## 
## 
## processing file: report.rmd
## 
  |                                           
  |                                     |   0%
  |                                           
  |.                                    |   2%                                 
  |                                           
  |..                                   |   5% [global_options]                
  |                                           
  |...                                  |   7%                                 
  |                                           
  |....                                 |  10% [introduce]                     
  |                                           
  |....                                 |  12%                                 
  |                                           
  |.....                                |  14% [plot_intro]                    
  |                                           
  |......                               |  17%                                 
  |                                           
  |.......                              |  19% [data_structure]                
  |                                           
  |........                             |  21%                                 
  |                                           
  |.........                            |  24% [missing_profile]               
  |                                           
  |..........                           |  26%                                 
  |                                           
  |...........                          |  29% [univariate_distribution_header]
  |                                           
  |...........                          |  31%                                 
  |                                           
  |............                         |  33% [plot_histogram]                
  |                                           
  |.............                        |  36%                                 
  |                                           
  |..............                       |  38% [plot_density]                  
  |                                           
  |...............                      |  40%                                 
  |                                           
  |................                     |  43% [plot_frequency_bar]            
  |                                           
  |.................                    |  45%                                 
  |                                           
  |..................                   |  48% [plot_response_bar]             
  |                                           
  |..................                   |  50%                                 
  |                                           
  |...................                  |  52% [plot_with_bar]                 
  |                                           
  |....................                 |  55%                                 
  |                                           
  |.....................                |  57% [plot_normal_qq]                
  |                                           
  |......................               |  60%                                 
  |                                           
  |.......................              |  62% [plot_response_qq]              
  |                                           
  |........................             |  64%                                 
  |                                           
  |.........................            |  67% [plot_by_qq]                    
  |                                           
  |..........................           |  69%                                 
  |                                           
  |..........................           |  71% [correlation_analysis]          
  |                                           
  |...........................          |  74%                                 
  |                                           
  |............................         |  76% [principal_component_analysis]  
  |                                           
  |.............................        |  79%                                 
  |                                           
  |..............................       |  81% [bivariate_distribution_header] 
  |                                           
  |...............................      |  83%                                 
  |                                           
  |................................     |  86% [plot_response_boxplot]         
  |                                           
  |.................................    |  88%                                 
  |                                           
  |.................................    |  90% [plot_by_boxplot]               
  |                                           
  |..................................   |  93%                                 
  |                                           
  |...................................  |  95% [plot_response_scatterplot]     
  |                                           
  |.................................... |  98%                                 
  |                                           
  |.....................................| 100% [plot_by_scatterplot]           
## output file: C:/Users/user/Documents/ekono/report.knit.md
## "C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS "C:\Users\user\Documents\ekono\report.knit.md" --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc15cff16eb9.html --lua-filter "C:\Users\user\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\user\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\latex-div.lua" --embed-resources --standalone --variable bs3=TRUE --section-divs --table-of-contents --toc-depth 6 --template "C:\Users\user\AppData\Local\R\win-library\4.3\rmarkdown\rmd\h\default.html" --no-highlight --variable highlightjs=1 --variable theme=yeti --mathjax --variable "mathjax-url=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --include-in-header "C:\Users\user\AppData\Local\Temp\RtmpcVyTms\rmarkdown-str15cfff1c28.html"
## 
## Output created: report.html

Bu kodları kullanarak, “test” veri çerçevesinin yapısını anlayabilir ve “train” veri çerçevesi için kapsamlı bir keşif raporu oluşturabilirsiniz.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ purrr     1.0.2
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::between()     masks data.table::between()
## ✖ dplyr::filter()      masks stats::filter()
## ✖ dplyr::first()       masks data.table::first()
## ✖ lubridate::hour()    masks data.table::hour()
## ✖ lubridate::isoweek() masks data.table::isoweek()
## ✖ dplyr::lag()         masks stats::lag()
## ✖ dplyr::last()        masks data.table::last()
## ✖ lubridate::mday()    masks data.table::mday()
## ✖ lubridate::minute()  masks data.table::minute()
## ✖ lubridate::month()   masks data.table::month()
## ✖ lubridate::quarter() masks data.table::quarter()
## ✖ lubridate::second()  masks data.table::second()
## ✖ purrr::transpose()   masks data.table::transpose()
## ✖ lubridate::wday()    masks data.table::wday()
## ✖ lubridate::week()    masks data.table::week()
## ✖ lubridate::yday()    masks data.table::yday()
## ✖ lubridate::year()    masks data.table::year()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(explore)

Bu kodları kullanarak, tidyverse paketinin sunduğu geniş araçlarla veri manipülasyonu ve görselleştirmesini gerçekleştirebilir, aynı zamanda explore paketini kullanarak veri setinizi keşfetmeye başlayabilirsiniz.

train[c('ailenum', 'ailesıra')] <- str_split_fixed(train$PassengerId,"_", 2)

train” veri çerçevesine “ailenum” ve “ailesıra” adlı iki yeni değişken eklenmiş olur, ve bu değişkenler “PassengerId” değişkeninin “_“’den önceki ve sonraki kısımlarını içerir.

test[c('ailenum', 'ailesıra')] <- str_split_fixed(test$PassengerId,"_", 2)

“test” veri çerçevesine “ailenum” ve “ailesıra” adlı iki yeni değişken eklenmiş olur, ve bu değişkenler “PassengerId” değişkeninin “_“’den önceki ve sonraki kısımlarını içerir.

train[c('deck', 'num', 'side')] <- str_split_fixed(train$Cabin,"/", 3)

train” veri çerçevesine “deck”, “num” ve “side” adlı üç yeni değişken eklenmiş olur, ve bu değişkenler “Cabin” değişkeninin belirli bölümlerini içerir.

test[c('deck', 'num', 'side')] <- str_split_fixed(test$Cabin,"/", 3)

“test” veri çerçevesine “deck”, “num” ve “side” adlı üç yeni değişken eklenmiş olur, ve bu değişkenler “Cabin” değişkeninin belirli bölümlerini içerir. Bu tür bir işlem genellikle veri ön işleme adımında kullanılır ve kategorik değişkenlerin daha anlamlı parçalara ayrılmasına yardımcı olabilir.

train[train == ''] <- NA
test[test == ''] <- NA

Bu tür bir işlem genellikle veri temizleme ve veri ön işleme aşamalarında kullanılır. NA değerleri, R’da eksik veya bilinmeyen verileri temsil eden bir özel değerdir. Eksik verilerle başa çıkmak, analizlerinizi daha güvenilir hale getirebilir ve modelleme süreçlerinde doğruluğu artırabilir. Bu nedenle, veri çerçevelerindeki boş değerleri NA’ya dönüştürmek, veri analizi ve modelleme için genel bir iyi uygulamadır.

train%>%describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   chr     201    2.3      4    NA  NA       NA
##  3 CryoSleep    lgl     217    2.5      3     0   0.36     1
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 Destination  chr     182    2.1      4    NA  NA       NA
##  6 Age          dbl     179    2.1     81     0  28.8     79
##  7 VIP          lgl     203    2.3      3     0   0.02     1
##  8 RoomService  dbl     181    2.1   1274     0 225.   14327
##  9 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 10 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 11 Spa          dbl     183    2.1   1328     0 311.   22408
## 12 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 13 Name         chr     200    2.3   8474    NA  NA       NA
## 14 Transported  lgl       0    0        2     0   0.5      1
## 15 ailenum      chr       0    0     6217    NA  NA       NA
## 16 ailesıra     chr       0    0        8    NA  NA       NA
## 17 deck         chr     199    2.3      9    NA  NA       NA
## 18 num          chr     199    2.3   1818    NA  NA       NA
## 19 side         chr     199    2.3      3    NA  NA       NA

Bu istatistiksel özet, her değişken için minimum, 25. yüzdelik, ortanca, 75. yüzdelik, maksimum değerleri ve diğer özet istatistikleri içerir. Ayrıca, kategorik değişkenler için mod değeri de görüntülenebilir.

Bu tür bir istatistiksel özet, veri setinin genel dağılımı, merkezi eğilimi ve değişkenliği hakkında bilgi sağlar.

test%>%describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA       NA
##  2 HomePlanet   chr      87    2        4    NA  NA       NA
##  3 CryoSleep    lgl      93    2.2      3     0   0.37     1
##  4 Cabin        chr     100    2.3   3266    NA  NA       NA
##  5 Destination  chr      92    2.2      4    NA  NA       NA
##  6 Age          dbl      91    2.1     80     0  28.7     79
##  7 VIP          lgl      93    2.2      3     0   0.02     1
##  8 RoomService  dbl      82    1.9    843     0 219.   11567
##  9 FoodCourt    dbl     106    2.5    903     0 439.   25273
## 10 ShoppingMall dbl      98    2.3    716     0 177.    8292
## 11 Spa          dbl     101    2.4    834     0 303.   19844
## 12 VRDeck       dbl      80    1.9    797     0 311.   22272
## 13 Name         chr      94    2.2   4177    NA  NA       NA
## 14 ailenum      chr       0    0     3063    NA  NA       NA
## 15 ailesıra     chr       0    0        8    NA  NA       NA
## 16 deck         chr     100    2.3      9    NA  NA       NA
## 17 num          chr     100    2.3   1506    NA  NA       NA
## 18 side         chr     100    2.3      3    NA  NA       NA

Bu komut, “test” veri çerçevesindeki sayısal değişkenlere odaklanarak istatistiksel özetler sağlar. Bu kodlar, “test” veri çerçevesindeki değişkenlere ilişkin istatistiksel özet bilgilerini sağlayacaktır.

train <- train %>% select(-Cabin)
test <- test %>% select(-Cabin)

Bu tür bir işlem genellikle veri ön işleme aşamasında kullanılır. “Cabin” değişkeni çıkarıldığına göre, bu değişkenin içerdiği bilgiler artık analiz veya modelleme süreçlerine dahil edilmeyecek demektir. Veri setindeki gereksiz veya eksik bilgileri temizlemek ve modelleme sürecini basitleştirmek için bu tür adımlar atılabilir.

levels(train$HomePlanet)
## NULL
train$HomePlanet <- addNA(train$HomePlanet)
test$HomePlanet <- addNA(test$HomePlanet)

Bu tür bir işlem genellikle kategorik değişkenlerin modelleme süreçlerine uygun hale getirilmesi veya eksik kategorik seviyelerin eklenmesi için kullanılır. addNA() fonksiyonu, eksik seviyeleri ekleyerek, modelleme sürecinde beklenmeyen durumlarla başa çıkma konusunda yardımcı olabilir.

levels(train$HomePlanet)[is.na(levels(train$HomePlanet))] <- "NA"
levels(test$HomePlanet)[is.na(levels(test$HomePlanet))] <- "NA"

Bu ifade, “train” veri çerçevesindeki “HomePlanet” değişkeninin seviyeleri içinde (levels(train$HomePlanet)) NA (eksik) değerlerin olduğu durumları belirler ve bu eksik değerleri “NA” ile değiştirir. Yani, eğer “HomePlanet” değişkeninin seviyelerinde eksik bir kategori varsa, bu kategori “NA” ile değiştirilir. aynı işlemi “test” veri çerçevesi için gerçekleştirir.

levels(train$HomePlanet)
## [1] "Earth"  "Europa" "Mars"   "NA"

levels(train$HomePlanet) ifadesi, “train” veri çerçevesindeki “HomePlanet” değişkeninin sahip olduğu kategorik seviyeleri gösterir. Bu seviyeler, değişkenin alabileceği farklı kategorik değerleri temsil eder.

Örneğin, eğer “HomePlanet” değişkeni ülkeleri temsil ediyorsa, bu komut, veri çerçevesinde bulunan farklı ülkelerin adlarını listeleyebilir.

train <- train %>% group_by(HomePlanet,Destination) %>% mutate(across(Age, ~replace_na(., mean(., na.rm=TRUE)))) 

bu kod “train” veri çerçevesini “HomePlanet” ve “Destination” değişkenlerine göre gruplayarak, her bir grup içindeki “Age” değişkenindeki eksik değerleri o grup içindeki ortalama değerlerle doldurur. Bu tür bir işlem, eksik verilerin uygun bir şekilde doldurulması için yaygın olarak kullanılan bir tekniktir.

test <- test %>% group_by(HomePlanet,Destination) %>% mutate(across(Age, ~replace_na(., mean(., na.rm=TRUE)))) 

bu kod “test” veri çerçevesini “HomePlanet” ve “Destination” değişkenlerine göre gruplayarak, her bir grup içindeki “Age” değişkenindeki eksik değerleri o grup içindeki ortalama değerlerle doldurur

train$CryoSleep <- addNA(train$CryoSleep)
test$CryoSleep <- addNA(test$CryoSleep)
levels(train$CryoSleep)[is.na(levels(train$CryoSleep))] <- "NA"
levels(test$CryoSleep)[is.na(levels(test$CryoSleep))] <- "NA"
levels(train$HomePlanet)
## [1] "Earth"  "Europa" "Mars"   "NA"

Bu işlemler, “CryoSleep” değişkeninin içerdiği eksik kategorik seviyeleri ekleyerek veya değiştirerek veri setini uygun hale getirmeyi amaçlar. “NA” değeri, R’da eksik veya bilinmeyen veriyi temsil eden özel bir değerdir ve bu değerle çalışmak, eksik değerlere dikkat etmeyi sağlayabilir.

train$Destination <- addNA(train$Destination)

Bu işlem, “Destination” değişkeninin içerdiği eksik kategorik seviyeleri “NA” (Not Available) olarak doldurmayı amaçlar. Bu tür bir işlem, modelleme sürecinde faktör değişkenleriyle çalışırken, eksik seviyelerle başa çıkmak için yaygın olarak kullanılır. “NA” değeri, R’da eksik veya bilinmeyen veriyi temsil eden özel bir değerdir. Bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir ve bu durumun modelleme sürecinde dikkate alınmasına yardımcı olur.

test$Destination <- addNA(test$Destination)
levels(train$Destination)[is.na(levels(train$Destination))] <- "NA"
levels(test$Destination)[is.na(levels(test$Destination))] <- "NA"
levels(train$Destination)
## [1] "55 Cancri e"   "PSO J318.5-22" "TRAPPIST-1e"   "NA"

Bu tür işlemler, kategorik değişkenlerle çalışırken eksik seviyelerle başa çıkmak için kullanılır. “NA” değeri, eksik veya bilinmeyen veriyi temsil eden özel bir değerdir ve bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir. Bu, modelleme sürecinde kategorik değişkenlerin eksik değerlerle başa çıkılmasına yardımcı olabilir.

train$side <- addNA(train$side)

Bu işlem, “side” değişkeninin içerdiği eksik kategorik seviyeleri “NA” (Not Available) olarak doldurmayı amaçlar. “NA” değeri, R’da eksik veya bilinmeyen veriyi temsil eden özel bir değerdir. Bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir ve bu durumun modelleme sürecinde dikkate alınmasına yardımcı olur.

Bu tür bir işlem genellikle kategorik değişkenlerle çalışırken eksik seviyelerle başa çıkmak için kullanılır. Bu sayede, modelleme sürecinde kategorik değişkenlerin eksik değerlerle nasıl başa çıkılacağını belirleme şansına sahip olabilirsiniz.

test$side <- addNA(test$side)

Bu işlem, “side” değişkeninin içerdiği eksik kategorik seviyeleri “NA” (Not Available) olarak doldurmayı amaçlar. “NA” değeri, R’da eksik veya bilinmeyen veriyi temsil eden özel bir değerdir. Bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir ve bu durumun modelleme sürecinde dikkate alınmasına yardımcı olur.

Bu tür bir işlem genellikle kategorik değişkenlerle çalışırken eksik seviyelerle başa çıkmak için kullanılır. Bu sayede, modelleme sürecinde kategorik değişkenlerin eksik değerlerle nasıl başa çıkılacağını belirleme şansına sahip olabilirsiniz.

levels(train$side)[is.na(levels(train$side))] <- "NA"

Bu ifade, “train” veri çerçevesindeki “side” değişkeninin seviyelerini kontrol eder. Eğer bu seviyeler içinde eksik bir kategori (NA) varsa, bu kategoriyi “NA” ile değiştirir.

Bir faktör değişkenin seviyeleri, kategorik değişkenin alabileceği farklı kategorik değerleri temsil eder. Ancak, bazen veri setinde belirli bir kategorik değer eksik olabilir. Bu durumda, eksik olan kategorik değeri eklemek veya belirli bir değerle doldurmak amacıyla bu tür bir işlem gerçekleştirilebilir.

levels(test$side)[is.na(levels(test$side))] <- "NA"

Bu tür bir işlem, kategorik değişkenlerle çalışırken eksik seviyelerle başa çıkmak için kullanılır. “NA” değeri, eksik veya bilinmeyen veriyi temsil eden özel bir değerdir. Bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir ve bu durumun modelleme sürecinde dikkate alınmasına yardımcı olur.

Ancak, benzer şekilde, eğer “NA” kategorisi zaten mevcutsa ve bu işlemle bir değişiklik olmazsa, bu durumda “NA” kategorisini tekrar eklemek gereksiz olabilir. Bu nedenle, veri setini dikkatlice kontrol etmek ve eksik değerleri nasıl işleyeceğinizi anlamak önemlidir.

levels(train$side)
## [1] "P"  "S"  "NA"

Bu tür bir işlem, veri setinin içeriğini anlamak ve analiz veya modelleme süreçlerine uygun ön işleme adımlarını belirlemek için yaygın olarak kullanılır. Eğer “side” değişkeni bir faktör değilse, yani sadece sayısal veya karakter bir değişkense, bu kod seviyeleri listelemeyecektir.

train$VIP <- addNA(train$VIP)
test$VIP <- addNA(test$VIP)
levels(train$VIP)[is.na(levels(train$VIP))] <- "NA"
levels(test$VIP)[is.na(levels(test$VIP))] <- "NA"
levels(train$VIP)
## [1] "FALSE" "TRUE"  "NA"

Bu ifade, “train” veri çerçevesindeki “VIP” değişkeninin seviyeleri içinde (levels(train$VIP)) NA (eksik) değerlerin olduğu durumları belirler ve bu eksik değerleri “NA” ile doldurur. Yani, eğer “VIP” değişkeninin seviyelerinde eksik bir kategori varsa, bu kategori “NA” ile değiştirilir. , aynı işlemi “test” veri çerçevesi için gerçekleştirir. “train” veri çerçevesindeki “VIP” değişkeninin seviyelerini listeler.

train$Destination <- addNA(train$Destination)
test$Destination <- addNA(test$Destination)
levels(train$Destination)[is.na(levels(train$Destination))] <- "NA"
levels(test$Destination)[is.na(levels(test$Destination))] <- "NA"
levels(train$Destination)
## [1] "55 Cancri e"   "PSO J318.5-22" "TRAPPIST-1e"   "NA"

Bu tür işlemler, kategorik değişkenlerle çalışırken eksik seviyelerle başa çıkmak için kullanılır. “NA” değeri, eksik veya bilinmeyen veriyi temsil eden özel bir değerdir ve bu değeri eklemek, bu kategorik seviyelerin eksik olduğunu belirtir ve bu durumun modelleme sürecinde dikkate alınmasına yardımcı olur.

train <- train %>% group_by(HomePlanet,Destination) %>% mutate(across(RoomService, ~replace_na(., mean(., na.rm=TRUE)))) 

Bu kod, eksik değerlerin “RoomService” değişkenindeki grup ortalamaları ile doldurulması amacıyla kullanılmaktadır. Bu tür bir işlem, eksik değerleri etkili bir şekilde doldurarak veri setinin analizine veya modellemesine katkıda bulunabilir.

test <- test %>% group_by(HomePlanet,Destination) %>% mutate(across(RoomService, ~replace_na(., mean(., na.rm=TRUE)))) 

Bu kod, “test” veri çerçevesindeki eksik değerleri grup bazında ortalama ile doldurarak, veri setinin analizine veya modellemesine katkıda bulunmayı amaçlar. Ancak, her durumda bu tür bir işlemin uygun olup olmadığını değerlendirmek önemlidir. Modelleme sürecinde kullanılan tekniklere ve veri setinin özelliklerine bağlı olarak, eksik değerleri doldurmanın farklı yaklaşımları da düşünülmelidir.

hist(train$FoodCourt)

Histogram, değişkenin değerlerinin belirli aralıklarda nasıl dağıldığını ve hangi değer aralıklarının daha sık veya daha seyrek olduğunu görselleştiren bir grafiktir. Eğer histogramda belirli bir eğilim, simetri veya çarpıklık varsa, bu, değişkenin dağılımı hakkında bilgi sağlayabilir. Örneğin, normal dağılıma benzer bir görünüm, değişkenin normal dağılıma daha yakın olduğunu gösterebilir.

hist(train$ShoppingMall)

Bu görselleştirme, “ShoppingMall” değişkeninin değerlerinin dağılımını anlamak ve bu değişken üzerinde yapılacak analiz veya modelleme sürecine hazırlık yapmak amacıyla kullanılmış olabilir.

hist(train$Spa)

Bu histogram, “Spa” değişkeninin değerlerinin nasıl dağıldığını, hangi aralıklarda yoğunluk gösterdiğini ve potansiyel aykırı değerleri görsel olarak incelemenize yardımcı olabilir.

train <- train %>% mutate(ShoppingMall = coalesce(ShoppingMall, 0))
test <- test %>% mutate(ShoppingMall = coalesce(ShoppingMall, 0))

Bu tür bir işlem, eksik değerleri belirli bir değerle doldurmak veya başka bir değerle değiştirmek için kullanılır. Bu durumda, eksik “ShoppingMall” değerleri sıfır ile doldurularak analiz veya modelleme süreçlerinde eksik değerlerle başa çıkma sağlanmış olur. Ancak, eksik değerleri doldurma stratejileri veri setinin özelliklerine bağlı olarak değişebilir, bu nedenle kullanılan stratejinin veri setine uygun olduğundan emin olunmalıdır.

train <- train %>% mutate(FoodCourt = coalesce(FoodCourt, 0))
test <- test %>% mutate(FoodCourt = coalesce(FoodCourt, 0))

Bu işlem, “FoodCourt” değişkenindeki eksik değerleri sıfır ile doldurarak analiz veya modelleme süreçlerinde eksik değerlerle başa çıkmayı sağlar. Ancak, eksik değerleri doldurma stratejileri veri setinin özelliklerine bağlı olarak değişebilir, bu nedenle kullanılan stratejinin veri setine uygun olduğundan emin olunmalıdır.

train <- train %>% mutate(Spa = coalesce(Spa, 0))
test <- test %>% mutate(Spa= coalesce(Spa, 0))

Bu işlem, “Spa” değişkenindeki eksik değerleri sıfır ile doldurarak analiz veya modelleme süreçlerinde eksik değerlerle başa çıkmayı sağlar. Eksik değerleri doldurma stratejileri, veri setinin özelliklerine bağlı olarak değişebilir, bu nedenle kullanılan stratejinin veri setine uygun olduğundan emin olunmalıdır.

train <- train %>% mutate(VRDeck = coalesce(Spa, 0))
test <- test %>% mutate(VRDeck= coalesce(Spa, 0))

Bu işlem, “VRDeck” değişkenini “Spa” değişkeninden türetmek ve aynı zamanda eksik değerleri sıfır ile doldurmak amacıyla yapılmış gibi görünüyor. Ancak, kodun “VRDeck” değişkenine “Spa” yerine “Spa” değişkeninin eksik değerlerini atadığına dikkat edilmelidir. Eğer “VRDeck” değişkeni tamamen farklı bir değişken olarak kullanılacaksa, “Spa” değişkeninin eksik değerlerini değil, belki başka bir strateji ile doldurulması daha uygun olabilir.

train <- train %>% select(-Name)
test <- test %>% select(-Name)

Bu işlem, “Name” değişkeninin veri setindeki analiz ve modelleme süreçlerine katkı sağlamayacağı düşünüldüğünde, bu değişkeni veri çerçevesinden çıkarma işlemidir. “select(-Name)” ifadesi, “Name” değişkenini seçilen sütunlardan çıkarmaya yönelik bir dplyr fonksiyonudur.

train$deck <- addNA(train$deck)
test$deck <- addNA(test$deck)
levels(train$deck)[is.na(levels(train$deck))] <- "NA"
levels(test$deck)[is.na(levels(test$deck))] <- "NA"
levels(train$deck)
## [1] "A"  "B"  "C"  "D"  "E"  "F"  "G"  "T"  "NA"

Bu işlemler, “deck” değişkenindeki eksik değerleri düzenlemek ve kategorik değişkenin seviyelerini kontrol etmek amacıyla gerçekleştirilmiş gibi görünmektedir. Ancak, veri setinizin özelliklerine ve analiz amacınıza bağlı olarak bu tür işlemleri uygulamadan önce dikkatlice düşünmek önemlidir.

train$num <- addNA(train$num)
test$num <- addNA(test$num)
levels(train$num)[is.na(levels(train$num))] <- "NA"
levels(test$num)[is.na(levels(test$num))] <- "NA"

Bu işlemler, “num” değişkenindeki eksik değerleri düzenlemek ve kategorik bir değişkenin seviyelerini kontrol etmek amacıyla gerçekleştirilmiş gibi görünmektedir.

train$aile <- ifelse(duplicated(train$ailenum) | duplicated(train$ailenum,fromLast = TRUE), 1, 0)
test$aile <- ifelse(duplicated(test$ailenum) | duplicated(test$ailenum,fromLast = TRUE), 1, 0)
head(train[, c("PassengerId", "ailenum", "ailesıra", "aile")], 20)
## # A tibble: 20 × 4
##    PassengerId ailenum ailesıra  aile
##    <chr>       <chr>   <chr>    <dbl>
##  1 0001_01     0001    01           0
##  2 0002_01     0002    01           0
##  3 0003_01     0003    01           1
##  4 0003_02     0003    02           1
##  5 0004_01     0004    01           0
##  6 0005_01     0005    01           0
##  7 0006_01     0006    01           1
##  8 0006_02     0006    02           1
##  9 0007_01     0007    01           0
## 10 0008_01     0008    01           1
## 11 0008_02     0008    02           1
## 12 0008_03     0008    03           1
## 13 0009_01     0009    01           0
## 14 0010_01     0010    01           0
## 15 0011_01     0011    01           0
## 16 0012_01     0012    01           0
## 17 0014_01     0014    01           0
## 18 0015_01     0015    01           0
## 19 0016_01     0016    01           0
## 20 0017_01     0017    01           1

Bu kod bloğu, aynı “ailenum” değerine sahip yolcuların aynı aileye ait olduğunu belirleyen bir “aile” değişkeni oluşturur. Eğer “aile” değeri 1 ise, aynı aileye ait oldukları anlamına gelir; 0 ise aynı aileye ait olmadıklarını gösterir. Bu tür bir değişken, aile ilişkilerini anlamak veya belirli bir özellikteki grupları tanımlamak için kullanılabilir.

train <- train %>% select(-c(ailenum, ailesıra, num))
test <- test %>% select(-c(ailenum, ailesıra, num))

Bu tür bir değişken çıkarma işlemi, kullanılan analiz veya modelleme yöntemine bağlı olarak değişebilir. Eksik veya gereksiz olduğunu düşündüğünüz değişkenleri çıkarmadan önce, veri setinizin özelliklerine ve analiz amacınıza dikkatlice göz atmak önemlidir.

Logistic Resgresyon

train_set <- train[2:15]
test_set <- test[2:14]

Bu tür bir sütun seçimi, veri setinizdeki belirli değişkenlere odaklanmayı veya modelleme sürecinde kullanılacak özellikleri belirlemeyi amaçlar. . Hangi sütunları seçtiğiniz, kullanacağınız model ve analiz amacınıza bağlı olarak değişebilir.

library(caTools)
set.seed(123)
split = sample.split(train_set$Transported, SplitRatio = 0.75)
training_set=subset(train_set, split==TRUE)
testing_set=subset(train_set, split==FALSE)

Bu işlemler, genellikle veri setini eğitim ve test setlerine ayırmak amacıyla kullanılır. Eğitim seti, modelinizi öğrenmek için kullanılırken, test seti ise eğittiğiniz modelin performansını değerlendirmek için kullanılır. Bu bölme işlemi, veri setinin daha önce görmediği veriler üzerinde modelin nasıl performans gösterdiğini değerlendirmenize yardımcı olur.

logistic = glm(formula = Transported ~ .,
               family = binomial,
               data = training_set)

bu kod “Transported” değişkenini diğer tüm bağımsız değişkenlere göre lojistik bir regresyon modeliyle tahmin etmek üzere eğitim seti üzerinde bir model oluşturur. Bu model, ikili bir bağımlı değişkenin (örneğin, “Evet/Hayır” veya “1/0” gibi) olasılık dağılımını tahmin etmeye çalışacaktır. Model, logistic adında bir nesne olarak atanır ve daha sonra bu nesne üzerinden tahminler yapmak veya model performansını değerlendirmek için kullanılabilir.

prob_pred = predict(logistic, type = 'response', newdata = testing_set[-11])
y_pred = ifelse(prob_pred > 0.5, 1, 0)

prob_pred vektörü, test setindeki her bir gözlem için lojistik regresyon modeli tarafından tahmin edilen olasılıkları içerir. y_pred vektörü ise, bu olasılıkları temel alarak yapılan sınıflandırmayı içerir. Bu sınıflandırma, genellikle belirlenen bir kesme değeri (burada 0.5) üzerinden yapılır. Bu kesme değeri, tahmin edilen olasılıkların hangi sınıfa ait olduğunu belirlemek için kullanılır.

y_pred = ifelse(prob_pred > 0.5, 1, 0)
y_true <- ifelse(testing_set[11] == TRUE, 1, 0)

Bu iki vektör, sınıflandırma modelinin performansını değerlendirmek için kullanılabilir.

cm = table(y_true, y_pred )

Karmaşıklık matrisi, modelin performansını çeşitli metriklerle değerlendirmek için kullanılabilir. Örneğin, doğruluk (accuracy), hassasiyet (precision), duyarlılık (recall), özgüllük (specificity) gibi metrikler bu matristen hesaplanabilir.

Elde edilen cm matrisi, sınıflandırma modelinizin performansını değerlendirmek üzere kullanılabilir. Bu matrisi kullanarak çeşitli performans metriklerini hesaplamak ve yorumlamak mümkündür.

cm 
##       y_pred
## y_true   0   1
##      0 836 243
##      1 259 835

Elde ettiğiniz karmaşıklık matrisini görmek için cm komutunu kullanabilirsiniz.

(836+835)/(836+835+260+189)
## [1] 0.7882075

Bu ifade, doğruluk (accuracy) metriğini hesaplamak için kullanılır. Doğruluk, doğru tahmin edilen gözlemlerin toplam gözlem sayısına oranını ifade eder. Bu ifadeyi hesapladığınızda, modelinizin doğru tahmin etme oranını elde edersiniz. Bu, modelin toplam gözlemler içinde ne kadarının doğru tahmin edildiğini gösterir.

logistic_son = glm(formula = Transported ~ .,
                   family = binomial,
                   data = train_set)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
prob_pred = predict(logistic_son, type = 'response', newdata = test_set)
y_pred = ifelse(prob_pred > 0.5, TRUE , FALSE)

`Bu adımlar, yeni bir lojistik regresyon modeli oluşturarak ve bu modeli kullanarak test setinde tahminler yaparak sınıflandırma problemini çözmek için kullanılır. Elde edilen y_pred vektörü, test setindeki gözlemler için modelin sınıflandırma tahminlerini içerir.

prob_pred = predict(logistic_son, type = 'response', newdata = test_set)
y_pred = ifelse(prob_pred > 0.5, TRUE , FALSE)

Bu iki satır kod sonucunda, y_pred vektörü elde edilir. Bu vektör, her bir gözlem için modelin yaptığı sınıflandırmayı içerir. TRUE değeri, modelin pozitif sınıfı (1) tahmin ettiğini, FALSE değeri ise negatif sınıfı (0) tahmin ettiğini gösterir. Bu tür bir sınıflandırma sonucu, modelin performansının değerlendirilmesi ve karar algoritmasının ne kadar doğru çalıştığının anlaşılması için kullanılır.

Transported <- as.character(y_pred)
PassengerId <- test$PassengerId

Bu işlem sonucunda, PassengerId ve Transported değişkenlerini içeren bir veri çerçevesi oluşturulmuş olacaktır. Bu veri çerçevesi, modelin test seti üzerindeki tahmin sonuçlarını daha fazla incelemek veya başka analizler için kullanmak üzere kullanılabilir.

Transported <- as.vector(Transported)

Bu R kodu, modelin test setindeki tahmin sonuçlarını içeren y_pred vektörünü kullanarak yeni bir Transported değişkeni oluşturur ve bu değişkeni “character” (karakter) türüne dönüştürür. Ardından, PassengerId ve Transported değişkenlerini içeren bir veri çerçevesi oluşturur.

submission <- cbind(PassengerId, Transported)

Bu submission veri çerçevesi, tahmin sonuçlarını ve ilgili yolcu kimlik numaralarını içerir ve genellikle bir modelin performansını değerlendirmek veya bir yarışmaya katılmak amacıyla oluşturulan bir sonuç dosyasına benzer şekilde kullanılabilir.

submission <- as.data.frame(submission)

Bu ifade, submission değişkenini veri çerçevesi türüne dönüştürür. Bu dönüşüm, genellikle veri manipülasyonu ve analizinde daha fazla olanak sağlamak amacıyla yapılır. Veri çerçevesi, R’de tablo benzeri yapıları temsil eden ve çeşitli veri analizi işlemlerini gerçekleştirmek için kullanılan bir veri yapısıdır.

library(stringr)

Bu R kodu, stringr paketini yüklemek ve bu paketin fonksiyonlarını kullanabilmek için kullanılır. stringr paketi, metin işleme ve düzenleme işlemleri için bir dizi kullanışlı fonksiyon içerir. Örneğin, metin içinde desen eşleştirmek, alt dizgiyi değiştirmek, metni parçalara bölmek gibi işlemleri gerçekleştirmek için kullanılabilir.

Paketi yüklemek için genellikle şu şekilde kullanılır:

submission$Transported <- str_to_title(submission$Transported)

Bu ifade, str_to_title fonksiyonunu kullanarak “Transported” sütunundaki metin değerlerini başlık formatına dönüştürür ve bu dönüşümü submission veri çerçevesinin “Transported” sütununa atar.

Örneğin, eğer “Transported” sütununda bir önceki formatta metin değerleri varsa (örneğin, “true”, “false”, “TRUE”, “FALSE”), bu fonksiyon bu değerleri “True”, “False” şeklinde düzenleyecektir. Başlık formatı, her kelimenin ilk harfinin büyük olması şeklinde düzenleme yapar.

write.csv(submission, "submission_logistic.csv", row.names = FALSE,quote = FALSE)

bu kod ile “submission_logistic.csv” adlı bir CSV dosyası oluşturulur ve bu dosya, submission veri çerçevesinin içeriğini içerir. Bu tür bir CSV dosyası genellikle bir modelin tahmin sonuçlarını paylaşmak veya değerlendirmek için kullanılır.

svm

library(e1071)
fit_nb <- naiveBayes(Transported ~ ., data = training_set)
preds <- predict(fit_nb, newdata =testing_set[-11], type = "raw") %>%
  data.frame()

Bu ifade, e1071 paketini yükler. Bu paket, Naive Bayes ve diğer istatistiksel sınıflandırma ve regresyon modellerini içerir.

Bu ifade, naiveBayes fonksiyonunu kullanarak Naive Bayes sınıflandırma modelini eğitiyor. Bağımlı değişken Transported olup, diğer tüm değişkenler modelde bağımsız değişken olarak kullanılır. Eğitim verisi olarak training_set veri çerçevesi kullanılır.

y_pred = ifelse(preds$TRUE. > 0.5, 1,0)

Bu ifade, preds veri çerçevesindeki TRUE. sütunundaki olasılık değerlerini kontrol eder. Eğer bir gözlem için TRUE. sütunundaki değer 0.5’ten büyükse, ifelse fonksiyonu 1 (TRUE) döndürür; aksi halde 0 (FALSE) döndürür. Bu şekilde, y_pred vektörü, test setindeki her bir gözlem için Naive Bayes modelinin sınıflandırma tahminlerini ikili sınıflarla temsil eder. Bu tür bir ikili sınıflandırma genellikle sınıflandırma modellerinin performansının değerlendirilmesi için kullanılır.

cm = table(y_true, y_pred)
cm
##       y_pred
## y_true    0    1
##      0  428  651
##      1   66 1028
(428+1028)/ (428+1028+66+651)
## [1] 0.6700414
nb_son = naiveBayes(Transported ~ ., data = train_set)

Burada y_true ve y_pred vektörlerini tanımlayarak confusionMatrix fonksiyonuyla bir karmaşıklık matrisi oluşturuyoruz. Daha sonra bu matrisi cm değişkenine atıyoruz.

preds <- predict(nb_son, newdata = test_set, type = "raw") %>%
  data.frame()

preds veri çerçevesi, her bir gözlem için sınıflandırma olasılıklarını içerir. Bu olasılık değerleri, sınıflandırma sonuçlarına dayalı olarak hangi sınıfa ait olduğuna dair tahminleri temsil eder.

y_pred = ifelse(preds$TRUE.> 0.5 ,TRUE,FALSE)

y_pred vektörü, test setindeki her bir gözlem için Naive Bayes modelinin sınıflandırma tahminlerini ikili sınıflarla temsil eder.

Transported <-as.character(y_pred)
PassengerI <-test$PassengerId
Transported <-as.vector(Transported)
submission <- cbind(PassengerId, Transported)

Bu tür bir veri çerçevesi genellikle modelin tahmin sonuçlarını ve ilişkili yolcu kimlik numaralarını içeren bir sonuç dosyası oluşturmak için kullanılır.

submission <-as.data.frame(submission)

`

submission$Transported <- str_to_title(submission$Transported)


```r
write.csv(submission, "sub_nb.csv" , row.names = FALSE , quote = FALSE)

Bu kod, submission veri çerçevesinin içeriğini bir CSV dosyasına kaydederek, bu dosyanın daha sonra analiz, değerlendirme veya paylaşma amacıyla kullanılmasını sağlar.

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

fit_svm adlı bir SVM modeli oluşturulur ve eğitim verisine göre bu modeli öğrenir. Bu model daha sonra test verisini tahmin etmek veya değerlendirmek için kullanılabilir.

preds <- predict(fit_svm, newdata = testing_set, type = "raw") %>%
  data.frame()

preds veri çerçevesi, her bir gözlem için sınıflandırma olasılıklarını içerir. Bu olasılık değerleri, sınıflandırma sonuçlarına dayalı olarak hangi sınıfa ait olduğuna dair tahminleri temsil eder.

y_pred = ifelse(preds$. == TRUE, 1,0)

Bu R kodu, preds veri çerçevesindeki sınıflandırma tahminlerini kullanarak bir ikili sınıflandırma yapar. Eğer bir gözlem için . == TRUE koşulu sağlanıyorsa, o gözlem için 1 (TRUE); aksi halde 0 (FALSE) olarak sınıflandırma yapar.

cm = table(y_true, y_pred)

Bu matris, sınıflandırma modelinin performansını değerlendirmek için kullanılan birçok ölçüyü elde etmek için temel bir araçtır.

cm
##       y_pred
## y_true   0   1
##      0 894 185
##      1 343 751

Eğer bu kodu çalıştırırsanız, R konsolunda veya R Markdown belgesinde karmaşıklık matrisinin içeriğini görebilirsiniz. Örneğin:

R Copy code cm Bu ifade, cm değişkeninin içeriğini ekrana bastırır. Karmaşıklık matrisi, gerçek sınıflar ve modelin tahmin ettiği sınıflar arasındaki ilişkiyi gösterir. Karmaşıklık matrisinin çıktısı, True Positive (TP), True Negative (TN), False Positive (FP), ve False Negative (FN) değerlerini içerir.

(834+912) / (834+912+182+245)
## [1] 0.8034975

Bu ifade, bir sınıflandırma modelinin doğruluk (accuracy) oranını hesaplamak için kullanılır. Doğruluk, doğru tahmin edilen gözlemlerin toplam gözlem sayısına oranını ifade eder.

svm_son = svm(Transported ~ ., data = train_set, type = 'C-classification' , kernel = 'linear')

Bu şekilde, svm_son adlı bir SVM modeli oluşturulur ve eğitim verisine göre bu modeli öğrenir. Bu model daha sonra test verisini tahmin etmek veya değerlendirmek için kullanılabilir.

preds <- predict(svm_son, newdata = test_set,type = "raw") %>%
  data.frame()
y_pred =preds$.

Bu iki kod bloğu, svm_son adlı destek vektör makinesi (SVM) modelini kullanarak test verisi üzerinde sınıflandırma tahminleri yapar ve bu tahminleri bir vektöre atar.

Transported <- as.character(y_pred)
PassengerId <- test$PassengerId

Bu iki vektörü oluşturduktan sonra, Transported ve PassengerId vektörleri üzerinde çeşitli işlemler yapabilir ve bu bilgileri modelin performansını değerlendirmek, bir dosyaya kaydetmek veya başka amaçlar için kullanmak üzere kullanabilirsiniz.

Transported <- as.vector(Transported)

Transported zaten bir karakter vektörü ise, bu satırın eklenmesine gerek olmayabilir. Eğer başka bir veri yapısına sahipse ve dönüşüm yapılması gerekiyorsa, uygun bir dönüşüm fonksiyonu kullanılmalıdır.

submission <- cbind(PassengerId, Transported)

submission veri çerçevesi, her bir yolcu için kimlik ve modelin sınıflandırma tahminini içeren bir veri yapısını temsil eder. Bu tür bir yapı, genellikle modelin performansını değerlendirmek veya tahminlerin bir dosyaya kaydedilmesi gibi amaçlar için kullanılır.

submission <- as.data.frame(submission)

submission nesnesini bir veri çerçevesine dönüştürür. as.data.frame fonksiyonu, veri çerçevesine çevrilebilen bir nesneyi veri çerçevesine dönüştürür. Bu işlem genellikle, çeşitli analiz ve görselleştirmeler yapmak için veriyi daha kolay manipüle edilebilir bir formata getirmek amacıyla yapılır.

submission$Transported <- str_to_title(submission$Transported)

Bu tür bir dönüşüm genellikle estetik nedenlerle veya sunum amaçlarıyla kullanılır. Veriyi temiz ve düzenli bir biçimde sunmak için başlığın düzgün bir formatta olması önemli olabilir.

write.csv(submission, "sub_svm.csv", row.names = FALSE, quote = FALSE)

submission veri çerçevesini “sub_svm.csv” adlı bir CSV dosyasına yazacaktır. Bu dosya, sınıflandırma tahminleri ve yolcu kimliklerini içeren bir veri setini içerecektir.

Bellek kullanımı grafği solunda yer alan ölçülerin adlarını ifade eder Ölçülerde ilk olarak ayrık sütunlar vardır ayrık sütunlar %57.1olarak görünür Sütunların ikincisi sürekli sütun olan sütunun oranı %42.9 olark görünür ayrık sütun sürekli sütuna oranla daha fazladır Eksik sütunun değerinin %0 olması eksik sütun değildir anlamındadır Yüzdelik oranımız%1.9

Eksik veri profili grafiği eksik değerleri bize gösterir Bu grafikte her bir değişkenin eksik değerrleri yüzdesini gösteren bir çubuk veya çizgi grafiği kullanılır Bu veri setindeki değişkenler arasınada eksik veri durumlarının benzer bir şekilde dağıldığının ve farklılık gösterdiğini anlamak için kullanılır

Histogram değişkeninin dağılımını görsel olarak gösteren grafiktir “AGE”değişkeninin histogram grafiği yaş değişkeninin farklı yaş gruplarcındaki dağılımını bize gösterir

Bu çubuk grafiğinde verilerin karşılaştırılması , dağılımlarının görüntülenmesi ve genelde kategorik verilerin analizi için kullanılır.

Bu grafikte QQ plote(Quantile)-(Quantile plote),bir teorik dağılım ile veri setindeki gözlemler arasındaki benzerlikleri değerlendirmek için kullanılan grafik

Bu grafikte değişkenlere korealasyon grafiğini görüyoruz . Korelasyon analizi,iki değişken arasındaki ilişkiyi ölçen istatiksel yöntem çeşidir Bu analiz değişkenler arasındaki ilşkinin gücünü ve yönünü belirlemek için kıllanılır

Bu grafikte verileri temel bileşenler tarafından açıklanan varyanslarını görebiliriz

Bu grafikte açıklanan varyansların % delerini görüyoruz