Curso de Data Science
Aula 09 – Data Science – R – 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)