Buscar

IntroduoaoSoftwareH2O-3


Prévia do material em texto

Introdução ao Software H2O-3
Fatec Carapicuíba - CST em Análise e Desenvolvimento de Sistemas – AMS
Fatec Carapicuíba - CST em Análise e Desenvolvimento de Sistemas – AMS
1st Bruno Santos Ramos Pequeno 
Fatec Carapicuíba
São Paulo, Brasil
bruno.pequeno@fatec.sp.gov.br
 2th Marina Lima Nogueira
Fatec Carapicuíba
São Paulo, Brasil
 marina.nogueira3@fatec.sp.gov.br
 3th João Vitor Zavisas Terassi Morais
Fatec Carapicuíba
São Paulo, Brasil
joao.morais19@fatec.sp.gov.br
Este artigo tem como objetivo principal apresentar a plataforma H2O-3, um software de machine learning e análise preditiva, contando com um exemplo prático de uso do software, e da sou interface web, o Web Flow.
Palavras-chave—H2O, Web Flow, dados, open-source, modelos
Introducão
O H2O-3 é um software de aprendizado de máquina e análise preditiva, produto da H2O.ai. O presente artigo tem como objetivo apresentar o software, e outros produtos e licenças fornecidos pela H2O.ai que fornecem suporte a plataforma, e agregam mais funcionalidades ao processo de incentivo a acessibilidade ao Machine learning, que a H2O toma como missão. É valido mencionar o objetivo da empresa, visto que a plataforma com todas as suas funcionalidades permite que até analistas inexperientes que não possuam um vasto conhecimento sobre IA ou machine learning possam utilizá-la, a funcionalidade que majoritariamente comprova isso, é o AutoML do H2O-3, uma interface que automatiza o processo de treinamento de uma grande seleção de modelos. Isto posto, o seguinte artigo apresentará: (2) O que é o H2O, (3) Produtos e plataformas oferecidos pela H2O.ai, (4) Instalação do H2O, (5) Funcionalidades do Web Flow, e (6) Descrição de um exemplo prático. 
O que é o H2O?
 H2O-3
