Titanic Datensatz einlesen

[codesyntax lang=“php”]train <- read.csv(“C:/[PFAD]/train.csv”, header = TRUE)[/codesyntax]

Information über die Datenstruktur

[codesyntax lang=“php”]str (train)[/codesyntax]

Ergebnis: ’train.frame’: 891 obs. of 11 variables: $ survived: int 0 1 1 1 0 0 0 0 1 1 … $ pclass : int 3 1 3 1 3 3 1 3 3 2 … $ name : Factor w/ 891 levels “Abbing, Mr. Anthony”,..: 109 191 358 277 16 559 520 629 417 581 … $ sex : Factor w/ 2 levels “female”,“male”: 2 1 1 1 2 2 2 2 1 1 … $ age : num 22 38 26 35 35 NA 54 2 27 14 … $ sibsp : int 1 1 0 1 0 0 0 3 0 1 … $ parch : int 0 0 0 0 0 0 0 1 2 0 … $ ticket : Factor w/ 681 levels “110152”,“110413”,..: 524 597 670 50 473 276 86 396 345 133 … $ fare : num 7.25 71.28 7.92 53.1 8.05 … $ cabin : Factor w/ 148 levels “”,“A10”,“A14”,..: 1 83 1 57 1 1 131 1 1 1 … $ embarked: Factor w/ 4 levels “”,“C”,“Q”,“S”: 4 2 4 4 4 3 4 4 4 2 …

Die ersten Datensätzte ink. Spaltenüberschrift anzeigen lassen

[codesyntax lang=“php”]head (train)[/codesyntax]

Ergebnis: survived pclass name sex age sibsp parch ticket fare cabin embarked 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.2500 S 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.2833 C85 C 3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.9250 S 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1000 C123 S 5 0 3 Allen, Mr. William Henry male 35 0 0 373450 8.0500 S 6 0 3 Moran, Mr. James male NA 0 0 330877 8.4583 Q

Anzahl der Zeilen & Spalten bzw. Datensätze

[codesyntax lang=“php”]dim(tableName)

oder

nrow (train) ncol (train)[/codesyntax]

Ergebnis: 891 11

Anzahl überlebende und verstorbene Passagiere

[codesyntax lang=“php”]table (train$survived)x[/codesyntax]

Ergebnis: 342 Überlebende 549 Verstorbene

Darstellung: [codesyntax lang=“php”]pie ( table(train$survived), labels=c( paste(“Verstorbene =”, table (train$survived), “Personen”), “Überlebende”), main = “Anzahl überlebende und verstorbene Passagiere” )[/codesyntax]

Anzahl überlebende und verstorbene Passagiere

# Prozentuale Auswertung [codesyntax lang=“php”]prop.table(table (train$survived))[/codesyntax]

Ergebnis: 38% Überlebende 62% Verstorbene

Übersicht über das Geschlecht der Reisenden

[codesyntax lang=“php”]table (train$sex)[/codesyntax]

Ergebnis: Anzahl weibliche Passagiere: 314 Anzahl männliche Passagiere: 577

Darstellung: [codesyntax lang=“php”]barplot(table (train$sex), col = c(“pink”, “blue”), ylab = “Anzahl Passagiere”, main = “Anzahl Passagiere nach Geschlecht unterteilt”, legend.text = TRUE, args.legend = list(x=0.5, y=600), ylim = c(0,600) )[/codesyntax]

Übersicht über das Geschlecht der Reisenden

Anzahl überlebende und verstorbene Passagiere nach Geschlecht

[codesyntax lang=“php”]table(train$sex, train$survived)[/codesyntax]

Ergebnis: Anzahl überlebende Frauen: 233 Anzahl verstorbene Frauen: 81 Anzahl überlebende Männer: 109 Anzahl verstorbene Männer: 468

Darstellung: [codesyntax lang=“php”]barplot(table(train$sex, train$survived), col = c(“pink”, “blue”), ylab = “Anzahl Passagiere”, xlab = “0 = verstorben | 1 = überlebt “, main = “Übersicht überlebende und verstorbene Passagiere”, legend.text = TRUE, args.legend = list(x=2.4, y=600), ylim = c(0,600) )[/codesyntax]

Anzahl überlebende und verstorbene Passagiere nach Geschlecht

Anzahl (prozentual) überlebende und verstorbene Passagiere nach Geschlecht (ausgehend von Gesamtzahl der Passagiere)

[codesyntax lang=“php”]prop.table(table(train$sex, train$survived))[/codesyntax]

Ergebnis: Anzahl überlebende Frauen: 26% Anzahl verstorbene Frauen: 9% Anzahl überlebende Männer: 12% Anzahl verstorbene Männer: 53%

Anzahl (prozentual) überlebende und verstorbene Passagiere (geschlechtsspezifisch)

