Aula 10 – Data Science – R – Caso do Titanic – Kaggle

Curso de Data Science

Aula 10 – Data Science – R – Caso do Titanic – Kaggle

Continuação da aula 09, agora rodando os comandos no RStudio

kaggle - Caso do Titanic - Data Science

Caso do Titanic – Kaggle

Continuando com o problema do Titanic proposto pelo Kaggle.

CONSTRUÇÃO DO MODELO

  • Random Forest é um método de aprendizado sobre conjuntos de dados  (ensemble learning) para construir modelos de classificação, regressão e outras tarefas;
  • Gera múltiplas árvores de decisão que depois são utilizadas na classificação de novos objetos;
  • Consegue lidar com bases que apresentam muitos atributos e poucos exemplos;

 

Para a construção do modelo, alguns campos podem ser deixados de lado e outros não.

Como escolher os campos certos para a predição???

Se for usado o randomForest assim:

randomForest(Survived~.)

O que essa instrução está dizendo é:

random.forest( ), use todos os campos exceto o campo Survived para prever o campo Survived.

Não e o que se quer, pois existem campos como PassengerID, IsTrainSet, Name, Survived, etc. Que não acrescentam na predição.

Os campos escolhidos para a predição foram:

Pclass, Sex, Age, SibSp, Parch, Fare e Embarked

#A variável equation guarda as colunas que serão consideradas

survived.equation <- "Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked"

#as.formula fornece uma maneira de extrair

#fórmulas que foram incluídas em outros objetos.

survived.formula <- as.formula(survived.equation)

install.packages("randomForest")

library(randomForest)

#Criando o modelo passando a fórmula criada com a string armazenada em

#survived.equation

titanic.model <- randomForest(formula = survived.formula, data = titanic.train, ntree = 500, mtry = 3, nodesize = 0.01 * nrow(titanic.test))

nodesize – Este parâmetro define de forma implícita a profundidade das árvores. Quanto maior o número menor a árvore criada (portanto, menos tempo de processamento).

mtry – Parâmetro que indica o número de variáveis de entrada escolhidas aleatoriamente em cada nó. O valor padrão deste parâmetro depende do pacote R usado para se ajustar ao modelo:

Usando RandomForest:

  • Para modelos de classificação, o padrão é a raiz quadrada do número de variáveis preditoras (arredondado para baixo).
  • Para os modelos de regressão, é o número de variáveis preditoras divididas por 3 (arredondado para baixo).

Survived <- predict(titanic.model, newdata = titanic.test)

#Construção do Dataframe que será a saida para o CSV

#O CSV terá duas coluna

#ID do Passageiro e Survived

PassengerId <- titanic.test$PassengerId

output.df <- as.data.frame(PassengerId)

output.df$Survived <- Survived

#Escreve o resultado no CSV para a submissão no Kaggle

write.csv(output.df, file = "Kaggle_submission.csv", row.names = FALSE)

MATRIZ DE CONFUSÃO

Titanic.model

Saída:

Call:

randomForest(formula = survived.formula, data = titanic.train,      ntree = 500, mtry = 3, nodesize = 0.01 * nrow(titanic.test))

Type of random forest: classification

Number of trees: 500

No. of variables tried at each split: 3

OOB estimate of  error rate: 15.82%

Confusion matrix:

0   1 class.error

0 499  50  0.09107468

1  91 251  0.26608187

Matriz de Confusão

Matriz de Confusão

Valeu, obrigado e até mais.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *