library(readr)
train <- read_csv("train.csv")
library(readr)
test <- read_csv("test.csv")
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>
str(test)
## spc_tbl_ [4,277 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ PassengerId : chr [1:4277] "0013_01" "0018_01" "0019_01" "0021_01" ...
## $ HomePlanet : chr [1:4277] "Earth" "Earth" "Europa" "Europa" ...
## $ CryoSleep : logi [1:4277] TRUE FALSE TRUE FALSE FALSE FALSE ...
## $ Cabin : chr [1:4277] "G/3/S" "F/4/S" "C/0/S" "C/1/S" ...
## $ Destination : chr [1:4277] "TRAPPIST-1e" "TRAPPIST-1e" "55 Cancri e" "TRAPPIST-1e" ...
## $ Age : num [1:4277] 27 19 31 38 20 31 21 20 23 24 ...
## $ VIP : logi [1:4277] FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ RoomService : num [1:4277] 0 0 0 0 10 0 0 0 0 0 ...
## $ FoodCourt : num [1:4277] 0 9 0 6652 0 ...
## $ ShoppingMall: num [1:4277] 0 0 0 0 635 263 0 0 0 0 ...
## $ Spa : num [1:4277] 0 2823 0 181 0 ...
## $ VRDeck : num [1:4277] 0 0 0 585 0 60 0 0 0 0 ...
## $ Name : chr [1:4277] "Nelly Carsoning" "Lerome Peckers" "Sabih Unhearfus" "Meratz Caltilter" ...
## - 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()
## .. )
## - attr(*, "problems")=<externalptr>
library(DataExplorer)
create_report(train)
##
##
## processing file: report.rmd
##
|
| | 0%
|
|. | 2%
|
|.. | 5% [global_options]
|
|... | 7%
|
|.... | 10% [introduce]
|
|.... | 12%
|
|..... | 14% [plot_intro]
|
|...... | 17%
|
|....... | 19% [data_structure]
|
|........ | 21%
|
|......... | 24% [missing_profile]
|
|.......... | 26%
|
|........... | 29% [univariate_distribution_header]
|
|........... | 31%
|
|............ | 33% [plot_histogram]
|
|............. | 36%
|
|.............. | 38% [plot_density]
|
|............... | 40%
|
|................ | 43% [plot_frequency_bar]
|
|................. | 45%
|
|.................. | 48% [plot_response_bar]
|
|.................. | 50%
|
|................... | 52% [plot_with_bar]
|
|.................... | 55%
|
|..................... | 57% [plot_normal_qq]
|
|...................... | 60%
|
|....................... | 62% [plot_response_qq]
|
|........................ | 64%
|
|......................... | 67% [plot_by_qq]
|
|.......................... | 69%
|
|.......................... | 71% [correlation_analysis]
|
|........................... | 74%
|
|............................ | 76% [principal_component_analysis]
|
|............................. | 79%
|
|.............................. | 81% [bivariate_distribution_header]
|
|............................... | 83%
|
|................................ | 86% [plot_response_boxplot]
|
|................................. | 88%
|
|................................. | 90% [plot_by_boxplot]
|
|.................................. | 93%
|
|................................... | 95% [plot_response_scatterplot]
|
|.................................... | 98%
|
|.....................................| 100% [plot_by_scatterplot]
## output file: C:/Users/SANCAK/Desktop/final project/final project/report.knit.md
## "C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS "C:\Users\SANCAK\Desktop\FINALP~1\FINALP~1\REPORT~1.MD" --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc3b286a8f5542.html --lua-filter "C:\Users\SANCAK\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\SANCAK\AppData\Local\R\win-library\4.3\rmarkdown\rmarkdown\lua\latex-div.lua" --embed-resources --standalone --variable bs3=TRUE --section-divs --table-of-contents --toc-depth 6 --template "C:\Users\SANCAK\AppData\Local\R\win-library\4.3\rmarkdown\rmd\h\default.html" --no-highlight --variable highlightjs=1 --variable theme=yeti --mathjax --variable "mathjax-url=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --include-in-header "C:\Users\SANCAK\AppData\Local\Temp\RtmpieCBf0\rmarkdown-str3b286d5550f7.html"
##
## Output created: report.html
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ purrr 1.0.2
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::between() masks data.table::between()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first() masks data.table::first()
## ✖ lubridate::hour() masks data.table::hour()
## ✖ lubridate::isoweek() masks data.table::isoweek()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::last() masks data.table::last()
## ✖ lubridate::mday() masks data.table::mday()
## ✖ lubridate::minute() masks data.table::minute()
## ✖ lubridate::month() masks data.table::month()
## ✖ lubridate::quarter() masks data.table::quarter()
## ✖ lubridate::second() masks data.table::second()
## ✖ purrr::transpose() masks data.table::transpose()
## ✖ lubridate::wday() masks data.table::wday()
## ✖ lubridate::week() masks data.table::week()
## ✖ lubridate::yday() masks data.table::yday()
## ✖ lubridate::year() masks data.table::year()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(explore)
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
head(train)
## # A tibble: 6 × 14
## PassengerId HomePlanet CryoSleep Cabin Destination Age VIP RoomService
## <chr> <chr> <lgl> <chr> <chr> <dbl> <lgl> <dbl>
## 1 0001_01 Europa FALSE B/0/P TRAPPIST-1e 39 FALSE 0
## 2 0002_01 Earth FALSE F/0/S TRAPPIST-1e 24 FALSE 109
## 3 0003_01 Europa FALSE A/0/S TRAPPIST-1e 58 TRUE 43
## 4 0003_02 Europa FALSE A/0/S TRAPPIST-1e 33 FALSE 0
## 5 0004_01 Earth FALSE F/1/S TRAPPIST-1e 16 FALSE 303
## 6 0005_01 Earth FALSE F/0/P PSO J318.5-22 44 FALSE 0
## # ℹ 6 more variables: FoodCourt <dbl>, ShoppingMall <dbl>, Spa <dbl>,
## # VRDeck <dbl>, Name <chr>, Transported <lgl>
unique(train$HomePlanet)
## [1] "Europa" "Earth" "Mars" NA
unique(train$Destination)
## [1] "TRAPPIST-1e" "PSO J318.5-22" "55 Cancri e" NA
Benzersiz(tren$Hedef)” komutu, “tren” veri kümesinin “Hedef” değişkenindeki benzersiz değerlerin bir listesini döndürecektir.
unique(test$HomePlanet)
## [1] "Earth" "Europa" "Mars" NA
unique(train$CryoSleep)
## [1] FALSE TRUE NA
benzersiz(train$CryoSleep), “train” veri kümesinin “CryoSleep” sütunundaki benzersiz değerlerin bir vektörünü döndürür. Veri seti ve sütun sağlanmadığı için tam çıktıyı veremiyor.
hist(train$FoodCourt)
Bu kod parçacığı, “tren” veri kümesinde “FoodCourt” değişkeninin bir
histogramını oluşturur.
train<-train %>%group_by(Destination)
hist(train$FoodCourt)
ggplot(train, aes(x = RoomService))+
geom_histogram(fill = "white", colour = "black")+
facet_grid(Destination~ .)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 181 rows containing non-finite values (`stat_bin()`).
Bu kod, “train” veri kümesindeki “RoomService” değişkeninin histogramını
oluşturmak için R’deki ggplot2 paketini kullanır. Histogram, “Hedef”
değişkeninin her seviyesi için ayrı ayrı oluşturulur ve “facet_grid”
işlevi kullanılarak ızgara formatında düzenlenir. Histogramdaki çubuklar
beyazla doldurulmuştur ve siyah dış çizgileri vardır.
##logistic regression Logistik regresyon, istatistiksel bir sınıflandırma yöntemidir. Bir bağımlı değişkenin (sınıflandırma) olasılığını tahmin etmek için kullanılır. Logistik regresyon, bağımlı değişkenin ikili (binary) veya çoklu (multinomial) sınıflar arasında olduğu durumları ele alabilir. Logistik regresyon, bağımsız değişkenlerin etkisini bir logit fonksiyonu kullanarak modellemektedir. Bu fonksiyon, bağımlı değişkenin olasılığını hesaplamak için bağımsız değişkenlerin ağırlıklı toplamını kullanır. Bu şekilde, logistik regresyon, veriye dayalı bir model oluşturarak sınıflandırma yapabilir. Logistik regresyon, birçok uygulama alanın
{r train_set <- train[, 2:15] test_set <- test[, 2:14]
Bu kod satırları, mevcut “train” ve “test” veri çerçevelerinden belirli
sütunları seçerek “train_set” ve “test_set” adı verilen iki yeni veri
çerçevesi oluşturur. ‘train_set’, ‘train’ veri çerçevesinden 2’den 15’e
kadar olan sütunlar seçilerek oluşturulur. ‘test_set’, ‘test’ veri
çerçevesinden 2’den 14’e kadar olan sütunlar seçilerek oluşturulur.
{r logistic = glm(formula = Transported ~ ., family = binomial,data = training_set)
Bu kod, R’deki glm() işlevini kullanan bir lojistik regresyon modeline
uyuyor. Formül “Transported ~.” olarak belirtilir; bu, “Transported”
değişkeninin yanıt değişkeni olduğu ve veri çerçevesindeki diğer tüm
değişkenlerin (yanıt değişkeni hariç) yordayıcı değişkenler olduğu
anlamına gelir. Aile argümanı “binom” olarak ayarlanmıştır; bu, bunun
ikili yanıt değişkenlerini modellemek için uygun olan bir binom lojistik
regresyon modeli olduğunu gösterir. Modelin oturtulması için kullanılan
veriler “training_set” olarak belirtilir.
{r prob_pred = predict(logistic, type = 'response' ,newdata = testing_set[-13])
Bu kod parçacığı, son 13 satır hariç, yeni bir veri kümesi test_kümesi
üzerindeki olasılıkları tahmin etmek için lojistik regresyon modeli
lojistiğini kullanıyor. Tahmin() işlevi, tahmin edilen olasılıkları elde
etmek için = ‘yanıt’ bağımsız değişkeniyle birlikte kullanılır.
{r colnames(train_set)
{r names(train_set)
{r summary(train_set) “train_set” veri kümesinin özeti,
veri kümesinde mevcut değişkenler için tanımlayıcı istatistikler sağlar.
Her değişken için gözlem sayısını, ortalama, medyan, minimum, maksimum
ve çeyrek değerlerini içerebilir. Özet, verilerin genel dağılımının ve
özelliklerinin anlaşılmasına yardımcı olur.
SVM, yani Destek Vektör Makinesi, bir makine öğrenmesi algoritmasıdır. Sınıflandırma ve regresyon problemlerini çözmek için kullanılır. SVM, veri noktalarını farklı sınıflara ayırmak için bir hiper düzlem bulmaya çalışır. Bu hiper düzlem, veri noktalarını en iyi şekilde ayırmak için maksimum marjinal ayrımı sağlamaya çalışır. SVM algoritması, özellikle doğrusal olmayan veri kümeleri için çekirdek fonksiyonları kullanarak genişletilebilir. Bu, veri noktalarını daha yüksek boyutlu uzaylarda ayırmak için kullanılır. SVM’nin birçok uygulama alanı vardır, örneğin görüntü sınıflandırma, metin sınıflandırma, biyoinformatik ve daha fazlası. Eğer SVM hakkında daha fazla bilgi veya soruların varsa, sormaktan çekinme!
```{r library(e1071) fit_svm <- svm(Transported - . , data =train_set, type = ‘c-classification’, kernel = ‘linear’)
preds <- predict(fit_svm, newdata = testing_set, type = ‘raw’) %>% data.frame()**
Tren setinize bir destek vektör makinesi (SVM) modelini sığdırmak için R'deki e1071 kitaplığını kullandığınız anlaşılıyor. Ardından, test kümenizde tahminlerde bulunmak ve sonuçları preds değişkeninde depolamak için tahmin işlevini kullanırsınız. Son olarak tahminleri bir veri çerçevesine dönüştürüyorsunuz.
Tren kümenizdeki sütunların adlarıyla ilgili sorunuzla ilgili olarak, sütun adlarını almak için colnames() işlevini kullanabilirsiniz. Bu durumda tren setinizdeki sütunların adlarını almak için colnames(train_set) komutunu kullanabilirsiniz.
```{r
library(e1071)
fit_svm <- svm(Transported - . , data =train_set,
type = 'c-classification',
kernel = 'linear')
preds <- predict(fit_svm, newdata = testing_set, type = 'raw') %>%
data.frame()**
```{r library(e1071) fit_svm <- svm(Transported - . , data =train_set, type = ‘c-classification’, kernel = ‘linear’)
cm = table(y_true, y_pred)
```{r
cm = table(y_true, y_pred)
{r cm
{r rb_son = naiveBayes(Transported - ., data = train_set)
Görünüşe göre R’deki naiveBayes işlevini kullanarak bir Naive Bayes
sınıflandırıcısını yerleştiriyorsunuz. Hedef değişken olarak
“Transported” değişkenini ve tahmin ediciler olarak train_set’te kalan
değişkenleri kullanıyorsunuz. Naive Bayes, özellikle kategorik verilerle
uğraşırken sınıflandırma görevleri için popüler bir algoritmadır. Hedef
değişken göz önüne alındığında yordayıcıların koşullu olarak bağımsız
olduğu varsayılmaktadır. Naive Bayes modelini eğittikten sonra onu yeni
veriler üzerinde tahminlerde bulunmak için kullanabilirsiniz.
{r preds <- predict(rb_son newdata = test_set, type = "raw") %>% data.frame()
{r y_pred = ifelse(preds$TRUE. > 0.5, TRUE, FALSE)
Preds değişkenindeki değerlere dayalı olarak y_pred adında yeni bir
değişken oluşturmak için ifelse işlevini kullandığınız anlaşılıyor.
Preds’deki değer TRUE’ya eşitse y_pred’e 1 değeri atanır. Aksi halde 0
değeri atanır. Bu, tahminleri ikili değerlere dönüştürmenin akıllıca bir
yolu! Başka sorularınız varsa veya yardımcı olabileceğim başka bir konu
varsa bana bildirin.
{r Transported <- as.character(r_pred) Passengerld <- test$PassengerId
{r library(stringr)
Karar ağacı, bir makine öğrenmesi algoritmasıdır. Veri noktalarını farklı sınıflara veya kategorilere ayırmak için bir ağaç yapısı kullanır. Her bir düğüm, bir özelliği temsil eder ve veri noktalarını bu özelliklere göre bölerek sınıflandırma yapar. Karar ağacı, veri setindeki en önemli özellikleri belirlemek için çeşitli kriterler kullanır. Bu kriterler, veri noktalarını en iyi şekilde ayırmayı hedefler. Karar ağacı algoritması, ağacın dallarını ve düğümlerini oluştururken enformasyon kazancı, Gini endeksi veya hata oranı gibi ölçütleri kullanabilir. Karar ağacı algoritması, basit anlaşılır bir model sunar ve yorumlanması kolaydır. Ayrıca, doğrusal olmayan ilişkileri de yakalayabilir ve eksik veriyle başa çıkabilir. Bu nedenle, karar ağacı birçok uygulama alanında kullanılır, örneğin tıp, finans, pazarlama ve daha fazlası.
{r library(rpart) library(rpart.plot) library(randomForest) library(caret)
Görünüşe göre makine öğrenimi ve veri analizi için bazı popüler R
paketlerini yüklüyorsunuz. Bahsettiğiniz paketler: - rpart: Bu paket,
yinelemeli bölümleme algoritmasını kullanarak karar ağaçlarını
yerleştirmek için işlevler sağlar. - rpart.plot: Bu paket, rpart
paketiyle oluşturulan karar ağaçlarının görselleştirilmesine yardımcı
olur. - randomForest: Bu paket, sınıflandırma ve regresyon görevleri
için bir topluluk öğrenme yöntemi olan rastgele orman algoritmasını
uygular. - “caret”: “caret” paketi, çeşitli algoritmalar için tutarlı
bir arayüz sağlayan, makine öğrenimi modellerini eğitmek ve
değerlendirmek için güçlü bir araçtır. Bu paketler, makine öğrenimi
modellerini oluşturmak ve analiz etmek için geniş bir işlevsellik
yelpazesi sunar.
{r training_set$Transported <- as.factor(training_set$Transported) testing_set$Transported <- as.factor(testing_set$Transported) train_set$Transported <- as.factor(train_set$Transported)
{r fit_tree <- rpart(Transported ~ ., data = training_set) summary(fit_tree)
R’deki rpart işlevini kullanarak bir karar ağacı modeli yerleştirdiniz.
‘Transported ~ .’ formülü, training_set veri kümesindeki diğer tüm
değişkenleri “Transported” değişkeni için tahminciler olarak
kullandığınızı gösterir. Uygun karar ağacı modelinin bir özetini almak
için fit_tree nesnesindeki özet fonksiyonunu kullanabilirsiniz. Bu size
bölünme sayısı, değişken önemi ve modelin genel performansı gibi
bilgiler sağlayacaktır.
{r rpart.plot(fit_tree)
library(readr)
sample_submission_1_ <- read_csv("sample_submission (1).csv")
View(sample_submission_1_)
library(readr)
submission <- read_csv("submission.csv")
View(submission)
library(readr)
sub_nb <- read_csv("sub_nb.csv")
View(sub_nb)
{r library(readr) submission_Decision_Tree
Görünüşe göre karar ağacı modelini bir şey için sunmak istiyoruz.