Description (Tanım)
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ı!
Bu yarışmada göreviniz, Uzay Gemisi Titanik’in uzay-zaman anomalisiyle çarpışması sırasında bir yolcunun alternatif bir boyuta taşınıp taşınmadığını tahmin etmektir. Bu tahminleri yapmanıza yardımcı olmak için size geminin hasarlı bilgisayar sisteminden kurtarılan bir dizi kişisel kayıt veriliyor.
train.csv - Personal records for about two-thirds (~8700) of the passengers, to be used as training data.
PassengerId - A unique Id for each passenger. Each Id takes the form gggg_pp where gggg indicates a group the passenger is travelling with and pp is their number within the group. People in a group are often family members, but not always.
HomePlanet - The planet the passenger departed from, typically their planet of permanent residence.
CryoSleep - Indicates whether the passenger elected to be put into suspended animation for the duration of the voyage. Passengers in cryosleep are confined to their cabins.
Cabin - The cabin number where the passenger is staying. Takes the form deck/num/side, where side can be either P for Port or S for Starboard.
Destination - The planet the passenger will be debarking to. Age - The age of the passenger.
VIP - Whether the passenger has paid for special VIP service during the voyage.
RoomService, FoodCourt, ShoppingMall, Spa, VRDeck - Amount the passenger has billed at each of the Spaceship Titanic’s many luxury amenities.
Name - The first and last names of the passenger.
Transported - Whether the passenger was transported to another dimension. This is the target, the column you are trying to predict.
test.csv - Personal records for the remaining one-third (~4300) of the passengers, to be used as test data. Your task is to predict the value of Transported for the passengers in this set.
sample_submission.csv - A submission file in the correct format.
PassengerId - Id for each passenger in the test set.
Transported - The target. For each passenger, predict either True or False.
library(readr)
## Warning: package 'readr' was built under R version 4.3.2
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.
library(readr)
test <- read_csv("test.csv")
## Rows: 4277 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
## dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
## lgl (2): CryoSleep, VIP
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
library(readr)
sample_submission <- read_csv("sample_submission.csv")
## Rows: 4277 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): PassengerId
## lgl (1): 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.
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Warning: package 'tibble' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ purrr 1.0.2
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ 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
library(explore)
## Warning: package 'explore' was built under R version 4.3.2
str(train)
## spc_tbl_ [8,693 × 14] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ PassengerId : chr [1:8693] "0001_01" "0002_01" "0003_01" "0003_02" ...
## $ HomePlanet : chr [1:8693] "Europa" "Earth" "Europa" "Europa" ...
## $ CryoSleep : logi [1:8693] FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ Cabin : chr [1:8693] "B/0/P" "F/0/S" "A/0/S" "A/0/S" ...
## $ Destination : chr [1:8693] "TRAPPIST-1e" "TRAPPIST-1e" "TRAPPIST-1e" "TRAPPIST-1e" ...
## $ Age : num [1:8693] 39 24 58 33 16 44 26 28 35 14 ...
## $ VIP : logi [1:8693] FALSE FALSE TRUE FALSE FALSE FALSE ...
## $ RoomService : num [1:8693] 0 109 43 0 303 0 42 0 0 0 ...
## $ FoodCourt : num [1:8693] 0 9 3576 1283 70 ...
## $ ShoppingMall: num [1:8693] 0 25 0 371 151 0 3 0 17 0 ...
## $ Spa : num [1:8693] 0 549 6715 3329 565 ...
## $ VRDeck : num [1:8693] 0 44 49 193 2 0 0 NA 0 0 ...
## $ Name : chr [1:8693] "Maham Ofracculy" "Juanna Vines" "Altark Susent" "Solam Susent" ...
## $ Transported : logi [1:8693] FALSE TRUE FALSE FALSE TRUE TRUE ...
## - attr(*, "spec")=
## .. cols(
## .. PassengerId = col_character(),
## .. HomePlanet = col_character(),
## .. CryoSleep = col_logical(),
## .. Cabin = col_character(),
## .. Destination = col_character(),
## .. Age = col_double(),
## .. VIP = col_logical(),
## .. RoomService = col_double(),
## .. FoodCourt = col_double(),
## .. ShoppingMall = col_double(),
## .. Spa = col_double(),
## .. VRDeck = col_double(),
## .. Name = col_character(),
## .. Transported = col_logical()
## .. )
## - attr(*, "problems")=<externalptr>
train %>% describe_all()
## # A tibble: 14 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 PassengerId chr 0 0 8693 NA NA NA
## 2 HomePlanet chr 201 2.3 4 NA NA NA
## 3 CryoSleep lgl 217 2.5 3 0 0.36 1
## 4 Cabin chr 199 2.3 6561 NA NA NA
## 5 Destination chr 182 2.1 4 NA NA NA
## 6 Age dbl 179 2.1 81 0 28.8 79
## 7 VIP lgl 203 2.3 3 0 0.02 1
## 8 RoomService dbl 181 2.1 1274 0 225. 14327
## 9 FoodCourt dbl 183 2.1 1508 0 458. 29813
## 10 ShoppingMall dbl 208 2.4 1116 0 174. 23492
## 11 Spa dbl 183 2.1 1328 0 311. 22408
## 12 VRDeck dbl 188 2.2 1307 0 305. 24133
## 13 Name chr 200 2.3 8474 NA NA NA
## 14 Transported lgl 0 0 2 0 0.5 1
YORUM (PassengerId) iki ayırıcağız (ailenum ve ailesira) old trainden önecesi ve sonrası
train[c('ailenum', 'ailesira')] <- str_split_fixed(train$PassengerId,'_',2)
test[c('ailenum', 'ailesira')] <- str_split_fixed(test$PassengerId,'_',2)
YOURM Cabine bakmak olurasak onuda üçe ayırıcağız
train[c('deck', 'num', 'side')] <- str_split_fixed(train$Cabin,'/',3)
test[c('deck', 'num', 'side')] <- str_split_fixed(test$Cabin,'/',3)
YORUM NA tobolunun içinde boşluk varsa NA kulanımamız gerekir NA koymasak bazı hataları verebilir
train[train == ''] <- NA
test[test == ''] <- NA
YORUM Cabineye ıhıyacaımız kalmadığı için çıkartıyorum
train <- train %>% select(-Cabin)
test <- test %>% select(-Cabin)
train <- train %>% select(-Name)
test <- test %>% select(-Name)
train <- train %>% select(-num)
test <- test %>% select(-num)
Yorum addNA ekledığımız için hespısne gösterıyor
train$HomePlanet <- addNA(train$HomePlanet)
test$HomePlanet <- addNA(test$HomePlanet)
unique(train$HomePlanet)
## [1] Europa Earth Mars <NA>
## Levels: Earth Europa Mars <NA>
unique(train$HomePlanet)
## [1] Europa Earth Mars <NA>
## Levels: Earth Europa Mars <NA>
YORUM NA yın trınak içinde olduğunda daha iyi yolu seçmiş olurus
levels(train$VRDeck)[is.na(levels(train$VRDeck))]<-"NA"
levels(test$VRDeck)[is.na(levels(test$VRDeck))]<-"NA"
levels(train$HomePlanet)[is.na(levels(train$HomePlanet))]<-"NA"
levels(test$HomePlanet)[is.na(levels(test$HomePlanet))]<-"NA"
levels(train$HomePlanet)
## [1] "Earth" "Europa" "Mars" "NA"
levels(test$HomePlanet)
## [1] "Earth" "Europa" "Mars" "NA"
train$CryoSleep <- addNA(train$CryoSleep)
test$CryoSleep <- addNA(test$CryoSleep)
unique(train$Destination)
## [1] "TRAPPIST-1e" "PSO J318.5-22" "55 Cancri e" NA
unique(train$HomePlanet)
## [1] Europa Earth Mars NA
## Levels: Earth Europa Mars NA
levels(test$HomePlanet)
## [1] "Earth" "Europa" "Mars" "NA"
train$CryoSleep <- addNA(train$CryoSleep)
test$CryoSleep <- addNA(test$CryoSleep)
unique(train$Destination)
## [1] "TRAPPIST-1e" "PSO J318.5-22" "55 Cancri e" NA
train$Destination <- addNA(train$Destination)
test$Destination <- addNA(test$Destination)
YORUM GROUP_BY daha yüksek not çıkartmak için hem Destination göre gruplayalım hemde Destinatione göre grouplayalım sonra dört yaş grubuna ayıracaz
train <- train %>%
group_by(Destination) %>%
mutate_at(vars(RoomService), ~replace_na(.,mean(., na.rm = TRUE)))
test <- test %>%
group_by(Destination) %>%
mutate_at(vars(RoomService), ~replace_na(.,mean(., na.rm = TRUE)))
YORUM Hıstogramdan ortalama almamız kerek yok
hist(train$FoodCourt)
hist(train$FoodCourt)
hist(train$Age)
Şimdi ortalam bakrsak AGE göre
hist(train$FoodCourt)
YORUM ortalama bakmak olusak 0 aldımığız daha iyi oluyor
train <- train %>% mutate(FoodCourt = coalesce(FoodCourt,0))
test <- test %>% mutate(FoodCourt= coalesce(FoodCourt,0))
train <- train %>% mutate(ShoppingMall = coalesce(ShoppingMall,0), Spa = coalesce(Spa,0),VRDeck = coalesce(VRDeck,0))
test <- test %>% mutate(ShoppingMall = coalesce(ShoppingMall,0), Spa = coalesce(Spa,0),VRDeck = coalesce(VRDeck,0))
YORUM artık her şey kulanabiliyoruz (deck ve vıp ve side)
train$deck <- addNA(train$deck)
test$deck <- addNA(test$deck)
train$VIP <- addNA(train$VIP)
test$VIP <- addNA(test$VIP)
train$side <- addNA(train$side)
test$side <- addNA(test$side)
train <- train %>% group_by(HomePlanet) %>% mutate(across(Age, ~replace_na(.,mean(., na.rm = TRUE))))
test <- test %>% group_by(HomePlanet) %>% mutate(across(Age, ~replace_na(.,mean(., na.rm = TRUE))))
train <- train %>% group_by(HomePlanet) %>% mutate(across(RoomService, ~replace_na(.,mean(., na.rm = TRUE))))
test <- test %>% group_by(HomePlanet) %>% mutate(across(RoomService, ~replace_na(.,mean(., na.rm = TRUE))))
train <- train %>% group_by(HomePlanet) %>% mutate(across(FoodCourt, ~replace_na(.,mean(., na.rm = TRUE))))
test <- test %>% group_by(HomePlanet) %>% mutate(across(FoodCourt, ~replace_na(.,mean(., na.rm = TRUE))))
train <- train %>% group_by(HomePlanet) %>% mutate(across(ShoppingMall, ~replace_na(.,mean(., na.rm = TRUE))))
test <- test %>% group_by(HomePlanet) %>% mutate(across(ShoppingMall, ~replace_na(.,mean(., na.rm = TRUE))))
train <- train %>% group_by(HomePlanet) %>% mutate(across(Spa, ~replace_na(.,mean(., na.rm = TRUE))))
test <- test %>% group_by(HomePlanet) %>% mutate(across(Spa, ~replace_na(.,mean(., na.rm = TRUE))))
YORUM şimdi burdan aile numarsını kulanıp aile yaratabiliriz
train$aile<-ifelse(duplicated(train$ailenum)| duplicated(train$ailenum, fromLast = TRUE),1,0)
test$aile<-ifelse(duplicated(test$ailenum)| duplicated(test$ailenum, fromLast = TRUE),1,0)
YORUM (AİLENUM VE AİLESİRA)ıhtıyacımız kalmadığı için kaldırıyorum
train <- train %>% select(-ailenum,-ailesira)
test <- test %>% select(-ailenum,-ailesira)
train %>% describe_all()
## # 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 Destination fct 0 0 4 NA NA NA
## 5 Age dbl 0 0 84 0 28.8 79
## 6 VIP fct 0 0 3 NA NA NA
## 7 RoomService dbl 0 0 1277 0 225. 14327
## 8 FoodCourt dbl 0 0 1507 0 448. 29813
## 9 ShoppingMall dbl 0 0 1115 0 170. 23492
## 10 Spa dbl 0 0 1327 0 305. 22408
## 11 VRDeck dbl 0 0 1306 0 298. 24133
## 12 Transported lgl 0 0 2 0 0.5 1
## 13 deck fct 0 0 9 NA NA NA
## 14 side fct 0 0 3 NA NA NA
## 15 aile dbl 0 0 2 0 0.45 1
logostic
Lojistik regresyon, ikili sonuçları tahmin etmek için basit ama güçlü bir modeldir. Yani bir şeyin olup olmayacağı. Denetimli makine öğrenimine yönelik bir tür sınıflandırma modelidir.
Lojistik regresyon neredeyse her sektörde (pazarlama, sağlık hizmetleri, sosyal bilimler ve diğerleri) kullanılır ve her veri bilimcinin araç setinin önemli bir parçasıdır.
Bu eğitimden en iyi şekilde yararlanmak için R hakkında temel çalışma bilgisine sahip olmanız gerekir. Bu aynı zamanda ilgili model türü olan doğrusal regresyon hakkında bilgi sahibi olmanıza da yardımcı olur. Bunu öğrenmek için R Eğitimindeki Doğrusal Regresyon bölümünü okuyun.
YORUM train_set trainden farkıl olacak 15 fark var
train_set<-train[2:15]
test_set testinde farklı olacak 14 fark var
test_set<-test[2:14]
Yorum burdan ıkı gruba ayırıcağız %75 ve % 25 , biz burda %75 aldık daha ıyı sonuç gösterıyor train_set ile ve test_setin oluşturduk
library(caTools)
## Warning: package 'caTools' was built under R version 4.3.2
set.seed(123)
split=sample.split(train_set$Transported , SplitRatio = 0.75)
training_set=subset(train_set, split==TRUE)
testing_set=subset(train_set,split==FALSE)
YORUM logistikte 0 ve 1 oluştrduk
logistic = glm(formula = Transported ~ .,
family = binomial,
data = training_set)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
YORUM prob_pred e her hangi bir isimi koyabiliyoruz prob fonction isimi pred tahmın
YORUM Logistik respont olarak yeni data kuruyoruz yeni data ne test_setinde normal setisinde fark Transport içinde olması -11.kodu kulanma ve bu data üzerinde tredi yap
prob_pred = predict(logistic, type = 'response', newdata = testing_set[-11])
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
## prediction from rank-deficient fit; attr(*, "non-estim") has doubtful cases
YORUM olaslık tahmını
y_pred = ifelse(prob_pred> 0.5,1,0)
y_pred = ifelse(prob_pred > 0.5, 1,0)
y_true <- ifelse(testing_set[11] == TRUE, 1, 0)
YORUM table greçeklerle ve tahımınleri karşılaştıracağız yüde kaç olaslığı bulmak için kulanıyoruz
cm = table(y_true,y_pred)
cm
## y_pred
## y_true 0 1
## 0 819 260
## 1 189 905
(825+909)/(825+909+254+185)
## [1] 0.7979751
YORUM logistic bu sefer bütün seti için yapacağız bütün dataye kulanıp test setinde kulanırız
logistic_son =glm(formula = Transported ~ ., family = binomial, data = train_set)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
prob_pred = predict(logistic_son, type = 'response', newdata = test_set)
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
## prediction from rank-deficient fit; attr(*, "non-estim") has doubtful cases
y_pred = ifelse(prob_pred > 0.5, TRUE, FALSE)
YORUM PassengerID yaz ve tahmınlerı yaz
Transported <- as.character(y_pred)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
YORUM submission (passengerId ve Transported) i birleeeştrıyoruz
submission <- cbind(PassengerId, Transported)
YORUM burdan data fre yapıyoruz
submission <- as.data.frame(submission)
YORUM Transportın başlık olmasın ıstıyoruz submission Transported adı str_to_title .Adını koydumuzda her şey tamamlanmış olur
submission$Transported <- str_to_title(submission$Transported)
YORUM yeni bir dosseiye krouyoruz
write.csv(submission, "submission_logistic.csv", row.names = FALSE,quote = FALSE)
sonuç
NAİVE
Veri biliminde pek çok algoritma kullanılır. Bunlardan biride Supervised Learning (Gözetimli öğrenme) başlığı altında incelediğimiz bir Classification (Sınıflandırma) olan Naive Bayes’tir. Naive Bayes üretken(generative) bir modeldir. Bir sonraki yazımızda üretken ve ayrımcı sınıflandırma(generative and discriminative classifier) farkından bahsedeceğiz.
Sınıflandırma, veri setimizdeki ayırt etmemize yarayan belirli özelliklerine(features (X)) bakarak hedefimizi(target (y)) katagorilere ayırmamızı sağlar.
YORUM naiveBayes respont olarak yeni data kuruyoruz yeni data ne test_setinde normal setisinde fark Transport içinde olması -11.kodu kulanma ve bu data üzerinde tredi yap.Transport kulan sonra hepsine kulan data predict
library(e1071)
## Warning: package 'e1071' was built under R version 4.3.2
fit_nb <- naiveBayes(Transported ~ ., data = training_set)
preds <- predict(fit_nb, newdata =testing_set[-11], type = "raw") %>%
data.frame()
YORUM olaslık tahmını
y_pred = ifelse(preds$TRUE. > 0.5, 1,0)
YORUM table greçeklerle ve tahımınleri karşılaştıracağız yüde kaç olaslığı bulmak için kulanıyoruz
cm = table(y_true, y_pred)
cm
## y_pred
## y_true 0 1
## 0 510 569
## 1 78 1016
(510+1016)/ (510+1016+78+569)
## [1] 0.7022549
YORUM n_b bu sefer bütün seti için yapacağız bütün dataye kulanıp test setinde kulanırız
nb_son = naiveBayes(Transported ~ ., data = train_set)
preds <- predict(nb_son, newdata = test_set, type = "raw") %>%
data.frame()
y_pred = ifelse(preds$TRUE.> 0.5 ,TRUE,FALSE)
YORUM PassengerID yaz ve tahmınlerı yazYORUM PassengerID yaz ve tahmınlerı yaz
Transported <- as.character(y_pred)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
YORUM submission (passengerId ve Transported) i birleeeştrıyoruz
submission <- cbind(PassengerId, Transported)
YORUM burdan data fre yapıyoruz
submission <- as.data.frame(submission)
YORUM Transportın başlık olmasın ıstıyoruz submission Transported adı str_to_title .Adını koydumuzda her şey tamamlanmış olur
submission$Transported <- str_to_title(submission$Transported)
YORUM yeni bir dosseiye krouyoruz
write.csv(submission, "sub_nb.csv" , row.names = FALSE , quote = FALSE)
sonuç
SVM
SVM verileri yüksek boyutlu bir özellik alanına eşleyerek çalışır, böylece veri başka bir şekilde ayrılabilir olmasa da veri noktaları kategorilendirilebilir. Kategoriler arasında bir ayırıcı bulunur, daha sonra veriler, ayırıcının bir hiperdüzlem olarak çizilebileceği gibi dönüştürülür. Bunun ardından, yeni verilerin özellikleri, yeni bir kaydın ait olması gereken grubu tahmin etmek için kullanılabilir.
Örneğin, veri noktalarının iki farklı kategoriye denk düştüğünde aşağıdaki şekli göz önünde bulundurun.
Şekil 1. Özgün veri kümesi
ki kategori, aşağıdaki şekilde gösterildiği gibi bir eğri ile ayrılabilir.
Şekil 2. Ayırıcıya sahip veriler eklendi
dönüşümden sonra, iki kategori arasındaki sınır, aşağıdaki şekilde gösterildiği gibi bir hiperdüzlem tarafından tanımlanabilir.
Şekil 3. Dönüştürülen veriler
Dönüştürme için kullanılan matematiksel işlev, kernel işlevi olarak bilinir. IBM® SPSS® Modeler içindeki SVM, aşağıdaki çekirdek tiplerini destekler:
Doğrusal Çok terimli Radyal temel işlev (RBF) Sigmoid Doğrusal bir çekirdek işlevi, verilerin doğrusal olarak ayrılması önerilirse önerilir. Diğer durumlarda, diğer işlevlerden biri kullanılmalı. her biri farklı algoritmalar ve parametreler kullandığı için her durumda en iyi modeli elde etmek için farklı işlevlerle denemeler yapmak gerekecek.
library(e1071)
fit_svm <- svm(Transported ~ ., data = training_set,type = 'C-classification' , kernel= 'linear')
preds <- predict(fit_svm, newdata = testing_set, type = "raw") %>%
data.frame()
YORUM olaslık tahmını
y_pred = ifelse(preds$. == TRUE, 1,0)
YORUM table greçeklerle ve tahımınleri karşılaştıracağız yüde kaç olaslığı bulmak için kulanıyoruz
cm = table(y_true, y_pred)
cm
## y_pred
## y_true 0 1
## 0 831 248
## 1 171 923
```r
(831+923) / (831+923+171+248)
## [1] 0.807179
YORUM svm_son bu sefer bütün seti için yapacağız bütün dataye kulanıp test setinde kulanırız
svm_son = svm(Transported ~ ., data = train_set, type = 'C-classification' , kernel = 'linear')
preds <- predict(svm_son, newdata = test_set,type = "raw") %>%
data.frame()
y_pred =preds$.
YORUM PassengerID yaz ve tahmınlerı yaz
Transported <- as.character(y_pred)
PassengerId <- test$PassengerId
Transported <- as.vector(Transported)
YORUM submission (passengerId ve Transported) i birleeeştrıyoruz
submission <- cbind(PassengerId, Transported)
YORUM burdan data fre yapıyoruz
submission <- as.data.frame(submission)
YORUM Transportın başlık olmasın ıstıyoruz submission Transported adı str_to_title .Adını koydumuzda her şey tamamlanmış olur
submission$Transported <- str_to_title(submission$Transported)
write.csv(submission, "sub_svm.csv", row.names = FALSE, quote = FALSE)
sonuç