Uzay Gemisi Titanik

Tanım:

Hangi yolcuların alternatif bir boyuta taşınacağını tahmin edinKozmik 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.

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)

Veri Kümesi Açıklaması:

Bu yarışmada göreviniz , Uzay Gemisi Titanik’in uzay-zaman anomalisiyle çarpışması sırasında bir yolcunun alternatif bir boyuta taşınıp taşınmadığını tahmin etmektir . Bu tahminleri yapmanıza yardımcı olmak için size geminin hasarlı bilgisayar sisteminden kurtarılan bir dizi kişisel kayıt veriliyor.

Dosya ve Veri Alanı Açıklamaları

1- train.csv - Yolcuların yaklaşık üçte ikisinin (~8700) kişisel kayıtları, eğitim verileri olarak kullanılacak.

2- PassengerId- Her yolcu için benzersiz bir Kimlik. Her kimlik, yolcunun birlikte seyahat ettiği grubu belirten ve grup içindeki numarası olan gggg_ppformu alır.Bir gruptaki insanlar çoğunlukla aile üyeleridir, ancak her zaman değil.ggggpp

3- HomePlanet- Yolcunun ayrıldığı gezegen, genellikle daimi ikamet ettikleri gezegen.

4- CryoSleep- Yolcunun yolculuk süresince askıya alınmış animasyona alınmayı seçip seçmediğini belirtir. Dondurucu uykudaki yolcular kabinlerine hapsedilir.

5- Cabin- Yolcunun kaldığı kabin numarası. deck/num/sideİskele sideveya PSancak formunu alır.

6- Destination- Yolcunun ineceği gezegen.

7- Age- Yolcunun yaşı.

8- VIP- Yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapıp yapmadığı.

9- RoomService, FoodCourt, ShoppingMall, Spa, VRDeck- Yolcunun Uzay Gemisi Titanic’in birçok lüks olanağının her birinde fatura ettiği tuta.

10- Name- Yolcunun adı ve soyad.

11- Transported- Yolcunun başka bir boyuta taşınıp taşınmadığ. Bu hedeftir, tahmin etmeye çalıştığınız sütundur.

12- test.csv - Yolcuların geri kalan üçte birinin (~4300) kişisel kayıtları, test verisi olarak kullanılacak. TransportedGöreviniz bu setteki yolcular için değerini tahmin etmektir.

str(train)
## spc_tbl_ [8,693 × 14] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ PassengerId : chr [1:8693] "0001_01" "0002_01" "0003_01" "0003_02" ...
##  $ HomePlanet  : chr [1:8693] "Europa" "Earth" "Europa" "Europa" ...
##  $ CryoSleep   : logi [1:8693] FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ Cabin       : chr [1:8693] "B/0/P" "F/0/S" "A/0/S" "A/0/S" ...
##  $ Destination : chr [1:8693] "TRAPPIST-1e" "TRAPPIST-1e" "TRAPPIST-1e" "TRAPPIST-1e" ...
##  $ Age         : num [1:8693] 39 24 58 33 16 44 26 28 35 14 ...
##  $ VIP         : logi [1:8693] FALSE FALSE TRUE FALSE FALSE FALSE ...
##  $ RoomService : num [1:8693] 0 109 43 0 303 0 42 0 0 0 ...
##  $ FoodCourt   : num [1:8693] 0 9 3576 1283 70 ...
##  $ ShoppingMall: num [1:8693] 0 25 0 371 151 0 3 0 17 0 ...
##  $ Spa         : num [1:8693] 0 549 6715 3329 565 ...
##  $ VRDeck      : num [1:8693] 0 44 49 193 2 0 0 NA 0 0 ...
##  $ Name        : chr [1:8693] "Maham Ofracculy" "Juanna Vines" "Altark Susent" "Solam Susent" ...
##  $ Transported : logi [1:8693] FALSE TRUE FALSE FALSE TRUE TRUE ...
##  - 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(),
##   ..   Transported = col_logical()
##   .. )
##  - attr(*, "problems")=<externalptr>

str(train) kodu:

“structure” (yapı) kısaltmasıdır ve genellikle bir veri çerçevesinin yapısını incelemek için kullanılır. Bu kod, belirli bir veri çerçevesinin içeriği ve yapısı hakkında genel bir bilgi sağlar.

str(train) kodunun yaptığı bazı şeyler:

