uygulamalı ekonometri final projesi
Spaceship Titanic (uzay gemisi titanik)
Welcome to the year 2912, where your data science skills are needed to solve a cosmic mystery. We’ve received a transmission from four lightyears away and things aren’t looking good.
The Spaceship Titanic was an interstellar passenger liner launched a month ago. With almost 13,000 passengers on board, the vessel set out on its maiden voyage transporting emigrants from our solar system to three newly habitable exoplanets orbiting nearby stars.
While rounding Alpha Centauri en route to its first destination—the
torrid 55 Cancri E—the unwary Spaceship Titanic collided with a
spacetime anomaly hidden within a dust cloud. Sadly, it met a similar
fate as its namesake from 1000 years before. Though the ship stayed
intact, almost half of the passengers were transported to an alternate
dimension!
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ı!
## 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.
rain datamızda 8693 tane gözlem ve 14 tane değişkenimiz olduğunu görüyoruz.
##Train datasındaki gözlemlerin anlamları:
train.csv: Yolcuların yaklaşık üçte ikisinin (~8700) kişisel kayıtları, eğitim verileri olarak kullanılacak
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
HomePlanet:Yolcunun ayrıldığı gezegen, genellikle daimi ikamet ettikleri gezegen.
CryoSleep: Yolcunun yolculuk süresince askıya alınmış animasyona alınmayı seçip seçmediğini belirtir. Dondurucu uykudaki yolcular kabinlerine hapsedilir.
Cabin: Yolcunun kaldığı kabin numarası. deck/num/sideİskele sideveya PSancak formunu alır . _ _ S_
Destination: Yolcunun ineceği gezegen.
Age: Yolcunun yaşı.
VIP:Yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapıp yapmadığı.
RoomService, FoodCourt, ShoppingMall, Spa, VRDeck:Yolcunun Uzay Gemisi Titanic’in birçok lüks olanağının her birinde fatura ettiği tutar.
Name: Yolcunun adı ve soyadı.
Transported: Yolcunun başka bir boyuta taşınıp taşınmadığı. Bu hedeftir, tahmin etmeye çalıştığınız sütundur.
test data yüklenmesi
## 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.
Yükleme sonunda Test datasında 4277 tane gözlem ve 13 tane değişkenimiz olduğunu gözlemneliyor.
test.csv:Yolcuların geri kalan üçte birinin (~4300) kişisel kayıtları, test verisi olarak kullanılacak.
Transported:Göreviniz bu setteki yolcular için değerini tahmin etmektir ### train datasındaki boşluklar
## 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>
datadaki boşlukları ve hatalar için str paketini kullanıyoruz
## 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>
##Train datasında araştırmak için dataexplorer paketi ve create_report ile rapor oluşumu.
Temel İstatistikler (Basic Statistics)
Ham Sayımlar(Raw Counts)
Name (AD) Value(Değer)
Rows (Satır) 8,693
Columns (Sütun) 14
Discrete columns (Ayrık Sütunlar-Kesikli Data) 8
Continuous columns (Sürekli Sütunlar) 6
All missing columns (Tüm Eksik Sütunlar) 0
Missing observations (Eksik Gözlemler) 2,324
Complete Rows (Tam Sayılar) 6,606
Total observations (Toplam Gözlem Sayısı) 121,702
Memory allocation (Bellek Ayırma) 2.2 Mb
yüzde (Percentages)
Discrete columns (Ayrık Sütunlar-Kesikli Data)
Continuous columns (Sürekli Sütunlar)
All missing columns (Tüm Eksik Sütunlar)
Complete Rows (Tam Sayılar)
Missing observations (Eksik Gözlemler)
Columns (Sütun)
observation(Gözlem)
Rows (Satır)
###Data Structure (Veri Yapısı) (STR)
###Missing Data Profile (Eksik Veri Profili)
Transported: Verinin %0'ı kayıp
PassengerId: Verinin %0'ı kayıp
Age: Verinin %2.06'sı kayıp
RoomService: Verinin %2.08'i kayıp
Destination: Verinin %2.09'u kayıp
Spa: Verinin %2.11'i kayıp
FoodCourt: Verinin %2.11'i kayıp
VRDeck: Verinin %2.16'sı kayıp
Cabin: Verinin %2.29'u kayıp
Name: Verinin %2.30'u kayıp
HomePlanet: Verinin %2.31'i kayıp
VIP: Verinin %2.34'ü kayıp
ShoppingMall: Verinin %2.39'u kayıp
CryoSleep: Verinin %2.50'si kayıp
nivariate Distribution (Tek Değişkenli Dağılım) (continuous-Sürekli)
Histogram Age
Age histogramında 0 ile 80 yaş aralığında en çok 20'li yaşlarda insanların olduğu gözlemleniyor.
FOODCOURT
Fodcourt histogramında 0-30.000 fiyat aralığında çoğu kişinin yemeklere para harcamadığı gözlemleniyor.
ROOMSERVİCE
RoomService histogramında 0-15.000 fiyat aralığında çoğu kişinin oda servisine para harcamad
SHOPPINGMALL
ShoppingMall histogramında 0-25.000 fiyat aralığında kişilerin çoğu alışveriş yapmadığı gözl
SPA
Spa histogramında spa kullanmayanların sayısı kullananlara göre daha fazla olduğu gözlemleniyor.
VRDECK
VRdeck histogramında VRdeck'e insanlar neredeyse hiç para harcamadıkları gözlemleniyor.
Bar Chart (with frequency) (Çubuk Grafik (sıklıkla)) (Discrete-Kesikli)
3 columns ignored with more than 50 categories.(50'den fazla kategoride 3 sütun göz ardı edildi.)
PassengerId: 8693 categories(Yolcu Kimliği: 8693 kategori)
Cabin: 6561 categories(Kabin: 6561 kategori)
Name: 8474 categories(Ad: 8474 kategori)
HOMEPLANET
HomePlanet grafiğinde yolcular en çok Eart gezegeninden bindikleri gözlemleniyor.
CRYOSLEEP
CryoSleep yolcunun yolculuk süresince askıya alınmış animasyona alınmayı büyük oranda seçmed
DESTINATION
Destination grafiğinde yolcular en çok TRAPPIST-1e durağında inecekleri gözlemleniyor.
VIP
VIP grafiğinde yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapmadığı gözlemleniy
TRANSPORTED
Transported grafiğinde yolcuların yarısının yaşadığını yarısınında yaşamadığı tahmin edilmiş
QQ Plot (QQ Grafiği)
Warning: Removed 124 rows containing non-finite values (`stat_qq()`). (Uyarı: Sonlu olmayan
Datamızın verilerini okumak zor olduğu için train datamızı küçültüyoruz ve küçülttüğümüz datanın raporunu tekrar alıyoruz.
Küçülttüğümüz Train datasındaki korelasyonu inceleyelim.
KORELASYON Transported True ile CroyeSleep True arasındaki doğrusal ilişki gücü 0.46 oranıyla en fazladır.
##Test sonuçlarımız Test datamızı araştırmak için create_report ile rapor oluşturalım.
Datatest Basic Statistics (Temel İstatistikler)
Datatest Raw Counts (Ham Sayımlar)
Name(Ad) Value(Değer)
Rows(Satır) 4,277
Columns(Sütun) 13
Discrete columns(Ayrık sütunlar) 7
Continuous columns(Sürekli sütunlar) 6
All missing columns(Tüm eksik sütunlar) 0
Missing observations(Eksik gözlemler) 1,117
Complete Rows(Tam Satırlar) 3,281
Total observations(Toplam gözlem sayısı) 55,601
Memory allocation(Bellek ayırma) 1.1 Mb
Datatest Percentages (Yüzde)
Discrete columns (Ayrık Sütunlar-Kesikli Data)
Continuous columns (Sürekli Sütunlar)
All missing columns (Tüm Eksik Sütunlar)
Complete Rows (Tam Sayılar)
Missing observations (Eksik Gözlemler)
Columns (Sütun)
observation(Gözlem)
Rows (Satır)
Datatest Data Structure (Veri Yapısı) (STR)
Datatest Missing Data Profile (Eksik Veri
Profili)
PassengerId: Verinin %0'ı kayıp
VRDeck: Verinin %1.87'si kayıp
RoomService: Verinin %1.92'si kayıp
HomePlanet: Verinin %2.03'ü kayıp
Age: Verinin %2.13'ü kayıp
Destination: Verinin %2.15'i kayıp
VIP: Verinin %2.17'si kayıp
CryoSleep: Verinin %2.17'si kayıp
Name: Verinin %2.2'si kayıp
ShoppingMall: Verinin %2.29'u kayıp
Cabin: Verinin %2.34'ü kayıp
Spa: Verinin %2.36'sı kayıp
FoodCourt: Verinin %2.48'i kayıp
Dataset Univariate Distribution (Tek Değişkenli Dağılım) (continuous-Sürekli)
Datatest Histogram
TEST AGE
Age histogramında 0 ile 80 yaş aralığında en çok 20'li yaşlarda insanların olduğu gözlemlen
TEST FOODCOURT
Foodcourt histogramında 0-30.000 fiyat aralığında çok az kişinin yemeklere para harcadığı ve
TEST ROOMSERVİCE
RoomService histogramında 0-15.000 fiyat aralığında çok az kişinin oda servisine para harcad
TEST SHOPPINGMALL
ShoppingMall histogramında 0-25.000 fiyat aralığında kişilerin çoğu alışveriş yapmadığı gözl
TEST SPA
Spa histogramında spaya ücret ödemek istemeyenlerin sayısı kullananlara göre daha fazla oldu
EST VRDECK
VRdeck histogramında VRdeck'e insanlar neredeyse hiç KİMSE para harcamayı tercih etmediği gö
Datatest Bar Chat(with frequency) (Çubuk Grafik (sıklıkla)) (Discrete-Kesikli)
3 columns ignored with more than 50 categories.(50'den fazla kategoride 3 sütun göz ardı edildi.)
PassengerId: 4277 categories (Yolcu Kimliği: 4277 kategori)
Cabin: 3266 categories (Kabin: 3266 kategori)
Name: 4177 categories (Ad: 4177 kategori)
TEST HOMEPLANET
HomePlanet grafiğinde yolcular birinci olarak Eart gezegeninden, ikinci olarak Europa gezege
TEST CRYOSLEEP
CryoSleep yolcunun yolculuk süresince askıya alınmış animasyona alınmayı büyük oranda s
TEST DESTINATION
Destination grafiğinde yolcular en çok TRAPPIST-1e durağında ikinci olarak 55 Cancri e durağ
TEST VIP
VIP grafiğinde yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapmadığı VIP hizmeti alanların ve alıp almadığı belli olmayan kişierin sayılarının nerdeyse eşit olduğu gözlemleniyor.
Datatest QQ Plot (QQ Grafiği)
TEST AGE-FOODCOURT-ROOMSERVICE-SHOPPINGMALL-SPA ve VRDECK
AGE-FOODCOURT-ROOMSERVICE-SHOPPINGMALL-SPA ve VRDECK grafikleri gelirle ilgili olduğu için normal dağılım göstermemektedir.
Datamızın verilerini okumak zor olduğu için test datamızı küçültüyoruz ve küçülttüğümüz datanın raporunu tekrar alıyoruz.
Küçülttüğümüz Test datasındaki korelasyonu inceleyelim.
TEST KORELASYON
Destination _55.cancri.e ile HomePlanet_europa arasındaki doğrusal ilişki gücü 0.33 oranıyla en yüksek olandır
Veri setinin Sayı Değişkeni İstatiksel Özeti
## ── 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::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Train
Train veri çerçevesindeki sayısal değişkenlerin istatistik özetini alımı
## PassengerId HomePlanet CryoSleep Cabin
## Length:8693 Length:8693 Mode :logical Length:8693
## Class :character Class :character FALSE:5439 Class :character
## Mode :character Mode :character TRUE :3037 Mode :character
## NA's :217
##
##
##
## Destination Age VIP RoomService
## Length:8693 Min. : 0.00 Mode :logical Min. : 0.0
## Class :character 1st Qu.:19.00 FALSE:8291 1st Qu.: 0.0
## Mode :character Median :27.00 TRUE :199 Median : 0.0
## Mean :28.83 NA's :203 Mean : 224.7
## 3rd Qu.:38.00 3rd Qu.: 47.0
## Max. :79.00 Max. :14327.0
## NA's :179 NA's :181
## FoodCourt ShoppingMall Spa VRDeck
## Min. : 0.0 Min. : 0.0 Min. : 0.0 Min. : 0.0
## 1st Qu.: 0.0 1st Qu.: 0.0 1st Qu.: 0.0 1st Qu.: 0.0
## Median : 0.0 Median : 0.0 Median : 0.0 Median : 0.0
## Mean : 458.1 Mean : 173.7 Mean : 311.1 Mean : 304.9
## 3rd Qu.: 76.0 3rd Qu.: 27.0 3rd Qu.: 59.0 3rd Qu.: 46.0
## Max. :29813.0 Max. :23492.0 Max. :22408.0 Max. :24133.0
## NA's :183 NA's :208 NA's :183 NA's :188
## Name Transported
## Length:8693 Mode :logical
## Class :character FALSE:4315
## Mode :character TRUE :4378
##
##
##
##
## # 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>
Test
Test Veri Çerçevesindeki Sayısal Değişkenlerinin İstatiksiksel ÖZeti alımı
## # 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
## # 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 veri setindeki passenger sütünü aile numarası ve aile sıra olarak 2 sütüna ayrılması
Train Datasında Aile no ve aile sıra sütunları ileri alınması
Train datadaki kabin sütunu kabin harfi kabinno ve iskelebölgesi olarak 3’e ayrılması
Train datasındaki Kabinin sütununun yanına kabinharfi, kabinno ve guvertebolgesi sütunlarını koyalım.
Train datadaki Cabin sütununu silimi.
Test Datasındaki PassengerId sütununu aile no ve aile sıraları olarak iki sütuna ayırma
Test Datasında Aileno ve ailesıra sütunlarını ileri alımı.
test Datasınd Kabin sütununu kabinharfi, kabinno ve guvertebolgesi olarak üçe ayrılması.
Test Datasında Kabinin sütununun yanına kabinharfi, kabinno ve iskelebölgesi sütunlarını koyalım.
Test Datasından Cabin sütunlarını silimi.
Veri setlerimizdeki boşluk bulanan yerleri doldurulma.
Train
Train datasındaki Homeplanet değişkenindeki boşluk olan NA’ları doldurulması.
Homeplanet değişkenindeki boşluk olan NA’ların sıfırlandığını kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 lgl 217 2.5 3 0 0.36 1
## 6 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 182 2.1 4 NA NA NA
## 10 Age dbl 179 2.1 81 0 28.8 79
## 11 VIP lgl 203 2.3 3 0 0.02 1
## 12 RoomService dbl 181 2.1 1274 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train datasında Age değişkenindeki boşluk olan NA’ları HomePlanet değişkenine göre ortalama yaş ile doldurulması.
train <- train %>%
group_by(HomePlanet,Destination) %>%
mutate_at(vars(Age), ~replace_na(., mean(., na.rm = TRUE)))Age değişkenindeki boşluk olan NA’ları ortalama yaş ile değiştiğini kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 lgl 217 2.5 3 0 0.36 1
## 6 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 182 2.1 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP lgl 203 2.3 3 0 0.02 1
## 12 RoomService dbl 181 2.1 1274 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Cryosleep için kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 182 2.1 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP lgl 203 2.3 3 0 0.02 1
## 12 RoomService dbl 181 2.1 1274 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verimizdeki Destination üç seçeneği var bunlar True False ve Na.Bunlara tek tek bakmak zor olduğu için üçe ayırıyoruz.
Destination için kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP lgl 203 2.3 3 0 0.02 1
## 12 RoomService dbl 181 2.1 1274 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verisinde VIP üç seçeneği olur bunlar True False ve Na.Bunlara tek tek bakmak zor,kolaay olması için üçe ayrımı.
VİP için kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 181 2.1 1274 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verisinde RoomServicelar rakamlardan oluştuğu için boşluk olan NA ları gidecekleri gezegenlere göre ortalama ile doldurumu.
train <- train %>%
group_by(Destination) %>%
mutate_at(vars(RoomService), ~replace_na(., mean(., na.rm = TRUE)))Roomservice için kontrol sağlıyoruz.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 1277 0 225. 14327
## 13 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verisinde FoodCourt’ta rakam ama ilk önce histogramını çıkararak boşluklara koyulacak en uygun rakamların gösterimi.
FoodCourt için kontrolü sağlanması.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 1277 0 225. 14327
## 13 FoodCourt dbl 0 0 1507 0 448. 29813
## 14 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 15 Spa dbl 183 2.1 1328 0 311. 22408
## 16 VRDeck dbl 188 2.2 1307 0 305. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verisinde ShoppingMall, Spa ve VRDeck’i bir arada boşlukların sıfırlanması.
train <- train %>% mutate(ShoppingMall = coalesce(ShoppingMall, 0),
Spa = coalesce(Spa, 0),
VRDeck = coalesce(VRDeck, 0))ShoppingMall, Spa ve VRDeck için boşlukların sıfırlanmasının kontrolü.
## # A tibble: 18 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi chr 199 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 1277 0 225. 14327
## 13 FoodCourt dbl 0 0 1507 0 448. 29813
## 14 ShoppingMall dbl 0 0 1115 0 170. 23492
## 15 Spa dbl 0 0 1327 0 305. 22408
## 16 VRDeck dbl 0 0 1306 0 298. 24133
## 17 Name chr 200 2.3 8474 NA NA NA
## 18 Transported lgl 0 0 2 0 0.5 1
Train verisinde Name değişkeni bize herhangi bilgiyi vermediği için veriden çıkarılması.
Train verisindeki kabinharfi değişkeninde ki boşluk olan Na’ları da AddNa ile kategorileştirilmesi.
Kabinharfini kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 kabinharfi fct 0 0 9 NA NA NA
## 7 kabinno chr 0 0 1818 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 91 0 28.8 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 1277 0 225. 14327
## 13 FoodCourt dbl 0 0 1507 0 448. 29813
## 14 ShoppingMall dbl 0 0 1115 0 170. 23492
## 15 Spa dbl 0 0 1327 0 305. 22408
## 16 VRDeck dbl 0 0 1306 0 298. 24133
## 17 Transported lgl 0 0 2 0 0.5 1
Train verisindeki PassengerId’de aile no (numarası) aynı olanların 1 aynı olmayanların 0 verilmesi.
Train verisinde PassengerId’de tekrarlanan aile numaralarının ilk 20 satırının kotrolü.
## # A tibble: 20 × 4
## PassengerId aileno 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
Train verisinde aile numarasına, aileırasına ve kabin no (numarasın) ihtiyacımız olmadığı için sütunların silelimi.
Train verisinde kalan son değişkenlerin kontrolü.
## # A tibble: 15 × 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 fct 0 0 4 NA NA NA
## 3 CryoSleep fct 0 0 3 NA NA NA
## 4 kabinharfi fct 0 0 9 NA NA NA
## 5 guvertebolgesi chr 0 0 3 NA NA NA
## 6 Destination fct 0 0 4 NA NA NA
## 7 Age dbl 0 0 91 0 28.8 79
## 8 VIP fct 0 0 3 NA NA NA
## 9 RoomService dbl 0 0 1277 0 225. 14327
## 10 FoodCourt dbl 0 0 1507 0 448. 29813
## 11 ShoppingMall dbl 0 0 1115 0 170. 23492
## 12 Spa dbl 0 0 1327 0 305. 22408
## 13 VRDeck dbl 0 0 1306 0 298. 24133
## 14 Transported lgl 0 0 2 0 0.5 1
## 15 aile dbl 0 0 2 0 0.45 1
##Test
Test datasında Homeplanet değişkenindeki boşluk olan NA’ların doldurulması.
test <- test %>%
mutate(HomePlanet = case_when(
CryoSleep & (kabinharfi %in% c("G", "E")) ~ "MARS",
CryoSleep & kabinharfi %in% c("G", "E") ~ "EARTH",
TRUE ~ "EUROPA"))Homeplanet değişkeninde boşluk olan NA’ların sıfırlandığını kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep lgl 93 2.2 3 0 0.37 1
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 92 2.2 4 NA NA NA
## 10 Age dbl 91 2.1 80 0 28.7 79
## 11 VIP lgl 93 2.2 3 0 0.02 1
## 12 RoomService dbl 82 1.9 843 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test datasında AGE değişkeninde boşluk olan NA’ları HomePlanet ve Destination değişkenine göre ortalama yaş ile doldurulması.
test <- test %>%
group_by(HomePlanet,Destination) %>%
mutate_at(vars(Age), ~replace_na(., mean(., na.rm = TRUE)))Age değişkeninde olan boşlukların NA’ları ortalama yaş ile değiştiğini kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep lgl 93 2.2 3 0 0.37 1
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 92 2.2 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP lgl 93 2.2 3 0 0.02 1
## 12 RoomService dbl 82 1.9 843 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verimizdeki Cryosleep içinde aynısını uygulanması.
Cryosleep`in kontrolü..
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination chr 92 2.2 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP lgl 93 2.2 3 0 0.02 1
## 12 RoomService dbl 82 1.9 843 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verimizde Destination’a uygulanması.
Destination kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP lgl 93 2.2 3 0 0.02 1
## 12 RoomService dbl 82 1.9 843 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verimizde VIP üç seçeneği vardor bunlar True , False ve Na.teker teker bakılmasının zorluğundan üçe ayırıyoruz.
VIP’in kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 82 1.9 843 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verisinde RoomServicelar rakamlardan oluştuğu için boşluk olan NA ları gidecekleri gezegenlere göre ortalama ile doldurulması.
test <- test %>%
group_by(Destination) %>%
mutate_at(vars(RoomService), ~replace_na(., mean(., na.rm = TRUE)))Roomservice Kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 846 0 219. 11567
## 13 FoodCourt dbl 106 2.5 903 0 439. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verisinde FoodCourt içinde boşluk olanları sıfır olarak değişimi.
Test verisindeki FoodCourt’ta rakam ama ilk önce histogramını çıkararak boşluklara koyulacak en uygun rakamları görelim.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 846 0 219. 11567
## 13 FoodCourt dbl 0 0 902 0 429. 25273
## 14 ShoppingMall dbl 98 2.3 716 0 177. 8292
## 15 Spa dbl 101 2.4 834 0 303. 19844
## 16 VRDeck dbl 80 1.9 797 0 311. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verisinde ShoppingMall, Spa ve VRDeck’i bir arada boşlukların sıfırlanması.
test <- test %>% mutate(ShoppingMall = coalesce(ShoppingMall, 0),
Spa = coalesce(Spa, 0),
VRDeck = coalesce(VRDeck, 0))ShoppingMall, Spa ve VRDeck için boşlukların sıfırlandıklarının kontrolü.
## # A tibble: 17 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi chr 100 2.3 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 846 0 219. 11567
## 13 FoodCourt dbl 0 0 902 0 429. 25273
## 14 ShoppingMall dbl 0 0 715 0 173. 8292
## 15 Spa dbl 0 0 833 0 296. 19844
## 16 VRDeck dbl 0 0 796 0 305. 22272
## 17 Name chr 94 2.2 4177 NA NA NA
Test verisindeki Name değişkeni bize herhangi bilgiyi vermediği için veriden çıkarılması.
Test verisindeki kabinharfi değişkeninde ki boşluk olan Na’ları da AddNa ile kategorileştirilmesi.
Kabinharfini kontrolü
## # A tibble: 16 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 aileno 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 chr 0 0 2 NA NA NA
## 5 CryoSleep fct 0 0 3 NA NA NA
## 6 kabinharfi fct 0 0 9 NA NA NA
## 7 kabinno chr 0 0 1506 NA NA NA
## 8 guvertebolgesi chr 0 0 3 NA NA NA
## 9 Destination fct 0 0 4 NA NA NA
## 10 Age dbl 0 0 86 0 28.7 79
## 11 VIP fct 0 0 3 NA NA NA
## 12 RoomService dbl 0 0 846 0 219. 11567
## 13 FoodCourt dbl 0 0 902 0 429. 25273
## 14 ShoppingMall dbl 0 0 715 0 173. 8292
## 15 Spa dbl 0 0 833 0 296. 19844
## 16 VRDeck dbl 0 0 796 0 305. 22272
test verisinde PassengerId’de aile no (numarası) aynı olanlara 1 olmayanlara 0 verilmesi.
Test verisinde PassengerId’de tekrarlanan aile numaralarının ilk 20 satırın kontrolü.
## # A tibble: 20 × 4
## PassengerId aileno ailesıra aile
## <chr> <chr> <chr> <dbl>
## 1 0013_01 0013 01 0
## 2 0018_01 0018 01 0
## 3 0019_01 0019 01 0
## 4 0021_01 0021 01 0
## 5 0023_01 0023 01 0
## 6 0027_01 0027 01 0
## 7 0029_01 0029 01 0
## 8 0032_01 0032 01 1
## 9 0032_02 0032 02 1
## 10 0033_01 0033 01 0
## 11 0037_01 0037 01 0
## 12 0040_01 0040 01 1
## 13 0040_02 0040 02 1
## 14 0042_01 0042 01 0
## 15 0046_01 0046 01 1
## 16 0046_02 0046 02 1
## 17 0046_03 0046 03 1
## 18 0047_01 0047 01 1
## 19 0047_02 0047 02 1
## 20 0047_03 0047 03 1
test verisinde aile no (numarasına), aileırasına ve kabinnumarasına ihtiyacımız kalmadı, sütunların silinmesi.
Test verisinde kalan son değişkenlerin kontrolü.
## # 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 4277 NA NA NA
## 2 HomePlanet chr 0 0 2 NA NA NA
## 3 CryoSleep fct 0 0 3 NA NA NA
## 4 kabinharfi fct 0 0 9 NA NA NA
## 5 guvertebolgesi chr 0 0 3 NA NA NA
## 6 Destination fct 0 0 4 NA NA NA
## 7 Age dbl 0 0 86 0 28.7 79
## 8 VIP fct 0 0 3 NA NA NA
## 9 RoomService dbl 0 0 846 0 219. 11567
## 10 FoodCourt dbl 0 0 902 0 429. 25273
## 11 ShoppingMall dbl 0 0 715 0 173. 8292
## 12 Spa dbl 0 0 833 0 296. 19844
## 13 VRDeck dbl 0 0 796 0 305. 22272
## 14 aile dbl 0 0 2 0 0.45 1
TAHMİNLERE BAŞLANMASI
1. LOGISTIC REGRESYON NEDİR?
Lojistik regresyon, bağımlı değişkenin kategorik bir değişken olduğu regresyon problemi gibidir. Doğrusal sınıflandırma problemlerinde yaygın bir biçimde kullanılır. Regresyon denilmesine rağmen burada bir sınıflandırma söz konusudur.Lojistik regresyon, bir sonucu belirleyen bir veya daha fazla bağımsız değişken bulunan bir veri kümesini analiz etmek için kullanılan istatistiksel bir yöntemdir. Sonuç, ikili bir değişkenle ölçülür (yalnızca iki olası sonuç vardır).Lojistik regresyonun amacı, iki yönlü karakteristiği (bağımlı değişken = yanıt veya sonuç değişkeni) ile ilgili bir dizi bağımsız (öngörücü veya açıklayıcı) değişken arasındaki ilişkiyi tanımlamak için en uygun modeli bulmaktır.
Kaynakça:https://medium.com/@rmys.nzl/r-i%CC%87le-lojistik-regresyon-analizi-600e188d2f1e
Train veri setindeki PassengerId bize sonucu vereceği için o hariç bütün değişkenleri regresyonumuzda kullanıcağız.Bu yüzden PassengerId değişkenini Train setimizden çıkaralım.
Test veri setinde PassengerId bize sonucu vereceği PassengerId hariç bütün değişkenlerin regresyonumuzda kullanıcağız ve Bu yüzden PassengerId değişkenini Test setinden çıkaraılıması.
Modelin gerçek sonuçları elimizde bulunmadığı için Train versini 0.82 olarak traning_set ve 0.18’sini de testing_set olarak ikiye ayrılması, Daha sonra traning_set verisini testing_set üzerinde kullanarak tahminlerin gerçekle ne kadar uyumluluğunun gözlemlenmesi.
library(caTools)
set.seed(179)
split= sample.split(train_set$Transported, SplitRatio = 0.82)
training_set =subset (train_set, split ==TRUE)
testing_set =subset (train_set, split ==FALSE)Lojistik regresyon modelin tanımlanması ve oluşturulması. Modelin bağımlı değişkenini “Transported” ve bağımsız değişkenlerin hepsini almak için “.” konulması. Bağımlı değişkenin iki kategorili olduğu için binomial ile modelin olasılık dağılımını belirlenmesi. Tahminlerin yapıloması için Training_set’in kullanılması.
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Oluşturulan lojistik regresyon üzerinde tahminlerin Testing_set’ten Transported’a çıkarıralarak Testing_set üzerinde tahiminlerin yapaılması.
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
## prediction from rank-deficient fit; attr(*, "non-estim") has doubtful cases
Tahmin değerin 0.5’ten büyük olup olmadığının kontrolü yapılması. Tahmin değeri 0.5’ten büyükse 1 değilse 0 değeri atanması.
gerçekdegerlerim eğer Testing_set’indeki Tansported değerlerimiz True ise 1 False ise 0 olarak atanması.
## tahminim
## gercekdegerler 0 1
## 0 585 192
## 1 139 649
Kurduğumuz regresyona göre gerçekdegerler 0 olduğunda tahminim 585 kere insanların ölmediğini doğru, 192 kere de yanlış tahmin etmiştir. Gerçekdeger 1 olduğunda649 kere insanların öldüğünü doğru 139 kere yanlış tahmin etmiştir. Bulduğum tahmini oranım şu şekilde
\[ (585+649)/(585+192+139+649) \]
## [1] 0.7884984
Tahmine göre yolcuların ~%78’i ölmüştür.
Lojistik regresyona Train_set oluşturarak ve bağımlı modelin Transported ile bağımsız değişkenler arasındaki ilişkinin bulunması.
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Bulunan lojistik regresyonun test_set adında yeni bir veri setinde gözlenmesi.
tahminim’i karaktere çevirelim ve adını Transported olarak değiştirelim.Test setimizin içindeki PassengerId’i de alalım ve Passenger Id olarak adını değiştirelim.
Transported’ımızı vektör olarak değiştirelim.
İki değişkeni birleştirelim
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
Submission verilerimizi tabloya dönüştürelim.
Raporlama yapabilmek için stringr paketini yükleyelim.
Submission verilerimizi raporlayalım.
Raporladığımız Submission verilerimizi excel dosyasına aktaralım.
Kaggle Logistic Regresyon sonucum
2.NAIVE BAYES REGRESYON?
Bu teorem bir rassal değişken için olasılık dağılımı içinde koşullu olasılıklar ile marjinal olasılıklar arasındaki ilişkiyi gösterir.girdi değişkenlerinin bağımsız olduğunu ve her birinin sonucu etkilemediğini varsayar. Bu “naive” (saf) varsayım, modelin hesaplamalarını basitleştirir ve hesaplama karmaşıklığını azaltır.Girdi değişkenlerinin bir dizi kategorik değer olmasına dayanır. Bu kategorik değerler, bağımlı değişkenin tahminlenmesinde kullanılır. Model, verilerdeki desenleri öğrenir ve bu desenleri kullanarak yeni girdi değerleri için bir tahmin yapar.Kullanım alanlarına örnek olarak gerçek zamanlı tahmin, çok sınıflı tahmin, metin sınıflandırması, spam filtreleme, duyarlılık analizi ve öneri sistemleri verilebilir.
NAIVE BAYES REGRESYONU
P ( A | B ) = B olayı gerçekleştiğinde A olayının gerçekleşme olasılığı
P ( A ) = A olayının gerçekleşme olasılığı
P ( B | A ) = A olayı gerçekleştiğinde B olayının gerçekleşme olasılığı
P ( B ) = B olayının gerçekleşme olasılığı
Kaynakça:https://medium.com/@batubilgili1907.bb/naive-bayes-s%C4%B1n%C4%B1fland%C4%B1rma-6dad0795f825
Naive Bayes modelimizi oluşturalım.Transported değişkenini diğer tüm bağımsız değişkenlere göre tahmin edelim.Tahminlerimizi yapmak için Training_set’i kullanalım.Oluşturduğumuz lojistik regresyon üzerindeki tahminlerimizi Testing_set’ten Transported’ı çıkararak Testing_set üzerinde tahinimizi yapalım
library(e1071)
nb_modelim<- naiveBayes(Transported~ ., data= training_set )
preds<-predict(nb_modelim, newdata= testing_set[-13], type = "raw") %>% data.frame()y_pred değerimizin 0.5’ten büyük olup olmadığını kontrol edelim.Eğer tahmin değeri 0.5’ten büyükse 1 değilse 0 değeri atasın.
Modelimizin geçerliliğini test edelim.gercekdeğerlerim’le y_pred’i karşılaştıralım.
## y_pred
## gercekdegerler 0 1
## 0 361 416
## 1 61 727
Kurduğum regresyona göre gerçekdegerlerim 0 olduğunda tahminim 338 kere insanların ölmediğini doğru 396 kere de yanlış tahmin etmişim.gerçekdegerlerim 1 olduğunda 688 kere insanların öldüğünü doğru 56 kere yanlış tahmin etmişim.
Bulduğum tahmini oranım şu şekilde
\[ (338+688)/ (338+688+396+56) \]
## [1] 0.6941813
Tahminime göre yolcuların ~%70’i ölmüştür.
Naive Bayes regresyonumuzu Train_set için oluşturalım ve bağımlı modelimiz Transported ile bağımsız değişkenler arasındaki ilişkiyi bulalım.
Bulduğumuz lojistik regresyonumuzu test_set adında yeni bir veri setinde gözlemleyelim.
Test_set verisindeki tahmin değerimizin 0.5’ten büyük olup olmadığını kontrol edelim.Eğer tahmin değeri 0.5’ten büyükse True değilse False değeri atasın.
y_pred’i karaktere çevirelim ve adını Transported olarak değiştirelim.Test setimizin içindeki PassengerId’i de alalım ve PassengerId olarak adını değiştirelim.
Transported’ımızı vektör olarak değiştirelim.
İki değişkeni birleştirelim.
Submission verilerimizi tabloya dönüştürelim.
Submission verilerimizi raporlayalım.
Raporladığımız Submission verilerimizi excel dosyasına aktaralım.
Kaggle Naıve Bayes Regresyon sonucum
Bu sonuca göre yaptığım regresyon tahminim ~%71 oranında doğrudur.
3.SVM REGRESYON NEDİR?
Destek Vektör Makineleri (SVM), düzlem üzerindeki noktaların bir doğru veya hiper düzlem ile ayrıştırılması ve sınıflandırılmasıdır.Küçük veya orta büyüklükteki veri setleri için uygundur. Ölçeğe duyarlıdır. Ölçek edilmesi gerekir.Hard Margin (kesin kenar) ve Soft Margin (yumuşak kenar) arasındaki dengeyi C ile kontrol edebiliriz. C büyüdükçe marj(kenar) daralır.Modelde aşırı uyum olursa C’nin azlatılması gerekir.2 boyutta açıklanamayan değişimleri boyut arttırarak çözüyormuş gibi yapılan hilelere Kernel Trick denir.2 boyutta açıklayamadığımız veri setimizi daha fazla boyutta açıklamak için kullanılan Kernel Trick metoduna Polynomial Kernel denir.Her bir noktanın belirli bir noktaya ne kadar benzediğini normal dağılım ile hesaplayan, ona göre sınıflandıran Kernel Trick metoduna RBF Kernel denir.Dağılım genişliğini kontrol ettiğimiz gamma değeri ne kadar küçükse dağılım o kadar geniş olur. Model aşırı uyumlu olmuşsa gamma değerini düşürmemiz, model yetersiz uyumlu olmuşsa gamma değerini yükseltmemiz gerekir.
Kaynakça:https://medium.com/deep-learning-turkiye/nedir-bu-destek-vekt%C3%B6r-makineleri-makine-%C3%B6%C4%9Frenmesi-serisi-2-94e576e4223e
SVM Linear
Svm Linear modelimizi oluşturalım.Transported değişkenini diğer tüm bağımsız değişkenlere göre tahmin edelim.Tahminlerimizi yapmak için Training_set’i kullanalım.Oluşturduğumuz lojistik regresyon üzerindeki tahminlerimizi Testing_set’ten Transported’ı çıkararak Testing_set üzerinde tahinimizi yapalım.Burada biz doğrusal regresonda doğru mu yanlış mı modelini oluşturuyoruz.
library(e1071)
fit_svm <- svm(Transported ~ ., data = training_set,
type = "C-classification",
kernel = "linear")
preds <-predict(fit_svm, newdata = testing_set[-13], type = "raw")%>%
data.frame()reds’imiz tek değişken verdiği için “.” kullanıyoruz.True ise 1 False ise 0 olsun.
Modelimizin geçerliliğini test edelim.gercekdeğerlerim’le y_pred’i karşılaştıralım.
## y_pred
## gercekdegerler 0 1
## 0 574 203
## 1 127 661
Kurduğum regresyona göre gerçekdegerlerim 0 olduğunda tahminim 574 kere insanların ölmediğini doğru 203 kere de yanlış tahmin etmişim.gerçekdegerlerim 1 olduğunda 661 kere insanların öldüğünü doğru 127 kere yanlış tahmin etmişim.
Bulduğum tahmini oranım şu şekilde
## [1] 0.7891374
Regresyon tahminime göre yolcuların ~%79’u ölmüş, ~%21’i yaşamaktadır.
SVM Linear regresyonumuzu Train_set için oluşturalım ve bağımlı modelimiz olan Transported ile bağımsız değişkenler arasındaki ilişkiyi bulalım.
Bulduğumuz lojistik regresyonumuzu test_set adında yeni bir veri setinde gözlemleyelim.
Test_set verisindeki tahmin değerimizi karşılaştıralım.
y_pred’i karaktere çevirelim ve adını Transported olarak değiştirelim.Test setimizin içindeki PassengerId’i de alalım ve PassengerId olarak adını değiştirelim.
Transported’ımızı vektör olarak değiştirelim.
İki değişkeni birleştirelim.
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
Submission verilerimizi tabloya dönüştürelim
Submission’ı tablo haline getirelim.
Submission’ı Excel dosyasına çevirelim.
Kaggle SVM Linear Regresyon sonucum
Svm Radial
Svm Radial regresyonumuzu kuralım
library(e1071)
svm_ker_son = svm(Transported ~ ., data = training_set,
type = "C-classification",
kernel = "radial")
preds <-predict(svm_ker_son, newdata = testing_set [-13], type = "raw")%>%
data.frame()Modelimizin geçerliliğini test edelim.
## y_pred
## gercekdegerler 0 1
## 0 578 199
## 1 141 647
Bulduğum tahmini oranım şu şekildedir.
## [1] 0.7827476
Regresyon tahminime göre yolcuların ~%79’u ölmüş, ~%21’i yaşamaktadır.
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
Submission’ımızı excel olarak kaydedilelim ve Kaggle gönderelim.
Kaggle SVM Radial Regresyon sonucum
4.DECISION TREES NEDİR?
Karar ağacı algoritması, veri madenciliği sınıflandırma algoritmalarından biridir.Önceden tanımlanmış bir hedef değişkene sahiplerdir. Yapıları itibariyle en tepeden en aşağı inen bir strateji sunmaktadırlar.Bir karar ağacı, çok sayıda kayıt içeren bir veri kümesini, bir dizi karar kuralları uygulayarak daha küçük kümelere bölmek için kullanılan bir yapıdır. Yani basit karar verme adımları uygulanarak, büyük miktarlardaki kayıtları, çok küçük kayıt gruplarına bölerek kullanılan bir yapıdır.
Karar Ağaçlarının Avantajları:
-Anlaması ve yorumlaması kolaydır. Kullanılan ağaç yapılar görselleştirilebilir.
-Az oranda bir veri hazırlığına ihtiyaç duyar. Fakat unutulmamalıdır ki bu model kayıp değerleri desteklememektedir.
-Kullanılan ağacın maliyeti, ağacı eğitmek için kullanılan veri noktalarının sayısıyla logaritmiktir.
-Hem sayısal hem de kategorik verileri işleyebilir.
-Çok çıktılı problemleri ele alabilmektedirler.
-İstatistiksel testler kullanılarak bir modelin doğrulanması mümkündür.
-Karar ağaçları, parametrik olmayan bir yöntem olarak düşünülebilir. Yani uzay dağılımı ve sınıflandırma yapısı hakkında bir yaklaşıma sahip değilledir.
Karar Ağaçlarının Dezavantajları:
-Veriyi iyi bir şekilde açıklamayan aşırı karmaşık ağaçlar üretilebilir. Bu durumda ağaç dallanması takip edilemeyebilir.
-Ezbere öğrenme yaşanabilir (“over-fitting”). Bu problemin çözümü için model parametrelere kısıtlamalar ve budama gibi yöntemler kullanılabilir. Budama işlemi, az sayıda nesneyi barındıran yaprak düğümlerin karar ağacı grafiğinden atılmasını ifade etmektedir
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:dplyr':
##
## combine
## The following object is masked from 'package:ggplot2':
##
## margin
## Zorunlu paket yükleniyor: lattice
##
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
##
## lift
Bu analizde Transported’ın faktör olmasını istediği için Transported’ı faktöre çevirelim.
training_set$Transported <- as.factor(training_set$Transported)
testing_set$Transported <- as.factor(testing_set$Transported)
train_set$Transported <- as.factor(train_set$Transported)Traininig_setteki tahminimize göre karar ağacımızı yorumlayalım.
## Call:
## rpart::rpart(formula = Transported ~ ., data = training_set)
## n= 7128
##
## CP nsplit rel error xerror xstd
## 1 0.43075184 0 1.0000000 1.0146976 0.01193121
## 2 0.03947616 1 0.5692482 0.5692482 0.01074406
## 3 0.01074053 4 0.4508197 0.4621255 0.01003280
## 4 0.01000000 5 0.4400791 0.4522329 0.00995640
##
## Variable importance
## CryoSleep Spa VRDeck RoomService FoodCourt ShoppingMall
## 43 17 16 10 9 4
## HomePlanet
## 1
##
## Node number 1: 7128 observations, complexity param=0.4307518
## predicted class=TRUE expected loss=0.4963524 P(node) =1
## class counts: 3538 3590
## probabilities: 0.496 0.504
## left son=2 (4642 obs) right son=3 (2486 obs)
## Primary splits:
## CryoSleep splits as LRL, improve=749.5328, (0 missing)
## Spa < 0.5 to the right, improve=426.7064, (0 missing)
## RoomService < 0.5 to the right, improve=425.9878, (0 missing)
## VRDeck < 0.5 to the right, improve=400.1223, (0 missing)
## ShoppingMall < 0.5 to the right, improve=242.6838, (0 missing)
## Surrogate splits:
## Spa < 0.5 to the right, agree=0.718, adj=0.191, (0 split)
## FoodCourt < 0.5 to the right, agree=0.700, adj=0.139, (0 split)
## VRDeck < 0.5 to the right, agree=0.696, adj=0.128, (0 split)
## RoomService < 0.5 to the right, agree=0.688, adj=0.105, (0 split)
## ShoppingMall < 0.5 to the right, agree=0.683, adj=0.091, (0 split)
##
## Node number 2: 4642 observations, complexity param=0.03947616
## predicted class=FALSE expected loss=0.3358466 P(node) =0.6512346
## class counts: 3083 1559
## probabilities: 0.664 0.336
## left son=4 (1171 obs) right son=5 (3471 obs)
## Primary splits:
## RoomService < 346.5 to the right, improve=104.87510, (0 missing)
## Spa < 266.5 to the right, improve=103.04350, (0 missing)
## Age < 12.5 to the right, improve= 98.83228, (0 missing)
## FoodCourt < 668 to the left, improve= 80.19505, (0 missing)
## VRDeck < 122.5 to the right, improve= 70.74991, (0 missing)
## Surrogate splits:
## HomePlanet splits as RRLR, agree=0.790, adj=0.169, (0 split)
## kabinharfi splits as RRRLRRRRR, agree=0.749, adj=0.004, (0 split)
##
## Node number 3: 2486 observations
## predicted class=TRUE expected loss=0.1830249 P(node) =0.3487654
## class counts: 455 2031
## probabilities: 0.183 0.817
##
## Node number 4: 1171 observations
## predicted class=FALSE expected loss=0.1528608 P(node) =0.1642817
## class counts: 992 179
## probabilities: 0.847 0.153
##
## Node number 5: 3471 observations, complexity param=0.03947616
## predicted class=FALSE expected loss=0.3975799 P(node) =0.4869529
## class counts: 2091 1380
## probabilities: 0.602 0.398
## left son=10 (1077 obs) right son=11 (2394 obs)
## Primary splits:
## Spa < 266.5 to the right, improve=152.75830, (0 missing)
## VRDeck < 135.5 to the right, improve=124.06810, (0 missing)
## Age < 12.5 to the right, improve= 69.94343, (0 missing)
## ShoppingMall < 627 to the left, improve= 54.57723, (0 missing)
## FoodCourt < 1383.5 to the left, improve= 46.18576, (0 missing)
## Surrogate splits:
## HomePlanet splits as RLRR, agree=0.699, adj=0.031, (0 split)
## kabinharfi splits as LRLRRRRRR, agree=0.695, adj=0.018, (0 split)
## FoodCourt < 3197.5 to the right, agree=0.693, adj=0.010, (0 split)
## VRDeck < 9049 to the right, agree=0.692, adj=0.006, (0 split)
## ShoppingMall < 7126 to the right, agree=0.690, adj=0.002, (0 split)
##
## Node number 10: 1077 observations
## predicted class=FALSE expected loss=0.176416 P(node) =0.1510943
## class counts: 887 190
## probabilities: 0.824 0.176
##
## Node number 11: 2394 observations, complexity param=0.03947616
## predicted class=FALSE expected loss=0.497076 P(node) =0.3358586
## class counts: 1204 1190
## probabilities: 0.503 0.497
## left son=22 (775 obs) right son=23 (1619 obs)
## Primary splits:
## VRDeck < 233.5 to the right, improve=175.13870, (0 missing)
## FoodCourt < 2068.5 to the left, improve= 51.10508, (0 missing)
## HomePlanet splits as LRRL, improve= 40.11959, (0 missing)
## Age < 7.5 to the right, improve= 33.93496, (0 missing)
## ShoppingMall < 1540.5 to the left, improve= 33.17331, (0 missing)
## Surrogate splits:
## FoodCourt < 6922.5 to the right, agree=0.681, adj=0.014, (0 split)
## kabinharfi splits as RRLRRRRRR, agree=0.679, adj=0.009, (0 split)
## Age < 67.5 to the right, agree=0.678, adj=0.004, (0 split)
## RoomService < 343 to the right, agree=0.677, adj=0.003, (0 split)
## Spa < 261.5 to the right, agree=0.677, adj=0.003, (0 split)
##
## Node number 22: 775 observations, complexity param=0.01074053
## predicted class=FALSE expected loss=0.2206452 P(node) =0.1087262
## class counts: 604 171
## probabilities: 0.779 0.221
## left son=44 (705 obs) right son=45 (70 obs)
## Primary splits:
## FoodCourt < 3183.5 to the left, improve=46.687680, (0 missing)
## kabinharfi splits as RRRLRLL-R, improve=17.200040, (0 missing)
## HomePlanet splits as LRLL, improve=14.334120, (0 missing)
## VRDeck < 1678.5 to the right, improve= 5.869436, (0 missing)
## VIP splits as LRR, improve= 5.834784, (0 missing)
##
## Node number 23: 1619 observations
## predicted class=TRUE expected loss=0.3705991 P(node) =0.2271324
## class counts: 600 1019
## probabilities: 0.371 0.629
##
## Node number 44: 705 observations
## predicted class=FALSE expected loss=0.1659574 P(node) =0.09890572
## class counts: 588 117
## probabilities: 0.834 0.166
##
## Node number 45: 70 observations
## predicted class=TRUE expected loss=0.2285714 P(node) =0.009820426
## class counts: 16 54
## probabilities: 0.229 0.771
Ağacın en üst kısmı yolcuların CryoSleep’te yakalanıp yakalanmadığını gösteriyor.Eğer yolcular CryoSleep’te yakalanmışlarsa yani No yolundan devam edersek %35 oranında ölmüşler demektir.Eğer CryoSelep’te yakalanmamışlarsa yani Yes yolundan devam edersek RoomService almışlarsa ve bu tutar 347den fazla veya eşitse yolcuların %16sı ölmemişerdir.Eğer bu tutardan daha az almışlarsa %49 oranında ölmemişlerdir.Yolcular Spa almışlarsa ve bu tutar 267’den fazla veya eşitse %15 oranında ölmemişler, bu tutardan daha az alanlar ise %34 olasılıkla ölmemişlerdir.VrDeck almış ve bu tutar 234’ten fazla veya eşitse %11 oranında ölmüş ama almamışlarsa ölmüşler demektir.Aldığını varsaydığımızda Foodcourt alanlar %10 oranında ölmemişler almayanlar ise %1 oranında ölmüşlerdir.
Modelimizin geçerliliğini tahminimiz ve gercekdeğerlerimizle karşılaştıralım.
## y_pred
## gercekdegerler 0 1
## 0 505 272
## 1 121 667
Bulduğum tahmini oranım şu şekilde
## [1] 0.7488818
Kurduğumuz regresyon tahminine göre ~%75 oranında yolcuların öldüğü görülüyor.
Train_sete göre karar ağacımızı yorumlayalım.
## Call:
## rpart::rpart(formula = Transported ~ ., data = train_set)
## n= 8693
##
## CP nsplit rel error xerror xstd
## 1 0.43244496 0 1.0000000 1.0148320 0.010803436
## 2 0.03406721 1 0.5675550 0.5675550 0.009719864
## 3 0.01000000 4 0.4653534 0.4734647 0.009161770
##
## Variable importance
## CryoSleep Spa VRDeck RoomService FoodCourt ShoppingMall
## 45 17 15 11 7 4
## HomePlanet
## 1
##
## Node number 1: 8693 observations, complexity param=0.432445
## predicted class=TRUE expected loss=0.4963764 P(node) =1
## class counts: 4315 4378
## probabilities: 0.496 0.504
## left son=2 (5656 obs) right son=3 (3037 obs)
## Primary splits:
## CryoSleep splits as LRL, improve=920.2004, (0 missing)
## RoomService < 0.5 to the right, improve=523.3930, (0 missing)
## Spa < 0.5 to the right, improve=514.4709, (0 missing)
## VRDeck < 0.5 to the right, improve=479.5694, (0 missing)
## ShoppingMall < 0.5 to the right, improve=302.4414, (0 missing)
## Surrogate splits:
## Spa < 0.5 to the right, agree=0.716, adj=0.187, (0 split)
## FoodCourt < 0.5 to the right, agree=0.701, adj=0.143, (0 split)
## VRDeck < 0.5 to the right, agree=0.696, adj=0.129, (0 split)
## RoomService < 0.5 to the right, agree=0.692, adj=0.119, (0 split)
## ShoppingMall < 0.5 to the right, agree=0.683, adj=0.092, (0 split)
##
## Node number 2: 5656 observations, complexity param=0.03406721
## predicted class=FALSE expected loss=0.3350424 P(node) =0.6506384
## class counts: 3761 1895
## probabilities: 0.665 0.335
## left son=4 (1432 obs) right son=5 (4224 obs)
## Primary splits:
## RoomService < 346.5 to the right, improve=121.39640, (0 missing)
## Spa < 266.5 to the right, improve=113.99320, (0 missing)
## Age < 12.5 to the right, improve=109.40550, (0 missing)
## FoodCourt < 1331 to the left, improve= 98.11980, (0 missing)
## VRDeck < 417.5 to the right, improve= 75.47684, (0 missing)
## Surrogate splits:
## HomePlanet splits as RRLR, agree=0.785, adj=0.151, (0 split)
## kabinharfi splits as RRRLRRRRR, agree=0.749, adj=0.007, (0 split)
## Age < 78.5 to the right, agree=0.747, adj=0.001, (0 split)
##
## Node number 3: 3037 observations
## predicted class=TRUE expected loss=0.1824169 P(node) =0.3493616
## class counts: 554 2483
## probabilities: 0.182 0.818
##
## Node number 4: 1432 observations
## predicted class=FALSE expected loss=0.1571229 P(node) =0.1647302
## class counts: 1207 225
## probabilities: 0.843 0.157
##
## Node number 5: 4224 observations, complexity param=0.03406721
## predicted class=FALSE expected loss=0.3953598 P(node) =0.4859082
## class counts: 2554 1670
## probabilities: 0.605 0.395
## left son=10 (1391 obs) right son=11 (2833 obs)
## Primary splits:
## Spa < 205 to the right, improve=168.00700, (0 missing)
## VRDeck < 135.5 to the right, improve=129.77700, (0 missing)
## Age < 12.5 to the right, improve= 76.46367, (0 missing)
## FoodCourt < 2507.5 to the left, improve= 63.32833, (0 missing)
## ShoppingMall < 627 to the left, improve= 59.33765, (0 missing)
## Surrogate splits:
## HomePlanet splits as RLRR, agree=0.695, adj=0.073, (0 split)
## kabinharfi splits as LRLRRRRLR, agree=0.684, adj=0.042, (0 split)
## FoodCourt < 3197.5 to the right, agree=0.676, adj=0.017, (0 split)
## VRDeck < 2052 to the right, agree=0.673, adj=0.006, (0 split)
## Age < 75.5 to the right, agree=0.672, adj=0.003, (0 split)
##
## Node number 10: 1391 observations
## predicted class=FALSE expected loss=0.194105 P(node) =0.1600138
## class counts: 1121 270
## probabilities: 0.806 0.194
##
## Node number 11: 2833 observations, complexity param=0.03406721
## predicted class=FALSE expected loss=0.4941758 P(node) =0.3258944
## class counts: 1433 1400
## probabilities: 0.506 0.494
## left son=22 (814 obs) right son=23 (2019 obs)
## Primary splits:
## VRDeck < 355 to the right, improve=185.97790, (0 missing)
## FoodCourt < 2069.5 to the left, improve= 64.45210, (0 missing)
## HomePlanet splits as LRRL, improve= 46.60726, (0 missing)
## ShoppingMall < 1540.5 to the left, improve= 38.47446, (0 missing)
## Age < 7.5 to the right, improve= 36.46439, (0 missing)
## Surrogate splits:
## FoodCourt < 10134.5 to the right, agree=0.715, adj=0.007, (0 split)
## kabinharfi splits as RRLRRRRRR, agree=0.714, adj=0.004, (0 split)
## Age < 68.5 to the right, agree=0.714, adj=0.004, (0 split)
## RoomService < 343 to the right, agree=0.713, adj=0.001, (0 split)
##
## Node number 22: 814 observations
## predicted class=FALSE expected loss=0.2088452 P(node) =0.09363856
## class counts: 644 170
## probabilities: 0.791 0.209
##
## Node number 23: 2019 observations
## predicted class=TRUE expected loss=0.3907875 P(node) =0.2322558
## class counts: 789 1230
## probabilities: 0.391 0.609
CryoSleep almamış olanların %35’i ölmüşler alanlar ise %65 oranla ölmemişlerdir.Roomservice alanların %16’sı ölmemiş almanyanların ise %49 u ölmemişlerdir.Spa alanların %16’sı ölmemiş almayanların ise %33’ü ölmemişlerdir.VrDeck alanların ise %9 ölmemiş almayanların %23’ü ölmüşlerdir.
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
Dosyamızı Excel olarak kaydedelim ve Kaggle tahminimizi yükleyelim.
5.RANDOM FOREST NEDİR?
Birden çok karar ağacı üzerinden her bir karar ağacını farklı bir gözlem örneği üzerinde eğiterek çeşitli modeller üretip, sınıflandırma oluşturmanızı sağlamaktadır.Kullanım kolaylığı ve esnekliği; hem sınıflandırma hem de regresyon problemlerini ele aldığı için benimsenmesini ve kullanımının yaygınlaşmasını hızlandırdı.Algoritmaya yönelik en beğenilen nokta ise; veri kümeniz üzerinde çeşitli modellerin oluşturulması ile kümenizi yeniden ve daha derin keşfetme imkanı sunmasıdır.
Algoritma;
-Analiz edilecek veri seti hazırlanır,
(Analiz edilecek küme oluşturulur, gerekli görülürse veri temizlemesi gerçekleştirilir.)
-Algoritma her bir örnek için karar ağacı oluşturur ve her bir karar ağacının tahmini değer sonucu oluşur,
-Tahmin sonucu oluşan her değer için oylama gerçekleştirilir,
*(Sınıflandırma problemi için Modu (Mode), Regresyon problemi için Ortalamayı (Mean))
-Son olarak algoritma son tahmin için en çok oylanan değeri seçerek sonuç oluşturur.
adımları ile analiz gerçekleştirmektedir.
Random Forest regresyonumzu kuralım.
Kuduğumuz regresyona göre en önemli değişkenimizin hangisi olduğunu görelim.
## MeanDecreaseGini
## HomePlanet 138.88357
## CryoSleep 339.47251
## kabinharfi 209.52281
## guvertebolgesi 61.34981
## Destination 74.99177
## Age 264.10230
## VIP 22.68856
## RoomService 353.61625
## FoodCourt 298.06067
## ShoppingMall 265.59232
## Spa 387.76812
## VRDeck 365.12648
## aile 41.70239
Sonucumuza göre en önemli değerler Spa,RoomService ve Vrdeck olduğu görülmektedir.
En önemli değişkenleri bir de grafik olarak görelim.
## y_pred
## gercekdegerler 0 1
## 0 580 197
## 1 145 643
Bulduğum tahmini oranım şu şekilde
## [1] 0.7814696
Random Forest regresyonumuza göre yaşayanlar ~%20 oranında ölenler ~%79 oranındadır.
## Warning in cbind(PassengerId, Transported): number of rows of result is not a
## multiple of vector length (arg 2)
Kaggle Random Forest Sonucum
Kaggle Random Forest Sonucum
Yüklediğimiz regresyonlardan Kaggleda elde ettiğimiz ; En iyi sonucumuzu veren modelimiz 0.80056(Kaggle sonucu) ile Lojistik Regresyon modelimiz en kötü sonucu ise 0.71101 (Kaggle sonucu) ile Naive Bayes Regresyon modelimiz vermiştir.Bu da bize geçerli modelimizi Svm Radial veya Decision Trees ile yapmanın daha iyi olacağını göstermektedir.
ödevin kaydetme tarhi depişirse diye ekledim. teşekkürelr