Bem vind@ ao blog InfoDados.com, sua fonte de informações baseada em dados.

30 julho, 2020

thumbnail

Aprendizado de Máquina (Machine Learning)


Mas afinal, o que é aprendizado de máquina? 

Imagine que gostaríamos de fazer um programa que detecte se uma foto contém ou não um carro. Para isso, precisamos resolver algumas questões:
  • Como poderíamos fazer tal distinção programaticamente? 
  • No universo dos carros, como programar todas as possíveis variações de cores, modelos, ângulos, escalas, formatos, e assim por diante?
  • Mesmo que isso fosse viável, como identificar fotos que nunca foram apresentas ao sistema?
Para resolver esse problema, não seria melhor se o programa simplesmente tivesse a capacidade de reconhecer os padrões de um carro? É justamente nesse ponto que o Aprendizado de Máquina entra em cena, pois essa área de Inteligência Artificial é uma evolução do estudo de reconhecimento de padrões.

Há várias definições para esse termo, mas com base no livro "The Hundred-Page Machine Learning", utilizaremos uma relativamente simples: 
  • Aprendizado de máquina é o processo de resolução de problemas práticos, através da coleta de dados, e utilização destes para construção de modelos estatísticos por meio de algoritmos; 
  • Os principais tipos de aprendizado de máquina são: aprendizado supervisionado, aprendizado semi-supervisionado, aprendizado não supervisionado e aprendizado por reforço. 

Conjunto de dados

Como mencionado acima, a coleta de dados é uma das etapas iniciais no processo de aprendizado de máquina, sendo assim, compreender os termos abaixo nos ajuda a entender o processo: 
  • Dataset: é o conjunto de dados que será objeto de estudo;
  • Features: é o conjunto de uma ou mais variáveis independentes;
  • Label: é o resultado, ou variável dependente, pode ser um valor numérico, uma classe, ou estruturas mais complexas. Datasets com labels também são chamados de datasets anotados. 

A título de exemplo, imagine que queremos estimar o peso de uma pessoa com base na altura. Neste caso, a altura é uma variável independente (feature), e o peso é uma variável dependente (label). Note que poderíamos usar mais variáveis independentes, por exemplo, a quantidade de calorias consumidas por dia, o sexo, e assim por diante.

Logo abaixo temos um exemplo de um dataset do peso em função da altura.

Peso em função da altura

Aprendizado supervisionado (Supervised learning)

No aprendizado supervisionado, o dataset contém as features e as labels, ou seja, para cada registro das features já temos o resultado da combinação delas. Com base nos valores conhecidos, podemos criar modelos de aprendizado para estimar as labels de registros que não fazem parte do dataset.

Voltando ao nosso exemplo do peso em função da altura, podemos fazer uma regressão linear, e estimar que o peso de uma pessoa de 170 cm é 74 Kg. Note que este é um valor estimado, pois mesmo para valores já conhecidos, nosso modelo irá apresentar variações, pois o modelo é relativamente simples e precisaríamos de mais features para aprimorá-lo.

Regressão linear - Peso em função da altura


Aprendizado não supervisionado (Unsupervised learning)

Ao contrário do aprendizado supervisionado, no não supervisionado não sabemos o resultado da combinação das features, ou seja, o dataset não tem labels. Neste tipo de aprendizado, o objetivo é construir modelos que transformem o dataset, por exemplo: agrupando registros (clustering), identificando outliers, ou reduzindo as dimensões do dataset.

Aprendizado semi-supervisionado (Semi-supervised learning)

O aprendizado semi-supervisionado é um híbrido entre supervisionado e não supervisionado, já que o dataset contém registros com e sem labels. Conseguir dados devidamente anotados é mais difícil e custoso do que dados não anotados, e o aprendizado semi-supervisionado procura tirar proveito de ambos os casos para melhorar o desempenho dos modelos.