Veri Çerçevesinin Yapısı: str fonksiyonu, veri çerçevesinin temel yapısını (structure) gösterir. Bu, veri çerçevesindeki değişkenlerin adlarını ve türlerini içerir.

Veri Çerçevesindeki Değişkenlerin Türleri: Her bir değişkenin türü (integer, character, factor, vb.) str tarafından gösterilir.

İlk Gözlemler: Veri çerçevesinin başındaki birkaç gözlemi gösterir.

library(DataExplorer)

DataExplorer kodu:

Paketi genellikle veri setinizdeki temel istatistikleri görüntülemenize, eksik veri analizi yapmanıza, değişkenler arasındaki ilişkileri incelemenize ve daha birçok veri keşfi işlemi yapmanıza yardımcı olur.

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/pc/Desktop/Final Projesi/report.knit.md
## "C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS "C:\Users\pc\Desktop\FINALP~1\REPORT~1.MD" --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc27b87b283f9f.html --lua-filter "C:\Users\pc\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\pc\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\pc\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\pc\AppData\Local\Temp\RtmpCEw4gx\rmarkdown-str27b85f016d86.html"
## 
## Output created: report.html

Create_report kodu

Veri setinin genel özelliklerini, temel istatistikleri, eksik veri analizini, değişkenler arasındaki ilişkileri, ve belki de grafikleri içeren bir rapor oluşturur. Veri setinin yapısını daha iyi anlamanıza ve analiz sürecini hızlandırmayı sağlar.

Temel İstatistikler

Ham Sayımlar

İsim Değer Satırlar 8,693 Sütunlar 14 Ayrık sütunlar 8 Sürekli sütunlar 6 Tüm eksik sütunlar 0 Eksik gözlemler 2,324 Satırları Tamamla 6,606 Toplam gözlemler 121,702

Yüzdeler

Grafiği solunda yer alan ölçülerin adlarını ifade etmektedir.

Ölçülerde ilk olarak karşımıza ayrık sütunlar yüzdesi bizi karşımakta Ayrık sütunlar yüzdesi %57.1 olarak karşımıza çıkmaktadır.

Sütunların ikinci kısmını oluşturan sürekli sütunların ise oranının %42.9 olarak gözlemlenmektedir.

Burada arık sütunlarının sürekli sütunlara göre daha fazla olduğu gözlemlenmektedir.

Eksik sütunların değerinin %0 olmasını anlamı ise eksik sütun olmadığını gösterir.

“Complete rows” ifadesi genellikle veri setindeki satırların tam ve eksiksiz olarak doldurulmuş olup olmadığını belirtir. Yani, bir satırın tüm değişkenleri için bilgi içerdiği durumları ifade eder. Toplam satırların içinde hangi yüzde oranında tam ve eksiksiz bilgi içeren satırların bulunduğunu gösterir.

Complete row yüzdesi %76.0’dır. %76 yüksek bir yüzdeliktir.veri setinde çoğu satırın eksiksiz bilgiye sahiptir.

“Missing observations” ifadesi, bir yüzde grafiğinde genellikle eksik değerlere sahip olan gözlemlerin yüzde oranını ifade eder. Yani, veri setindeki herhangi bir değişkenin eksik (NaN veya NA) değerlere sahip olan gözlemleri temsil eder.

Bu ifade, eksik değerlerin veri setinde ne kadar yaygın olduğunu gösterir. Eksik gözlemler, veri analizi ve modelleme süreçlerinde dikkate alınması gereken önemli bir konudur. Eksik değerlere sahip gözlemler, analiz sonuçlarını etkileyebilir ve eksik veri yönetimi, doğru sonuçlar elde etmek için önemlidir.

“missing observations” yüzde grafiği, herhangi bir değişkenin eksik gözlemlerinin toplam gözlem sayısı içindeki yüzde oranını gösterir. Bu oranın yüksek olması, eksik veri sorunlarının önemli olabileceğini gösterir.

Bizim yüzdelik oranımız ise %1.9’dur.

Eksik Veri Profili

Eksik veri profili grafiği genellikle eksik değerlerin değişkenlere göre dağılımını görsel olarak temsil eden bir grafiktir. Bu grafikte, her bir değişken için eksik değerlerin yüzdesini gösteren bir çubuk veya çizgi grafiği kullanılır. Bu, her değişkenin eksik değerlerinin oranını görmemize olanak tanır.