[codesyntax lang=“php”]prop.table(table(train$sex, train$survived),1)[/codesyntax]

Ergebnis: Anzahl überlebende Frauen: 26% aller Frauen Anzahl verstorbene Frauen: 74% Anzahl überlebende Männer: 19% aller Männer Anzahl verstorbene Männer: 81%

Anzahl der Personen pro Klasse

[codesyntax lang=“php”]table (train$pclass)[/codesyntax]

Ergebnis: Erste Klasse: 216 Personen Zweite Klasse: 184 Personen Dritte Klasse: 491 Personen

Anzahl der Überlebende und verstorbene pro Klasse (ausgehend von Gesamtzahl der Passagiere)

[codesyntax lang=“php”]table(train$survived, train$pclass)[/codesyntax]

Ergebnis: Erste Klasse: Anzahl überlebende: 136 Anzahl verstorbene: 80

Zweite Klasse: Anzahl überlebende: 87 Anzahl verstorbene: 97

Dritte Klasse: Anzahl überlebende: 119 Anzahl verstorbene: 372

Darstellung: [codesyntax lang=“php”]dotchart(table(train$survived, train$pclass), pch = 15, col=“blue”, gcolor = “red”, lcolor = “orange”, xlab = “Anzahl überlebende und verstorbene Passagiere”, ylab = “Überlebende und versorbene Passagiere nach Klassen”, main = “Auflistung aller überlebenden und verstorbenene Passagiere nach Klassen” )[/codesyntax]

Anzahl der Überlebende und verstorbene pro Klasse (ausgehend von Gesamtzahl der Passagiere)

Anzahl (prozentual) der Überlebende pro Klasse (ausgehend von Gesamtzahl der Passagiere)

[codesyntax lang=“php”]prop.table(table(train$survived, train$pclass))[/codesyntax]

Ergebnis: Erste Klasse Anzahl überlebende: 15% Anzahl verstorbene: 9%

Zweite Klasse Anzahl überlebende: 10% Anzahl verstorbene: 11%

Dritte Klasse Anzahl überlebende: 13% Anzahl verstorbene: 42%

Anzahl (prozentual) der überlebenden und verstorbenen Passgiere aus der ersten Klasse

[codesyntax lang=“php”] 100/216*136 #62.96296 100/216*80 #37.03704[/codesyntax]

Ergebnis: 63% der Passagiere aus der ersten Klasse haben überlebt 37% der Passagiere aus der ersten Klasse sind verstorben

Ergebnis für die zweite Klasse 47% der Passagiere aus der zweiten Klasse haben überlebt 53% der Passagiere aus der zweiten Klasse sind verstorben

Ergebnis für die dritte Klasse 24% der Passagiere aus der dritten Klasse haben überlebt 76% der Passagiere aus der dritten Klasse sind verstorben

Anzahl überlebende Frauen und Männer aus der einzelnen Klassen

[codesyntax lang=“php”]table(train$sex, train$survived, train$pclass)[/codesyntax]

Ergebnis: Erste Klasse Überlebende Frauen: 91 Verstorbene Frauen: 3 Überlebende Männer: 45 Verstorbene Männer: 77

Zweite Klasse Überlebende Frauen: 70 Verstorbene Frauen: 6 Überlebende Männer: 17 Verstorbene Männer: 91

Dritte Klasse Überlebende Frauen: 72 Verstorbene Frauen: 72 Überlebende Männer: 47 Verstorbene Männer: 300

Alter der Passagiere

[codesyntax lang=“php”]qplot(age, ylab = “Number”, main = “Alter der Passagiere”, data = train, geom = “bar”)[/codesyntax]

Alter der Passagiere

Durchschnittsalter der Passagiere

[codesyntax lang=“php”]summary(train$age)[/codesyntax]

Ergebnis: Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 0.42 20.12 28.00 29.70 38.00 80.00 177

Durchschnittsalter der Überlebenden Frauen aus der ersten Klasse

[codesyntax lang=“php”]summary(train[train$survived==“1” & train$sex==“male” & train$pclass==“1” ,]$age)[/codesyntax]

Ergebnis: Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 14.00 23.25 35.00 34.94 44.00 63.00 9

Ergebnis für die zweite Klasse: Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 2.00 21.75 28.00 28.08 35.25 55.00 2

Ergebnis für die dritte Klasse: Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 0.75 13.50 19.00 19.33 26.50 63.00 25 Anzahl Kinder in der ersten Klasse (Annahme: Kinder sind unter 18): Eingabe: sum (table(train[train$pclass==“1” & train$age < 18 ,]$age))

Ergebnis: 12

Ergebnis für die zweite Klasse: 23

Ergebnis für die dritte Klasse: 78

Anzahl verstorbene Kinder aus der ersten Klasse

