İlk Proje

R yükleme

Rmarkdown başlangıç

Web sayfasını hazırlama

İnternete yükleme

Formül Yazma

\[ b_0= b_1+b_2+b_3 \]

library(WDI)
library(ggplot2)
# ggplot2 paketini yükle
install.packages("ggplot2")
## Warning: le package 'ggplot2' est en cours d'utilisation et ne sera pas
## installé
# ggplot2 paketini kullan
library(ggplot2)

# Verileri oluştur
yillar <- c(2019, 2020, 2021, 2022, 2023)  # Yıllar
kanada_enflasyon <- c(1.9, 0.7, 2.2, 1.5, 1.8)  # Kanada'nın yıllık enflasyon oranları
turkiye_enflasyon <- c(11.1, 14.6, 17.1, 21.3, 18.0)  # Türkiye'nin yıllık enflasyon oranları

# Veri çerçevesini oluştur 
enflasyon_verileri <- data.frame(Yil = yillar, Kanada = kanada_enflasyon, Turkiye = turkiye_enflasyon)

# Çizgi grafiğini oluştur
grafik <- ggplot(enflasyon_verileri, aes(x = Yil)) +
  geom_line(aes(y = Kanada, color = "Kanada")) +
  geom_line(aes(y = Turkiye, color = "Türkiye")) +
  labs(title = "Kanada ve Türkiye Enflasyonu (2019-2023)",
       x = "Yıl",
       y = "Enflasyon Oranı (%)") +
  scale_color_manual(values = c("Kanada" = "blue", "Türkiye" = "red")) + # Renkleri ayarla
  theme_minimal() # Tema ayarları

# Grafiği göster
print(grafik)

Makine Öğrenmesi

Makine öğrenmesi, makinelerin veri analizi yaparak insanlar gibi öğrenmelerini sağlayan bir bilimdir. Bu alanda matematiksel modeller kullanılarak, bilgisayarlar doğrudan yönergeler olmadan öğrenme yeteneğine sahip hale getirilir. Makine öğrenmesi, yapay zekanın bir alt kümesi olarak kabul edilir ve verilerdeki kalıpları belirlemek için algoritmaları kullanır. Bu sayede tahmin yapabilen veri modelleri oluşturulabilir. Veri miktarı ve deneyim arttıkça makine öğrenmesinin sonuçları daha doğru hale gelir. Uyarlanabilirliği sayesinde, verilerin, isteklerin veya görevlerin sürekli değiştiği senaryolarda veya bir çözümün etkili bir şekilde kodlanmasının mümkün olmadığı durumlarda harika bir seçenektir.

Makine öğrenmesi, yapay zekanın bir alt kümesi olarak değerlendirilir. “Akıllı” bir bilgisayar, insan gibi düşünür ve görevleri kendi başına gerçekleştirir. Bir bilgisayarı, insanların düşünce mekanizmasını taklit edecek şekilde eğitmenin bir yolu da, insan beyni temel alınarak modellenen bir dizi algoritmadan oluşan bir sinir ağı kullanmaktır. Makine öğrenmesi, verilerden kalıpların çıkarılmasıyla ilgilenir ve daha sonra algoritmaların kendilerini deneyimle geliştirmelerini sağlamak için bu kalıpları kullanır. Derin öğrenme ise makine öğrenmesinin özel bir biçimidir ve sinir ağı (NN) kullanır. Derin öğrenme, bilgileri insan beyni gibi sınıflandırır ve insana en çok benzeyen bazı yapay zekanın oluşturulmasına destek sağlar.

Makine öğrenmesi, içgörülerin ortaya çıkarılması, veri bütünlüğünün geliştirilmesi, kullanıcı deneyiminin iyileştirilmesi ve risk azaltma gibi birçok avantaj sunar3. Bu alandaki sürekli gelişmeler, işletmelerin daha verimli ve akıllı çözümler üretmesine katkı sağlar.

Kaggle Projesi

Spacehip titanic(Kaggle Tanımı)