Eksik veri profili grafiğinde eksik değerlerin yüzdesini incelediğinizde, her bir değişkenin eksik değer oranının belirli bir aralıkta (band) olduğunu gözlemleyebiliriz.

Bu, veri setindeki değişkenler arasında eksik veri durumlarının benzer bir şekilde dağıldığını veya farklılık gösterdiğini anlamak için kullanılabilir. Bu bilgi, eksik veri yönetimi stratejilerini belirlemede ve eksik değerlerin etkisini değerlendirmede yardımcı olabilir.

1.Tranported yüzdelik oranı %0’dır.Transported üzerinde eksik bilgi bulunmamaktadır.

2.PassengerId yüzdelik oranı %0’dır. PassengerId üzerinde transported’da görüldüğü gibi eksik bilgi yoktur.

3.Age yüzdelik oranı %2.06’dır. Yolcuların yaşına bakıldığında eksik bilgiler bulunmaktadır.

4.RoomService yüzdelik oranı %2.08’dir. Yolcuların Uzay Gemisi Titanic’in birçok lüks olanağının her birinde fatura ettiği tutarda da eksik bilgiler bulunmaktadır

5.Destination yüzdelik oranı %2.09’dur. Yolcuların ineceği gezegenlerde de eksik bilgiler bulunmaktadır.

6.Spa yüzdelik oranı %2.11’dir.

7.FoodCourt yüzdelik oranı %2.11’dir.

8.VRDeck yüzdelik oranı %2.16’dır.

9.Cabin yüzdelik oranı %2.29’dur.Yolcuların kaldığı kabin numaralarında da eksik bilgilere rastlanmaktadır.

10.Name yüzdelik oranı %2.3’tür.Yolcuların adı ve soyadında da eksik bilgiler bulunmaktadır.

11.HomePlanet yüzdelik oranı %2.31’dir.Yolcuların ayrıldığı gezegen, genellikle daimi ikamet ettikleri gezegenlerdede eksik bilgiler bulunmaktadır.

12.VIP yüzdelik oranı %2.34’tür.Yolcuların yolculuk sırasında özel VIP hizmeti için ödeme yapıp yapmadığı hakkında eksik bilgiler vardır.

13.ShoppingMall yüzdelik oranı %2.39’dur.

  1. CryoSleep yüzdelik oranı %2.5’tir.Yolcuların yolculuk süresince askıya alınmış animasyona alınmayı seçip seçmediği hakkında en fazla eksik bilgie sahip oldumuz veridir.

Tek Değişkenli Dağılım

Histogram, bir değişkenin dağılımını görsel olarak temsil eden bir grafik türüdür. “Age” değişkeninin histogram grafiği, yaş değişkeninin farklı yaş gruplarındaki dağılımını gösterir.

Histogram grafiği, yaş değişkeninin belirli aralıklardaki frekansını gösterir. Her bir çubuk (bar), belirli bir yaş aralığındaki gözlemlerinin sayısını temsil eder. Bu sayede, yaş değişkeninin genel dağılım özellikleri, merkezi eğilimi ve yayılımı hakkında bilgi edinilir.

1.Grafiğe bakıldığında genç ve orta yaş gurbunun (20 ile 40) çoğunluğu oluşturduğu dikkatimizi çekmektedir. 0 ile 20 aş grubu arasında bir artış görülmektedir, 20 ile 40 yaş aralığı en oğun yaş grubun u göstermektedir. 40 ile 80 arası yaş grubunun ise giderek düştüğünü gözlemleyebiliriz.

RoomService, FoodCourt, ShoppingMall, Spa, VRDeck grafiklerine bakıldığında çok az yolcunun bunlardan birini veya bir kaçını kullandığı gözlemlenebilir.Genellikle kullanılmadığı söylenebilir.

Yolcular Uzay Gemisi Titanic’in birçok lüks olanağından faydalanmak istememiştir.

Çubuk Grafik (frekanslı)

Çubuk grafik (bar plot veya bar chart), kategorik verilerin frekanslarını veya oranlarını görsel olarak temsil etmek için kullanılan bir grafik türüdür. Bu grafik, belirli kategorik değerlerin sıklığını veya dağılımını anlamak amacıyla kullanılır. Özellikle, bir değişkenin kategorik olduğu durumlarda sıkça tercih edilen bir görselleştirme aracıdır.

