O que é machine learning?
Tags: ia, datascience, machinelearning
Published: 2024-02-14 22:40:25

Em uma publicação passada, foi discutido sobre o que é Inteligência Artificial (se você ainda não leu clique [aqui](https://dev.to/gustavoramos82/inteligencia-artificial-o-que-e-e-possibilidades-14gm)), mas agora vamos falar de uma sub-área da mesma, que é de machine learning (ou aprendizado de máquina)

Sobre a área, ela tem por objetivo
- Campo de estudo que dá aos computadores a habilidade de aprender sem ser explicitamente programado
- Aplicação de técnicas computacionais na busca de padrões que porventura estejam ocultos em um conjunto de dados
- Conjunto de ferramentas estatísticos que permitem a automatização da construção de uma função de predição a partir de um conjunto de observações

Logo, machine learning pega um conjunto de dados, treina para reconhecer algum tipo de padrão e a partir disso, nos permite fazer uma análise ou fazer alguma previsão.

Para ficar mais claro, vamos supor que estamos criando um modelo que identifique spams, tradicionalmente, tentaremos identificar alguns padrões e tentar organizar em código para tentar automatizar, conforme no esquema abaixo.

![abordagem tradicional](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ewabiwpm65rqltriyhh.png)

O problema desta abordagem é quem garante que observamos todos os padrões possíveis, deve ter algum ter que deixemos passar (ainda mais em um cenário que se tem uma grande quantidade de dados) e para atualizar demandaria muito tempo para fazer isso manualmente.

![machine learning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rguo3oiszygclmflw144.png)

Mas usando a abordagem de machine learning, pegamos vários exemplos de dados dos quais tem spam e não tem  e treinar o modelo para ele reconhecer os padrões para identificar para classificar melhor, avaliamos qual o modelo teve a melhor performance, se não for caso se esperava analisaríamos os erros tenta melhorar o modelo, dai se estiver conforme um desempenho esperado, o colocamos em produção.

Mas a partir de colocamos o modelo de produção, com o tempo ele pode perder a performance com a vinda de novos dados, então podemos automatizar o treinamento do modelo com novos dados para então evitar com a redução de performance.

![Atualizando dados](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8m0j4mrsuaffnzhwnzcj.png)

E também com modelo podemos entender como o modelo identifica o que é spam e o que não é e assim trazer insights para o negócio e a partir disso, por exemplo passar orientações para os usuários os cuidados que tem que ter para identificar e-mails suspeitos.

![insigths](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6wsa0ejztirglfg30o2o.png)

A partir do exemplo que foi explicitado acima, esse modelo é do tipo *supervisionado*, que tem um conjunto de atributos e saída, na qual com o treinamento do modelo, ele busca predizer qual o conjunto de saída dado os atributos, ou seja dado um texto, o modelo é treinado para identificar se é spam ou não.

Mas machine learning não se resume somente a isso, mas temos outros tipos de algoritmos de  machine learning:

- *Não-supervisionado*: Os dados não tem rotulo, então modelo vai identificar algum padrão nos dados e fazer algum agrupamento
- *Semi-supervisionado*: Dados parcialmente rotulados, sendo uma combinação de algoritmos supervisionados e não supervisionados
- *Por reforço*: O sistema de aprendizado, chamado de agente, observa o ambiente, selecionar e executar ações e obter recompensas em troca – ou penalidades, caso contrário.

Podemos ver que a área é um campo muito grande e que há vários tipos de modelos que podem ser implementados dado algum problema, por isso é importante conhecer muito bem o problema para saber qual tipo de solução de machine learning será possível utilizar