2912 yılına hoş geldiniz. Veri bilimi becerilerinize kozmik bir gizemi çözmek için ihtiyaç duyuluyor. Dört ışık yılı uzaklıktan bir iletim aldık ve işler pek de iyi görünmüyor.
Spaceship Titanic, bir ay önce fırlatılan yıldızlararası bir yolcu gemisiydi. Neredeyse 13.000 yolcuyu taşıyan gemi, göçmenleri güneş sistemimizden, yakındaki yıldızların etrafında dönen üç yeni yaşanabilir ötegezegene götürmek üzere ilk yolculuğuna çıkmıştı.
İlk durağı olan kavurucu 55 Cancri E’ye giderken, gemi Alpha Centauri yakınlarında bir toz bulutunun içinde gizlenmiş bir uzay-zaman anomalisiyle çarpıştı. Ne yazık ki, bin yıl önceki adaşıyla benzer bir kaderi paylaştı. Gemi bütünlüğünü korumuş olsa da, yolcuların neredeyse yarısı alternatif bir boyuta taşındı!
Kurtarma ekiplerine yardımcı olmak ve kaybolan yolcuları geri getirmek için, uzay gemisinin hasar görmüş bilgisayar sisteminden kurtarılan kayıtları kullanarak hangi yolcuların anomali tarafından taşındığını tahmin etmeniz isteniyor.
Onları kurtarın ve tarihi değiştirin!
Kullanilacak kutuphalener
library(readr)library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ purrr 1.1.0
✔ forcats 1.0.1 ✔ stringr 1.5.1
✔ ggplot2 4.0.0 ✔ tibble 3.3.0
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
── 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
Загрузка требуемого пакета: colorspace
Загрузка требуемого пакета: grid
VIM is ready to use.
Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
Присоединяю пакет: 'VIM'
Следующий объект скрыт от 'package:datasets':
sleep
library(ggplot2)
Dosya ve Veri indirimi
train <-read_csv("train.csv")
Rows: 8693 Columns: 14
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
lgl (3): CryoSleep, VIP, Transported
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
test <-read_csv("test.csv")
Rows: 4277 Columns: 13
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
lgl (2): CryoSleep, VIP
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Dosya ve Veri Alanı Açıklamaları
train.csv - Eğitim verisi olarak kullanılacak yolcuların yaklaşık üçte ikisinin (yaklaşık 8700) kişisel kayıtları.
PassengerId - Her yolcu için benzersiz bir kimlik. Her kimlik, gggg_pp biçimini alır; burada gggg, yolcunun seyahat ettiği grubu, pp ise grup içindeki numarasını belirtir. Bir gruptaki kişiler genellikle aile üyeleridir, ancak her zaman değil.
HomePlanet - Yolcunun ayrıldığı gezegen, genellikle daimi ikamet ettiği gezegen.
Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
dplyr 1.1.0.
ℹ Please use `reframe()` instead.
ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
always returns an ungrouped data frame and adjust accordingly.
`summarise()` has grouped output by 'Aile'. You can override using the
`.groups` argument.
train <-left_join(train,inceleme)
Joining with `by = join_by(Aile)`
Goruldugu uzeren ayni gruptan olan insanlar ayni yerden cikmislar ve buna gore Homeplanet sutunundeki bosluklari dolduralim
Eğer bir yolcunun tüm harcamaları (RoomService, FoodCourt, ShoppingMall, Spa, VRDeck) sıfır degilse, bu kişi muhtemelen “uykuda degildi” → CryoSleep = FALSE.
# train <- train %>% mutate(# Age = ifelse(# is.na(Age),# mean(train$Age,na.rm = T),# Age# )# )train <- train %>%group_by(Aile) %>%mutate(Age =ifelse(is.na(Age), round(mean(Age, na.rm =TRUE)), # Ortalama ile doldur Age ) ) %>%ungroup()
train <- train %>%group_by(HomePlanet, Destination) %>%# isteğe bağlı grup sütunlarımutate(Age =ifelse(uye_s ==1&is.na(Age), median(Age, na.rm =TRUE), Age)) %>%ungroup()
VIP
train <- train %>%group_by(uye_s) %>%# aynı gruptaki üyeleri birlikte ele almutate(VIP =ifelse(is.na(VIP) & uye_s >1, first(na.omit(VIP)), # gruptaki boş olmayan ilk değeri al VIP), )
Следующий объект скрыт от 'package:stringr':
fixed
Следующий объект скрыт от 'package:stats':
step
# 1️⃣ Recipe oluştur, tüm kategorik değişkenlerde yeni seviyeleri "other" yaprec <-recipe(Transported ~ . , data = train2_train) %>%step_other(all_nominal(), threshold =0.01) # %1'den az görülen veya yeni seviyeler "other"# 2️⃣ Recipe'i eğitrec_prep <-prep(rec, training = train2_train)# 3️⃣ Train ve Test setlerini dönüştürtrain_transformed <-bake(rec_prep, new_data = train2_train)test_transformed <-bake(rec_prep, new_data = train2_test)
# A tibble: 21 × 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 Aile chr 0 0 6217 NA NA NA
3 KisiNo chr 0 0 8 NA NA NA
4 HomePlanet chr 0 0 3 NA NA NA
5 CryoSleep lgl 0 0 2 0 0.36 1
6 Cabin chr 0 0 6560 NA NA NA
7 Destination chr 0 0 3 NA NA NA
8 Age dbl 0 0 81 0 28.8 79
9 VIP lgl 0 0 2 0 0.03 1
10 RoomService dbl 0 0 1280 0 222. 14327
# ℹ 11 more rows