Çubuk grafikte her bir çubuk, belirli bir kategoriye ait gözlemlerin sayısını veya oranını temsil eder. Yatay eksende kategorik değerler bulunurken, dikey eksende bu kategorik değerlere ait frekanslar veya oranlar yer alır.

Çubuk grafik, 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 tür grafikler, veri setindeki desenleri ve eğilimleri hızlı bir şekilde anlamak için etkili araçlardır.

1.Grafik:HomePlanet:Birinci grafiğe bakıldığında Yolcuların çoğunun 4500’den fazla yolcunun ayrıldığı gezegen Eart olarak gözükmektedir. İkibin yüze akın yolcunun Europa da indiği a da ikamet ettiği anlaşılıyor.Mars’ta inen yolcu sayısı ise 1500’dür.Geriye Kalan 200 yolcunun ise nerede ikamet ettikleri bilinmiyor.Bu grafiğe bakıldığı yolcuların genellikle daimi ikamet ettikleri gezegen yarıdan fazla bir oranla earth’dır.

2.Grafik:CryoSleep:CryoSleep grafiğine bakıldığında 4800 kişilik bir grubun yolculuk süresince askıya alınmış animasyona alınmayı seçmediğini yorumlanmaktadır.2500 yolcunun ise yolculuk süresince askıya alınmış animasyona alınmayı seçtiği görülmektedir. Geriye kalan yolcuların ise seçip seçmediği bilinmemektedir.

3.Grafik:Destination:Destination grafiğine bakıldığında 6000 bine yakın yolcunun çoğunluk kesimin TRAPPIST-1e gezegeninde inecektir.1800 yolcunun 55 cancri e gezegeninde ineceği gözlenmektedir.900 yolcunun PSO J318.5-22 gezegeninde inecektir.Gerie kalan azınlığın nerede ineceği belli değildir.

4.Grafik:VIP:VIP grafiğine bakıldığında çok yüksek bir oranın yaklaşık 8200 yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapmadığı gözlenmektedir. Ödeme yapan ve ödeme yapıp yapmadığı bilinmeyen yolcuların oranı oldukça düşüktür.

5.Grafik:Transported:Transported grafiğine bakıldığında yarı yarıya bir oran gözükmektedir.Yolcuların 4400 kişisi başka bir boyuta taşındığını diğer 4400 yolcunun başka bir boyuta taşınmadığı gözlemlenmektedir.

QQ Grafiği

QQ plot (Quantile-Quantile plot), bir teorik dağılım ile veri setindeki gözlemler arasındaki benzerlikleri değerlendirmek için kullanılan bir grafik türüdür. Bu grafik, iki veri kümesi arasındaki quantile (sıralı değer) ilişkilerini görselleştirir.

Teorik ve Gözlemlenen Quantile Değerleri:

X ekseni: Teorik bir dağılıma ait quantile değerleri (genellikle standart normal dağılım quantile’ları). Y ekseni: Gözlemlenen veri setinin quantile değerleri.

Diyagonal Referans Çizgisi:Çoğu zaman, bir DIYAGONAL çizgi çizilir. Eğer her iki veri kümesi birbirine tamamen uysaydı, noktalar bu çizgi üzerinde olurdu.

QQ plot, özellikle normal dağılım kontrolü için sıklıkla kullanılır. Eğer bir veri seti normal dağılıma sahipse, QQ plot üzerindeki noktalar genellikle diyagonal çizginin etrafında simetrik olarak düzenlenir. Eğer veri seti normal dağılıma uymuyorsa, QQ plot üzerinde belirgin bir eğilim veya sapma gözlemlenebilir.

QQ pilot normal dağılımda olduğunu gösterir.

Korelasyon analizi

Korelasyon analizi, iki değişken arasındaki ilişkiyi ölçen bir istatistiksel yöntemdir. Bu analiz, değişkenler arasındaki ilişkinin gücünü ve yönünü belirlemek için kullanılır.

Korelasyon analizi, iki değişken arasındaki ilişkiyi ölçen bir korelasyon katsayısı üretir. Korelasyon katsayısı genellikle -1 ile 1 arasında bir değer alır:

1: Tam pozitif korelasyon (bir değişken arttığında diğer değişken de artar). 0: Korelasyon yok (değişkenler arasında herhangi bir ilişki yok). -1: Tam negatif korelasyon (bir değişken arttığında diğer değişken azalır).