2912 yılına hoş geldiniz, burada veri bilimi yeteneklerinizin bir kozmik gizemi çözmede gerekeceği bir yerdesiniz. Dört ışık yılı uzaktan bir ileti aldık ve durum iyi değil. Uzay Gemisi Titanic, bir ay önce fırlatılan bir yıldızlar arası yolcu gemisiydi. Neredeyse 13.000 yolcuyla donatılmış olarak, gemi, güneş sistemimizden üç yakındaki yıldızların etrafında dönen yeni yaşanabilir dış gezegenlere göçmenleri taşıyarak ilk seyahatine çıktı. İlk varış noktası olan sıcak 55 Cancri E’ye doğru yol alırken Alpha Centauri’yi dolaşırken, dikkatsiz Uzay Gemisi Titanic, bir toz bulutunun içinde gizlenmiş bir uzayzaman anormalliğiyle çarpıştı. Ne yazık ki, adını 1000 yıl önceki eşinden alan gemi benzer bir kaderle karşılaştı. Gemi bütünlüğünü korudu ancak neredeyse yolcuların yarısı alternatif bir boyuta taşındı! Kurtarma ekiplerine yardım etmek ve kayıp yolcuları kurtarmak için, geminin hasar görmüş bilgisayar sisteminden kurtarılan kayıtları kullanarak anormalliğin taşıdığı yolcuları tahmin etmeniz istenmektedir. Onları kurtarın ve tarihi değiştirin!

Otalama nedir?

Ortalama, istatistik bilim dalında ve veri analizinde kullanılan bir veri dizisinin orta konumunu, tek bir sayı ile ifade eden betimsel bir istatistik ölçüsüdür. Günlük hayatta ortalama denildiğinde genellikle aritmetik ortalama kastedilir. Ancak bu ölçünün bazı dezavantajları vardır ve matematik ve istatistikte farklı merkezsel konum ölçüleri geliştirilmiştir.

Formülü

\[ \bar{X}=\frac{1}N\sum_{i=1}\bar{x}_i \] ## Ortalama Örneği ve çözümü. ÖRNEK 1**:X= (1,2,2,2,3,4,4,5,5,5,6,6) ; 𝑁 = 12 gözlem sonuçları verilmiştir.ortalaması nedir? \[ \bar{X}=\frac{1}N\sum_{i=1}x_i=\frac{1}{12}(1+2+2+2+3+3+4+4+5+5+5+6)=3,5 \]

Standart Sapma nedir?

Standart sapma, istatistiksel bir terimdir ve bir veri setindeki değerlerin ortalama etrafındaki yayılımın ölçüsünü ifade eder. Bir veri setindeki her bir değerin ortalama değerden ne kadar uzakta olduğunu gösteren bir ölçüdür. Standart sapma, veri noktalarının ne kadar homojen veya heterojen olduğunu anlamak için kullanılır. Daha düşük bir standart sapma, veri noktalarının ortalama etrafında daha sıkı bir şekilde toplandığını, yani daha homojen olduğunu gösterirken, daha yüksek bir standart sapma, veri noktalarının ortalama etrafında daha yayıldığını, yani daha heterojen olduğunu gösterir. Standart sapma, varyansın karekökü olarak hesaplanır ve genellikle σ (sigma) sembolü ile temsil edilir.

Standart Sapma Formülü

\[ \sigma = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{x})^2} \] ## Standart Sapma Öğrneyi ve çözümü

# Örnek veri vektörü
veri <- c(2, 4, 4, 4, 5, 5, 7, 9)

# Standart sapmayı hesapla
standart_sapma <- sd(veri)
print(standart_sapma)
## [1] 2.13809

Kovaryans nedir?

Kovaryans, iki değişken arasındaki ilişkinin değişkenlik ölçüsünü ifade eden bir istatistiksel terimdir. İki değişken arasındaki ilişkinin doğrusal olup olmadığını belirlemeye yardımcı olur. İki değişken, x ve y, sırasıyla x ve y değerlerinin ortalamalarından ne kadar sapma gösterdiğini hesaplamak için kullanılır. Eğer iki değişken birlikte artıyorsa, kovaryans pozitif olacaktır. Bir değişken artarken diğer değişken azalıyorsa, kovaryans negatif olacaktır. Eğer değişkenler arasında bir ilişki yoksa, kovaryans yaklaşık olarak sıfır olacaktır.

