FINAL PROJESI
1910504609
SPACESHIP TITANIC
Spaceship Titanic, Douglas Adams’ın yazdığı bir bilgisayar oyunudur. 1998’de piyasaya sürülerek oyuncuları, uzay gemisi versiyonu olan Titanic’te bir yolcu olarak uyanıp geminin sırlarını çözmeye yönlendirir. Oyun, absürd ve mizahi öğeler içerir ve Douglas Adams’ın karakteristiğini yansıtır.
“train.csv” adlı CSV dosyasını okumak için readr kütüphanesini kullanır. Ayrıca, options(message=FALSE, warning=FALSE) ifadesi, kodun çalıştırılması sırasında mesajları ve uyarıları görüntülememek için kullanılır.
“test.csv” adlı CSV dosyasını okumak için readr kütüphanesini kullanır. Ayrıca, options(message=FALSE, warning=FALSE) ifadesi, kodun çalıştırılması sırasında mesajları ve uyarıları görüntülememek için kullanılır.
## 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>
## 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>
## # A tibble: 6 × 14
## PassengerId HomePlanet CryoSleep Cabin Destination Age VIP RoomService
## <chr> <chr> <lgl> <chr> <chr> <dbl> <lgl> <dbl>
## 1 0001_01 Europa FALSE B/0/P TRAPPIST-1e 39 FALSE 0
## 2 0002_01 Earth FALSE F/0/S TRAPPIST-1e 24 FALSE 109
## 3 0003_01 Europa FALSE A/0/S TRAPPIST-1e 58 TRUE 43
## 4 0003_02 Europa FALSE A/0/S TRAPPIST-1e 33 FALSE 0
## 5 0004_01 Earth FALSE F/1/S TRAPPIST-1e 16 FALSE 303
## 6 0005_01 Earth FALSE F/0/P PSO J318.5-22 44 FALSE 0
## # ℹ 6 more variables: FoodCourt <dbl>, ShoppingMall <dbl>, Spa <dbl>,
## # VRDeck <dbl>, Name <chr>, Transported <lgl>
## # A tibble: 6 × 13
## PassengerId HomePlanet CryoSleep Cabin Destination Age VIP RoomService
## <chr> <chr> <lgl> <chr> <chr> <dbl> <lgl> <dbl>
## 1 0013_01 Earth TRUE G/3/S TRAPPIST-1e 27 FALSE 0
## 2 0018_01 Earth FALSE F/4/S TRAPPIST-1e 19 FALSE 0
## 3 0019_01 Europa TRUE C/0/S 55 Cancri e 31 FALSE 0
## 4 0021_01 Europa FALSE C/1/S TRAPPIST-1e 38 FALSE 0
## 5 0023_01 Earth FALSE F/5/S TRAPPIST-1e 20 FALSE 10
## 6 0027_01 Earth FALSE F/7/P TRAPPIST-1e 31 FALSE 0
## # ℹ 5 more variables: FoodCourt <dbl>, ShoppingMall <dbl>, Spa <dbl>,
## # VRDeck <dbl>, Name <chr>
Train ve test veri setindeki “HomePlanet” sütununda bulunan benzersiz (tekrarlanmayan) değerlerin sayısını verendir.”HomePlanet”sütununda kaç farklı ev gezegeni olduğunu bakacağız
## [1] "Europa" "Earth" "Mars" NA
## [1] "Earth" "Europa" "Mars" NA
Train ve test veri setindeki “CryoSleep” sütununda bulunan benzersiz (tekrarlanmayan) değerleri döndürendir.”CryoSleep” sütununda hangi uyku modu değerlerinin mevcut olduğunu öğreneceğiz.
## [1] FALSE TRUE NA
## [1] TRUE FALSE NA
Train ve test veri setindeki “Destination” sütununda bulunan benzersiz (tekrarlanmayan) değerleri döndürendir.”Destination” sütununda hangi hedeflerin olduğunu öğreneceğiz ve onu kullanarak farklı seyahat noktalarının isimlerini alabiliriz.
## [1] "TRAPPIST-1e" "PSO J318.5-22" "55 Cancri e" NA
## [1] "TRAPPIST-1e" "55 Cancri e" "PSO J318.5-22" NA
HomePlanet adlı bir sütunu kontrol eder ve eksik (NA) değerler bulunursa, addNA fonksiyonu kullanarak bu değerlere “NA” ekler.
HomePlanet adlı bir sütunu kontrol eder ve eksik (NA) değerler bulunursa, addNA fonksiyonu kullanarak bu değerlere “NA” ekler.
train veri çerçevesindeki Destination sütunundaki eksik değerleri kontrol eder ve addNA fonksiyonunu kullanarak bu eksik değerlere “NA” ekler. Özetle, eğer Destination sütununda eksik bir değer varsa, bu değerler “NA” ile değiştirilir.
test veri çerçevesindeki Destination sütunundaki eksik değerleri kontrol eder ve addNA fonksiyonunu kullanarak bu eksik değerlere “NA” ekler. Özetle, eğer Destination sütununda eksik bir değer varsa, bu değerler “NA” ile değiştirilir.
Train veri çerçevesindeki CryoSleep sütunu kontrol ediliyor. Eğer bu sütundaki değerlerden herhangi biri eksikse, addNA fonksiyonu kullanılarak eksik değerlere “NA” ekleniyor. Yani, CryoSleep sütunundaki eksik değerler “NA” ile değiştiriliyor.
Test veri çerçevesindeki CryoSleep sütunu kontrol ediliyor. Eğer bu sütundaki değerlerden herhangi biri eksikse, addNA fonksiyonu kullanılarak eksik değerlere “NA” ekleniyor. Yani, CryoSleep sütunundaki eksik değerler “NA” ile değiştiriliyor.
library(dplyr)
library(tidyr)
train <- train %>% group_by(HomePlanet,Destination) %>%
mutate(Age = replace_na(Age,mean(Age, na.rm = TRUE)))dplyr ve tidyr kütüphanelerini kullanarak train veri çerçevesindeki eksik Age değerlerini gruplara ayırarak doldurma işlemi yapılıyor. Her grup içindeki eksik değerler, o gruptaki diğer değerlerin ortalamasıyla dolduruluyor. Bu, eksik değerleri daha anlamlı bir şekilde doldurma yöntemidir.
test <- test %>% group_by(HomePlanet,Destination) %>%
mutate(Age = replace_na(Age,mean(Age, na.rm = TRUE)))dplyr ve tidyr kütüphanelerini kullanarak test veri çerçevesindeki eksik Age değerlerini gruplara ayırarak doldurma işlemi yapılıyor. Her grup içindeki eksik değerler, o gruptaki diğer değerlerin ortalamasıyla dolduruluyor. Bu, eksik değerleri daha anlamlı bir şekilde doldurma yöntemidir.
train veri çerçevesindeki VIP adlı sütunu kontrol ediyor. Eğer bu sütundaki değerlerden herhangi biri eksik (NA) ise, addNA fonksiyonu kullanılarak eksik değerlere “NA” ekleniyor. Yani, eğer VIP sütununda bir eksik değer varsa, bu eksik değerler “NA” ile değiştirilir
test veri çerçevesindeki VIP adlı sütunu kontrol ediyor. Eğer bu sütundaki değerlerden herhangi biri eksik (NA) ise, addNA fonksiyonu kullanılarak eksik değerlere “NA” ekleniyor. Yani, eğer VIP sütununda bir eksik değer varsa, bu eksik değerler “NA” ile değiştirilir
train <- train %>%
mutate(RoomService=coalesce(RoomService, 0),
FoodCourt=coalesce(FoodCourt, 0),
ShoppingMall=coalesce(ShoppingMall, 0),
Spa=coalesce(Spa,0),
VRDeck=coalesce(VRDeck,0))Eksik değerler belirli sütunlarda 0 ile dolduruluyor. Bu işlem RoomService, FoodCourt, ShoppingMall, Spa ve VRDeck sütunlarını etkiliyor. Coalesce fonksiyonu eksik değerleri 0 ile değiştiriyor.
test <- test %>%
mutate(RoomService=coalesce(RoomService, 0),
FoodCourt=coalesce(FoodCourt, 0),
ShoppingMall=coalesce(ShoppingMall, 0),
Spa=coalesce(Spa,0),
VRDeck=coalesce(VRDeck,0))Eksik değerler belirli sütunlarda 0 ile dolduruluyor. Bu işlem RoomService, FoodCourt, ShoppingMall, Spa ve VRDeck sütunlarını etkiliyor. Coalesce fonksiyonu eksik değerleri 0 ile değiştiriyor.
Tidyverse, R ortamına veri manipülasyonu ve görselleştirme için bir dizi paket ekler. Bu koleksiyon, dplyr, ggplot2, tidyr, readr ve diğer birçok paketi içerir ve veri analizi ve grafik oluşturmayı daha etkili hale getirir
train setindeki PassengerId sütunundaki değerleri “_” karakterini kullanarak ayırır. Daha sonra ortaya çıkan parçaları ailenum ve ailesıra adlı iki yeni sütunda saklar. Örneğin, PassengerId sütunu “123_456” değerini içeriyorsa, ailenum sütunu “123” değerini ve ailesıra sütunu “456” değerini alır.
test setindeki PassengerId sütunundaki değerleri “_” karakterini kullanarak ayırır. Daha sonra ortaya çıkan parçaları ailenum ve ailesıra adlı iki yeni sütunda saklar. Örneğin, PassengerId sütunu “123_456” değerini içeriyorsa, ailenum sütunu “123” değerini ve ailesıra sütunu “456” değerini alır.
Train veri çerçevesi, sütunları belirli bir sırayla yeniden düzenleyerek yerleştiriyor. Özellikle, sıralama 15. sütundan başlıyor, ardından 16. sütuna geçiyor ve son olarak 1 ile 14. sütunlar yer alıyo
Test veri çerçevesi, sütunları belirli bir sırayla yeniden düzenleyerek yerleştiriyor. Özellikle, sıralama 15. sütundan başlıyor, ardından 16. sütuna geçiyor ve son olarak 1 ile 14. sütunlar yer alıyo
train metin, bir veri kümesinin “Cabin” sütunu üzerinde gerçekleştirilen bir işlemi göstermektedir. Bu sütundaki değerler “/” karakteri kullanılarak üç parçaya ayrılır ve bu parçalar daha sonra “deck”, “num” ve “side” adlı üç yeni sütuna tahsis edilir.
test metin, bir veri kümesinin “Cabin” sütunu üzerinde gerçekleştirilen bir işlemi göstermektedir. Bu sütundaki değerler “/” karakteri kullanılarak üç parçaya ayrılır ve bu parçalar daha sonra “deck”, “num” ve “side” adlı üç yeni sütuna tahsis edilir.
Train veri çerçevesindeki sütunlar belirli bir sırayla yerleştirilir: 1-6, 17-19, 7-16.
Test veri çerçevesindeki sütunlar belirli bir sırayla yerleştirilir: 1-6, 17-19, 7-16.
Eğitim sırasında boş hücreler NA ile değiştirilir. Bu, veri temizleme sürecinde sıkça kullanılır ve veriyi daha tutarlı hale getirmek için boş değerleri NA ile değiştirir.
Eğitim sırasında boş hücreler NA ile değiştirilir. Bu, veri temizleme sürecinde sıkça kullanılır ve veriyi daha tutarlı hale getirmek için boş değerleri NA ile değiştirir.
## # A tibble: 19 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 ailenum chr 0 0 6217 NA NA NA
## 2 ailesıra chr 0 0 8 NA NA NA
## 3 PassengerId chr 0 0 8693 NA NA NA
## 4 HomePlanet fct 0 0 4 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 Cabin chr 199 2.3 6561 NA NA NA
## 7 deck chr 199 2.3 9 NA NA NA
## 8 num chr 199 2.3 1818 NA NA NA
## 9 side chr 199 2.3 3 NA NA NA
## 10 Destination fct 0 0 4 NA NA NA
## 11 Age dbl 0 0 91 0 28.8 79
## 12 VIP fct 0 0 3 NA NA NA
## 13 RoomService dbl 0 0 1273 0 220. 14327
## 14 FoodCourt dbl 0 0 1507 0 448. 29813
## 15 ShoppingMall dbl 0 0 1115 0 170. 23492
## 16 Spa dbl 0 0 1327 0 305. 22408
## 17 VRDeck dbl 0 0 1306 0 298. 24133
## 18 Name chr 200 2.3 8474 NA NA NA
## 19 Transported lgl 0 0 2 0 0.5 1
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 ailenum chr 0 0 3063 NA NA NA
## 2 ailesıra chr 0 0 8 NA NA NA
## 3 PassengerId chr 0 0 4277 NA NA NA
## 4 HomePlanet fct 0 0 4 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 Cabin chr 100 2.3 3266 NA NA NA
## 7 deck chr 100 2.3 9 NA NA NA
## 8 num chr 0 0 1506 NA NA NA
## 9 side chr 0 0 3 NA NA NA
## 10 Destination fct 0 0 4 NA NA NA
## 11 Age dbl 0 0 91 0 28.7 79
## 12 VIP fct 0 0 3 NA NA NA
## 13 RoomService dbl 0 0 842 0 215. 11567
## 14 FoodCourt dbl 0 0 902 0 429. 25273
## 15 ShoppingMall dbl 0 0 715 0 173. 8292
## 16 Spa dbl 0 0 833 0 296. 19844
## 17 VRDeck dbl 0 0 796 0 305. 22272
## 18 Name chr 94 2.2 4177 NA NA NA
Yeni bir sütun, tren veri çerçevesine eklenir. Bu sütun aile numarasını tekrar edenleri işaretler: tekrar eden varsa, 1 atanır; aksi halde, 0 atanır.
Yeni bir sütun, tren veri çerçevesine eklenir. Bu sütun aile numarasını tekrar edenleri işaretler: tekrar eden varsa, 1 atanır; aksi halde, 0 atanır.
## # A tibble: 20 × 3
## PassengerId ailenum aile
## <chr> <chr> <dbl>
## 1 0001_01 0001 0
## 2 0002_01 0002 0
## 3 0003_01 0003 1
## 4 0003_02 0003 1
## 5 0004_01 0004 0
## 6 0005_01 0005 0
## 7 0006_01 0006 1
## 8 0006_02 0006 1
## 9 0007_01 0007 0
## 10 0008_01 0008 1
## 11 0008_02 0008 1
## 12 0008_03 0008 1
## 13 0009_01 0009 0
## 14 0010_01 0010 0
## 15 0011_01 0011 0
## 16 0012_01 0012 0
## 17 0014_01 0014 0
## 18 0015_01 0015 0
## 19 0016_01 0016 0
## 20 0017_01 0017 1
Train veri çerçevesinden sadece PassengerId, ailenum ve aile sütunlarını alıp ilk 20 satırını gösterir
## # A tibble: 20 × 3
## PassengerId ailenum aile
## <chr> <chr> <dbl>
## 1 0013_01 0013 0
## 2 0018_01 0018 0
## 3 0019_01 0019 0
## 4 0021_01 0021 0
## 5 0023_01 0023 0
## 6 0027_01 0027 0
## 7 0029_01 0029 0
## 8 0032_01 0032 1
## 9 0032_02 0032 1
## 10 0033_01 0033 0
## 11 0037_01 0037 0
## 12 0040_01 0040 1
## 13 0040_02 0040 1
## 14 0042_01 0042 0
## 15 0046_01 0046 1
## 16 0046_02 0046 1
## 17 0046_03 0046 1
## 18 0047_01 0047 1
## 19 0047_02 0047 1
## 20 0047_03 0047 1
Test veri çerçevesinden sadece PassengerId, ailenum ve aile sütunlarını alıp ilk 20 satırını gösterir
Aile sütunu, aile numarasının tekrar edip etmediğini belirlemek için kullanılır. Eğer tekrar ediyorsa 1, aksi halde 0 atanır.
train veri çerçevesindeki belirli sütunları çıkartarak veriyi güncelliyor. Daha spesifik olarak, ailenum ve ailesıra sütunları çıkartılıyor.
test veri çerçevesindeki belirli sütunları çıkartarak veriyi güncelliyor. Daha spesifik olarak, ailenum ve ailesıra sütunları çıkartılıyor.
Train veri çerçevesindeki Cabin sütunundaki değerleri “/”, karakterine göre üç parçaya böler ve elde edilen parçaları deck, num ve side adlı üç yeni sütuna atar. Örneğin, Cabin sütunundaki bir değer “A/B/C” ise, bu kod ile deck sütunu “A” değerini, num sütunu “B” değerini ve side sütunu ise “C” değerini alır.
Train veri çerçevesindeki Cabin sütunundaki değerleri “/”, karakterine göre üç parçaya böler ve elde edilen parçaları deck, num ve side adlı üç yeni sütuna atar. Örneğin, Cabin sütunundaki bir değer “A/B/C” ise, bu kod ile deck sütunu “A” değerini, num sütunu “B” değerini ve side sütunu ise “C” değerini alır.
Metin, test veri çerçevesinden belirli sütunları kaldırarak verilerin nasıl güncelleneceğini açıklamaktadır. Özellikle, Cabin, num ve Name sütunları R’deki dplyr paketindeki select işlevi kullanılarak kaldırılır. Belirtilen sütunları kaldırmak için -c(Cabin, num, Name) ifadesi kullanılır.
Metin basitçe “train” veri çerçevesinin “deck” sütunundaki eksik değerlere (NA) “NA” değerini eklediğini söylemektedir.
Metin basitçe “test” veri çerçevesinin “deck” sütunundaki eksik değerlere (NA) “NA” değerini eklediğini söylemektedir.
Metin basitçe train “yan” sütunundaki eksik değerlerin (NA) “NA” ile değiştirildiğini gösterir. Bunu yapmak için addNA fonksiyonu kullanılır.
Metin basitçe test “yan” sütunundaki eksik değerlerin (NA) “NA” ile değiştirildiğini gösterir. Bunu yapmak için addNA fonksiyonu kullanılır.
Bir histogram oluşturularak train veri çerçevesindeki Age sütunundaki
değerlerin dağılımı gösterilir.
Bir histogram oluşturularak test veri çerçevesindeki Age sütunundaki
değerlerin dağılımı gösterilir.
Orijinal metinde, train verilerinin RoomService sütunundaki değerlerin
dağılımını gösteren bir histogram oluşturulması gerektiği belirtiliyor.
Histogram, değişkenin değerlerinin frekansını gruplara böler ve her grup
için bir çubuk gösterir.
Orijinal metinde, test verilerinin RoomService sütunundaki değerlerin
dağılımını gösteren bir histogram oluşturulması gerektiği belirtiliyor.
Histogram, değişkenin değerlerinin frekansını gruplara böler ve her grup
için bir çubuk gösterir.
Train veri çerçevesindeki FoodCourt sütunundaki değerlerin frekans
dağılımını gösteren bir histogram çizer. Bu tür grafikler, değişkenin
genel dağılımını anlamak ve aykırı değerleri görsel olarak belirlemek
için kullanılır.
Test veri çerçevesindeki FoodCourt sütunundaki değerlerin frekans
dağılımını gösteren bir histogram çizer. Bu tür grafikler, değişkenin
genel dağılımını anlamak ve aykırı değerleri görsel olarak belirlemek
için kullanılır.
Train veri çerçevesindeki ShoppingMall sütununun değerlerinin frekans
dağılımını gösteren bir histogram oluşturulur.
Test veri çerçevesindeki ShoppingMall sütununun değerlerinin frekans
dağılımını gösteren bir histogram oluşturulur.
Train shortened: “[…] bir histogram oluşturur. Histogram, bir değişkenin
değerlerinin frekansını gruplara böler ve her grup için bir çubuk
gösterir.”
Test shortened: “[…] bir histogram oluşturur. Histogram, bir değişkenin
değerlerinin frekansını gruplara böler ve her grup için bir çubuk
gösterir.”
Train veri çerçevesindeki VRDeck sütununun frekans dağılımını gösteren
bir histogram oluşturur. Histogram, değişkenin değerlerini gruplara
böler ve her grup için bir çubuk gösterir.
Test veri çerçevesindeki VRDeck sütununun frekans dağılımını gösteren
bir histogram oluşturur. Histogram, değişkenin değerlerini gruplara
böler ve her grup için bir çubuk gösterir.
Train veri çerçevesindeki aile sütunundaki değerlerin frekans dağılımını
gösteren bir histogram çizilir. Bu grafik, değişkenin dağılımını
anlamak, merkezi eğilimini incelemek ve aykırı değerleri görsel olarak
belirlemek için kullanılır.
Test veri çerçevesindeki aile sütunundaki değerlerin frekans dağılımını
gösteren bir histogram çizilir. Bu grafik, değişkenin dağılımını
anlamak, merkezi eğilimini incelemek ve aykırı değerleri görsel olarak
belirlemek için kullanılır.
Logistic Regresyon
Logistik regresyon, bağımlı bir değişkenin olasılıklarını tahmin etmek için kullanılan istatistiksel bir modelleme tekniğidir. Bağımlı değişkenin 1 olma olasılığı, bağımsız değişkenlerin lineer kombinasyonu üzerinden bir sigmoid fonksiyonuyla hesaplanır. Bu yöntem genellikle ikili sınıflandırma problemlerinde kullanılır.
Train_seti, yalnızca orijinal trene ait 2. ve 15. sütunları içeren yeni bir veri çerçevesidir.
Test_seti, yalnızca orijinal trene ait 2. ve 15. sütunları içeren yeni bir veri çerçevesidir.
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)caTools paketini kullanarak veri setini eğitim ve test setlerine ayırırız. sample.split fonksiyonu ile veriyi belirli bir orana göre böleriz (%75 eğitim, %25 test). subset fonksiyonunu kullanarak uygun verileri seçeriz. Böylece training_set ve testing_set adlı iki ayrı veri seti oluşturulmuş olur. Bu ayrım, genellikle modelin eğitildiği veri üzerinde performansını değerlendirmek için kullanılır.
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Ranger paketini kullanarak lojistik regresyon modeli eğitmek için glm fonksiyonu kullanılır. Model, bağımlı değişkenin diğer bağımsız değişkenlere göre sınıflandırılmasını öğrenir. Bu model eğitim veri seti üzerinde eğitilir ve test veri seti üzerinde değerlendirilebilir.
‘newdata = testing_set[-13]’ argümanı, test setinden 13. sütun (bağımlı değişken) hariç tutularak tahminlerin yapılacağı yeni veri setini belirtir.
Tipik olarak lojistik regresyon modellerinde, belirlenen bir eşik değeri (0.5) üzerindeki olasılık tahminlerine göre ikili bir sınıflandırma yapılır. Eğer olasılık tahmini 0.5’ten büyükse, y_pred değeri 1 olarak ayarlanır. Eğer olasılık tahmini 0.5’ten küçükse, y_pred değeri 0 olarak ayarlanır. Bu yöntem, sınıflandırma problemlerinde sıklıkla kullanılır çünkü lojistik regresyon modelleri genellikle 0 ile 1 arasında bir olasılık sağlar.
Y_true vektörü, test setindeki gerçek sınıfları temsil eden değerlerden oluşan bir vektördür. Bu vektör, modele performansın değerlendirilmesi amacıyla kullanılabilir.
table(y_true, y_pred): y_true ve y_pred vektörlerini kullanarak bir karmaşıklık matrisi oluşturur. Bu matris, gerçek ve tahmin edilen sınıfların kesişimlerini içerir. Karmaşıklık matrisi genellikle şu dört değeri içerir:
True Positive (TP): Gerçek sınıf 1, Tahmin sınıf 1. True Negative (TN): Gerçek sınıf 0, Tahmin sınıf 0. False Positive (FP): Gerçek sınıf 0, Tahmin sınıf 1. False Negative (FN): Gerçek sınıf 1, Tahmin sınıf 0. Bu değerler, sınıflandırma modelinin performansını daha ayrıntılı bir şekilde anlamamıza yardımcı olur. Özellikle, hassasiyet (precision), duyarlılık (recall) ve F1 skoru gibi performans metriklerini hesaplamak için kullanılabilir.
## y_pred
## y_true 0 1
## 0 982 1154
## 1 28 9
Karmaşıklık matrisi, sınıflandırma modelinin performansını değerlendirmek için kullanılan bir matristir. Gerçek ve tahmin edilen sınıfları içerir. Metin, matriste bulunan terimlerin ve performans metriklerinin kısaca açıklanmasını içerir.
## [1] 0.4560515
Bu ifade bir sınıflandırma modelinin hassasiyet değerini hesaplamak için kullanılan bir formülü ifade eder. Hassasiyet, modelin doğru olarak pozitif tahmin ettiği örneklerin gerçekte pozitif olma oranını ifade eder
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Bu işlemde, bağımlı değişken ile bağımsız değişkenler arasındaki ilişkiyi göstermek için formül kullanılır. Formülde “.” ifadesi, diğer bağımsız değişkenleri temsil eder. Ayrıca, modelin bağımlı değişkenin iki sınıfa ait olduğunu ifade eden binominal lojistik regresyon modelini kullanacağı belirtilir. Modelin eğitim veri seti üzerinde eğitileceği de belirtilir.
prob_pred = predict(logistic_son, type = 'response', newdata = test_set)
y_pred = ifelse(prob_pred > 0.5, TRUE, FALSE)Bu işlem, eğitilen lojistik regresyon modelinden test setindeki verilere ait olasılık tahminlerini hesaplar ve 0.5 üzerinde olan tahminleri TRUE olarak, diğerlerini ise FALSE olarak sınıflandırır.
Test setindeki her örneğin lojistik regresyon modeli tarafından yapılan ikili sınıflandırmaya göre tahmin edilenTahmin sınıfl edilen sarı kullanarakınıflara Transported de dayanarakğişken Transported deini oluğişkenştururi oluuz. Aşturulynı zamanda buur tah ve bununminl yanereı ait olan sıra bu tahmin PassengerId’lereleri a de test veriti set olan PassengerindenId alır’ler de alınır.ız. Böylece Transported değişkeni, modelin test setindeki her gözlem için yaptığı tahminleri içerirken, PassengerId değişkeni bu tahminlere ait yolcu kimlik numaralarını içerir.
Transported değişkeni vektör türüne dönüştürülerek tek boyutlu bir vektöre çevrilebilir. Bu dönüşüm genellikle veri manipülasyonu veya analizi için kullanılır.
PassengerId ve Transported değişkenlerinin birleştirilerek bir veri çerçevesi veya matris oluşturulur. Oluşturulan yapının adı submission’dır ve PassengerId ve Transported değişkenlerini içerir. submission genellikle veri setlerini düzenlemek veya model tahminlerini içeren dosyalar hazırlamak için kullanılır.
submissionadlı değişken veri çerçevesine dönüştürülür.submissiondeğişkeniPassengerIdveTransportedsütunlarını içeren bir veri çerçevesine çevrilir. Bu işlemlesubmission`
değişkeni veri çerçevesi olarak saklanır ve veri analizi ve
görselleştirmesi gibi işlemlerde kullanılabilir.
Stringr paketini R ortamına yüklemek ve kullanıma hazırlamak için “library(stringr)” kodu kullanılır. Stringr karakter dizileri üzerinde kolaylıkla işlemler yapmayı sağlayan bir pakettir ve özellikle metin madenciliği, veri temizleme ve düzenleme gibi işlemlerde sıkça kullanılır
stringr paketi, R ortamına yüklenir. Bu paket, karakter dizileri üzerinde işlemler yapmayı kolaylaştırır ve metin madenciliği, veri temizleme ve düzenleme gibi işlemlerde sıkça kullanılır. Paketin fonksiyonları ve yetenekleri, metin içinde desen arama, parça alma, büyük/küçük harf dönüşümü gibi işlemleri gerçekleştirmek için kullanılabilir.
- “write.csv(submission,”sub_logistic.csv”)” kodu kullanılarak bir veri çerçevesinin “sub_logistic.csv” isimli bir CSV dosyasına yazılması sağlanır. Bu işlem sırasında, satır numaraları kaydedilmeyip karakter dizileri tırnak işaretleri içine alınmaz. Bu dosya genellikle modelin sınıflandırma tahminlerini başka platformlar veya uygulamalarla paylaşmak amacıyla kullanılır.
Naive Bayes
Naive Bayes, istatistik ve olasılık temel alarak sınıflandırma yapmak için kullanılan bir makine öğrenimi algoritmasıdır. Bu algoritma, Bayes Teoremi’ni kullanarak bir örneğin bir sınıfa ait olma olasılığını tahmin etmeye çalışır. Naive Bayes genellikle metin sınıflandırma ve spam filtreleme gibi dil işleme problemlerinde başarılıdır. Algoritmanın adı olan “Naive” (Saf) ifadesi, bağımsızlık varsayımını ifade eder. Naive Bayes, özelliklerin bağımsız olduğunu varsayar ve sınıflandırma için bu varsayıma dayanarak çalışır. Model oluşturulduktan sonra, yeni örneklerin sınıflandırılması için bu model kullanılır. Naive Bayes’in avantajları arasında basit ve hızlı olması, küçük veri setlerinde iyi performans göstermesi ve metin verileri gibi problemlerde etkili olması yer alır. Ancak, bağımsızlık varsayımının gerçek dünya verilerine her zaman uymaması zayıf bir yanıdır.
library(e1071)
fit_nb <- naiveBayes(Transported ~ ., data = training_set)
preds <- predict(fit_nb, newdata =testing_set[-13], type ="raw") %>% data.frame()e1071 paketini kullanarak Naive Bayes sınıflandırma modeli eğitilir ve test veri setindeki örnekler sınıflandırılır. Sonuçlar bir veri çerçevesine dönüştürülür.
Naive Bayes modeline göre yapılan tahminlerle, bir ikili sınıflandırma yapılır. Tahminlerdeki olasılıkların 0.5 eşik değerinden büyük olup olmadığı kontrol edilir. 0.5’ten büyükse 1 olarak etiketlenir, değilse 0 olarak etiketlenir. Böylece, y_pred vektörü, test setindeki her bir gözlem için yapılan ikili sınıflandırma tahminlerini içerir ve pozitif ve negatif sınıfları temsil eden 0 ve 1 değerlerini alır.
Bu fonksiyon, gerçek sınıflar ile tahmin edilen sınıflar arasındaki karşılaştırmayı yaparak bir karmaşıklık matrisi oluşturur. Karmaşıklık matrisi, sınıflandırma modelinin performansını değerlendirmek için kullanılır ve genellikle dört hücreden oluşur: True Positive (TP), True Negative (TN), False Positive (FP) ve False Negative (FN).
## y_pred
## y_true 0 1
## 0 566 1570
## 1 22 15
## [1] 0.2673723
Naive Bayes sınıflandırma modelini eğitmek için naiveBayes fonksiyonu kullanılır. Bu fonksiyon, tüm bağımsız değişkenleri içeren bir Naive Bayes modeli oluşturur ve eğitim veri seti üzerinde eğitilir.
Bu R kodu, eğitilmiş bir Naive Bayes modeli kullanarak yeni veri seti üzerinde sınıflandırma tahminleri yapar. Tahmin sonuçlarının olasılık değerlerini elde etmek için “type = ‘raw’” ifadesi kullanılır. Bu tahminleri içeren sonuç, %>% operatörü ile bir veri çerçevesine dönüştürülür.
Naive Bayes modelinin sınıflandırma olasılıklarını kullanarak ikili bir sınıflandırma yapar. İlgili olasılıkları seçer ve 0.5 eşik değerini kullanarak pozitif ve negatif sınıfları belirler. Sonuç olarak, y_pred vektörü pozitif ve negatif sınıfları temsil eden ikili sınıflandırma tahminlerini içerir.
y_pred vektörünü karakter dizisine dönüştürüp PassengerId ile eşleştirerek bir tahmin sonucu dosyası oluşturulur.
Kodda, “as.vector()” fonksiyonunu kullanarak “Transported” adlı vektörün tipi değiştiriliyor.
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
PassengerId ve Transported vektörlerini birleştirerek tahmin sonucu dosyası oluşturulur.
submission adlı veri çerçevesi as.data.frame() ile dönüştürülerek başka bir veri çerçevesine dönüştürülür.
Transported sütunundaki karakter dizilerinin baş harfini büyük harfe çeviren bir submission veri çerçevesi.
Yazılım, veri çerçevesini CSV dosyasına yazmaktadır.
SVM
SVM, sınıflandırma ve regresyon problemleri için kullanılan bir makine öğrenimi algoritmasıdır. Ana amacı, sınıfları ayıran bir hiper düzlemi bulmaktır. Bu düzlemi belirleyen noktalara “destek vektör” denir. SVM, sınıflar arasındaki marjı (mesafe) maksimize eden en iyi hiper düzlemi bulmaya yardımcı olur. Ayrıca, non-lineer sınıflandırma problemlerini çözebilmek için kernel fonksiyonlarını kullanır. SVM, genelleme yeteneğini artırmak amacıyla sınıflar arasındaki marjı maksimize eder.
library(e1071)
fit_svm <- svm(Transported ~ ., data = training_set, type = 'C-classification', kernel = 'linear')
preds <- predict(fit_svm, newdata = testing_set, type = "raw") %>% data.frame()Kısaca, e1071 paketi kullanılarak bir destek vektör makinesi (SVM) modeli eğitilir ve bu model kullanılarak yeni veriye sınıflandırma tahminleri yapılır.
Naive Bayes modelinin sınıflandırma olasılıklarını kullanarak ikili bir sınıflandırma yapar. İlgili olasılıkları seçer ve 1 :0 eşik değerini kullanarak pozitif ve negatif sınıfları belirler
table(y_true, y_pred) oluşturulan karmaşıklık matrisi, sınıflandırma modelinin performans ölçütlerini (doğruluk, hassasiyet, özgüllük) değerlendirmek için kullanılır.
## y_pred
## y_true 0 1
## 0 976 1160
## 1 28 9
## [1] 0.4532904
Bu kod, SVM modelini eğitmek için kullanılır. Train_set üzerinde C-tipi bir sınıflandırma SVM modeli oluşturur. Lineer çekirdek kullanılır. Sonuç olarak, svm_son değişkeni, eğitilmiş SVM modelini temsil eder ve train_set üzerinde sınıflandırma yapabilir.
Bu ifade, SVM modelinin test seti üzerinde sınıflandırma tahminleri yapmak için kullanıldığını belirtir. Tahmin sonuçlarının olasılık değerleri olarak elde edilmesini sağlar. Bu ifade predict fonksiyonunun çıktısını bir veri çerçevesine dönüştürür.
Tahmin_Sütun_Adi, tahminlerin sütun adını temsil eder. Bu adı uygun bir şekilde değiştirmelisiniz. y_pred, tahminlerin sınıf etiketlerini içeren bir vektördür.
Transported” değişkeni tahminleri karakter dizisi olarak içerir ve “PassengerId” değişkeni test veri setindeki yolcu kimliklerini içerir. Bu iki vektör birleştirilerek tahmin sonuçlarını içeren bir veri çerçevesi oluşturulabilir.
Transported) dönüştürme işlemi genellikle gereksizdir çünkü as.character(y_pred) zaten bir karakter dizisi vektörü döndürür. Ancak, vektör tipini kullanma ihtiyacı veya uyumsuzluk durumu söz konusuysa, bu dönüşüm yapılabilir.
cbind fonksiyonu, PassengerId ve Transported adlı iki vektörü sütunlarını yanyana ekleyerek bir veri çerçevesi oluşturur.
(submission) dönüşümü, submission adlı nesnenin tipini veri çerçevesine çevirir. Eğer submission zaten bir veri çerçevesi ise veya bu dönüşüm gereksiz ise bu adım atlanabilir. Bazen cbind veya diğer işlemler sonucunda oluşan nesneler başlangıçta veri çerçevesi türünde değildir, bu yüzden tipini doğrulamak veya uyumlu hale getirmek için bu dönüşüm kullanılır.
Bu ifade, submission veri çerçevesindeki Transported sütunundaki metin değerlerini baş harflerini büyük yapmak için str_to_title fonksiyonunu kullanır. Bu, submission$Transported sütununu, str_to_title fonksiyonunun çıktısıyla günceller, böylece metin değerleri baş harfleri büyük olacak şekilde değişir.
submission veri çerçevesini “sub_svm.csv” adlı bir CSV dosyasına kaydetmek için write.csv fonksiyonunu kullanır. Dosyada satır numaraları bulunmaz ve metin değerlerine çift tırnak eklenmez. Bu dosya genellikle sınıflandırma tahmin sonuçlarını içerir ve değerlendirme amacıyla kullanılabilir.