Korelasyon analizi, veri setindeki ilişkileri anlamak, değişkenler arasındaki bağlantıları incelemek ve tahmin modelleri oluşturmak için yaygın olarak kullanılır. İki sürekli değişken arasındaki ilişkinin doğrusal olup olmadığını değerlendirmek için Pearson korelasyon katsayısı sıkça kullanılır. Ancak, veri normal dağılıma uymuyorsa veya ilişki doğrusal değilse, diğer korelasyon yöntemleri de kullanılabilir

Korelasyon Katsayısı Değerleri:

1’e Yaklaşan Pozitif Korelasyon (0.8 - 1): İki değişken arasında güçlü bir pozitif ilişki olduğunu gösterir. Bir değişken arttığında diğer değişken de artar. 0’a Yaklaşan Korelasyon (0.1 - 0.2): İki değişken arasında çok zayıf veya hafif bir ilişki olduğunu gösterir. İki değişken arasında bir ilişki olduğunu söylemek zor olabilir. -1’e Yaklaşan Negatif Korelasyon (-0.8 - -1): İki değişken arasında güçlü bir negatif ilişki olduğunu gösterir. Bir değişken arttığında diğer değişken azalır.

Dağılım ve Aykırı Değerler:

Korelasyon analizi, değişkenler arasındaki doğrusal ilişkiyi ölçer. Eğer veri setiniz doğrusal bir ilişki içermiyorsa, korelasyon katsayısı düşük olabilir. Ayrıca, aykırı değerler de analizi etkileyebilir.

Korelasyon İstatistiksel Anlamlılık:

Korelasyon katsayısının istatistiksel olarak anlamlı olup olmadığını kontrol etmek önemlidir. Bunun için genellikle p değeri kullanılır. Anlamsız bir korelasyon, rastgele olasılık sonucu ortaya çıkmış olabilir.

Sıklıkla Karıştırılan İle Nedensellik Arasındaki Fark:

Korelasyon, iki değişken arasındaki ilişkiyi ölçer, ancak bu ilişkinin nedensel olduğu anlamına gelmez. İki değişken arasındaki korelasyon, bir değişkenin diğerini sebep olduğu anlamına gelmez.

Temel Bileşenler Analizi

Temel Bileşen Analizi (Principal Component Analysis veya kısaca PCA), çok değişkenli veri setlerinin boyutsal azaltma amacıyla kullanılan bir istatistiksel yöntemdir. PCA, veri setindeki değişkenler arasındaki ilişkileri anlamak ve ana değişkenlere (temel bileşenlere) dönüştürmek için kullanılır.

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

Tidyverse kodu

library(tidyverse) kodu, R programında tidyverse adlı bir paket koleksiyonunu yüklemeye yöneliktir. tidyverse, veri manipülasyonu, görselleştirme ve analiz için kullanılan bir dizi paketi bir araya getirir ve bu nedenle geniş bir veri bilimi aracıdır.

tidyverse’ın içinde birçok farklı paket bulunmaktadır, ancak en bilinenleri arasında dplyr, ggplot2, tidyr, ve readr yer almaktadır.

library(explore)

Explore kodu

“explore” paketi, veri keşfi (data exploration) işlemleri için tasarlanmış bir R paketidir. Bu paket, veri setinin genel özelliklerini, temel istatistikleri, eksik veri analizini, değişkenler arasındaki ilişkileri ve diğer çeşitli özellikleri keşfetmek için kullanılan bir dizi fonksiyon içerir.

library(explore) komutu, “explore” paketini yükleyerek ve kullanıma hazır hale getirerek bu paketi R ortamında kullanılabilir hale getirir. Bir kez yüklendikten sonra, “explore” paketinin içindeki fonksiyonları çağırabilir ve veri setiniz üzerinde çeşitli keşif analizleri yapılabilmektedir.

train %>% describe_all()
## # A tibble: 14 × 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

Describle_all kodu

Bu R kodu, train adlı bir veri çerçevesinin tüm değişkenlerine (sütunlara) ait temel istatistiksel özet bilgileri sağlamak için kullanılır. Bu tür bir kod, dplyr paketinin describe_all() fonksiyonu ile gerçekleştirilir.Bu kodun çalıştırılmasıyla, “train” veri çerçevesindeki tüm değişkenlere ait istatistiksel özet bilgileri görsel olarak veya ekrana basılarak elde edilir. Bu tür bir özet, veri setinin genel yapısı, merkezi eğilim, dağılım ve diğer temel özellikleri hakkında hızlı bir bakış sağlar.

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)