kovaryans Formulu

\[ \text{Cov}(X,Y) = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y}) \] ### Kovaryans Örnek ve Çözümü

# Örnek bir veri vektörü oluştur
veri <- c(10, 20, 30, 40, 50)

# Standart sapmayı hesapla
standart_sapma <- sd(veri)

# Sonucu yazdır
print(standart_sapma)
## [1] 15.81139

Korelasyon nedir?

Korelasyon, iki değişken arasındaki ilişkiyi ölçen istatistiksel bir ölçüdür. İki değişken arasındaki ilişkinin yönünü (olumlu veya olumsuz) ve gücünü belirlemeye yardımcı olur. Korelasyon katsayısı, genellikle Pearson korelasyon katsayısı veya Pearson korelasyon katsayısı olarak adlandırılır ve genellikle -1 ile 1 arasında bir değer alır: 1’e yaklaşan bir değer, iki değişken arasında güçlü bir pozitif ilişki olduğunu gösterir. Yani, bir değişken artarken diğer değişken de artar. -1’e yaklaşan bir değer, iki değişken arasında güçlü bir negatif ilişki olduğunu gösterir. Yani, bir değişken artarken diğer değişken azalır. 0’a yakın bir değer, iki değişken arasında bir ilişki olmadığını gösterir. Ancak, Pearson korelasyon katsayısı, sadece doğrusal ilişkileri ölçer. Eğer ilişki doğrusal değilse, Pearson korelasyon katsayısı güvenilir bir sonuç vermez. Spearman korelasyon katsayısı veya Kendall tau gibi başka korelasyon ölçüleri, doğrusal olmayan ilişkileri değerlendirmek için kullanılabilir.

\[ \text{corr}(X, Y) = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt({\sum_{i=1}^{n}X_i - \bar{X})^2 \cdot (\sum_{i=1}^{n}Y_i - \bar{Y})^2}} \ \]

korelasyon Örnek ve Çözüm

# Öğrencilerin matematik notları
matematik_notlari <- c(70, 80, 65, 90, 75)

# Öğrencilerin fen bilgisi notları
fen_bilgisi_notlari <- c(75, 85, 60, 95, 70)

# Korelasyonu hesapla
korelasyon <- cor(matematik_notlari, fen_bilgisi_notlari)

# Sonucu ekrana yazdır
print(korelasyon)
## [1] 0.9428309

Train ve Test set

Veri oyununun açıklaması Bu yarışmada, Titanik bir uzay-zaman anomalisiyle çarpıştığında bir yolcunun başka bir boyuta taşınıp taşınmadığını tahmin etmeniz gerekiyor. Tahmin etmenize yardımcı olması için, geminin hasarlı bilgisayar sisteminden kurtarılan bir dizi kişisel veriye sahipsiniz.

Dosyaların ve veri alanlarının açıklaması train.csv - Eğitim verisi olarak kullanılmak üzere yolcuların yaklaşık üçte ikisi (~8700) için kişisel kayıtlar. PassengerId - Her yolcu için benzersiz bir tanımlayıcı. Her tanımlayıcı gggg_pp biçimindedir; burada gggg yolcunun seyahat ettiği grubu, pp ise yolcunun gruptaki numarasını gösterir. Grup üyeleri genellikle aile üyeleridir, ancak her zaman değil. HomePlanet - Yolcunun ayrılmakta olduğu gezegen, genellikle kalıcı ana gezegeni. CryoSleep - Yolcunun yolculuk süresince askıya alınmış animasyona girmeyi seçip seçmediğini gösterir. CryoSleep’teki yolcular kabinlerine hapsedilirler. Kabin - Yolcunun kaldığı kabinin numarası. Taraf, P için iskele veya S için sancak olabilen köprü/numara/tarafa karşılık gelir. Varış yeri - Yolcunun iniş yapacağı gezegen. Yaş - Yolcunun yaşı. VIP - Yolcunun yolculuk sırasında özel bir VIP hizmeti için ödeme yapıp yapmadığını gösterir. RoomService, FoodCourt, ShoppingMall, Spa, VRDeck - Yolcunun Spaces tarafından sunulan birçok lüks hizmet için ne kadar ödediği.

