## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── 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
## Rows: 8693 Columns: 16
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Destination, deck, side
## dbl (8): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck, withgroup, ...
## 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.
## Rows: 8693 Columns: 17
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (6): PassengerId, HomePlanet, Destination, deck, side, destination
## dbl (8): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck, withgroup, ...
## 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.
AÇIKLAMA
Bu Projeden, Uzay Gemisi Titanic’in uzay-zaman anormalliği ile ç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, geminin hasar görmüş bilgisayar sisteminden kurtarılan bir dizi kişisel kayıt verilmiştir.
Dosya ve Veri Alanı Açıklamaları train.csv - Eğitim verisi olarak kullanılacak yaklaşık üçte ikisi (~8700) yolcunun kişisel kayıtları.
PassengerId - Her yolcu için benzersiz bir kimlik. Her kimlik, yolcunun seyahat ettiği bir grubu gösteren gggg ile başlar ve pp grup içindeki sırasını temsil eder. Bir gruptaki insanlar genellikle aile üyeleridir, ancak her zaman değil.
HomePlanet - Yolcunun hareket ettiği gezegen, genellikle kalıcı ikamet gezegenleri. CryoSleep - Yolcunun yolculuğun süresi boyunca dondurulmuş animasyona alınıp alınmayacağını gösterir. CryoSleep’te olan yolcular kabinlerine kapatılmıştır.
Cabin - Yolcunun konakladığı kabin numarası. deck/num/side şeklinde alınır, burada side, Port için P veya Starboard için S olabilir.
Destination - Yolcunun ineceği gezegen.
Age - Yolcunun yaşı.
VIP - Yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapılıp yapılmadığını belirtir. RoomService, FoodCourt, ShoppingMall, Spa, VRDeck - Yolcunun Spaceship Titanic’in birçok lüks olanaklarında ne kadar fatura ödediği.
Name - Yolcunun adı ve soyadı.
Transported - Yolcunun başka bir boyuta taşınıp taşınmadığı. Bu, hedef, tahmin etmeye çalıştığınız sütun.
test.csv - Geri kalan üçte biri (~4300) yolcunun kişisel kayıtları, test verisi olarak kullanılacaktır. Göreviniz, bu setteki yolcular için Transported değerini tahmin etmektir.
sample_submission.csv - Doğru formatta bir sunum dosyası.
PassengerId - Test setindeki her yolcu için kimlik.
Transported - Hedef. Her yolcu için, True veya False değerlerinden birini tahmin edin.
## # 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.36 1
## 4 Destination chr 0 0 3 NA NA NA
## 5 Age dbl 0 0 88 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: 17 × 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.36 1
## 4 Destination chr 0 0 3 NA NA NA
## 5 Age dbl 0 0 88 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.28 1
## 14 deck chr 0 0 8 NA NA NA
## 15 side chr 199 2.3 3 NA NA NA
## 16 destination chr 0 0 3 NA NA NA
## 17 expense dbl 0 0 2336 0 1441. 35987
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)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)##
## Call:
## lm(formula = Transported ~ ., data = test_c[, 2:16])
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.47067 -0.30531 -0.02774 0.28559 1.76010
##
## Coefficients: (2 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.257e-01 3.996e-02 8.150 4.16e-16 ***
## HomePlanetEuropa 1.974e-01 2.893e-02 6.823 9.53e-12 ***
## HomePlanetMars 8.980e-02 1.485e-02 6.048 1.53e-09 ***
## CryoSleepTRUE 3.907e-01 1.177e-02 33.204 < 2e-16 ***
## DestinationPSO J318.5-22 -4.507e-02 1.820e-02 -2.477 0.01326 *
## DestinationTRAPPIST-1e -4.926e-02 1.141e-02 -4.318 1.59e-05 ***
## Age -2.303e-03 3.212e-04 -7.170 8.15e-13 ***
## VIPTRUE -3.223e-02 3.013e-02 -1.070 0.28481
## RoomService -1.203e-04 7.463e-06 -16.115 < 2e-16 ***
## FoodCourt 4.389e-05 3.077e-06 14.265 < 2e-16 ***
## ShoppingMall 8.244e-05 7.491e-06 11.005 < 2e-16 ***
## Spa -8.482e-05 4.214e-06 -20.128 < 2e-16 ***
## VRDeck -8.111e-05 4.151e-06 -19.542 < 2e-16 ***
## withgroup 1.969e-02 1.004e-02 1.962 0.04981 *
## deckB 1.138e-01 2.908e-02 3.912 9.22e-05 ***
## deckC 1.456e-01 2.921e-02 4.986 6.29e-07 ***
## deckD 4.933e-02 3.493e-02 1.412 0.15793
## deckE 1.830e-03 3.632e-02 0.050 0.95982
## deckF 9.687e-02 3.724e-02 2.601 0.00931 **
## deckG 4.123e-02 3.892e-02 1.059 0.28955
## deckT 6.558e-02 1.811e-01 0.362 0.71731
## sideS 8.645e-02 8.703e-03 9.933 < 2e-16 ***
## destinationPSO J318.5-22 NA NA NA NA
## destinationTRAPPIST-1e NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4003 on 8472 degrees of freedom
## (199 observations effacées parce que manquantes)
## Multiple R-squared: 0.3606, Adjusted R-squared: 0.359
## F-statistic: 227.5 on 21 and 8472 DF, p-value: < 2.2e-16
REGRESYON
Regresyon, istatistiksel bir kavram olup bir değişkenin diğer bir veya birden fazla değişken tarafından tahmin edilmesini veya açıklanmasını sağlayan bir modelleme tekniğidir. Bu teknik, değişkenler arasındaki ilişkiyi anlamak, bir değişkenin değerini tahmin etmek veya bir değişkenin başka değişkenler tarafından nasıl etkilendiğini belirlemek için kullanılır.
Regresyon analizi, genellikle bir bağımlı değişkenin (tahmin edilmek istenen değişken) ve bir veya daha fazla bağımsız değişkenin (tahminleyici veya açıklayıcı değişkenler) arasındaki ilişkiyi modellemek için kullanılır. Bağımsız değişkenler, bağımlı değişkenin değerini açıklamak veya tahmin etmek için kullanılan değişkenlerdir.
Regresyon analizi, veri setinin doğasına bağlı olarak farklı biçimlerde uygulanabilir. Örneğin, eğer ilişki doğrusal ise, doğrusal regresyon analizi kullanılabilir. Eğer ilişki doğrusal değilse, polinomiyal regresyon veya non-lineer regresyon teknikleri kullanılabilir. Ayrıca, birden fazla bağımsız değişkenin bağımlı değişkeni etkilediği durumlarda çoklu regresyon analizi kullanılabilir.
Regresyon analizi, ekonometri, sosyal bilimler, mühendislik, sağlık bilimleri ve pazarlama gibi birçok alanda kullanılmaktadır. Bu analiz türü, veriye dayalı karar verme süreçlerinde ve geleceği tahmin etme amacıyla yaygın olarak kullanılmaktadır.
##
## Call:
## lm(formula = Transported ~ ., data = train_c_train_c[, -c(1)])
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.55277 -0.30795 -0.02772 0.28588 1.74204
##
## Coefficients: (3 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.373e-01 4.627e-02 7.290 3.46e-13 ***
## HomePlanetEuropa 1.979e-01 3.338e-02 5.927 3.25e-09 ***
## HomePlanetMars 8.044e-02 1.706e-02 4.715 2.46e-06 ***
## CryoSleepTRUE 3.849e-01 1.335e-02 28.834 < 2e-16 ***
## DestinationPSO J318.5-22 -6.053e-02 2.076e-02 -2.915 0.003563 **
## DestinationTRAPPIST-1e -5.053e-02 1.304e-02 -3.876 0.000107 ***
## Age -2.382e-03 3.714e-04 -6.414 1.52e-10 ***
## VIPTRUE -1.268e-02 3.376e-02 -0.375 0.707329
## RoomService -1.147e-04 7.788e-06 -14.729 < 2e-16 ***
## FoodCourt 4.005e-05 3.466e-06 11.555 < 2e-16 ***
## ShoppingMall 8.546e-05 8.407e-06 10.166 < 2e-16 ***
## Spa -8.430e-05 4.704e-06 -17.921 < 2e-16 ***
## VRDeck -8.077e-05 4.771e-06 -16.930 < 2e-16 ***
## withgroup 1.620e-02 1.073e-02 1.510 0.130979
## deckB 1.003e-01 3.283e-02 3.057 0.002248 **
## deckC 1.388e-01 3.311e-02 4.193 2.78e-05 ***
## deckD 3.548e-02 3.952e-02 0.898 0.369332
## deckE -1.945e-02 4.186e-02 -0.465 0.642212
## deckF 8.940e-02 4.267e-02 2.095 0.036188 *
## deckG 4.025e-02 4.456e-02 0.903 0.366367
## deckT 5.872e-02 1.818e-01 0.323 0.746676
## sideS 8.994e-02 9.958e-03 9.033 < 2e-16 ***
## expense NA NA NA NA
## HomeplanetEuropa NA NA NA NA
## HomeplanetMars NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4003 on 6498 degrees of freedom
## Multiple R-squared: 0.3611, Adjusted R-squared: 0.3591
## F-statistic: 174.9 on 21 and 6498 DF, p-value: < 2.2e-16
## reg_Transported_tahmin
## Transported_gercek 0 1
## 0 904 175
## 1 320 774
## [1] 0.7718491
## reg_Transported_tahmin
## Transported_gercek 0 1
## 0 2673 563
## 1 936 2348
## [1] 0.770092
LOGİSTİC
Logistik regresyonun katsayıları, ilgili bağımsız değişkenin bağımlı değişken üzerindeki etkisini belirtir. Pozitif bir katsayı, bağımsız değişkenin arttığında bağımlı değişkenin olasılığının arttığını gösterir. Negatif bir katsayı ise bağımsız değişkenin arttığında bağımlı değişkenin olasılığının azaldığını gösterir.
train için Bu R dilindeki kod, bir veri çerçevesinden belirli bir sütun aralığını (2. sütundan 15. sütuna kadar olan sütunlar) seçmeyi amaçlar. İşte bu kodun açıklamaları: train: Bu, üzerinde işlem yapılacak olan veri çerçevesini temsil eder. [2:15]: Bu ifade, veri çerçevesindeki sütunları seçmek için kullanılır. Burada 2:15, 2. sütundan başlayarak 15. sütuna kadar olan tüm sütunları seçer.
test için Bu R dilindeki kod, bir veri çerçevesinden belirli bir sütun aralığını (2. sütundan 15. sütuna kadar olan sütunlar) seçmeyi amaçlar. İşte bu kodun açıklamaları: train: Bu, üzerinde işlem yapılacak olan veri çerçevesini temsil eder. [2:15]: Bu ifade, veri çerçevesindeki sütunları seçmek için kullanılır. Burada 2:15, 2. sütundan başlayarak 15. sütuna kadar olan tüm sütunları seçer
modellog <- lm(Transported ~ 1 + HomePlanet + Destination + deck + side + CryoSleep + Age + RoomService + FoodCourt + ShoppingMall + Spa + VRDeck, data = train_c_log )## Warning: glm.fit: des probabilités ont été ajustées numériquement à 0 ou 1
##
## Call:
## glm(formula = Transported ~ ., family = binomial, data = train_c_train_c[,
## -c(1)])
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.519e-01 2.344e-01 3.208 0.001337 **
## CryoSleepTRUE 1.574e+00 7.421e-02 21.214 < 2e-16 ***
## DestinationPSO J318.5-22 -4.606e-01 1.121e-01 -4.110 3.96e-05 ***
## DestinationTRAPPIST-1e -4.053e-01 8.001e-02 -5.065 4.08e-07 ***
## Age -8.108e-03 2.106e-03 -3.850 0.000118 ***
## VIPTRUE -2.040e-01 2.495e-01 -0.818 0.413546
## RoomService -1.431e-03 8.834e-05 -16.200 < 2e-16 ***
## FoodCourt 5.457e-04 3.973e-05 13.733 < 2e-16 ***
## ShoppingMall 5.874e-04 6.546e-05 8.974 < 2e-16 ***
## Spa -1.972e-03 1.044e-04 -18.894 < 2e-16 ***
## VRDeck -1.893e-03 1.023e-04 -18.500 < 2e-16 ***
## withgroup 1.849e-01 6.064e-02 3.049 0.002296 **
## deckB 1.150e+00 2.556e-01 4.497 6.89e-06 ***
## deckC 2.357e+00 2.888e-01 8.163 3.27e-16 ***
## deckD -3.106e-02 2.455e-01 -0.126 0.899338
## deckE -9.314e-01 2.244e-01 -4.151 3.31e-05 ***
## deckF -4.710e-01 2.135e-01 -2.207 0.027347 *
## deckG -1.151e+00 2.147e-01 -5.358 8.42e-08 ***
## deckT -8.880e-01 1.539e+00 -0.577 0.563841
## sideS 5.644e-01 5.724e-02 9.859 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 12050.6 on 8692 degrees of freedom
## Residual deviance: 7567.4 on 8673 degrees of freedom
## AIC: 7607.4
##
## Number of Fisher Scoring iterations: 7
## 1 2 3 4 5 6
## -1.0569674 -11.0233442 1.1954753 -1.6644963 -0.5865155 -1.5221862
## 1 2 3 4 5 6
## 0 0 1 0 0 0
## ── 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
## ── 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()
## • Use tidymodels_prefer() to resolve common conflicts.
result$Transported <- as.factor(result$Transported)
result$logistic_Transported_tahmin <- as.factor(result$logistic_Transported_tahmin)## # A tibble: 1 × 3
## .metric .estimator .estimate
## <chr> <chr> <dbl>
## 1 accuracy binary 0.786
## Truth
## Prediction 0 1
## 0 911 296
## 1 168 798
## Le chargement a nécessité le package : lattice
##
## Attachement du package : 'caret'
## Les objets suivants sont masqués depuis 'package:yardstick':
##
## precision, recall, sensitivity, specificity
## L'objet suivant est masqué depuis 'package:purrr':
##
## lift
## logistic_Transported_tahmin
## Transported_gercek 0 1
## 0 911 168
## 1 296 798
## [1] 0.7864703
## Confusion Matrix and Statistics
##
## Reference
## Prediction 0 1
## 0 911 168
## 1 296 798
##
## Accuracy : 0.7865
## 95% CI : (0.7686, 0.8035)
## No Information Rate : 0.5555
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.5733
##
## Mcnemar's Test P-Value : 3.728e-09
##
## Sensitivity : 0.7548
## Specificity : 0.8261
## Pos Pred Value : 0.8443
## Neg Pred Value : 0.7294
## Prevalence : 0.5555
## Detection Rate : 0.4192
## Detection Prevalence : 0.4965
## Balanced Accuracy : 0.7904
##
## 'Positive' Class : 0
##
## Warning: glm.fit: des probabilités ont été ajustées numériquement à 0 ou 1
## Warning in predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
## prediction from rank-deficient fit; attr(*, "non-estim") has doubtful cases
NAİVE BAYES
“Navie” ifadesi, “Naive Bayes” adlı bir makine öğrenimi algoritmasını ifade etmektedir. Naive Bayes, özellikle sınıflandırma problemleri için kullanılan basit ancak etkili bir olasılık temelli bir algoritmadır. İşte Naive Bayes’in temel prensipleri ve uygulamalı ekonometri dersinizle ilişkilendirilmiş açıklamalar:
Bayes Teoremi:
Naive Bayes, Bayes Teoremi’ne dayanır. Bayes Teoremi, bir olayın gerçekleşme olasılığını hesaplamak için kullanılır ve şu şekilde ifade edilir:
“Naive” ifadesi, algoritmanın temel varsayımına atıfta bulunur: Tüm özellikler (değişkenler) birbirinden bağımsızdır. Bu, sınıflandırma için basitleştirici bir varsayımdır ve bu nedenle “naive” (saf) olarak adlandırılır.
##
## Attachement du package : 'e1071'
## L'objet suivant est masqué depuis 'package:tune':
##
## tune
## L'objet suivant est masqué depuis 'package:rsample':
##
## permutations
## L'objet suivant est masqué depuis 'package:parsnip':
##
## tune
##
## Naive Bayes Classifier for Discrete Predictors
##
## Call:
## naiveBayes.default(x = X, y = Y, laplace = laplace)
##
## A-priori probabilities:
## Y
## FALSE TRUE
## 0.4963764 0.5036236
##
## Conditional probabilities:
## CryoSleep
## Y FALSE TRUE
## FALSE 0.8674392 0.1325608
## TRUE 0.4198264 0.5801736
##
## Destination
## Y 55 Cancri e PSO J318.5-22 TRAPPIST-1e
## FALSE 0.16268830 0.09154114 0.74577057
## TRUE 0.25079945 0.09159434 0.65760621
##
## Age
## Y [,1] [,2]
## FALSE 29.89040 13.56605
## TRUE 27.79596 15.00787
##
## VIP
## Y FALSE TRUE
## FALSE 0.97149479 0.02850521
## TRUE 0.98264048 0.01735952
##
## RoomService
## Y [,1] [,2]
## FALSE 380.42526 867.5761
## TRUE 61.90178 272.3304
##
## FoodCourt
## Y [,1] [,2]
## FALSE 375.1676 1189.550
## TRUE 520.6462 1910.983
##
## ShoppingMall
## Y [,1] [,2]
## FALSE 163.9159 452.1892
## TRUE 175.1473 713.1374
##
## Spa
## Y [,1] [,2]
## FALSE 552.34948 1536.8892
## TRUE 60.39356 260.0868
##
## VRDeck
## Y [,1] [,2]
## FALSE 532.29108 1548.648
## TRUE 67.60027 288.556
##
## withgroup
## Y [,1] [,2]
## FALSE 0.3902665 0.4878665
## TRUE 0.5034262 0.5000454
##
## deck
## Y A B C D E
## FALSE 0.0298957126 0.0523754345 0.0560834299 0.0632676709 0.1311703360
## TRUE 0.0301507538 0.1368204660 0.1178620375 0.0479671083 0.0719506624
## deck
## Y F G T
## FALSE 0.3677867903 0.2984936269 0.0009269988
## TRUE 0.2843764276 0.3106441297 0.0002284148
##
## side
## Y P S
## FALSE 0.5511008 0.4488992
## TRUE 0.4470078 0.5529922
## FALSE. TRUE.
## 1 0.28625938 7.137406e-01
## 2 1.00000000 4.573854e-137
## 3 0.02871421 9.712858e-01
## 4 0.48731747 5.126825e-01
## 5 0.03653340 9.634666e-01
## 6 0.40191903 5.980810e-01
## [1] 1 0 1 1 1 1
## Transported
## [1,] 10
## [2,] 0
## [3,] 10
## [4,] 0
## [5,] 0
## [6,] 0
## Transported_pred_nb
## Transported_train_c_test_c 0 1
## 0 488 591
## 10 76 1018
## [1] 0.7326277
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)SVM
SVM, veya “Destek Vektör Makineleri” (Support Vector Machines), makine öğrenimi alanında sınıflandırma ve regresyon problemleri için kullanılan bir öğrenme algoritmasıdır. Özellikle sınıflandırma problemlerinde etkilidir.
SVM, veri noktalarını birbirinden ayıracak en iyi hiper düzlemi bulmaya odaklanır. Bu hiper düzlem, veri noktalarını sınıflarına göre mümkün olduğunca iyi ayırmak için seçilir. SVM, bu hiper düzlemi bulurken, veri setinin sınıflarının arasındaki en geniş marjı (maksimum marj) oluşturmayı hedefler.
SVM’nin temel fikri, veri noktalarını sınıflandırmak için bir karar sınırlayıcısı oluşturmak için destek vektörleri olarak adlandırılan noktaları kullanmaktır. Bu destek vektörleri, hiper düzleme en yakın olan ve bu nedenle sınıfların ayrılmasında kritik öneme sahip olan noktalardır.
SVM, lineer ve non-lineer sınıflandırma problemleri için kullanılabilir. Lineer SVM, veri noktalarını doğrusal bir hiper düzlemle ayırmaya çalışırken, non-lineer SVM, çekirdek fonksiyonları kullanarak verileri daha yüksek boyutlu uzaylara dönüştürerek doğrusal olarak ayrılabilir hale getirir.
SVM’nin avantajlarından biri, hem düşük boyutlu hem de yüksek boyutlu veri setlerinde iyi performans göstermesidir. Ayrıca, SVM’nin regresyon problemleri için de uyarlanmış bir versiyonu vardır, bu da SVM’nin çok yönlülüğünü artırır.
SVM’nin kullanım alanları arasında metin sınıflandırması, görüntü sınıflandırması, biyomedikal veri analizi, el yazısı tanıma ve finansal tahmin gibi birçok uygulama bulunmaktadır.
fit_svm <- svm(Transported ~., data= train_c_train_c[, -1], type = 'C-classification', kernel = 'linear')
preds <- predict(fit_svm, newdata = train_c_test_c[, -c(1, 12)], type = "raw") %>%
data.frame()Transported_pred_svm=ifelse(preds$.== TRUE, 1 ,0)
cm=table(Transported_train_c_test_c, Transported_pred_svm)fit_svm <- svm(Transported ~ ., data = train_c[, -1],
type= 'C-classification',
kernel = 'linear')
preds <- predict(fit_svm, newdata = train_c, type = "raw") %>%
data.frame()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)SVM RADİAL
SVM-Radial (Destek Vektör Makineleri - Radyal Temel Fonksiyon) veya RBF (Radial Basis Function), makine öğrenimi alanında sınıflandırma ve regresyon için kullanılan bir destek vektör makinesi (SVM) çekirdek fonksiyonudur.
SVM, sınıflandırma ve regresyon problemlerinde kullanılan güçlü bir öğrenme algoritmasıdır. SVM’nin temel amacı, iki sınıf arasındaki ayrımı en iyi şekilde yapacak bir karar sınırlayıcısı (hiper düzlem) bulmaktır.
SVM-Radial, SVM algoritmasının çekirdek fonksiyonu olarak Radyal Temel Fonksiyonu’nu kullanır. Bu, özellik vektörlerini daha yüksek boyutlu uzaylara eşlemek ve sınıfları ayrılabilir hale getirmek için kullanılır. Radyal Temel Fonksiyonu, veri noktalarını dönüştürmek için bir Gauss fonksiyonunu kullanır.
RBF, veri noktalarını bir merkez etrafında bir radyal desen oluşturacak şekilde dönüştürür. Bu, daha karmaşık ve belirgin ayrımların yapılabildiği bir uzay oluşturur. SVM-Radial, bu dönüşümle birlikte destek vektör makinesinin optimizasyon algoritmasını kullanarak optimal bir karar sınırlayıcısı bulur.
SVM-Radial, özellikle veri seti non-lineer olarak ayrılabilir olduğunda etkilidir. Çünkü RBF dönüşümü, veri setindeki karmaşık yapıları daha iyi yakalayabilir. Bu nedenle, SVM-Radial, özellikle resim sınıflandırması, metin sınıflandırması ve biyomedikal veri analizi gibi alanlarda yaygın olarak kullanılmaktadır.
fit_svm <- svm(Transported ~ ., data = train_c[, -1],
type= 'C-classification',
kernel = 'radial')
preds <- predict(fit_svm, newdata = train_c_test_c[, -c(1, 12)], type = "raw") %>%
data.frame()Transported_pred_svm = ifelse(preds$. == TRUE , 1 ,0)
cm = table(Transported_train_c_test_c, Transported_pred_svm)
cm## Transported_pred_svm
## Transported_train_c_test_c 0 1
## 0 861 218
## 10 204 890
fit_svm <- svm(Transported ~ ., data = train_c[, -1],
type= 'C-classification',
kernel = 'radial')
preds <- predict(fit_svm, newdata = train_c, type = "raw") %>%
data.frame() 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)## # A tibble: 14 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 HomePlanet chr 0 0 3 NA NA NA
## 2 CryoSleep lgl 0 0 2 0 0.36 1
## 3 Destination fct 0 0 3 NA NA NA
## 4 Age dbl 0 0 88 0 28.8 79
## 5 VIP lgl 0 0 2 0 0.02 1
## 6 RoomService dbl 0 0 1273 0 220. 14327
## 7 FoodCourt dbl 0 0 1507 0 448. 29813
## 8 ShoppingMall dbl 0 0 1115 0 170. 23492
## 9 Spa dbl 0 0 1327 0 305. 22408
## 10 VRDeck dbl 0 0 1306 0 298. 24133
## 11 Transported lgl 0 0 2 0 0.5 1
## 12 withgroup dbl 0 0 2 0 0.45 1
## 13 deck fct 0 0 8 NA NA NA
## 14 side fct 0 0 2 NA NA NA
P <-ggplot(data.frame(train_c_train_c),aes(x=HomePlanet, y=deck,color=Transported)) +
geom_point(aes(shape=Transported), size=3) +
scale_color_viridis_d() +
labs(title = "", x="HomePlanet", y="deck") +
theme_minimal() +
theme(legend.position = "top")
P##
## Attachement du package : 'rpart'
## L'objet suivant est masqué depuis 'package:dials':
##
## prune
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Attachement du package : 'randomForest'
## L'objet suivant est masqué depuis 'package:dplyr':
##
## combine
## L'objet suivant est masqué depuis 'package:ggplot2':
##
## margin
## Call:
## rpart::rpart(formula = transported ~ ., data = train_c_train_c[,
## -1])
## n= 8693
##
## CP nsplit rel error xerror xstd
## 1 0.3630048 0 1.0000000 1.0000000 0.017865642
## 2 0.3226227 1 0.6369952 0.6396005 0.015187671
## 3 0.1984368 2 0.3143726 0.3208858 0.011291100
## 4 0.0100000 3 0.1159357 0.1220148 0.007160181
##
## Variable importance
## Spa RoomService VRDeck
## 37 34 29
##
## Node number 1: 8693 observations, complexity param=0.3630048
## predicted class=TRUE expected loss=0.2649258 P(node) =1
## class counts: 2303 6390
## probabilities: 0.265 0.735
## left son=2 (924 obs) right son=3 (7769 obs)
## Primary splits:
## RoomService < 705.5 to the right, improve=977.2266, (0 missing)
## Spa < 662.5 to the right, improve=932.0519, (0 missing)
## VRDeck < 738.5 to the right, improve=780.3843, (0 missing)
## CryoSleep < 0.5 to the left, improve=680.4179, (0 missing)
## Transported < 0.5 to the left, improve=675.6905, (0 missing)
##
## Node number 2: 924 observations
## predicted class=FALSE expected loss=0.04761905 P(node) =0.1062924
## class counts: 880 44
## probabilities: 0.952 0.048
##
## Node number 3: 7769 observations, complexity param=0.3226227
## predicted class=TRUE expected loss=0.1831639 P(node) =0.8937076
## class counts: 1423 6346
## probabilities: 0.183 0.817
## left son=6 (933 obs) right son=7 (6836 obs)
## Primary splits:
## Spa < 642.5 to the right, improve=1084.1860, (0 missing)
## VRDeck < 738.5 to the right, improve= 908.6087, (0 missing)
## Transported < 0.5 to the left, improve= 361.2157, (0 missing)
## CryoSleep < 0.5 to the left, improve= 348.3438, (0 missing)
## FoodCourt < 0.5 to the right, improve= 251.3139, (0 missing)
##
## Node number 6: 933 observations
## predicted class=FALSE expected loss=0.1018221 P(node) =0.1073277
## class counts: 838 95
## probabilities: 0.898 0.102
##
## Node number 7: 6836 observations, complexity param=0.1984368
## predicted class=TRUE expected loss=0.08557636 P(node) =0.7863798
## class counts: 585 6251
## probabilities: 0.086 0.914
## left son=14 (597 obs) right son=15 (6239 obs)
## Primary splits:
## VRDeck < 738.5 to the right, improve=831.36940, (0 missing)
## CryoSleep < 0.5 to the left, improve= 83.66997, (0 missing)
## Transported < 0.5 to the left, improve= 83.46779, (0 missing)
## Spa < 0.5 to the right, improve= 59.23314, (0 missing)
## FoodCourt < 0.5 to the right, improve= 53.93865, (0 missing)
##
## Node number 14: 597 observations
## predicted class=FALSE expected loss=0.1172529 P(node) =0.06867595
## class counts: 527 70
## probabilities: 0.883 0.117
##
## Node number 15: 6239 observations
## predicted class=TRUE expected loss=0.009296362 P(node) =0.7177039
## class counts: 58 6181
## probabilities: 0.009 0.991
## .
## 1 FALSE
## 2 FALSE
## 3 FALSE
## 4 FALSE
## 5 FALSE
## 6 FALSE
## .
## 1 FALSE
## 2 FALSE
## 3 FALSE
## 4 FALSE
## 5 FALSE
## 6 FALSE
fit_tree <- rpart(Transported ~ ., data = train_c[, -1])
preds <- predict(fit_tree, newdata = train_c) %>%
data.frame()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)RANDOM FOREST
Random Forest, makine öğrenimi alanında yaygın olarak kullanılan bir topluluk öğrenme algoritmasıdır. Random Forest, birçok karar ağacını bir araya getirerek karar verme sürecini gerçekleştirir ve bu nedenle topluluk (ensemble) bir öğrenme yöntemidir.
Random Forest algoritması, her bir ağacın bağımsız olarak eğitildiği bir karar ağacı (decision tree) topluluğunu kullanır. Her ağaç, rastgele seçilen özellikler ve veri noktalarının bir alt kümesi üzerinde eğitilir. Bu, her ağacın birbirinden farklı özellikler ve veri noktaları üzerinde odaklanmasını sağlar.
Random Forest, her bir karar ağacının tahminini alır ve genellikle sınıflandırma problemlerinde sınıfın bir çoğunluğunu veya regresyon problemlerinde ortalamayı kullanarak topluluk tahminini yapar. Bu, her bir ağacın kendi hatalarını telafi etmesine ve genel olarak daha güvenilir bir tahmin sağlamasına olanak tanır.
Random Forest’in avantajlarından biri, overfitting’e (aşırı uydurma) karşı dayanıklı olmasıdır. Her ağaç, yalnızca rastgele seçilen özellikler ve veri noktaları üzerinde eğitildiği için, tek başına bir ağacın yapabileceği aşırı uyum riski azalır.
Random Forest ayrıca özelliklerin önemini değerlendirmek için kullanılabilir. Algoritma, her bir özelliğin her bir ağaçta ne sıklıkta kullanıldığını izler ve böylece her özelliğin tahminde ne kadar etkili olduğunu belirlemeye yardımcı olur.
Random Forest, sınıflandırma ve regresyon problemlerinde geniş bir kullanım alanına sahiptir. Özellikle büyük ve karmaşık veri setlerinde iyi performans gösterir ve genellikle biyomedikal araştırmalardan finansal tahminlere kadar çeşitli uygulamalarda kullanılır.
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
## IncNodePurity
## CryoSleep 245.481131
## Destination 38.451720
## Age 154.667196
## VIP 4.257172
## RoomService 212.724662
## FoodCourt 180.685865
## ShoppingMall 152.528137
## Spa 227.433362
## VRDeck 203.841907
## withgroup 20.913410
## deck 151.052454
## side 30.014192
## .
## 1 0.55774161
## 2 0.06003333
## 3 0.91858218
## 4 0.12289220
## 5 0.28157260
## 6 0.09244040
## Transported_pred_forest
## Transported_train_c_test_c 0 1
## 0 911 168
## 10 12 1082
fit_forest <- rpart(Transported ~ ., data = train_c[, -1])
preds <- predict(fit_forest, newdata = train_c) %>%
data.frame()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_forest.csv", row.names = FALSE, quote = FALSE)