[codesyntax lang=“php”]sum (table(train[train$survived==“0” & train$pclass==“1” & train$age < 18 ,]$age))[/codesyntax]

Ergebnis: 1

Ergebnis für die zweite Klasse: 2

Ergebnis für die dritte Klasse: 49

Anzahl überlebende Kinder (Mädchen) aus der ersten Klasse

[codesyntax lang=“php”]sum (table(train[train$survived==“1” & train$sex==“female” & train$pclass==“1” & train$age < 18 ,]$age))[/codesyntax]

Ergebnis: 7

Ergebnis für die zweite Klasse: 12

Ergebnis für die dritte Klasse: 19

Anzahl verstorbene Kinder (Mädchen) aus der ersten Klasse

[codesyntax lang=“php”]sum (table(train[train$survived==“0” & train$sex==“female” & train$pclass==“1” & train$age < 18 ,]$age))[/codesyntax]

Ergebnis: 1

Ergebnis für die zweite Klasse: 0

Ergebnis für die dritte Klasse: 16

Information Gain

Def.: Der Information Gain ermittelt das Attribut, welches den meisten Informationsgehalt bringt. Es hat das Ziel, die Tiefe des Entscheidungsbaumes zu minimieren. Quelle: [Künstliche Intelligenz: Ein moderner Ansatz]

# Paket ‘FSelector’ installieren und laden [codesyntax lang=“php”]install.packages(“FSelector”) library (FSelector)[/codesyntax]

# Berechnung von ‘Information gain’ - ’target value’ entspricht ’train$survived’. [codesyntax lang=“php”]information.gain(train)[/codesyntax]

# Ergebnis: attr_importance pclass 0.053608163 name 1.609435396 sex 0.145685212 age 0.008687071 sibsp 0.000000000 parch 0.000000000 ticket 1.355042740 fare 0.048528443 cabin 0.318976005 embarked 0.022301869

Die wichtigsten Attribute, für das Überleben der Passagiere sind ’name’ und ’ticket’.

Feststellen, ob die Spalte ’name’ Duplikate beinhaltet

[codesyntax lang=“php”]anyDuplicated( as.character(train$name) )[/codesyntax]

Ergebnis: 0 # Keine Duplikate

Nach (Mrs., Miss., Mr., Master.) filtern

[codesyntax lang=“php”]titles <- NULL mrs <- NULL miss <- NULL mr <- NULL master <- NULL other <- NULL ages <- NULL

parseTitle <- function(name) {

name <- as.character(name)

if (length(grep(“Mrs.”, name)) > 0) { mrs «- c(mrs, name) return (“Mrs.”) } else if (length(grep(“Miss.”, name)) > 0) { miss «- c(miss, name) return (“Miss.”) } else if (length(grep(“Mr.”, name)) > 0) { mr «- c(mr, name) return (“Mr.”) } else if (length(grep(“Master.”, name)) > 0) { master «- c(master, name) return (“Master.”) } else { other «- c(other, name) return (“Other”) } }

for (i in 1:nrow(train)) { titles <- c(titles, parseTitle(train[i, “name”])) ages «- c(ages, train[i,5]) }

table(titles)[/codesyntax]

Ergebnis: Master. Miss. Mr. Mrs. Other 40 180 518 129 24

Anzahl überlebende und verstorbene nach Title

[codesyntax lang=“php”]table(titles, train$survived)[/codesyntax]

Ergebnis: titles 0 1 Master. 17 23 Miss. 54 126 Mr. 436 82 Mrs. 27 102 Other 15 9

Anzahl überlebende und verstorbene nach Title (Prozentual)

[codesyntax lang=“php”]100/40*17 # 42,5% 100/40*23 # 57,5%[/codesyntax]

Ergebnis: titles 0 1 Master. 42,5% 57,5% Miss. 30% 70% Mr. 84,2% 15,8% Mrs. 20,9% 79,1% Other 62,5% 37,5%

Titel nach Klassen unterteilt

[codesyntax lang=“php”]table(titles, train$survived, train$pclass)[/codesyntax]

Ergebnis: Erste Klasse titles 0 1 Master. 0 3 Miss. 2 44 Mr. 70 38 Mrs. 1 43 Other 7 8

Zweite Klasse titles 0 1 Master. 0 9 Miss. 1 31 Mr. 83 8 Mrs. 5 38 Other 8 1

Dritte Klasse titles 0 1 Master. 17 11 Miss. 51 51 Mr. 283 36 Mrs. 21 21 Other 0 0

Alter der Passagiere innerhalb der einzelnen Klassen berechnen

[codesyntax lang=“php”]table(titles, ages)[/codesyntax]

Ergebnis: # Der älteste Master. ist 12 # Die älteste Miss. ist 63 # Der älteste Mr. ist 80 # Die älteste Mrs. ist 63