Curso de Data Science

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

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

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

Valeu, obrigado e até mais.