Translated with DeepL.com (free version)

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ 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
library(readr)
train <- read_csv("train.csv")
test <- read_csv("test.csv")
train <- separate(train, PassengerId, into = c("group_id", "sequence_number"), sep = "_", remove = FALSE)
tekrarlanan_gruplar <- train %>%
  group_by(group_id) %>%
  filter(n() > 1) %>%
  pull(group_id)
train <- train %>%
  mutate(beraber_yolculuk_yapanlar = ifelse(group_id %in% tekrarlanan_gruplar, TRUE, FALSE))
train <- separate(train, Cabin, into = c("sutun1", "sutun2", "sutun3"), sep = "/", remove = FALSE)
train$HomePlanet <- as.factor(train$HomePlanet)
train$Destination <- as.factor(train$Destination)
summary(train)
##  PassengerId          group_id         sequence_number     HomePlanet  
##  Length:8693        Length:8693        Length:8693        Earth :4602  
##  Class :character   Class :character   Class :character   Europa:2131  
##  Mode  :character   Mode  :character   Mode  :character   Mars  :1759  
##                                                           NA's  : 201  
##                                                                        
##                                                                        
##                                                                        
##  CryoSleep          Cabin              sutun1             sutun2         
##  Mode :logical   Length:8693        Length:8693        Length:8693       
##  FALSE:5439      Class :character   Class :character   Class :character  
##  TRUE :3037      Mode  :character   Mode  :character   Mode  :character  
##  NA's :217                                                               
##                                                                          
##                                                                          
##                                                                          
##     sutun3                 Destination        Age           VIP         
##  Length:8693        55 Cancri e  :1800   Min.   : 0.00   Mode :logical  
##  Class :character   PSO J318.5-22: 796   1st Qu.:19.00   FALSE:8291     
##  Mode  :character   TRAPPIST-1e  :5915   Median :27.00   TRUE :199      
##                     NA's         : 182   Mean   :28.83   NA's :203      
##                                          3rd Qu.:38.00                  
##                                          Max.   :79.00                  
##                                          NA's   :179                    
##   RoomService        FoodCourt        ShoppingMall          Spa         
##  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   :  224.7   Mean   :  458.1   Mean   :  173.7   Mean   :  311.1  
##  3rd Qu.:   47.0   3rd Qu.:   76.0   3rd Qu.:   27.0   3rd Qu.:   59.0  
##  Max.   :14327.0   Max.   :29813.0   Max.   :23492.0   Max.   :22408.0  
##  NA's   :181       NA's   :183       NA's   :208       NA's   :183      
##      VRDeck            Name           Transported     beraber_yolculuk_yapanlar
##  Min.   :    0.0   Length:8693        Mode :logical   Mode :logical            
##  1st Qu.:    0.0   Class :character   FALSE:4315      FALSE:4805               
##  Median :    0.0   Mode  :character   TRUE :4378      TRUE :3888               
##  Mean   :  304.9                                                               
##  3rd Qu.:   46.0                                                               
##  Max.   :24133.0                                                               
##  NA's   :188
# Örnek veri çerçevesi oluşturma
df <- data.frame(
  group_id = c(1, 1, 2, 3, 4),
  homeplanet = c("A", NA, "B", "C", "A")
)

# NA değerlerini "Dünya" olarak doldurma
df$homeplanet[is.na(df$homeplanet)] <- "Dünya"

# Eğitim seti oluşturma
training_set <- df

# Hedef değişkeni ayırma
labels <- training_set$homeplanet
training_set$homeplanet <- NULL

# Eğitim setini kontrol etme
print(training_set)
##   group_id
## 1        1
## 2        1
## 3        2
## 4        3
## 5        4
print(labels)
## [1] "A"     "Dünya" "B"     "C"     "A"
# Rastgele veri seti oluşturma
set.seed(123) # Çalışmanın tekrarlanabilirliği için seed ayarlayalım