H2O é a ideia principal da H2O.ai, uma empresa que oferece seus produtos open-source de Machine Learning (ML), sob a licença Apache 2.0. A empresa tem como objetivo tornar o ML acessível.
Dessa forma, o H2O consiste em uma plataforma de aprendizado de máquina e análise preditiva de código aberto. Ele é baseado em processamento distribuído e in-memory, tornando-o altamente escalável e eficiente para implantação de modelos de aprendizado de máquina na produção. Ele fornece modelos supervisionados e não supervisionados, como clustering GLM e K-Means. Além disso, o H2O oferece uma interface web amigável chamada Flow para fácil exploração de dados, ela permite permite aos usuários integrar execução de código, texto, matemática, gráficos e rich media em um documento que pode ser visualizado em um navegador. 
Recursos Técnicos
O código do H2O é escrito em Java, e possui um sistema de armazenamento de Chave/Valor na memória para acessar e referenciar dados, modelos, objetos, etc., penetrando em todos os nós da máquina utilizada.
A plataforma é interoperável com uma variedade de ambientes e linguagens de programação, incluindo Java, R, Python, conda e Spark, e oferece suporte desde conjuntos de dados grandes a pequenos.
O algoritmo é implementado na estrutura distribuída Map/Reduce H2O e usa a estrutura Java Fork/Join para multi-threading. Os dados são lidos em paralelo e distribuídos pelo cluster e armazenados na memória em um formato colunar compactado. O parser integrado ao H2O possui capacidades avançadas de inferência de padrões nos dados, permitindo a ingestão de uma variedade de fontes de dados e formatos diferentes. Essa inteligência incorporada no parser facilita o processamento de dados heterogêneos, contribuindo para a flexibilidade e a adaptabilidade do framework em diferentes cenários de aplicação.
O H2O ainda oferece APIs REST que usam o formato JSON para acessar todas as funcionalidades e recursos da plataforma por meio de um programa ou script externo. A interface web FLOW mencionada anteriormente utiliza essas APIs, que também podem ser acessadas usando H2O-R com R e H2O-Python com Python.
Juntamente possui uma gama de algoritmos de aprendizado de máquina, como modelagem linear generalizada (regressão linear e logística), bem como algoritmos de última geração, como floresta aleatória distribuída, aumento de gradiente e aprendizado profundo. Além disso, o H2O apresenta o método Stacked Ensembles, que aproveita o empilhamento para determinar a combinação ideal de modelos de previsão.
A saber de importação de dados, o H2O oferece uma ampla gama de opções, incluindo várias fontes e formatos. As formas mais comuns de importação incluem a leitura de arquivos locais, acesso a arquivos remotos, integração direta com o Amazon S3, utilização do HDFS (Hadoop Distributed File System), conexão via driver JDBC e integração com o Hive.
Outro aspecto distintivo das plataformas e produtos da H2O.ai é sua independência em relação aos provedores de nuvem e servidores. Independentemente da preferência do cliente por Amazon Web Services, Google Cloud Platform, Microsoft Azure ou infraestrutura local (on-premises), os produtos da H2O.ai são projetados para se adaptar às diferentes demandas e ambientes, garantindo uma experiência consistente e eficiente para os usuários.
Algoritmos Disponíveis
O H2O apresenta também uma gama um de algoritmos para aprendizado de máquina disponíveis e está em constante evolução, nesse contexto podemos citar:
· Cox Proportional Hazards (CoxPH);
· Distributed Random Forest (DRF);
· Naïve Bayes Classifier;
· Deep Learning (Neural Networks);
· Generalized Linear Model (GLM);
· Gradient Boosting Machine (GBM);
· Stacked Ensembles;
· XGBoost.
Aprendizado Não Supervisionado
· Aggregator;
· K-Means Clustering;
· Principal Component Analysis (PCA);
· Generalized Low Rank Models (GLRM);
· Isolation Forest.
Outros
· Early Stopping;
· Quantiles;
· Word2Vec.
O parser da H2O possui uma inteligência integrada, sendo assim é capaz de identificar automaticamente a estrutura do conjunto de dados fornecido e permite que sejam inseridos arquivos em diversos formatos provenientes uma variedade de fontes.
Produtos, Plataformas e Licenças Oferecidos pela H2O.ai
H2O
É a oferta primária open source, plataforma distribuída de memória que permite construir e produzir modelos Machine Learning (ML) para análise preditiva. 
Sparkling Water
Uma integração mais robusta com o Spark é possibilitada pela utilização da plataforma de aprendizado de máquina H2O dentro do ecossistema Spark. Ao fundir estas duas plataformas de código aberto, os utilizadores podem beneficiar de uma experiência unificada oferecida pela Sparkling Water, se utilizando se consulta de dados sem problemas através do Spark SQL, integração de resultados no H2O para criação de modelos e geração de previsões antes de os utilizar novamente em futuras operações Spark.
H2O4GPU
	Um pacote open-source possui APIs e interoperabilidade com Python e R, possibilitando a utilização de GPUs.
Driverless AI
	A plataforma de automação de aprendizado de máquina, AutoML, que permite a preparação e visualização dos dados, criação de recursos úteis para o modelo (feature engineering), ajuste de parâmetros ideais e seleção do algoritmo adequado ao problema específico. Além disso, o AutoML da H2O pode ser usado para automatizar o fluxo de trabalho de aprendizado de máquina, que inclui treinamento automático e ajuste de muitos modelos dentro de um limite de tempo especificado pelo usuário. É a proposta da H2O.ia que reforça a intenção de tornar o ML e IA mais acessíveis, visto que o recurso pode ser utilizado tanto por usuários experientes quanto iniciantes na ciência de dados.