test.csv - Yolcuların geri kalan üçte birinin (~4300) kişisel kayıtları, test verisi olarak kullanılacak. TransportedGöreviniz bu setteki yolcular için değerini tahmin etmektir.

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(test)
## 
## 
## 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/pc/Desktop/Final Projesi/report.knit.md
## "C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS "C:\Users\pc\Desktop\FINALP~1\REPORT~1.MD" --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc27b84edc6391.html --lua-filter "C:\Users\pc\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\pc\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\pc\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\pc\AppData\Local\Temp\RtmpCEw4gx\rmarkdown-str27b86ad9363a.html"
## 
## Output created: report.html

Test Datası İçin Temel İstatistikler

Ham Sayımlar

İsim Değer Satırlar 4.277 Sütunlar 13 Ayrık sütunlar 7 Sürekli sütunlar 6 Tüm eksik sütunlar 0 Eksik gözlemler 1.117 Satırları Tamamla 3.281 Toplam gözlemler 55.601

Yüzdeler

Ölçülerde ilk olarak karşımıza ayrık sütunlar yüzdesi bizi karşımakta Ayrık sütunlar yüzdesi %53.8 olarak karşımıza çıkmaktadır.

Sütunların ikinci kısmını oluşturan sürekli sütunların ise oranının %46.2 olarak gözlemlenmektedir.

Burada arık sütunlarının sürekli sütunlara göre daha fazla olduğu gözlemlenmektedir.

Eksik sütunların değerinin %0 olmasını anlamı ise eksik sütun olmadığını gösterir.

Complete row yüzdesi %76.7’dır. %76.7 yüksek bir yüzdeliktir.veri setinde çoğu satırın eksiksiz bilgiye sahiptir.

Missing observations yüzdesi %2.0’dır.Bu oranın yüksek olması, eksik veri sorunlarının önemli olabileceğini gösterir.

Eksik Veri Profili

1.PassengerId yüzdelik oranı %0’dır.PassengerId üzerinde transported’da görüldüğü gibi eksik bilgi yoktur.

2.VRDeck yüzdelik oranı %1.87’dir.

3.RoomService yüzdelik oranı %1.92’dir.Yolcuların Uzay Gemisi Titanic’in birçok lüks olanağının her birinde fatura ettiği tutarda da eksik bilgiler bulunmaktadır.

4.HomePlanet yüzdelik oranı %2.03’tür.Yolcuların ayrıldığı gezegen, genellikle daimi ikamet ettikleri gezegenlerdede eksik bilgiler bulunmaktadır.

5.Age yüzdelik oranı %2.13’tür.Yolcuların yaşına bakıldığında eksik bilgiler bulunmaktadır.

6.Destination yüzdelik oranı %2.15’dir.Yolcuların ineceği gezegenlerde de eksik bilgiler bulunmaktadır.

7.VIP yüzdelik oranı %2.17’dir.Yolcuların yolculuk sırasında özel VIP hizmeti için ödeme yapıp yapmadığı hakkında eksik bilgiler vardır.

8.CryoSleep yüzdelik oranı %2.17’dir.Yolcuların yolculuk süresince askıya alınmış animasyona alınmayı seçip seçmediği hakkında en fazla eksik bilgie sahip oldumuz veridir.

9.Name yüzdelik oranı %2.2’tür.Yolcuların adı ve soyadında da eksik bilgiler bulunmaktadır.

10.ShoppingMall yüzdelik oranı %2.29’dur.

11.Cabin yüzdelik oranı %2.34’tür.Yolcuların kaldığı kabin numaralarında da eksik bilgilere rastlanmaktadır.

12.Spa yüzdelik oranı %2.36’dır.

13.FoodCourt yüzdelik oranı %2.48’dir.

Tek Değişkenli Dağılım

Histogram

1.Grafiğe bakıldığında Train datasında olduğu gibi genç ve orta yaş gurbunun (20 ile 40) çoğunluğu oluşturduğu dikkatimizi çekmektedir. 0 ile 20 aş grubu arasında bir artış görülmektedir, 20 ile 40 yaş aralığı en oğun yaş grubun u göstermektedir. 40 ile 80 arası yaş grubunun ise giderek düştüğünü gözlemleyebiliriz.