num_samples <- 1000  # Örneklem sayısı

# Rastgele group_id ve homeplanet sütunlarını oluşturma
group_id <- sample(1:5, num_samples, replace = TRUE)
homeplanet <- sample(c("A", "NA", "B", "C"), num_samples, replace = TRUE)

# Veri çerçevesi oluşturma
df <- data.frame(
  group_id = group_id,
  homeplanet = homeplanet
)

# NA değerlerini "Dünya" olarak değiştirme
df$homeplanet[is.na(df$homeplanet)] <- "Dünya"

# Sonuçları kontrol etme
head(df)
##   group_id homeplanet
## 1        3          B
## 2        3          C
## 3        2         NA
## 4        2          B
## 5        3          C
## 6        5          B
train <- transform(train,
                   groupId = substr(PassengerId, 1, 4),
                   PassengerNumber = substr(PassengerId, 6, nchar(PassengerId)))
train$GroupId <- duplicated(train$groupId) | duplicated(train$groupId, fromLast = TRUE)
library(tidyverse)
train$deck <- substr(train$Cabin, 1, 1)
train$num <- substring(train$Cabin, 2, nchar(train$Cabin) - 2)
train$side <- substr(train$Cabin, nchar(train$Cabin), nchar(train$Cabin))
summary(train)
##  PassengerId          group_id         sequence_number     HomePlanet  
##  Length:8693        Length:8693        Length:8693        Earth :4602  
##  Class :character   Class :character   Class :character   Europa:2131  
##  Mode  :character   Mode  :character   Mode  :character   Mars  :1759  
##                                                           NA's  : 201  
##                                                                        
##                                                                        
##                                                                        
##  CryoSleep          Cabin              sutun1             sutun2         
##  Mode :logical   Length:8693        Length:8693        Length:8693       
##  FALSE:5439      Class :character   Class :character   Class :character  
##  TRUE :3037      Mode  :character   Mode  :character   Mode  :character  
##  NA's :217                                                               
##                                                                          
##                                                                          
##                                                                          
##     sutun3                 Destination        Age           VIP         
##  Length:8693        55 Cancri e  :1800   Min.   : 0.00   Mode :logical  
##  Class :character   PSO J318.5-22: 796   1st Qu.:19.00   FALSE:8291     
##  Mode  :character   TRAPPIST-1e  :5915   Median :27.00   TRUE :199      
##                     NA's         : 182   Mean   :28.83   NA's :203      
##                                          3rd Qu.:38.00                  
##                                          Max.   :79.00                  
##                                          NA's   :179                    
##   RoomService        FoodCourt        ShoppingMall          Spa         
##  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   :  224.7   Mean   :  458.1   Mean   :  173.7   Mean   :  311.1  
##  3rd Qu.:   47.0   3rd Qu.:   76.0   3rd Qu.:   27.0   3rd Qu.:   59.0  
##  Max.   :14327.0   Max.   :29813.0   Max.   :23492.0   Max.   :22408.0  
##  NA's   :181       NA's   :183       NA's   :208       NA's   :183      
##      VRDeck            Name           Transported     beraber_yolculuk_yapanlar
##  Min.   :    0.0   Length:8693        Mode :logical   Mode :logical            
##  1st Qu.:    0.0   Class :character   FALSE:4315      FALSE:4805               
##  Median :    0.0   Mode  :character   TRUE :4378      TRUE :3888               
##  Mean   :  304.9                                                               
##  3rd Qu.:   46.0                                                               
##  Max.   :24133.0                                                               
##  NA's   :188                                                                   
##    groupId          PassengerNumber     GroupId            deck          
##  Length:8693        Length:8693        Mode :logical   Length:8693       
##  Class :character   Class :character   FALSE:4805      Class :character  
##  Mode  :character   Mode  :character   TRUE :3888      Mode  :character  
##                                                                          
##                                                                          
##                                                                          
##                                                                          
##      num                side          
##  Length:8693        Length:8693       
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
##                                       
## 
train$HomePlanet <- as.factor(train$HomePlanet)
train <- train %>%
  group_by(PassengerNumber) %>%
  mutate(homeplanet = ifelse(is.na(HomePlanet), unique(HomePlanet[!is.na(HomePlanet)]),HomePlanet))