Hydrogen torch
O H2O Hydrogen Torch permite aos cientistas de dados de todos os níveis de competências, desde principiantes a especialistas, treinar modelos de aprendizagem profunda sem código. Com arquiteturas de rede neural de última geração e capacidades de aprendizagem por transferência, é possível criar modelos de deep learning precisos mesmo com dados disponíveis limitados.
Wave
O H2O Wave é uma estrutura Python de código aberto low-code para desenvolvedores, cientistas de dados e engenheiros de aprendizado de máquina que permite a criação de aplicativos de IA interativos em temporeal com visualizações avançadas de maneira eficiente. Ele simplifica o desenvolvimento, oferecendo vários elementos de interface do usuário, como modelos de painel, temas, widgets ao lado de uma variedade de gráficos e caixas de diálogo.
Document.ia
O H2O Document AI é uma tecnologia de processamento de documentos guiada por inteligência artificial e aprendizado de máquina, capaz de identificar e extrair informações a partir diversificados tipos imagens. 
Label genie
O H2O Label Genie cria conjuntos de dados de alta qualidade anotando vários tipos de conjuntos de dados, como dados de imagem, áudio e texto, tendo uma gama de tarefas de etiquetagem de dados suportadas, como deteção de objetos, segmentação de instâncias e resumo ou classificação de texto. É especialmente útil em tarefas de aprendizado supervisionado, onde a disponibilidade de dados rotulados é crucial.
MLOps
	O MLOps é uma interface oferece um ambiente colaborativo que simplifica a gestão, a implementação, a governação e a monitorização de modelos de aprendizagem automática em produção para as organizações. A interface é intuitiva que permite a gestão de modelos end-to-end, escalonamento e monitoramentos automatizados que detectam automaticamente desvios na precisão ou na parcialidade.