RoomService, FoodCourt, ShoppingMall, Spa, VRDeck grafiklerine bakıldığında çok az yolcunun bunlardan birini veya bir kaçını kullandığı gözlemlenebilir.Genellikle kullanılmadığı söylenebilir.

Yolcular Uzay Gemisi Titanic’in birçok lüks olanağından faydalanmak istememiştir.

Çubuk Grafik (frekanslı)

50’den fazla kategori içeren 3 sütun göz ardı edildi.

PassengerId: 4277 kategori

Cabin: 3266 kategori

Name: 4177 kategori

1.Grafik:HomePlanet:Birinci grafiğe bakıldığında Yolcuların çoğunun 2500’den fazla yolcunun ayrıldığı gezegen Eart olarak gözükmektedir. 1000 yolcunun Europa da indiği a da ikamet ettiği anlaşılıyor.Mars’ta inen yolcu sayısı ise 575’dir.Geriye Kalan yolcunun ise nerede ikamet ettikleri bilinmiyor.Bu grafiğe bakıldığı yolcuların genellikle daimi ikamet ettikleri gezegen yarıdan fazla bir oranla earth’dır.

2.Grafik:CryoSleep:CryoSleep grafiğine bakıldığında 2600 kişilik bir grubun yolculuk süresince askıya alınmış animasyona alınmayı seçmediğini yorumlanmaktadır.1550 yolcunun ise yolculuk süresince askıya alınmış animasyona alınmayı seçtiği görülmektedir. Geriye kalan yolcuların ise seçip seçmediği bilinmemektedir.

3.Grafik:Destination:Destination grafiğine bakıldığında 2900 yolcunun çoğunluk kesimin TRAPPIST-1e gezegeninde inecektir.750 yolcunun 55 cancri e gezegeninde ineceği gözlenmektedir.400 yolcunun PSO J318.5-22 gezegeninde inecektir.Gerie kalan azınlığın nerede ineceği belli değildir.

4.Grafik:VIP:VIP grafiğine bakıldığında çok yüksek bir oranın yaklaşık 4100 yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapmadığı gözlenmektedir. Ödeme yapan ve ödeme yapıp yapmadığı bilinmeyen yolcuların oranı oldukça düşüktür.

QQ Grafiği

Uyarı: stat_qq() fonksiyonu içeren 151 satırda geçerli olmayan değerler içeren satırlar kaldırıldı.

Uyarı: stat_qq_line() fonksiyonu içeren 151 satırda geçerli olmayan değerler içeren satırlar kaldırıldı.

Korelasyon analizi

20’den fazla kategori içeren 3 özellik yok sayıldı!

PassengerId: 3281 kategori

Cabin: 2673 kategori

Name: 3277 kategori

Temel bileşenler Analizi

50’den fazla kategori içeren 3 özellik göz ardı edildi!

PassengerId: 3281 kategori

Cabin: 2673 kategori

Name: 3277 kategori

library(tidyverse)
library(explore)
test %>%describe_all()
## # A tibble: 13 × 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
library(stringr)

Error in str_split_fixed(train$PassengerId, “_“, 2) :”str_split_fixed” fonksiyonu bulunamadı

Bu hatayı verdiği için stringr paketini yükledik ve Daha sonra library(stringr) komutu ile entegre ettik.

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

Bu R kodu, train veri çerçevesindeki PassengerId sütununu kullanarak yeni ailenum ve ailesıra adlı iki sütun oluşturur. str_split_fixed fonksiyonu, bir karakter dizisini belirtilen bir ayırıcıya göre bölen ve belirtilen sayıda parçaya ayıran bir fonksiyondur. Bu durumda, PassengerId sütunu içindeki değerlerin ’_’ (alt çizgi) karakterine göre bölünmesi bekleniyor ve en fazla 2 parçaya ayrılması sağlanıyor.

Bu kodun sonucunda, train veri çerçevesine eklenen ‘ailenum’ ve ‘ailesıra’ sütunları, ‘PassengerId’ sütunundaki değerlerin ’_’ karakterine göre bölünmüş hallerini içerecektir. Bu tür bir ayrıştırma genellikle veri çerçevelerinde belirli bilgileri çıkarmak veya yeni değişkenler oluşturmak için kullanılır.

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

Aynı kodu test içinde yaptık.

Böylece iki datada da tabloda sıraysıyla ailenum ve ailesıra sütunlarını gösteren paneller oluşturduk .

iki datada da 8 tane aile sıra olduğunu ve 9280 tane ailenum verisini gözlemledik.

