This is a readthedown Themes YAML from
rmdformats Package
Spaceship Titanic
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ı!
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 gggg_pp biçimini alır; burada gggg yolcunun birlikte seyahat ettiği grubu belirtir ve pp grup içindeki numaradır. Bir gruptaki insanlar çoğunlukla aile üyeleridir, ancak her zaman değil.
HomePlanet - Yolcunun ayrıldığı gezegen, genellikle daimi ikamet ettikleri gezegen.
CryoSleep - Yolcunun yolculuk süresince animasyonun askıya alınmasını seçip seçmediğini belirtir. Dondurucu uykudaki yolcular kabinlerine hapsedilir.
Kabin - Yolcunun kaldığı kabin numarası. Güverte/numara/yan formunu alır; burada taraf, İskele için P veya Sancak için S olabilir.
Hedef - Yolcunun ineceği gezegen.
Yaş - Yolcunun yaşı.
VIP - Yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapıp yapmadığı. RoomService, FoodCourt, Alışveriş Merkezi, Spa, VRDeck - Yolcunun, Spaceship Titanic’in birçok lüks olanağının her birinde fatura ettiği tutar.
Adı - Yolcunun adı ve soyadı. Taşındı - Yolcunun başka bir boyuta taşınıp taşınmadığı. Bu hedeftir, tahmin etmeye çalıştığınız sütundur.
test.csv - Yolcuların geri kalan üçte birinin (~4300) kişisel kayıtları, test verisi olarak kullanılacak. Göreviniz bu setteki yolcular için Taşınan değerini tahmin etmektir.
sample_submission.csv - Doğru formatta bir gönderim dosyası.
PassengerId - Test setindeki her yolcunun kimliği.
Taşınan - Hedef. Her yolcu için Doğru veya Yanlış’ı tahmin edin.
Download Data (Data Paketini Yüklemek) Data paketini yükleyerek ben Uzay Gemisi Titanik verilerine ulaşacam.
library(readr): Bu satır, readr paketine yükler ve R’de veri okuma işlemleri için kullanıyoruz. train tablosu ‘read’
train.csv, gemideki yolcuların bir alt kümesinin ayrıntılarını içerir (tam olarak 8683 yolcu; her yolcunun tabloda farklı bir sıraya girdiği yer). Bu verileri araştırmak için ekranın solundaki dosya adına tıklayın. Bunu yaptıktan sonra penceredeki tüm verileri görebilirsiniz.
Yolcuların üçte birinin (~4277) kişisel kayıtları test verisi olarak kullanılacak. Göreviniz bu setteki yolcular için Taşınan değerini tahmin etmektir.
sample_submission.csv
Doğru formatta bir gönderim dosyası.
[(su.JPG)]
R programlama dilinde explore paketini yüklemek için kullanılır. explore paketi, veri keşfi ve görselleştirme süreçlerini kolaylaştırmak için tasarlanmıştır. Bu paket, veri setlerini hızlı bir şekilde incelemek, verilerdeki yapıları ve desenleri keşfetmek, eksik verileri ve aykırı değerleri analiz etmek gibi işlevler sunar. explore paketi, özellikle veri analizi sürecinin başlangıcında, verilerinizi tanımanızı ve anlamlı içgörüler elde etmenizi kolaylaştırır. Bu kodu çalıştırdığınızda, explore paketi R oturumunuza yüklenir ve fonksiyonlarını kullanmaya başlayabilirsiniz.
Bu kodla, R programlama dilinde tidyverse paketini yükler. tidyverse, veri bilimi ve analizi için tasarlanmış bir dizi R paketini içerir. Bu paketler, veri manipülasyonu (örneğin dplyr ve tidyr), veri görselleştirme (ggplot2), ve veri okuma/yazma (readr, readxl, haven vb.) işlemlerini kolaylaştırır. tidyverse, veri analizi işlemlerini daha anlaşılır ve verimli bir şekilde yapmanıza yardımcı olur. Bu kodu çalıştırdığınızda, tidyverse paketi ve bağlı paketleri R oturumunuza yükler ve kullanıma hazır hale getirir.
R’de train adlı veri çerçevesindeki tüm sütunlar için özet istatistikler üretir. Bu, veri setinizin genel bir özetini almak için kullanılır.
## # A tibble: 16 × 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 0 0 3 NA NA NA
## 3 CryoSleep lgl 0 0 2 0 0.35 1
## 4 Destination chr 0 0 4 NA NA NA
## 5 Age dbl 0 0 90 0 28.8 79
## 6 VIP lgl 0 0 2 0 0.02 1
## 7 RoomService dbl 0 0 1273 0 220. 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 withgroup dbl 0 0 2 0 0.45 1
## 14 deck chr 0 0 8 NA NA NA
## 15 side chr 0 0 2 NA NA NA
## 16 expense dbl 0 0 2336 0 1441. 35987
## # 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 4277 NA NA NA
## 2 HomePlanet chr 0 0 3 NA NA NA
## 3 CryoSleep lgl 0 0 2 0 0.36 1
## 4 Destination chr 0 0 4 NA NA NA
## 5 Age dbl 0 0 89 0 28.7 79
## 6 VIP lgl 0 0 2 0 0.02 1
## 7 RoomService dbl 0 0 842 0 215. 11567
## 8 FoodCourt dbl 0 0 902 0 429. 25273
## 9 ShoppingMall dbl 0 0 715 0 173. 8292
## 10 Spa dbl 0 0 833 0 296. 19844
## 11 VRDeck dbl 0 0 796 0 305. 22272
## 12 withgroup dbl 0 0 2 0 0.45 1
## 13 deck chr 0 0 8 NA NA NA
## 14 side chr 0 0 2 NA NA NA
## 15 expense dbl 0 0 1437 0 1418. 33666
Bu kod, “train_c” veri setindeki belirli sütunların faktörünün (faktör) dönüştürülmesini sağlar.
train_c$HomePlanet <- as.factor(train_c$HomePlanet)
train_c$Destination <- as.factor(train_c$Destination)
train_c$deck <- as.factor(train_c$deck)
train_c$side <- as.factor(train_c$side)Bu kod, “test_c” veri setindeki belirli sütunların faktörünün (faktör) dönüştürülmesini sağlar.
test_c$HomePlanet <- as.factor(test_c$HomePlanet)
test_c$Destination <- as.factor(test_c$Destination)
test_c$deck <- as.factor(test_c$deck)
test_c$side <- as.factor(test_c$side)library(DataExplorer)
create_report(train_c)
Bu kod, bir doğrusal regresyon modeli oluşturur.
Bu kod, doğrusal regresyon modelinin özet istatistiklerini görüntüler. Özet ayrıntıları içerir:
##
## Call:
## lm(formula = Transported ~ ., data = train_c[, 2:16])
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.42802 -0.30952 -0.03188 0.28870 1.79172
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.147e-01 4.000e-02 7.866 4.09e-15 ***
## HomePlanetEuropa 2.150e-01 2.883e-02 7.457 9.72e-14 ***
## HomePlanetMars 9.617e-02 1.475e-02 6.522 7.33e-11 ***
## CryoSleepTRUE 3.811e-01 1.152e-02 33.082 < 2e-16 ***
## DestinationPSO J318.5-22 -4.449e-02 1.803e-02 -2.468 0.013598 *
## DestinationTRAPPIST-1e -5.140e-02 1.133e-02 -4.538 5.76e-06 ***
## DestinationTRAPPIST-le 7.513e-03 3.142e-02 0.239 0.811033
## Age -2.182e-03 3.201e-04 -6.815 1.00e-11 ***
## VIPTRUE -3.757e-02 2.974e-02 -1.263 0.206555
## RoomService -1.176e-04 7.055e-06 -16.674 < 2e-16 ***
## FoodCourt 4.281e-05 3.054e-06 14.017 < 2e-16 ***
## ShoppingMall 7.969e-05 7.457e-06 10.686 < 2e-16 ***
## Spa -8.675e-05 4.109e-06 -21.110 < 2e-16 ***
## VRDeck -8.280e-05 4.115e-06 -20.120 < 2e-16 ***
## withgroup 1.958e-02 9.293e-03 2.107 0.035134 *
## deckB 1.107e-01 2.874e-02 3.852 0.000118 ***
## deckC 1.477e-01 2.900e-02 5.094 3.58e-07 ***
## deckD 5.090e-02 3.478e-02 1.463 0.143372
## deckE 8.494e-03 3.622e-02 0.235 0.814567
## deckF 1.031e-01 3.709e-02 2.778 0.005475 **
## deckG 5.791e-02 3.866e-02 1.498 0.134218
## deckT 6.610e-02 1.815e-01 0.364 0.715784
## sideS 8.542e-02 8.629e-03 9.899 < 2e-16 ***
## expense NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4012 on 8670 degrees of freedom
## Multiple R-squared: 0.3578, Adjusted R-squared: 0.3561
## F-statistic: 219.5 on 22 and 8670 DF, p-value: < 2.2e-16
Bu kod, veri setini eğitim ve test alt kümelerine böler.
library(caTools)
set.seed(123)
split = sample.split(train_c$Transported, SplitRatio = 0.75)
train_train = subset(train_c, split == TRUE)
train_test = subset(train_c, split == FALSE)Bu kod, bir doğrusal regresyon modeli oluşturur.
Bu kod, doğrusal regresyon modelinin özet istatistiklerini görüntüler
##
## Call:
## lm(formula = Transported ~ ., data = train_train[, -c(1)])
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.50155 -0.31213 -0.03018 0.29171 1.76723
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.482e-01 4.626e-02 7.527 5.89e-14 ***
## HomePlanetEuropa 1.971e-01 3.358e-02 5.871 4.55e-09 ***
## HomePlanetMars 8.600e-02 1.699e-02 5.061 4.29e-07 ***
## CryoSleepTRUE 3.772e-01 1.328e-02 28.402 < 2e-16 ***
## DestinationPSO J318.5-22 -6.107e-02 2.077e-02 -2.940 0.00330 **
## DestinationTRAPPIST-1e -5.426e-02 1.309e-02 -4.144 3.46e-05 ***
## DestinationTRAPPIST-le -9.053e-03 3.649e-02 -0.248 0.80407
## Age -2.339e-03 3.725e-04 -6.279 3.63e-10 ***
## VIPTRUE -1.616e-02 3.384e-02 -0.478 0.63290
## RoomService -1.175e-04 7.790e-06 -15.088 < 2e-16 ***
## FoodCourt 3.905e-05 3.467e-06 11.262 < 2e-16 ***
## ShoppingMall 8.282e-05 8.415e-06 9.842 < 2e-16 ***
## Spa -8.543e-05 4.704e-06 -18.160 < 2e-16 ***
## VRDeck -8.216e-05 4.777e-06 -17.197 < 2e-16 ***
## withgroup 1.601e-02 1.076e-02 1.488 0.13688
## deckB 1.049e-01 3.290e-02 3.188 0.00144 **
## deckC 1.441e-01 3.318e-02 4.343 1.43e-05 ***
## deckD 3.223e-02 3.974e-02 0.811 0.41744
## deckE -2.463e-02 4.213e-02 -0.585 0.55884
## deckF 8.346e-02 4.290e-02 1.945 0.05176 .
## deckG 4.007e-02 4.472e-02 0.896 0.37029
## deckT 5.680e-02 1.822e-01 0.312 0.75526
## sideS 8.895e-02 9.984e-03 8.909 < 2e-16 ***
## expense NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4013 on 6497 degrees of freedom
## Multiple R-squared: 0.358, Adjusted R-squared: 0.3558
## F-statistic: 164.7 on 22 and 6497 DF, p-value: < 2.2e-16
Bu kod, doğrusal doğrusal regresyon modeli aracılığıyla yeni veriler üzerinde tahminler yapar.
Bu kod, doğrusal regresyon modeli tarafından yapılan tahminlerin sınıflandırılmasını sağlar.
Bu kod, gerçek “Taşınan” değerlerin
Bu kod, bir karşılaştırma matrisi (karışıklık matrisi) oluşturur.
Bu kod, karşılaştırma matrisini ( cm) görüntüler. Karşılaştırma matrisi, gerçek ve tahmin edilen değerler arasındaki kesişme
## reg_transported_tahmin
## transported_gercek 0 1
## 0 902 177
## 1 323 771
Bu kod, doğrusal regresyon modelinin doğruluk (doğruluk) değeri hesapları.
## [1] 0.7699034
Bu kod, doğrusal regresyon bilgilerini kullanarak eğitim veri seti üzerinde tahminler ya
Bu kod, doğrusal regresyon modeli tarafından yapılan tahminlerin sınıflandırılmasını sağlar.
Bu kod, gerçek “Taşınan” değerlerinin sınıflandırılmasını sağlar.
Bu kod, bir karşılaştırma matrisi (karışıklık matrisi) oluşturur.
Bu kod, karşılaştırma matrisini ( cm) görüntüler. Karşılaştırma matrisi, gerçek ve t
## reg_transported_tahmin
## transported_gercek 0 1
## 0 2682 554
## 1 946 2338
Bu kod, doğrusal regresyon modelinin doğruluk (doğruluk) değeri hesapları.
## [1] 0.7699387
Bu kod, doğrusal regresyonun özelliklerini kullanarak test veri seti üzerinde tahminler yapar.
Bu kod, doğrusal regresyon modeli tarafından yapılan tahminlerin sınıflandırılmasını sağlar.
Bu kod, doğrusal regresyon modeli tarafından yapılan tahminlerin “Transported” değerleri ve yolcu kimlik numaralarını (PassengerId) saklar.
Bu kod, “transported” değişkenini bir vektöre ilaçları ve “Transported” adıyla bir değişkene atar.
Bu kod, “PassengerId” ve “Transported” değişkenlerini birleştirir ve bunları “submission_regresyon” olarak adlandırılan yeni bir veri çerçevesine atar.
Bu kod, submission_regresyonnesnesini bir çerçevelerden verine verir.
Bu kod, R’de string işlemenin sağlanmasını sağlayan stringrpaketleri yükler.
Bu kod, submission_regresyonveri çerçevesiki “Taşınan” sütunundaki değerlerin ilk harflerini büyük yaparak “taşınan” olarak adlandırılan yeni bir sütuna atar.
Bu kod, submission_regresyonveri çerçevesini “siniftahmini.csv” adlı bir CSV dosyasına yazar.
glmultiPaket, model seçimi ve model
uyumlaştırma için kullanılır. Bu paket, çoklu doğrusal modellerin
otomatik olarak seçilmesi ve karşılaştırılması için kullanışlıdır.
## Le chargement a nécessité le package : rJava
## Le chargement a nécessité le package : leaps
Bu R kodu, train_cveri çerçevesiki belirli sütunları logaritmik dönüşümle günceller. Bu, belirli sütunlardaki değerlerin doğal logaritmasını alarak yeni bir veri çerçeveleri ( train_c_log) oluşturur.
Bu R kodu, train_c_logveri çerçevesini kullanarak bir lineer regresyon modeli oluşturur. Model, Transporteddeğişkenleri bağımlı değişken olarak kullanır ve diğer değişkenler bağımsız değişkenlerdir.
modellog = lm(Transported ~ 1 + HomePlanet + Destination + deck + side + CryoSleep + Age + RoomService + FoodCourt + ShoppingMall + Spa + VRDeck, data = train_c_log)Bu kod, modellogdoğrusal regresyon modeli aracılığıyla test_c_logveri çerçeveli yeni veriler için tahminler yapar. Tahminler, reg_tahmin_logadı verilen bir değişkende saklanır.
Bu kod, reg_tahmin_logdeğişkenindeki tahmin edilen değerler 0,5 eşik değerini kullanarak ikili (DOĞRU/YANLIŞ) değerlerine ulaşır. Tahmin edilen değerler 0,5’ten büyükse TRUE, aksi takdirde FALSE olarak belirlenir ve sonuç reg_transported_test_c_tahmin_logdeğişkeninde saklanır.
Bu kodu R konsolunda çalıştırdığınızda veri setinizin ilk birkaç satırı görüntülenecektir.
## 1 2 3 4 5 6
## TRUE FALSE TRUE TRUE TRUE FALSE
Bu R kodu, reg_transported_test_c_tahmin_log adlı bir veri setindeki değerleri karakter dizisine dönüştürerek “Transported” adlı bir değişkene atar ve ayrıca test_c_log veri setindeki “PassengerId” sütununu “PassengerId” adlı bir değişkene atar. Ancak, kodu kullanmadan önce veri setlerinin ne tür veriler içerdiğini ve bu dönüşümlerin doğru olup olmadığını kontrol etmek önemlidir.
Bu kod, “Transported” değişkenini bir vektör olarak yeniden tanımlar.
Bu kod, “PassengerId” ve “Transported” değişkenlerini içeren iki vektörü birleştirerek bir veri çerçevesi oluşturur. “cbind()” fonksiyonu, sütun adlarına göre birleştirme yapar.
Bu kod, submission_regresyon_log değişkenini bir veri çerçevesine dönüştürür. Eğer submission_regresyon_log önceden bir veri çerçevesi değilse, bu dönüşüm gereksiz olabilir.
Bu kod, submission_regresyon_log veri çerçevesinin “Transported” sütunundaki metin değerlerini baş harfleri büyük olacak şekilde düzenler
Bu kod, submission_regresyon_log veri çerçevesini bir CSV dosyasına yazmak için kullanılır. CSV dosyası, sütun başlıklarıyla birlikte verileri içerir. row.names = FALSE argümanı, satır numaralarının CSV dosyasına yazılmamasını sağlar. quote = FALSE argümanı ise alıntı işaretlerinin kullanılmamasını belirtir.
##sonuç
##Logistic Regresyon
Bağımlı değişkenin ikili (binary) olduğu durumlarda kullanılan bir istatistiksel yöntemdir. Örneğin, bir olayın olup olmadığını (evet veya hayır, başarılı veya başarısız gibi) tahmin etmek için kullanılır. Bağımsız değişkenler ise sürekli (sayısal) ya da kategorik (sınıflandırılmış) olabilirler. Logistik regresyon, olasılıklar üzerinde çalışır ve bir olayın gerçekleşme şansını tahmin eder.
Bu kod, train veri setinin 2. sütunundan 15. sütununa kadar olan kısmını alarak train_set adında yeni bir veri seti oluşturur. train[2:15] ifadesi, train veri setindeki 2. sütundan 15. sütuna kadar olan sütunları seçer. Bu seçim sonucunda elde edilen veri, train_set adı verilen yeni bir veri setine atanır..
model = lm(y ~ x1 + x2 + x3, data = df)
Bu R kodu, lojistik regresyon modelini glm() fonksiyonuyla oluşturur. formula argümanı, bağımlı değişkenin (Transported) bağımsız değişkenlerle (. ile tüm değişkenler) ilişkisini tanımlar.
Bu kod, logistic adlı lojistik regresyon modelinin özet istatistiklerini görüntüler. summary() fonksiyonu, modelin katsayılarını, p-değerlerini, güven aralıklarını ve diğer istatistikleri sağlar.
##
## Call:
## glm(formula = Transported ~ ., family = binomial, data = train_train[,
## -c(1)])
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -4.607e-01 3.588e-01 -1.284 0.19917
## HomePlanetEuropa 1.556e+00 2.674e-01 5.819 5.91e-09 ***
## HomePlanetMars 5.323e-01 1.103e-01 4.827 1.39e-06 ***
## CryoSleepTRUE 1.285e+00 9.185e-02 13.987 < 2e-16 ***
## DestinationPSO J318.5-22 -5.125e-01 1.297e-01 -3.950 7.80e-05 ***
## DestinationTRAPPIST-1e -4.904e-01 9.441e-02 -5.194 2.05e-07 ***
## DestinationTRAPPIST-le -1.471e-01 2.436e-01 -0.604 0.54580
## Age -8.481e-03 2.461e-03 -3.446 0.00057 ***
## VIPTRUE -1.650e-01 2.916e-01 -0.566 0.57149
## RoomService -1.730e-03 1.136e-04 -15.225 < 2e-16 ***
## FoodCourt 4.581e-04 4.460e-05 10.271 < 2e-16 ***
## ShoppingMall 5.289e-04 7.559e-05 6.997 2.61e-12 ***
## Spa -1.969e-03 1.164e-04 -16.913 < 2e-16 ***
## VRDeck -1.902e-03 1.161e-04 -16.392 < 2e-16 ***
## withgroup 1.206e-01 7.192e-02 1.677 0.09346 .
## deckB 1.153e+00 2.912e-01 3.961 7.47e-05 ***
## deckC 2.481e+00 3.325e-01 7.463 8.48e-14 ***
## deckD 6.978e-01 3.262e-01 2.139 0.03242 *
## deckE 1.029e-01 3.378e-01 0.305 0.76065
## deckF 7.739e-01 3.420e-01 2.263 0.02363 *
## deckG 3.766e-01 3.511e-01 1.073 0.28345
## deckT -1.184e-01 1.866e+00 -0.063 0.94942
## sideS 5.988e-01 6.663e-02 8.987 < 2e-16 ***
## expense NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 9038.3 on 6519 degrees of freedom
## Residual deviance: 5600.2 on 6497 degrees of freedom
## AIC: 5646.2
##
## Number of Fisher Scoring iterations: 7
Bu kod, oluşturduğunuz lojistik regresyon modeli olan logistic kullanılarak yeni veriler üzerinde tahmin yapar. predict() fonksiyonu, modelin öngörülerini yapmak için kullanılır. newdata argümanı, tahminlerin yapılacağı yeni veri setini belirtir. Burada train_test[, -c(1,12)], tahminlerin yapıldığı veri setindeki ilk ve on ikinci sütunlar hariç tüm sütunları içerir.
Bu kod, logistic_tahmin adlı değişkenin ilk birkaç değerini görüntüler. head() fonksiyonu, belirtilen değişkenin veya veri setinin ilk birkaç satırını döndürür.
## 1 2 3 4 5 6
## -1.1175750 -11.0810548 0.9556805 -1.6375160 -0.4294310 -1.6887335
Bu kod, lojistik regresyon modelinin tahminlerine dayanarak, belirli bir kesme noktası (0.5) kullanarak sınıflandırma yapar. Eğer bir gözlem için modelin tahmini 0.5’ten büyükse, bu gözlem “Transported” olarak sınıflandırılır (1), aksi halde “Not Transported” olarak sınıflandırılır (0).
Bu kod, logistic_transported_tahmin adlı değişkenin ilk birkaç değerini görüntüler. Bu değişken, lojistik regresyon modelinin tahminlerine dayanarak 0 ve 1 değerleri arasında sınıflandırılmış tahminler içerir.
## 1 2 3 4 5 6
## 0 0 1 0 0 0
Bu kod, train_test veri setindeki “Transported” sütununda bulunan gerçek değerlere dayalı olarak bir sınıflandırma yapar.
tidymodels kütüphanesini çağırdınız. Bu kütüphane, veri analizi ve modelleme için kullanılan bir dizi araç ve işlevi içerir. tidymodels, veri ön işleme, modelleme ve sonuçların değerlendirilmesi gibi birçok işlemi kolaylaştıran bir araçlar koleksiyonudur.
## Warning: le package 'tidymodels' a été compilé avec la version R 4.3.3
## ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ──
## ✔ broom 1.0.6 ✔ rsample 1.2.1
## ✔ dials 1.2.1 ✔ tune 1.2.1
## ✔ infer 1.0.7 ✔ workflows 1.1.4
## ✔ modeldata 1.3.0 ✔ workflowsets 1.1.0
## ✔ parsnip 1.2.1 ✔ yardstick 1.3.1
## ✔ recipes 1.0.10
## Warning: le package 'dials' a été compilé avec la version R 4.3.3
## Warning: le package 'infer' a été compilé avec la version R 4.3.3
## Warning: le package 'modeldata' a été compilé avec la version R 4.3.3
## Warning: le package 'parsnip' a été compilé avec la version R 4.3.3
## Warning: le package 'recipes' a été compilé avec la version R 4.3.3
## Warning: le package 'rsample' a été compilé avec la version R 4.3.3
## Warning: le package 'tune' a été compilé avec la version R 4.3.3
## Warning: le package 'workflows' a été compilé avec la version R 4.3.3
## Warning: le package 'workflowsets' a été compilé avec la version R 4.3.3
## Warning: le package 'yardstick' a été compilé avec la version R 4.3.3
## ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
## ✖ scales::discard() masks purrr::discard()
## ✖ dplyr::filter() masks stats::filter()
## ✖ recipes::fixed() masks stringr::fixed()
## ✖ dplyr::lag() masks stats::lag()
## ✖ yardstick::spec() masks readr::spec()
## ✖ recipes::step() masks stats::step()
## • Dig deeper into tidy modeling with R at https://www.tmwr.org
Bu kod, “transported_gercek” ve “logistic_transported_tahmin” değişkenlerini içeren bir veri çerçevesi oluşturur. cbind() fonksiyonu, iki veya daha fazla vektörü sütun sütun birleştirir. data.frame() fonksiyonu, bir veya daha fazla vektörü bir veri çerçevesine dönüştürür.
Bu kod, “Transported” ve “logistic_transported_tahmin” sütunlarını faktör değişkenlere dönüştürür. Faktörler, kategorik verileri temsil etmek için kullanılır ve genellikle istatistiksel analizlerde veya modellemede kullanılır.
result$Transported = as.factor(result$Transported)
result$logistic_transported_tahmin = as.factor(result$logistic_transported_tahmin)Bu kod, tahmin edilen değerlerle gerçek değerler arasındaki doğruluğu hesaplamak için accuracy() fonksiyonunu kullanır. Bu fonksiyon, doğruluk metriklerini hesaplamak için kullanılır ve tahmin edilen ve gerçek değerlerin karşılaştırılmasına dayanır.
## # A tibble: 1 × 3
## .metric .estimator .estimate
## <chr> <chr> <dbl>
## 1 accuracy binary 0.786
conf_mat() fonksiyonu, bir karışıklık matrisi oluşturur. Karışıklık matrisi, bir sınıflandırma modelinin performansını değerlendirmek için kullanılır. Gerçek ve tahmin edilen sınıflar arasındaki uygun, yanlış pozitif, yanlış negatif ve yanlış pozitif tahminleri gösterir.
## Truth
## Prediction 0 1
## 0 918 305
## 1 161 789
caret kütüphanesi, sınıflandırma ve regresyon modelleri için önceden işleme, model seçimi, hiperparametre ayarı ve sonuçların değerlendirilmesi gibi bir dizi araç sağlar. Bu kütüphane, veri bilimi projelerinde yaygın olarak kullanılan bir araçtır.
Bu kod, gerçek ve tahmin edilen sınıflar arasındaki karışıklık matrisini hesaplar. table() fonksiyonu, iki vektör arasındaki çapraz frekans tablosunu oluşturur.
Bu kod, önceden hesaplanmış karışıklık matrisini görüntüler. Karışıklık matrisi, sınıflandırma modelinin gerçek ve tahmin edilen sınıflar arasındaki performansını değerlendirmek için kullanılır.
## logistic_transported_tahmin
## transported_gercek 0 1
## 0 918 161
## 1 305 789
Bu kod, doğru sınıflandırılan örneklerin (true positive ve true negative) toplamını, toplam örnek sayısına bölerek doğruluk değerini hesaplar. Doğruluk, bir sınıflandırma modelinin doğru tahmin etme yeteneğini ölçen bir metriktir
## [1] 0.7855499
Bu kod, caret paketindeki confusionMatrix() fonksiyonunu kullanarak karışıklık matrisini ve model performansı için çeşitli metrikleri hesaplar.
## Confusion Matrix and Statistics
##
## Reference
## Prediction 0 1
## 0 918 161
## 1 305 789
##
## Accuracy : 0.7855
## 95% CI : (0.7677, 0.8026)
## No Information Rate : 0.5628
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.5715
##
## Mcnemar's Test P-Value : 3.488e-11
##
## Sensitivity : 0.7506
## Specificity : 0.8305
## Pos Pred Value : 0.8508
## Neg Pred Value : 0.7212
## Prevalence : 0.5628
## Detection Rate : 0.4225
## Detection Prevalence : 0.4965
## Balanced Accuracy : 0.7906
##
## 'Positive' Class : 0
##
Bu kod, doğru sınıflandırılan örneklerin (true positive ve true negative) toplamını, toplam örnek sayısına bölerek doğruluk değerini hesaplar. Doğruluk, bir sınıflandırma modelinin doğru tahmin etme yeteneğini ölçen bir metriktir.
## [1] 0.7855499
logistic_bd adlı bir lojistik regresyon modeli oluşturuyorsunuz. Bu model, “Transported” değişkenini diğer bağımsız değişkenlerle ilişkilendirir ve veri setindeki ilk sütunu hariç tutar.
Bu kod, logistic_bd adlı lojistik regresyon modelini kullanarak yeni veriler üzerinde tahmin yapar. predict() fonksiyonu, modelin öngörülerini yapmak için kullanılır. newdata argümanı, tahminlerin yapılacağı yeni veri setini belirtir.
Bu kod, logistic_tahmin_bd adlı değişkenin değerlerine dayanarak, belirli bir kesme noktası (0.5) kullanarak “TRUE” ve “FALSE” değerleri arasında sınıflandırma yapar. Eğer bir gözlem için modelin tahmini 0.5’ten büyükse, bu gözlem “TRUE” olarak sınıflandırılır (1), aksi halde “FALSE” olarak sınıflandırılır (0).
logistic_transported_test_c_tahmin adlı değişkeni karakter dizisine dönüştürüyorsunuz ve “Transported” adlı bir değişkene atıyorsunuz. Ayrıca, “PassengerId” sütununu “test_c” veri setinden alıp “PassengerId” adlı bir değişkene atıyorsunuz.
Bu kod, “Transported” adlı değişkeni bir vektör olarak yeniden tanımlar. Ancak, genellikle bir değişken zaten bir vektör olarak tanımlanmışsa, onu tekrar vektör olarak tanımlamak gerekli değildir.
Bu kod, “PassengerId” ve “Transported” değişkenlerini içeren bir veri çerçevesi oluşturur. cbind() fonksiyonu, sütun başlıklarına göre birleştirme yapar.
Bu kod, submission_logistic değişkenini bir veri çerçevesine dönüştürür. Eğer submission_logistic önceden bir veri çerçevesi değilse, bu dönüşüm gereksiz olabilir. Ancak, bazı durumlarda, belirli bir veri yapısına uygun olarak kullanmak isteyebilirsiniz.
Bu kod, “Transported” sütunundaki metin değerlerinin baş harflerini büyük yapar. Bu işlev genellikle kategorik verilerin düzenlenmesinde veya raporlama için veri hazırlığı aşamasında kullanılır.
Bu kod, submission_logistic veri çerçevesini bir CSV dosyasına yazmak için kullanılır.
##sonuç
Bu kod, train_c_log veri seti
üzerinde bir lojistik regresyon modeli olan logistic_bd modelini
oluşturur. Bağımlı değişken olarak “Transported” değişkenini ve bağımsız
değişken olarak diğer tüm değişkenleri kullanır. Ayrıca, family =
binomial argümanıyla lojistik regresyon modelini belirtir.
Bu kod, logistic_bd adlı lojistik regresyon modelini kullanarak yeni veriler üzerinde tahmin yapar. predict() fonksiyonu, modelin öngörülerini yapmak için kullanılır.
Bu kod, logistic_tahmin_bd adlı değişkenin değerlerine dayanarak, belirli bir kesme noktası (0.5) kullanarak “TRUE” ve “FALSE” değerleri arasında sınıflandırma yapar.
logistic_transported_test_c_tahmin adlı değişkeni karakter dizisine dönüştürüyorsunuz ve “Transported” adlı bir değişkene atıyorsunuz. Ayrıca, “PassengerId” sütununu “test_c” veri setinden alıp “PassengerId” adlı bir değişkene atıyorsunuz.
Bu kod, “Transported” adlı değişkeni bir vektör olarak yeniden tanımlar. Ancak, genellikle bir değişken zaten bir vektör olarak tanımlanmışsa, onu tekrar vektör olarak tanımlamak gerekli değildir
Bu kod, “PassengerId” ve “Transported” değişkenlerini içeren bir veri çerçevesi oluşturur. cbind() fonksiyonu, sütun başlıklarına göre birleştirme yapar
Bu kod, submission_logistic değişkenini bir veri çerçevesine dönüştürür. Eğer submission_logistic önceden bir veri çerçevesi değilse, bu dönüşüm gereksiz olabilir. Ancak, bazı durumlarda, belirli bir veri yapısına uygun olarak kullanmak isteyebilirsiniz.
Bu kod, “submission_logistic” veri çerçevesindeki “Transported” sütunundaki metin değerlerinin baş harflerini büyük yapar. Bu işlev genellikle kategorik verilerin düzenlenmesinde veya raporlama için veri hazırlığı aşamasında kullanılır.
Bu kod, “submission_llogistic” veri çerçevesini bir CSV dosyasına yazmak için kullanılır. CSV dosyası, sütun başlıklarıyla birlikte verileri içerir. row.names = FALSE argümanı, satır numaralarının CSV dosyasına yazılmamasını sağlar. quote = FALSE argümanı ise alıntı işaretlerinin kullanılmamasını belirtir.
##sonuç
Naive Bayes
Naive Bayes, sınıflandırma görevlerinde kullanılan basit ve etkili bir istatistiksel algoritmadır. Bu yöntem, Bayes teoremine dayanır ve her özelliğin (feature) diğerlerinden bağımsız olduğu varsayımı üzerine kuruludur (bu yüzden “naive” yani “saf” adını alır). Naive Bayes, özellikle metin sınıflandırma gibi büyük veri setlerinde hızlı ve doğru sonuçlar verebilir. E-posta spam tespiti, duyarlılık analizi ve diğer birçok sınıflandırma problemlerinde yaygın olarak kullanılır.
Bu kod, e1071 paketi ile Naive Bayes modelini eğitir ve testing_set üzerinde tahmin yapar, sonuçları bir veri çerçevesine dönüştürür.
e1071 kütüphanesi, destek vektör makineleri (SVM) ve diğer istatistiksel metotları içeren bir R paketidir. Bu paket, sınıflandırma, regresyon, kümeleme ve yoğunluk tahmini gibi bir dizi makine öğrenimi ve istatistiksel teknikleri uygulamak için kullanılır.
Bu kod, naive Bayes sınıflandırma modelini oluşturur. naiveBayes() fonksiyonu, veriye dayalı olarak bir sınıflandırma modeli oluşturur.
fit_nb değişkeni, oluşturulan naive Bayes sınıflandırma modelini temsil eder
##
## Naive Bayes Classifier for Discrete Predictors
##
## Call:
## naiveBayes.default(x = X, y = Y, laplace = laplace)
##
## A-priori probabilities:
## Y
## FALSE TRUE
## 0.496319 0.503681
##
## Conditional probabilities:
## HomePlanet
## Y Earth Europa Mars
## FALSE 0.6236094 0.1739802 0.2024104
## TRUE 0.4631547 0.3279537 0.2088916
##
## CryoSleep
## Y FALSE TRUE
## FALSE 0.8702101 0.1297899
## TRUE 0.4336175 0.5663825
##
## Destination
## Y 55 Cancri e PSO J318.5-22 TRAPPIST-1e TRAPPIST-le
## FALSE 0.16069221 0.09363412 0.72404203 0.02163164
## TRUE 0.24969549 0.09043849 0.64007308 0.01979294
##
## Age
## Y [,1] [,2]
## FALSE 30.01092 13.45222
## TRUE 27.85527 14.87646
##
## VIP
## Y FALSE TRUE
## FALSE 0.97126082 0.02873918
## TRUE 0.98142509 0.01857491
##
## RoomService
## Y [,1] [,2]
## FALSE 402.20365 916.6547
## TRUE 56.93484 246.8105
##
## FoodCourt
## Y [,1] [,2]
## FALSE 396.2923 1258.123
## TRUE 514.8018 1918.620
##
## ShoppingMall
## Y [,1] [,2]
## FALSE 160.2250 432.1103
## TRUE 182.7135 748.5867
##
## Spa
## Y [,1] [,2]
## FALSE 561.16193 1554.2636
## TRUE 61.11571 264.0556
##
## VRDeck
## Y [,1] [,2]
## FALSE 533.98733 1542.8703
## TRUE 69.07186 295.0542
##
## withgroup
## Y [,1] [,2]
## FALSE 0.3952410 0.4889780
## TRUE 0.4960414 0.5000605
##
## deck
## Y A B C D E
## FALSE 0.0296662546 0.0540791100 0.0574783684 0.0661310260 0.1344252163
## TRUE 0.0310596833 0.1385505481 0.1199756395 0.0490255786 0.0676004872
## deck
## Y F G T
## FALSE 0.3637206428 0.2932632880 0.0012360939
## TRUE 0.2828867235 0.3105968331 0.0003045067
##
## side
## Y P S
## FALSE 0.5571693 0.4428307
## TRUE 0.4448843 0.5551157
##
## expense
## Y [,1] [,2]
## FALSE 2053.8702 3224.219
## TRUE 884.6376 2307.962
Bu kod, fit_nb adlı naive Bayes sınıflandırma modelini kullanarak yeni veriler üzerinde tahmin yapar. predict() fonksiyonu, modelin öngörülerini yapmak için kullanılır.
Bu kod, “pred_nb” adlı veri çerçevesinin ilk altı satırını görüntüler. Bu veri çerçevesi, naive Bayes modelinin tahmin ettiği sınıfların olasılık tahminlerini içerir. head() fonksiyonu, bir veri çerçevesinin veya veri kümesinin ilk birkaç satırını görüntüler.
## FALSE. TRUE.
## 1 0.22238032 7.776197e-01
## 2 1.00000000 8.663595e-135
## 3 0.02729931 9.727007e-01
## 4 0.59276719 4.072328e-01
## 5 0.02410104 9.758990e-01
## 6 0.38468138 6.153186e-01
Bu kod, naive Bayes modelinin tahmin ettiği olasılıklara dayanarak sınıflandırma yapar
Bu kod, “Transported_pred_nb” adlı değişkenin ilk altı değerini görüntüler. Bu değişken, naive Bayes modelinin tahmin ettiği sınıfları temsil eder
## [1] 1 0 1 0 1 1
Bu kod, “train_test” veri setindeki “Transported” sütununu kontrol eder. Eğer bir gözlem “TRUE” ise (yani, 1 ise), bu gözlem “1” olarak sınıflandırılır. Aksi takdirde, gözlem “0” olarak sınıflandırılır.
Bu kod, “Transported_train_test” adlı değişkenin ilk altı değerini görüntüler. Bu değişken, “train_test” veri setindeki “Transported” sütununu temsil eder.
## Transported
## [1,] 1
## [2,] 0
## [3,] 1
## [4,] 0
## [5,] 0
## [6,] 0
Bu kod, “Transported_train_test” ve “Transported_pred_nb” değişkenlerini kullanarak bir karşılaştırma tablosu oluşturur.
## Transported_pred_nb
## Transported_train_test 0 1
## 0 480 599
## 1 76 1018
Bu kod, doğru sınıflandırılmış gözlemlerin toplam sayısını toplam gözlem sayısına bölerek doğruluk oranını hesaplar.
## [1] 0.6893695
Bu kod, “train_c” veri setindeki bağımsız değişkenlere dayalı olarak bir naive Bayes sınıflandırma modeli olan “nb”yi oluşturur. “Transported” değişkeni sınıflandırma hedefi olarak kullanılırken, diğer değişkenler tahminlerin yapılması için kullanılır.
Bu kod, oluşturulan naive Bayes modelini (“nb”) kullanarak yeni veriler üzerinde tahmin yapar. predict() fonksiyonu, modelin öngörülerini yapmak için kullanılır. newdata argümanı, tahminlerin yapılacağı yeni veri setini belirtir.
Bu kod, “pred_nb” veri çerçevesindeki “TRUE.” sütunundaki olasılıklara dayanarak sınıflandırma yapar. Eğer bir gözlem için “TRUE” sınıfının tahmin edilen olasılığı 0.5’ten büyükse, bu gözlem “TRUE” olarak sınıflandırılır.
Bu kod, naive Bayes modelinin tahminlerini içeren bir CSV dosyası oluşturur. İlk olarak, “Transported_pred_nb” değişkeni bir karakter dizisine dönüştürülür ve “Transported” adı altında atanır. Daha sonra, “test_c” veri setinden “PassengerId” sütunu alınır.
Transported = as.character(Transported_pred_nb)
PassengerId = test_c$PassengerId
Transported = as.vector(Transported)
sample_submission = cbind(PassengerId, Transported)
sample_submission = as.data.frame(sample_submission)
sample_submission$Transported = str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_nb.csv", row.names = FALSE, quote = FALSE)##sonuç
SVM(Destek Vektor Makineleri)
SVM (Support Vector Machine), veri noktalarını en iyi ayıran karar sınırını (hiper düzlem) bulmaya çalışan bir makine öğrenmesi algoritmasıdır. Özellikle sınıflandırma problemlerinde kullanılır. Algoritma, farklı sınıflara ait veri noktalarını birbirinden ayıran hiper düzlemi en geniş marjla bulur. SVM, doğrusal olmayan sınıflandırma için çekirdek hilelerini (kernel tricks) kullanarak yüksek boyutlu uzaylarda da etkili bir şekilde çalışabilir.
SVM Modeli Oluşturma: ‘Transported’ değişkenini, eğitim verisi (training_set) kullanarak tahmin etmek için doğrusal çekirdekli bir sınıflandırma SVM modeli oluşturuyorsunuz.
Tahmin Yapma: Oluşturduğunuz SVM modeli (fit_svm) ile yeni veri seti (testing_set) için ‘Transported’ durumunu tahmin ediyorsunuz.
Tahminleri Veri Çerçevesine Dönüştürme: Tahminler, preds adında bir veri çerçevesine dönüştürülüyor.
Bu, makine öğrenmesinde sıkça kullanılan bir sınıflandırma yöntemidir.
Bu kod, destek vektör makinesi (SVM) sınıflandırma modelini (“fit_svm”) oluşturur. svm() fonksiyonu, veriye dayalı olarak bir SVM modeli oluşturur.
fit_svm = svm(Transported ~ ., data = train_train[, -1],
type= 'C-classification',
kernel = 'linear')
preds = predict(fit_svm, newdata = train_test[, -c(1, 12)], type = "raw") %>%
data.frame()Bu kod, “preds” adlı veri çerçevesinin ilk altı satırını görüntüler. Bu veri çerçevesi, SVM modelinin tahmin ettiği sınıfların olasılık tahminlerini içerir.
## .
## 1 FALSE
## 2 FALSE
## 3 TRUE
## 4 FALSE
## 5 FALSE
## 6 FALSE
Bu kod, SVM modelinin tahminlerini ve gerçek sınıfları karşılaştırmak için bir karşılaştırma tablosu oluşturur.
Transported_pred_svm = ifelse(preds$. == TRUE, 1, 0)
cm = table(Transported_train_test, Transported_pred_svm)
cm## Transported_pred_svm
## Transported_train_test 0 1
## 0 836 243
## 1 180 914
Bu kod, doğru sınıflandırılmış gözlemlerin toplam sayısını toplam gözlem sayısına bölerek doğruluk oranını hesaplar.
## [1] 0.8053382
Bu kod, destek vektör makinesi (SVM) sınıflandırma modelini (“fit_svm”) oluşturur. svm() fonksiyonu, veriye dayalı olarak bir SVM modeli oluşturur
fit_svm = svm(Transported ~ ., data = train_c[, -1],
type= 'C-classification',
kernel = 'linear')
preds = predict(fit_svm, newdata = test_c, type ="raw")%>%
data.frame()Bu kod, “preds” adlı veri çerçevesinin ilk altı satırını görüntüler. Bu veri çerçevesi, SVM modelinin tahmin ettiği sınıfların olasılık tahminlerini içerir.
## .
## 1 TRUE
## 2 FALSE
## 3 TRUE
## 4 TRUE
## 5 TRUE
## 6 TRUE
Bu kod, “preds” veri çerçevesindeki tahmin edilen sınıfların “TRUE.” sütunundaki değerlere dayanarak sınıflandırma yapar.
Bu kod, SVM modelinin tahminlerini içeren bir CSV dosyası oluşturur. İlk olarak, “Transported_pred_svm” değişkeni bir karakter dizisine dönüştürülür ve “Transported” adı altında atanır.
Transported = as.character(Transported_pred_svm)
PassengerId = test_c$PassengerId
Transported = as.vector(Transported)
sample_submission = cbind(PassengerId, Transported)
sample_submission = as.data.frame(sample_submission)
sample_submission$Transported = str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_svm.csv", row.names = FALSE, quote = FALSE)##sonuç
SVM radial (kernel)
SVM (Destek Vektör Makineleri) radial
(radyal) çekirdek (kernel) kullanımı, verileri sınıflandırmak için
karmaşık sınırlar oluşturabilen bir yöntemdir. Radial çekirdek, veri
noktalarını yüksek boyutlu bir uzaya dönüştürerek, doğrusal olarak
ayrılamayan veri setlerinin doğrusal olarak ayrılabilir hale gelmesini
sağlar. Bu çekirdek, özellikle veri noktaları arasındaki benzerlikleri
ölçmek için uzaklık temelli bir işlev kullanır ve genellikle karmaşık
veri yapılarında iyi performans gösterir.
Svm_ker_son, train_set veri seti üzerinde eğitilen ve yanıt değişkeni olarak Transported kullanılan, radyal temel fonksiyonlu (RBF) bir Sınıflandırma için Destek Vektör Makinesi (SVM) modelidir.
Bu kod, radial kernel kullanarak bir SVM sınıflandırma modeli oluşturur ve bu modeli kullanarak yeni veriler üzerinde tahminler yapar.
fit_svm = svm(Transported ~ ., data = train_train[, -1],
type= 'C-classification',
kernel = 'radial')
preds = predict(fit_svm, newdata = train_test[, -c(1, 12)], type ="raw")%>%
data.frame()Bu kod, SVM modelinin tahminlerini ve gerçek sınıfları karşılaştırmak için bir karşılaştırma tablosu oluşturur. İlk olarak, “preds” veri çerçevesindeki tahmin edilen sınıfların “.1” sütunundaki değerlere dayanarak sınıflandırma yapar.
Transported_pred_svm = ifelse(preds$. == TRUE, 1, 0)
cm = table(Transported_train_test, Transported_pred_svm)
cm## Transported_pred_svm
## Transported_train_test 0 1
## 0 849 230
## 1 202 892
Bu kod, doğru sınıflandırılmış gözlemlerin toplam sayısını toplam gözlem sayısına bölerek doğruluk oranını hesaplar.
## [1] 0.8011965
fit_svm = svm(Transported ~ ., data = train_c[, -1],
type= 'C-classification',
kernel = 'radial')
preds = predict(fit_svm, newdata = test_c, type ="raw")%>%
data.frame()Bu kod, radial kernel kullanarak bir SVM sınıflandırma modeli oluşturur ve bu modeli kullanarak yeni veriler üzerinde tahminler yapar. Aşağıda adım adım açıklama bulunmaktadır:
Bu kod, SVM modelinin radial kernel kullanarak tahmin ettiği sınıfları içeren bir CSV dosyası oluşturur.
Transported = as.character(Transported_pred_svm)
PassengerId = test_c$PassengerId
Transported = as.vector(Transported)
sample_submission = cbind(PassengerId, Transported)
sample_submission = as.data.frame(sample_submission)
sample_submission$Transported = str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_svm_radial.csv", row.names = FALSE, quote = FALSE)##sonuç
Decision Trees
rpart fonksiyonu, “Transported” değişkenini diğer tüm değişkenlere bağlı olarak tahmin etmek üzere eğitilmiş bir karar ağacı modelini oluşturuyor. Bu model, “training_set” adlı bir veri seti üzerinde eğitilmiş ve sonuçlarını içermektedir. Complexity Parameters (CP) ve Splits:
Karar ağacının karmaşıklığını kontrol etmek için kullanılan “CP” değerleri gösterilmektedir. Bu değerler, ağacın genişletilme veya budanma düzeyini belirler. Ağacın kaç kere bölündüğü, her bölünme noktasındaki etkileşimli değişkenleri ve bu bölünmelerin model performansındaki iyileşmeyi gösterir. Variable Importance (Değişken Önem Sıralaması):
Modeldeki değişkenlerin önem sıralamasını gösterir. “CryoSleep,” “Spa,” “VRDeck,” gibi değişkenlerin model tahminlerine olan katkıları sıralanmıştır. Bu, hangi özelliklerin modelin başarısına daha fazla etki ettiğini anlamak için önemli bir bilgidir. Node ve Splits (Düğüm ve Bölünmeler):
Ağacın her bir düğümü ve bu düğümlerdeki bölünme kriterleri açıklanmıştır. Örneğin, “CryoSleep < 0.5” ifadesi, bu düğümdeki bölünme kriterini gösterir. Her düğümün altında, o düğüme düşen gözlem sayısı, beklenen hata oranı ve sınıflandırma için tahmin edilen olasılıklar gibi bilgiler bulunmaktadır. Surrogate Splits:
Eğer bir değişken bölünme kriteri olarak kullanılamıyorsa, yerine kullanılan “yedek” (surrogate) değişkenler gösterilir. Bu değişkenler, orijinal değişkenin yerini alabilen alternatiflerdir.
Bu kod, “ggplot2” paketini kullanarak bir nokta grafiği oluşturur. Grafiğin x ekseninde “HomePlanet” değişkeni, y ekseninde “deck” değişkeni yer alır. Noktaların rengi, “Transported” değişkenine göre belirlenir. Ayrıca, noktaların şekli de “Transported” değişkenine göre belirlenir.
P = ggplot(train_train, aes(x=HomePlanet, y=deck, color=factor(Transported))) +
geom_point(aes(shape=factor(Transported)), size=3) +
scale_color_viridis_d() + labs(title = "", x="HomePlanet", y="deck") + theme_minimal() + theme(legend.position ="top")
PBu kod, rpart, rpart.plot, randomForest ve caret paketlerini yükler. rpart ve rpart.plot, karar ağaçları oluşturmak ve görselleştirmek için kullanılırken, randomForest rastgele orman modeli oluşturmak için kullanılır. caret paketi ise model eğitimi ve performans değerlendirmesi için genel araçlar sağlar.
Bu kod, rpart paketini kullanarak bir karar ağacı modeli oluşturur ve oluşturulan modelin özet istatistiklerini görüntüler.
## Call:
## rpart::rpart(formula = Transported ~ ., data = train_train[,
## -1])
## n= 6520
##
## CP nsplit rel error xerror xstd
## 1 0.23321359 0 1.0000000 1.0001811 0.0001977604
## 2 0.04905507 1 0.7667864 0.7671015 0.0103212807
## 3 0.02807107 2 0.7177313 0.7180892 0.0090936774
## 4 0.02784643 3 0.6896603 0.7039381 0.0095638265
## 5 0.01770479 4 0.6618138 0.6661699 0.0097007659
## 6 0.01381587 5 0.6441090 0.6496207 0.0100644975
## 7 0.01194576 6 0.6302932 0.6389139 0.0102048399
## 8 0.01164524 7 0.6183474 0.6310762 0.0102269497
## 9 0.01000000 8 0.6067022 0.6242632 0.0102752753
##
## Variable importance
## expense CryoSleep FoodCourt Spa VRDeck RoomService
## 23 17 13 12 11 9
## deck HomePlanet ShoppingMall Age Destination
## 5 5 2 1 1
##
## Node number 1: 6520 observations, complexity param=0.2332136
## mean=0.503681, MSE=0.2499865
## left son=2 (3795 obs) right son=3 (2725 obs)
## Primary splits:
## expense < 0.5 to the right, improve=0.2332136, (0 missing)
## CryoSleep < 0.5 to the left, improve=0.2095384, (0 missing)
## RoomService < 0.5 to the right, improve=0.1254121, (0 missing)
## Spa < 0.5 to the right, improve=0.1142180, (0 missing)
## VRDeck < 0.5 to the right, improve=0.1084074, (0 missing)
## Surrogate splits:
## CryoSleep < 0.5 to the left, agree=0.932, adj=0.837, (0 split)
## Spa < 0.5 to the right, agree=0.784, adj=0.484, (0 split)
## FoodCourt < 0.5 to the right, agree=0.770, adj=0.451, (0 split)
## VRDeck < 0.5 to the right, agree=0.768, adj=0.444, (0 split)
## RoomService < 0.5 to the right, agree=0.757, adj=0.419, (0 split)
##
## Node number 2: 3795 observations, complexity param=0.02807107
## mean=0.2990777, MSE=0.2096302
## left son=4 (3243 obs) right son=5 (552 obs)
## Primary splits:
## FoodCourt < 1331 to the left, improve=0.05751186, (0 missing)
## ShoppingMall < 627.5 to the left, improve=0.04530804, (0 missing)
## RoomService < 365.5 to the right, improve=0.04440387, (0 missing)
## Spa < 257.5 to the right, improve=0.03347453, (0 missing)
## VRDeck < 721 to the right, improve=0.02290457, (0 missing)
## Surrogate splits:
## expense < 5981 to the left, agree=0.885, adj=0.210, (0 split)
## deck splits as RRRLLLLL, agree=0.884, adj=0.203, (0 split)
## HomePlanet splits as LRL, agree=0.878, adj=0.159, (0 split)
## Spa < 8955.5 to the left, agree=0.856, adj=0.009, (0 split)
## VRDeck < 11692 to the left, agree=0.856, adj=0.009, (0 split)
##
## Node number 3: 2725 observations, complexity param=0.04905507
## mean=0.7886239, MSE=0.1666963
## left son=6 (1448 obs) right son=7 (1277 obs)
## Primary splits:
## deck splits as RRRRLRL-, improve=0.17601740, (0 missing)
## HomePlanet splits as LRR, improve=0.12704810, (0 missing)
## Destination splits as RLLR, improve=0.02774089, (0 missing)
## CryoSleep < 0.5 to the left, improve=0.02268236, (0 missing)
## side splits as LR, improve=0.01498707, (0 missing)
## Surrogate splits:
## HomePlanet splits as LRR, agree=0.934, adj=0.860, (0 split)
## Age < 24.5 to the left, agree=0.626, adj=0.201, (0 split)
## Destination splits as RLLR, agree=0.596, adj=0.137, (0 split)
## withgroup < 0.5 to the left, agree=0.583, adj=0.110, (0 split)
## VIP < 0.5 to the left, agree=0.538, adj=0.014, (0 split)
##
## Node number 4: 3243 observations, complexity param=0.02784643
## mean=0.2537774, MSE=0.1893744
## left son=8 (2577 obs) right son=9 (666 obs)
## Primary splits:
## ShoppingMall < 541.5 to the left, improve=0.07390355, (0 missing)
## RoomService < 365.5 to the right, improve=0.03464407, (0 missing)
## Spa < 240.5 to the right, improve=0.03327259, (0 missing)
## VRDeck < 114 to the right, improve=0.02784287, (0 missing)
## expense < 2867.5 to the right, improve=0.01811461, (0 missing)
## Surrogate splits:
## expense < 18644 to the left, agree=0.795, adj=0.003, (0 split)
##
## Node number 5: 552 observations, complexity param=0.01770479
## mean=0.5652174, MSE=0.2457467
## left son=10 (123 obs) right son=11 (429 obs)
## Primary splits:
## Spa < 1372.5 to the right, improve=0.21272970, (0 missing)
## VRDeck < 1063.5 to the right, improve=0.17089500, (0 missing)
## expense < 5395 to the right, improve=0.06611166, (0 missing)
## FoodCourt < 2513 to the left, improve=0.02780045, (0 missing)
## deck splits as LLRLLRRL, improve=0.02705865, (0 missing)
## Surrogate splits:
## expense < 12647 to the right, agree=0.790, adj=0.057, (0 split)
## Age < 13.5 to the left, agree=0.779, adj=0.008, (0 split)
## RoomService < 3895.5 to the right, agree=0.779, adj=0.008, (0 split)
##
## Node number 6: 1448 observations
## mean=0.6277624, MSE=0.2336768
##
## Node number 7: 1277 observations
## mean=0.9710258, MSE=0.02813466
##
## Node number 8: 2577 observations, complexity param=0.01194576
## mean=0.193636, MSE=0.1561411
## left son=16 (2067 obs) right son=17 (510 obs)
## Primary splits:
## FoodCourt < 456.5 to the left, improve=0.04838893, (0 missing)
## expense < 1447.5 to the right, improve=0.04016842, (0 missing)
## HomePlanet splits as RLL, improve=0.02539308, (0 missing)
## Spa < 537.5 to the right, improve=0.01895890, (0 missing)
## RoomService < 400.5 to the right, improve=0.01706521, (0 missing)
## Surrogate splits:
## expense < 12373 to the left, agree=0.804, adj=0.008, (0 split)
## Spa < 13650 to the left, agree=0.803, adj=0.006, (0 split)
## VRDeck < 10123.5 to the left, agree=0.802, adj=0.002, (0 split)
## deck splits as LLLLLLLR, agree=0.802, adj=0.002, (0 split)
##
## Node number 9: 666 observations
## mean=0.4864865, MSE=0.2498174
##
## Node number 10: 123 observations
## mean=0.1382114, MSE=0.119109
##
## Node number 11: 429 observations, complexity param=0.01381587
## mean=0.6876457, MSE=0.2147891
## left son=22 (143 obs) right son=23 (286 obs)
## Primary splits:
## VRDeck < 611 to the right, improve=0.24438400, (0 missing)
## Spa < 225 to the right, improve=0.05300377, (0 missing)
## FoodCourt < 3119.5 to the left, improve=0.05168044, (0 missing)
## side splits as LR, improve=0.04004566, (0 missing)
## RoomService < 1719.5 to the right, improve=0.03930897, (0 missing)
## Surrogate splits:
## expense < 6032 to the right, agree=0.702, adj=0.105, (0 split)
## Age < 53.5 to the right, agree=0.674, adj=0.021, (0 split)
## FoodCourt < 12128.5 to the right, agree=0.671, adj=0.014, (0 split)
##
## Node number 16: 2067 observations
## mean=0.1504596, MSE=0.1278215
##
## Node number 17: 510 observations, complexity param=0.01164524
## mean=0.3686275, MSE=0.2327413
## left son=34 (204 obs) right son=35 (306 obs)
## Primary splits:
## expense < 1447.5 to the right, improve=0.15990760, (0 missing)
## VRDeck < 86.5 to the right, improve=0.10060710, (0 missing)
## HomePlanet splits as RLL, improve=0.07952538, (0 missing)
## Spa < 500 to the right, improve=0.07353369, (0 missing)
## deck splits as LLLLRRRL, improve=0.05075444, (0 missing)
## Surrogate splits:
## HomePlanet splits as RLL, agree=0.873, adj=0.681, (0 split)
## deck splits as LLLLRRRL, agree=0.839, adj=0.598, (0 split)
## VRDeck < 213.5 to the right, agree=0.818, adj=0.544, (0 split)
## Spa < 219.5 to the right, agree=0.792, adj=0.480, (0 split)
## FoodCourt < 907 to the right, agree=0.722, adj=0.304, (0 split)
##
## Node number 22: 143 observations
## mean=0.3636364, MSE=0.231405
##
## Node number 23: 286 observations
## mean=0.8496503, MSE=0.1277446
##
## Node number 34: 204 observations
## mean=0.1323529, MSE=0.1148356
##
## Node number 35: 306 observations
## mean=0.5261438, MSE=0.2493165
Bu kod, rpart.plot paketini kullanarak oluşturulan karar ağacını görselleştirir
Bu kod, oluşturulan karar ağacı modelini kullanarak yeni verilerde tahminler yapar.
Bu kod, oluşturulan tahminlerin ilk altı satırını görüntüler.
## .
## 1 0.1504596
## 2 0.1382114
## 3 0.8496503
## 4 0.1504596
## 5 0.4864865
## 6 0.1504596
Bu kod, oluşturulan karar ağacı modeli tarafından yapılan tahminlerin ve gerçek değerlerin karşılaştırıldığı bir çapraz tabloyu oluşturur
Transported_pred_tree = ifelse(preds$. >0.5, 1, 0)
cm = table(Transported_train_test, Transported_pred_tree)
cm## Transported_pred_tree
## Transported_train_test 0 1
## 0 807 272
## 1 237 857
Bu kod, doğru sınıflandırılmış gözlemlerin toplam sayısını toplam gözlem sayısına bölerek doğruluk oranını hesaplar.
## [1] 0.7657616
Bu kod, oluşturulan karar ağacı modelini kullanarak test verilerinde tahminler yapar.
fit_tree = rpart::rpart(Transported ~ ., data = train_c[, -1])
preds= predict(fit_tree, newdata = test_c) %>%
data.frame()Bu kod, karar ağacı modeli tarafından yapılan tahminlerin 0.5’ten büyük olup olmadığını kontrol eder
Bu kodu çalıştırdığınızda, “sub_tree.csv” adlı bir CSV dosyası oluşturulur ve bu dosyaya karar ağacı modelinin tahminleri yazılır. Bu dosya daha sonra başka bir programda açılabilir veya veri analizi için kullanılabilir.
Transported = as.character(Transported_pred_tree)
PassengerId = test_c$PassengerId
Transported = as.vector(Transported)
sample_submission = cbind(PassengerId, Transported)
sample_submission = as.data.frame(sample_submission)
sample_submission$Transported = str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_tree.csv", row.names = FALSE, quote = FALSE)##sonuç
RANDOM FOREST
Random Forest, birden fazla karar ağacını bir araya getirerek çalışan bir makine öğrenmesi algoritmasıdır. Her ağaç birbirinden bağımsız olarak ve rastgele seçilen veri alt kümeleri üzerinde eğitilir. Sonuçta, tüm ağaçların tahminleri birleştirilerek daha doğru ve kararlı bir tahmin elde edilir. Bu yöntem hem sınıflandırma hem de regresyon problemlerinde kullanılır.
Bu kod, train_set veri seti kullanılarak Transported hedef değişkeni ile bir Random Forest modeli (fit_rf) oluşturur. Transported ~ . ifadesi, Transported’ı bağımlı değişken ve diğer tüm sütunları bağımsız değişken olarak kullanılacağını belirtir.
Bu kodu çalıştırdığınızda, veri setinizdeki bağımsız değişkenlerin “Transported” değişkenine olan etkisini göz önünde bulundurarak bir rastgele orman modeli oluşturulur.
Bu kod, oluşturulan rastgele orman modelinin değişken önem sıralamasını görüntüler
## IncNodePurity
## HomePlanet 48.125593
## CryoSleep 107.989293
## Destination 30.575915
## Age 91.836683
## VIP 2.516955
## RoomService 125.936343
## FoodCourt 113.623386
## ShoppingMall 96.731658
## Spa 131.332461
## VRDeck 122.410460
## withgroup 12.925079
## deck 90.196804
## side 22.439063
## expense 238.242509
Bu kodu çalıştırdığınızda, oluşturulan rastgele orman modelinin değişken önem sıralamasının bir grafik halini görüntülersiniz. Bu grafik, her bir bağımsız değişkenin model tahminlerine katkısının önem derecesini görsel olarak gösterir. Daha yüksek öneme sahip değişkenler, grafikte daha yüksek bir yerde görünür.
Bu kod, oluşturulan rastgele orman modelini kullanarak yeni verilerde tahminler yapar
Bu kod, oluşturulan tahminlerin ilk altı satırını görüntüler.
## .
## 1 0.1050685
## 2 0.1614667
## 3 0.8062586
## 4 0.1920834
## 5 0.6907569
## 6 0.1659998
Bu kodu çalıştırdığınızda, gerçek ve tahmin edilen değerleri içeren iki veri çerçevesi oluşturulur.
Bu kod, gerçek ve tahmin edilen değerler arasında bir çapraz tablo oluşturur.
##
## 0 1
## 0 823 256
## 1 175 919
Bu kodu çalıştırdığınızda, modelin doğruluk oranını hesaplayabilirsiniz.
## [1] 0.8034975
Bu kodu çalıştırdığınızda, oluşturulan rastgele orman modeli kullanılarak test verilerinde tahminler yapılır ve tahminler bir veri çerçevesine dönüştürülür.
fit_forest = randomForest(Transported ~ ., data = train_c[, -1])
preds = predict(fit_forest, newdata = test_c) %>%
data.frame()Bu kodu çalıştırdığınızda, rastgele orman modelinin tahminlerini 0.5’ten büyük olanları TRUE olarak ve diğerlerini FALSE olarak sınıflandırılmış bir vektör elde edersiniz.
Bu kodu çalıştırdığınızda, “sub_forest.csv” adlı bir CSV dosyası oluşturulur ve bu dosyaya rastgele orman modelinin tahminleri yazılır. Bu dosya daha sonra başka bir programda açılabilir veya veri analizi için kullanılabilir.
Transported = as.character(Transported_pred_forest)
PassengerId = test_c$PassengerId
Transported = as.vector(Transported)
sample_submission = cbind(PassengerId, Transported)
sample_submission = as.data.frame(sample_submission)
sample_submission$Transported = str_to_title(sample_submission$Transported)
write.csv(sample_submission, "sub_forest.csv", row.names = FALSE, quote = FALSE)##sonuç