Entretanto, considerar que dados sem labels podem melhorar o modelo parece contra intuitivo, mas voltando ao nosso exemplo do peso em função da altura, imagine que temos muitas features sem label (registros de altura sem o peso correspondente). Usando técnicas de aprendizado não supervisionado, teríamos mais base para para identificar outliers.

Outra técnica comum é treinar o modelo com os dados anotados, depois estimar as labels dos dados não anotados, e por fim re-treinar o modelo com todo o dataset.


Aprendizado por reforço (Reinforcement learning)

Dos principais tipos de aprendizado de máquina esse é sem dúvidas o mais complexo, porém é muito poderoso. Ele consiste em usar o estado do ambiente como entrada do modelo, estimar uma ação que pode ou não mudar o estado do ambiente, e a cada ação, uma recompensa é calculada, o que permite verificar se o modelo está melhorando ou piorando, que é de onde vem a ideia de reforço. O objetivo é maximizar as recompensas.

Esse tipo de aprendizado é ideal para tarefas que envolvam passos sequenciais, por exemplo:
  • Aprender um jogo
  • Aprender a controlar um robô
  • Logística

Aprendizado por reforço


Conclusão

Aprendizado de Máquina é uma subarea da Inteligência Artificial com foco no reconhecimento de padrões, e suas aplicações hoje são diversas.


Não deixe de seguir nosso blog parar ver em primeira mão informações com base em análise de dados e reconhecimento de padrões.


Este artigo foi escrito com base no livro "The Hundred-Page Machine Learning".

19 julho, 2020

thumbnail

Renda média por estado em 2019


O Brasil é de fato um país com proporções continentais, rico em cultura e diversidade, com cada região tendo características distintas. Infelizmente, há também uma forte disparidade de desenvolvimento econômico entre cada estado e região, o que em última instância se traduz em diferenças em qualidade de vida e acesso a oportunidades.

O objetivo desse artigo é apresentar essas disparidades de forma visual, com dados extraídos da PNAD contínua anual (Pesquisa Nacional por Amostra de Domicílio) do IBGE. Mais detalhes sobre esses dados você pode conferir no nosso artigo Renda Média Brasileira nos Últimos Anos.

A partir desse dados, geramos o mapa a seguir, que representa a renda média mensal em Reais dos estados brasileiros em 2019. Usando uma escala de vermelho, os estados mais escuros são os de maior renda.

Os códigos-fonte para a geração desse mapa podem ser encontrados no GitHub sob a licença MIT, e o resultado você pode conferir logo abaixo:

12 julho, 2020

thumbnail

Renda Média Brasileira nos Últimos Anos

Embora ainda tenhamos situações de extrema pobreza no Brasil, em termos gerais, ele é hoje considerado um país de renda média. Entretanto, de acordo com alguns economistas e analistas, o país está preso na armadilha da renda média, que muito é comum aos países que saem da pobreza. Isso acontece por que escalar as primeiras etapas de industrialização e sofisticação econômica é relativamente fácil quando comparado a dominação tecnológica e produtiva numa escala global, que é o quadro das economias desenvolvidas.

Fontes:
O objetivo desse artigo é ter uma visão de como essa renda vem se comportando nos últimos anos. Para isso, recuperamos dados do IBGE, que publica mensalmente, trimestralmente, e anualmente uma análise da renda do brasileira, incluindo dados de estados e regiões do país.

Desses dados do IBGE, utilizamos a PNAD (Pesquisa Nacional por Amostra de Domicílio) de 2012 à 2019, e dessa pesquisa extraímos o indicador de "Rendimento médio mensal real da população residente, com rendimento, a preços médios do ano", da subclasse "todos os trabalhos", que representa rendimento de trabalho efetivamente recebido para pessoas de 14 anos ou mais. Segundo a nota técnica do IBGE divulgada na PNAD mensal, esses valores são reais, ou seja, já incluem o desconto da inflação.

Os códigos-fonte para a extração de dados e geração de gráficos podem ser encontrados no GitHub sob a licença MIT, e o resultado você pode conferir logo abaixo: