Machine Learning com H2O — Parte 2

Source: Deep Learning on Medium


Uma rapidinha bem Deep…

Perdoem-me pelo trocadilho, mas continuando a nossa série sobre Machine Learning com H2O, vamos desenvolver um modelo de predição para o nosso DataSet das flores para determinar a espécie de acordo com as variáveis disponíveis. Na publicação anterior, vimos como instalar o pacote H2O e como importar os dados para nossa análise.

library(h2o)
h2o.init(nthreads = -1, max_mem_size = "6g")
datasets <- "https://raw.githubusercontent.com/DarrenCook/h2o/bk/datasets/"
data <- h2o.importFile(paste0(datasets,"iris_wheader.csv"))

Preparando os dados

Na real, os dados que utilizamos nesse exemplo já estão preparados. Mas a vida nem sempre vai ser assim tão fácil, bro! O processo de tratamento dos dados pode ser a maior dor de cabeça em um projeto de Ciência de Dados.

Bom, vamos dar uma olhada nos dados que acabamos de importar, para isso, usamos o comando: h2o.describe(data) .

Descrição dos dados — Iris

Nós temos um problema de classificação, quero dizer, a nossa variável resposta: class, é discreta e, refere-se ao tipo de flor que desejamos prever. Para problemas de classificação, o tipo de variável em um dataset, importado no h2o, deve ser enum.

Definimos então nossa variável y com o nome da variável que desejamos encontrar:

y <- "class"

Definimos as variáveis que utilizaremos para construir o modelo. Ou seja, todas elas, menos a variável class.

x <- setdiff(names(data), y)

Agora, dividimos o nosso dataframe (que não é do tipo dataframe) nos “pedaços” que servirão de treinamento e teste. Utilizaremos 80% dos dados para treinamento e 20% para teste.

parts <- h2o.splitFrame(data, 0.8)
train <- parts[[1]]
test <- parts[[2]]

Criando nosso modelo de Deep Learning

Lembrando que isso é uma demonstração super básica da potencialidade do framework h2o, criaremos um modelo de deep learning com uma linha de código. O framework decidirá todos os parâmetros. Para isso:

modelDL <- h2o.deeplearning(x, y, train)

No código acima, estocamos nosso modelo na variável modelDL, dizemos ao framework que queremos um modelo de deep learning definindo as variáveis independentes (x), a variável resposta (y) e quais são os dados que utilizamos para treinar o modelo (train).

Realizando as Predições

Depois de termos criado nosso modelo, realizaremos as predições nos dados que separamo para testes.

prediction <- h2o.predict(modelDL, test)

Para saber como nosso modelo se saiu, podemos criar uma matriz de confusão para verificar os resultados.

h2o.performance(modelDL, test)

Podemos perceber na matriz que o modelo errou uma classificação, representando 96% de acurácia.

Conclusão

Esse foi um breve exemplo utilizando o framework h2o para criar um modelo de Deep Learning para classificação.

Esse framework fornece uma vasta gama de modelos para diferentes objetivos. Na próxima publicação, mostrarei como utilizar o AutoML (Machine Learning automático) para definir, automaticamente, qual modelo utilizar em uma tarefa de ML.

Qualquer questão, dúvida ou sugestão, deixe nos comentários. E se inscreva na nossa newsletter para receber atualizações.

Endereço de e-mail

O código completo dessa demonstração se encontra no Github.