summary(train)
##  PassengerId          group_id         sequence_number     HomePlanet  
##  Length:8693        Length:8693        Length:8693        Earth :4602  
##  Class :character   Class :character   Class :character   Europa:2131  
##  Mode  :character   Mode  :character   Mode  :character   Mars  :1759  
##                                                           NA's  : 201  
##                                                                        
##                                                                        
##                                                                        
##  CryoSleep          Cabin              sutun1             sutun2         
##  Mode :logical   Length:8693        Length:8693        Length:8693       
##  FALSE:5439      Class :character   Class :character   Class :character  
##  TRUE :3037      Mode  :character   Mode  :character   Mode  :character  
##  NA's :217                                                               
##                                                                          
##                                                                          
##                                                                          
##     sutun3                 Destination        Age           VIP         
##  Length:8693        55 Cancri e  :1800   Min.   : 0.00   Mode :logical  
##  Class :character   PSO J318.5-22: 796   1st Qu.:19.00   FALSE:8291     
##  Mode  :character   TRAPPIST-1e  :5915   Median :27.00   TRUE :199      
##                     NA's         : 182   Mean   :28.83   NA's :203      
##                                          3rd Qu.:38.00                  
##                                          Max.   :79.00                  
##                                          NA's   :179                    
##   RoomService        FoodCourt        ShoppingMall          Spa         
##  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   :  224.7   Mean   :  458.1   Mean   :  173.7   Mean   :  311.1  
##  3rd Qu.:   47.0   3rd Qu.:   76.0   3rd Qu.:   27.0   3rd Qu.:   59.0  
##  Max.   :14327.0   Max.   :29813.0   Max.   :23492.0   Max.   :22408.0  
##  NA's   :181       NA's   :183       NA's   :208       NA's   :183      
##      VRDeck            Name           Transported     beraber_yolculuk_yapanlar
##  Min.   :    0.0   Length:8693        Mode :logical   Mode :logical            
##  1st Qu.:    0.0   Class :character   FALSE:4315      FALSE:4805               
##  Median :    0.0   Mode  :character   TRUE :4378      TRUE :3888               
##  Mean   :  304.9                                                               
##  3rd Qu.:   46.0                                                               
##  Max.   :24133.0                                                               
##  NA's   :188                                                                   
##    groupId          PassengerNumber     GroupId            deck          
##  Length:8693        Length:8693        Mode :logical   Length:8693       
##  Class :character   Class :character   FALSE:4805      Class :character  
##  Mode  :character   Mode  :character   TRUE :3888      Mode  :character  
##                                                                          
##                                                                          
##                                                                          
##                                                                          
##      num                side             homeplanet   
##  Length:8693        Length:8693        Min.   :1.000  
##  Class :character   Class :character   1st Qu.:1.000  
##  Mode  :character   Mode  :character   Median :1.000  
##                                        Mean   :1.673  
##                                        3rd Qu.:2.000  
##                                        Max.   :3.000  
## 
hist(train$FoodCourt)

hist(train$RoomService)

hist(train$Age)

hist(train$Spa)

test <- transform(test,
                   groupId = substr(PassengerId, 1, 4),
                   PassengerNumber = substr(PassengerId, 6, nchar(PassengerId)))