train <- train[, c(15:16, 1:14)]

Bu R kodu, train veri çerçevesindeki sütunları yeniden düzenleyerek yeni bir train veri çerçevesi oluşturur. İşlemin mantığı, train veri çerçevesindeki sütunları belirli bir sıra ile yeniden düzenlemektir.

train <- …: Bu ifade, seçilen sütunları içeren yeni bir veri çerçevesi oluşturarak, bu yeni veri çerçevesini train adlı değişkene atar. Yani, 15. ve 16. sütunlar önce gelir, ardından 1. ile 14. sütunlar gelir.

test <- test[, c(14:15, 1:13)]

Bu ifade, veri çerçevesinin sütunlarını seçmeye yönelik R dilindeki indeksleme ve dilimleme yöntemini kullanır. İlk kısmın içinde 14:15 ifadesi, 14. ve 15. sütunları seçer. İkinci kısmın içinde 1:13 ifadesi, 1. ile 13. sütunları seçer.

Bu işlem sonucunda, test veri çerçevesinin sütunları belirtilen sırayla düzenlenir. Bu tür bir sıralama işlemi, veri çerçevesindeki sütunların düzenini değiştirmek veya belirli sütunları öne çıkarmak için kullanılabilir.

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

Bu R kodu, train veri çerçevesindeki Cabin sütununu kullanarak yeni deck, num ve side adlı üç sütun oluşturur. Bu sütunlar, str_split_fixed fonksiyonu kullanılarak Cabin sütunundaki değerlerin ‘/’ (eğik çizgi) karakterine göre bölünmesiyle elde edilir.

str_split_fixed(train$Cabin, ‘/’, 3): Bu ifade, Cabin sütunundaki her bir değeri ‘/’ karakterine göre böler ve en fazla 3 parçaya ayırır. Sonuç, bir matris olacaktır.

train[c(‘deck’, ‘num’, ‘side’)] <- …: Bu ifade, train veri çerçevesine üç yeni sütun eklemek için kullanılır. Yeni sütunlara isim olarak ‘deck’, ‘num’ ve ‘side’ verilir.

…: Bu kısımda, önceki adımda oluşturulan matrisin değerleri atanır. Yani, ‘deck’ sütunu oluşturulan matrisin ilk sütunu, ‘num’ sütunu ikinci sütunu, ‘side’ sütunu ise üçüncü sütunu olacaktır.

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

Bu işlem sonucunda, test veri çerçevesine eklenen ‘deck’, ‘num’, ve ‘side’ sütunları, ‘Cabin’ sütunundaki değerlerin ‘/’ karakterine göre bölünmüş hallerini içerecektir. Bu tür bir ayrıştırma, veri içindeki bilgileri daha ayrıntılı bir şekilde ele almak ve analiz etmek için kullanılabilir.

train <- train[, c(1:6,17,18,19, 7:16)]

Bu R kodu, train veri çerçevesindeki sütunları yeniden düzenleyerek yeni bir train veri çerçevesi oluşturur. İşlemin mantığı, train veri çerçevesindeki sütunları belirli bir sıra ile düzenlemektir.

train <- …: Bu ifade, seçilen sütunları içeren yeni bir veri çerçevesi oluşturarak, bu yeni veri çerçevesini train adlı değişkene atar.

test <- test[, c(1:6,16,17,18, 7:15)]

Bu işlem sonucunda, test veri çerçevesinin sütunları belirtilen sırayla düzenlenir. Bu tür bir sıralama işlemi, veri çerçevesindeki sütunların düzenini değiştirmek veya belirli sütunları öne çıkarmak için kullanılabilir.

train <- train[, c(1,2,4,5,17,18,19, 7:16)]

Bu R kodu, train veri çerçevesindeki sütunları yeniden düzenleyerek yeni bir train veri çerçevesi oluşturur. İşlemin mantığı, belirli sütunları belirli bir sıra ile seçmek ve bu sütunları kullanarak yeni bir veri çerçevesi oluşturmaktır.

test <- test[, c(1,2,4,5,16,17,18, 7:15)]

Bu işlem sonucunda, test veri çerçevesi, belirtilen sırayla seçilen sütunları içerecek şekilde güncellenir. Bu tür bir sıralama ve seçim işlemi, veri çerçevesindeki belirli sütunları öne çıkarmak veya analiz etmek için kullanılabilir.