Παρουσίαση του Dataset: Titanic

Το dataset περιέχει δεδομένα για τους επιβάτες του Τιτανικού, με στόχο την πρόβλεψη της επιβίωσης βάσει των χαρακτηριστικών τους.

Βασικές Μεταβλητές:

  • Survived: Η μεταβλητή-στόχος (0 = Όχι, 1 = Ναι), η οποία μετατράπηκε σε κατηγορική (Factor).

  • Pclass: Η κοινωνικοοικονομική θέση του επιβάτη (1η, 2η, 3η θέση).

  • Sex: Το φύλο του επιβάτη (κρίσιμος παράγοντας για την πρόβλεψη).

  • Age: Η ηλικία των επιβατών.

  • Fare: Το κόστος του εισιτηρίου.

Προετοιμασία του dataset

df <- titanic_train
df <- df[, c("Survived", "Pclass", "Sex", "Age", "SibSp", "Parch", "Fare")] # Επιλογή στηλών
df <- na.omit(df) # Αφαίρεση κενών τιμών
df$Survived <- as.factor(df$Survived) # Μετατροπή σε κατηγορική μεταβλητή

Διαχωρισμός

set.seed(123)
spl <- sample.split(df$Survived, SplitRatio = 0.7)
Train <- subset(df, spl == TRUE)
Test <- subset(df, spl == FALSE)

Δημιουργία δέντρου

titanicTree <- rpart(Survived ~ ., data = Train, method = "class", minbucket = 25)

Οπτικοποίηση

prp(titanicTree, type = 2, extra = 104, main = "Decision Tree for Titanic Survival")

Δημιουργία μοντέλου λογιστικής παλινδρόμησης

logModel <- glm(Survived ~ ., data = Train, family = "binomial")

# Προβλέψεις στο Test set
predictLog <- predict(logModel, newdata = Test, type = "response")
table(Test$Survived, predictLog > 0.5) # Πίνακας Σύγχυσης
##    
##     FALSE TRUE
##   0   111   16
##   1    25   62

Σύγκριση των δύο μοντέλων

# Accuracy για τη Λογιστική Παλινδρόμηση

tableLog <- table(Test$Survived, predictLog > 0.5)
accuracyLog <- sum(diag(tableLog)) / sum(tableLog)
print(paste("Logistic Regression Accuracy:", accuracyLog))
## [1] "Logistic Regression Accuracy: 0.808411214953271"
# Accuracy για το μοντέλο CART
predictCART <- predict(titanicTree, newdata = Test, type = "class")
tableCART <- table(Test$Survived, predictCART)
accuracyCART <- sum(diag(tableCART)) / sum(tableCART)
print(paste("CART Accuracy:", accuracyCART))
## [1] "CART Accuracy: 0.785046728971963"

Μετά την εκπαίδευση και τον έλεγχο των δύο μοντέλων στο σύνολο δεδομένων του Τιτανικού, παρατηρούμε ότι η Λογιστική Παλινδρόμηση παρουσιάζει ελαφρώς υψηλότερη ακρίβεια (80.8%) σε σχέση με το μοντέλο CART (78.5%).

Αυτό συμβαίνει διότι οι σχέσεις μεταξύ των μεταβλητών είναι σχετικά γραμμικές.