test$GroupId <- duplicated(test$groupId) | duplicated(test$groupId, fromLast = TRUE)
test$deck <- substr(test$Cabin, 1, 1)
test$num <- substring(test$Cabin, 2, nchar(test$Cabin) - 2)
test$side <- substr(test$Cabin, nchar(test$Cabin), nchar(test$Cabin))
summary(test)
##  PassengerId         HomePlanet        CryoSleep          Cabin          
##  Length:4277        Length:4277        Mode :logical   Length:4277       
##  Class :character   Class :character   FALSE:2640      Class :character  
##  Mode  :character   Mode  :character   TRUE :1544      Mode  :character  
##                                        NA's :93                          
##                                                                          
##                                                                          
##                                                                          
##  Destination             Age           VIP           RoomService     
##  Length:4277        Min.   : 0.00   Mode :logical   Min.   :    0.0  
##  Class :character   1st Qu.:19.00   FALSE:4110      1st Qu.:    0.0  
##  Mode  :character   Median :26.00   TRUE :74        Median :    0.0  
##                     Mean   :28.66   NA's :93        Mean   :  219.3  
##                     3rd Qu.:37.00                   3rd Qu.:   53.0  
##                     Max.   :79.00                   Max.   :11567.0  
##                     NA's   :91                      NA's   :82       
##    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   :  439.5   Mean   : 177.3   Mean   :  303.1   Mean   :  310.7  
##  3rd Qu.:   78.0   3rd Qu.:  33.0   3rd Qu.:   50.0   3rd Qu.:   36.0  
##  Max.   :25273.0   Max.   :8292.0   Max.   :19844.0   Max.   :22272.0  
##  NA's   :106       NA's   :98       NA's   :101       NA's   :80       
##      Name             groupId          PassengerNumber     GroupId       
##  Length:4277        Length:4277        Length:4277        Mode :logical  
##  Class :character   Class :character   Class :character   FALSE:2340     
##  Mode  :character   Mode  :character   Mode  :character   TRUE :1937     
##                                                                          
##                                                                          
##                                                                          
##                                                                          
##      deck               num                side          
##  Length:4277        Length:4277        Length:4277       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
## 
test$HomePlanet <- as.factor(test$HomePlanet)
test <- test %>%
  group_by(PassengerNumber) %>%
  mutate(homeplanet = ifelse(is.na(HomePlanet), unique(HomePlanet[!is.na(HomePlanet)]),HomePlanet))
summary(test)
##  PassengerId         HomePlanet   CryoSleep          Cabin          
##  Length:4277        Earth :2263   Mode :logical   Length:4277       
##  Class :character   Europa:1002   FALSE:2640      Class :character  
##  Mode  :character   Mars  : 925   TRUE :1544      Mode  :character  
##                     NA's  :  87   NA's :93                          
##                                                                     
##                                                                     
##                                                                     
##  Destination             Age           VIP           RoomService     
##  Length:4277        Min.   : 0.00   Mode :logical   Min.   :    0.0  
##  Class :character   1st Qu.:19.00   FALSE:4110      1st Qu.:    0.0  
##  Mode  :character   Median :26.00   TRUE :74        Median :    0.0  
##                     Mean   :28.66   NA's :93        Mean   :  219.3  
##                     3rd Qu.:37.00                   3rd Qu.:   53.0  
##                     Max.   :79.00                   Max.   :11567.0  
##                     NA's   :91                      NA's   :82       
##    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   :  439.5   Mean   : 177.3   Mean   :  303.1   Mean   :  310.7  
##  3rd Qu.:   78.0   3rd Qu.:  33.0   3rd Qu.:   50.0   3rd Qu.:   36.0  
##  Max.   :25273.0   Max.   :8292.0   Max.   :19844.0   Max.   :22272.0  
##  NA's   :106       NA's   :98       NA's   :101       NA's   :80       
##      Name             groupId          PassengerNumber     GroupId       
##  Length:4277        Length:4277        Length:4277        Mode :logical  
##  Class :character   Class :character   Class :character   FALSE:2340     
##  Mode  :character   Mode  :character   Mode  :character   TRUE :1937     
##                                                                          
##                                                                          
##                                                                          
##                                                                          
##      deck               num                side             homeplanet   
##  Length:4277        Length:4277        Length:4277        Min.   :1.000  
##  Class :character   Class :character   Class :character   1st Qu.:1.000  
##  Mode  :character   Mode  :character   Mode  :character   Median :1.000  
##                                                           Mean   :1.687  
##                                                           3rd Qu.:2.000  
##                                                           Max.   :3.000  
## 
hist(test$FoodCourt)

hist(test$RoomService)

hist(test$Age)

hist(test$Spa)