Instalações
Pode-se dizer que as instalações das dependências da H2O.ai no geral são muito simples, tudo é feito no cmd. De todas a plataformas que foram citadas, aqui será abordado somente as instalações do H2O-3 software e da sua interface WEB, o flow, que é instalado junto com o H2O.
H2O-3
Para fazer a instalação primeiro é necessário fazer o download do zip no site da documentação do H2O, em seguida basta utilizar os comandos indicados no terminal escolhido. O primeiro comando entra na pasta de downloads, O segundo descompacta o arquivo baixado, em seguida o terceiro entra na pasta do H2O, e quarto finalmente executa.1 cd ~/Downloads
2 unzip h2o-3.46.0.1.zip
3 cd h2o-3.46.0.1
4 java -jar h2o.jar
Um erro comum que pode acontecer é estar sendo utilizado na máquina de instalação uma versão não suportada do Java, para forçar o uso da versão instalada na máquina, é necessário inserir no terminal este bloco de código:1 Java -jar Dsys.ai.h2o.debug.allowJavaVersions=19 h2o.jar
E em seguida alterar a versão do Java utilizada. Entretanto, versões não suportadas do Java só podem ser usadas para experimentos. Para versões de produção, é garantido apenas as versões suportadas do Java. A versão indicada pelo H2O é da 8 a 17.
Web Flow
A instalação do H2O não demora a terminar, e nas últimas linhas de comando aparece o link web para abrir o Flow:
Figura 1 – Link para abrir o Flow.
Ou, ao fim da instalação do H2O, é possível simplesmente abrir o link http://localhost:54321 no navegador, e já é possível utilizar o Web Flow.
Web Flow
O Web Flow, como dito anteriormente, é a interface de usuário do H2O, ela permite que o usuário possa capturar, executar, anotar, apresentar e compartilhar seu fluxo de trabalho. Também permite a importação arquivos, construção modelos e permite melhorá-los iterativamente, tudo dentro do ambiente do Flow.
O Web Flow possui uma interface intuitiva e fácil de usar que fornece facilidade no processo aprendizado de máquina, desde a importação de dados até a avaliação do modelo.
Uma de suas principais características é o sistema de gerenciamento de dados. É possível importar facilmente conjuntos de dados de várias fontes, incluindo arquivos locais, bancos de dados SQL e NoSQL e serviços de armazenamento em nuvem.
Ele também fornece várias ferramentas de pré-processamento de dados, incluindo transformação de dados, limpeza de dados e seleção de recursos. Isso permite que os usuários preparem dados com eficiência para treinamento de modelo.
Com o Web Flow, os usuários podem treinar uma grande variedade de modelos de machine learning, desde algoritmos clássicos até técnicas mais avançadas. Ainda oferece recursos avançados de ajuste de hiperparâmetros para otimizar o desempenho do modelo.
Após serem treinados, os modelos podem ser avaliados através de uma variedade de métricas de desempenho, como precisão, recall, F1-score e área sob a curva ROC. O Web Flow fornece ferramentas visuais para facilitar a análise dos resultados e identificação de modelos de alta qualidade.
Finalmente, o Web Flow oferece recursos para implantar modelos em produção, seja como serviços da web, containers Docker ou código Python para integração em aplicativos existentes.
Também se faz importante citar o AutoML. a funcionalidade é integrada ao Web Flow, e basicamente automatiza o desenvolvimento de modelos de machine learning. Com o AutoML, muitas etapas tradicionais do processo de machine learning são automatizadas, incluindo pré-processamento de dados, seleção de algoritmos, otimização de hiperparâmetros e avaliação de modelos.
Essa automação permite explorar rapidamente uma variedade de abordagens de modelagem sem exigir conhecimento especializado em algoritmos. O AutoML seleciona automaticamente os modelos mais adequados para um conjunto de dados específico, otimiza os hiperparâmetros para maximizar o desempenho preditivo e fornece relatórios detalhados sobre os modelos gerados, incluindo métricas de desempenho
funcionamento da plataforma com aplicação de exemplo 
A. Introdução aos Datasets:
Os datasets são fundamentais para análise de dados, fornecendo a base para insights valiosos. Eles são armazenados em diversos formatos, sendo os mais comuns: CSV e Excel (.XLS).
O CSV é amplamente preferido devido à sua compatibilidade e capacidade de lidar com grandes volumes de dados.
B. Conjunto de Dados Iris:
O dataset utilizado para o exemplo prático é o conjunto de dados “Iris” é uma referência na análise estatística, consistindo em medidas de três espécies de flores Iris.
Cada amostra possui quatro características: comprimento e largura das sépalas e pétalas. Ele é usado como um caso de teste padrão em técnicas de classificação estatística.
C. Gradient Boosting Machine (GBM)
O GBM é um algoritmo de aprendizado de máquina escolhido para o exemplo prático, é usado para prever resultados em problemas de classificação e regressão.
Ele é conhecido por sua eficácia, mas requer ajustes cuidadosos de parâmetros para obter o melhor desempenho.
D. Relação entre GBM e Conjunto de Dados Iris
No H2O Flow, o GBM é treinado usando o conjunto de dados Iris como entrada, ele utiliza as características das sépalas e pétalas para prever a classe das flores com alta precisão. Essa integração permite análises detalhadas e insights valiosos sobre as espécies de flores Iris.
E. Aplicação
Primeiro é necessário ir até a aba data e subir seu projeto de dataset;
Figura 2 – Aplicação 1
Em seguida clicar em parse (Analise) para gerar uma key para conseguir utilizar o GRM;
Figura 3 – Aplicação 1
Para construir o modelo é necessário ir na aba model, clicar e selecionar a GRM para utilização (máquina de aumento de gradiente);
No quadro de treinamento coloca-se a key gerada pelo dataset;
Figura 4 – Aplicação 3
E na validação coloca-se a key também para o modelo identificar o seu dataset;
A chave do dataset deve ser colocada no quadro de treinamento para indicar qual conjunto de dados será usado para treinar o modelo GBM.
A chave do dataset também deve ser inserida no quadro de validação para avaliar o desempenho do modelo GBM em dados não vistos durante o treinamento.
Figura 5 – Aplicação 4
Figura 6 – Aplicação 5
Ao definir que o comprimento da sépala (sépala. Comprimento) tem um monotone constraint de "Aumentando" e o comprimento da pétala (pétala. Comprimento) tem um monotone constraint de "Diminuindo", você está informando ao modelo GBM que há uma relação esperada entre essas características e a variedade da íris. Para o comprimento da sépala, a relação esperada é que quanto maior o comprimento da sépala, maior a probabilidade de pertencer a uma determinada variedade de íris (ou vice-versa).
Para o comprimento da pétala, a relação esperada é que quanto menor o comprimentoda pétala, maior a probabilidade de pertencer a uma determinada variedade de íris (ou vice-versa).
Essa configuração permite que o modelo GBM leve em consideração essas relações monotônicas ao fazer suas previsões, o que pode ser útil em casos onde essas relações são conhecidas ou esperadas com base no conhecimento do domínio do problema. 
Figura 7 – Aplicação 6
Assim mostrando esses resultados:
LOGLOSS: Logloss nos dados de validação avalia a precisão das previsões do modelo, comparando as probabilidades previstas com os rótulos reais nos dados de validação.
Figura 8 – Aplicação 7
Figura 9 – Aplicação 8
A métrica de treinamento se refere a uma medida quantitativa que avalia o desempenho de um modelo durante o processo de treinamento. Essa métrica é calculada com base nos dados de treinamento, ou seja, nos dados que o modelo utiliza para aprender padrões e fazer previsões.
A métrica de validação é semelhante à métrica de treinamento, mas em vez de ser calculada nos dados de treinamento, é calculada nos dados de validação ou teste. A métrica de validação fornece uma avaliação do desempenho do modelo em dados que não foram usados durante o treinamento, permitindo verificar a capacidade do modelo de generalizar para novos dados.
Figura 10 – Aplicação 9
Usando o conjunto de dados Iris no H2O Flow, pudemos extrair insights valiosos sobre as características das flores e a capacidade de prever sua variedade. Avaliando o desempenho do modelo GBM, observamos uma alta precisão na classificação das espécies de íris, corroborada pela métrica de validação, que demonstrou consistência nas previsões em dados não vistos. Além disso, o baixo erro quadrático médio e a área sob a curva ROC indicaram uma excelente capacidade de generalização do modelo. Essas métricas destacam a eficácia do GBM na análise do conjunto de dados Iris e sua relevância na aplicação prática da aprendizagem de máquina.
Agradecimentos
Agradecemos primeiramente à nós mesmos, cuja dedicação e colaboração foram fundamentais para sua conclusão. Também desejamos estender sinceros agradecimentos à professora que sugeriu este projeto. Ainda, agradecemos também a todos os especialistas e instituições que generosamente compartilharam seu conhecimento. Por fim, expressamos nossa gratidão aos leitores pela atenção dedicada a este trabalho. 
References
STETSENKO, Pasha, “Machine Learning with Python and H2O” H2O.ai, Inc., 15th edition, February 2019. 
DEVOPS SCHOOL. What is H2O and how it works? An overview and its use cases. Disponível em: <https://www.devopsschool.com/blog/what-is-h20-and-how-it-works-an-overview-and-its-use-cases/>. Acesso em: 11 de abril de 2024.
H2O AI BRASIL. H2O.ai: Democratizando a inteligência artificial. Medium, [ano de publicação]. Disponível em: <https://medium.com/h2o-ai-brasil/h2o-ai-democratizando-a-inteligência-artificial-99d01862b1b1>. Acesso em: 11 de abril de 2024.
SINGHAL, Abhay. H2O for Inexperienced Users. Towards Data Science, [ano de publicação]. Disponível em: <https://towardsdatascience.com/h2o-for-inexperienced-users-7bc064124264>. Acesso em: 11 de abril de 2024.
H2O.AI. H2O Document AI Product Brief. Disponível em: <https://h2o.ai/content/dam/h2o/en/marketing/documents/2023/H2O-document_ai_product_brief.pdf>. Acesso em: 11 de abril de 2024.
H2O.AI. H2O AI Cloud. Disponível em: <https://h2o.ai/platform/ai-cloud/>. Acesso em: 11 de abril de 2024.
H2O.AI. H2O MLOps Product Brief. Disponível em: <https://h2o.ai/content/dam/h2o/images/marketing/products/ml-ops/V4_MLOps-Product-Brief.pdf>. Acesso em: 11 de abril de 2024.
H2O.AI. H2O Wave. Disponível em: <https://h2o.ai/platform/ai-cloud/make/h2o-wave/>. Acesso em: 11 de abril de 2024.
H2O.AI. H2O Documentation. Disponível em: <https://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html>. Acesso em: 11 de abril de 2024.Transl. J. Magn. Japan, vol. 2, pp. 740–741, August 1987 [Digests 9th Annual Conf. Magnetics Japan, p. 301, 1982].
image1.png
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image8.png
image9.png
image10.png

Mais conteúdos dessa disciplina