Sapiens

"Para pessoas evoluidas"

Sistemas de Informação: Como é o curso?

Marissa Mayer
Marissa Mayer

Fui contratado por um e-commerce para criar modelos de inteligência artificial que ajudam a entender melhor os clientes.

Esses modelos serão usados para saber quanto vai custar o frete de um produto, ver se um cliente vai comprar ou não e agrupar clientes com gostos parecidos.

Mas como funcionam esses algoritmos? Teremos apenas um para fazer todas essas funções? Temos que treinar cada algoritmo?

O aprendizado de máquinas

Em todos os casos queremos ensinar a máquina a trabalhar com os nossos dados. Por exemplo, para calcular o preço de frete de um produto. O frete pode ser diferente dependendo da taxa de cobrança para a distância e quantidade de produtos.

Essa taxa não tem um valor fixo, ela depende de outros fatores do mercado como o preço do combustível, os impostos em cima dos produtos, entre outras coisas. De toda forma, quando um usuário pedir para calcular o frete, a gente deve poder estimar um valor.

Porém, como podemos estimar o frete se a taxa pode mudar? Mesmo com a taxa mudando o seu valor, podemos utilizar valores dos fretes passados como forma para estimar o frete futuro. Ou seja, podemos ter um modelo, um algoritmo de inteligência artificial, que estimará o frete para a gente.

Para isso, basta treinar esse algoritmo com os fretes antigos, ensinar a ele como eles foram calculados. Quando um frete novo for ser calculado ele pode utilizar esses dados para descobrir o valor que queremos.

Nesse caso, estamos ensinando a máquina como trabalhar com os nossos dados, logo, estamos supervisionando o aprendizado da máquina. Por isso, dizemos que esse algoritmo é um algoritmo de aprendizado supervisionado.

No aprendizado supervisionado passamos todos os dados para treinar o modelo. Isto é, passamos os dados e os resultados. Com base nisso, o algoritmo descobre uma forma de trabalhar com os dados.

Vimos que podemos utilizar esses tipos de algoritmos para prever o preço do frete, mas ainda temos que classificar os clientes e agrupá-los por seus gostos, como podemos fazer isso?

Classificando os dados

Temos que descobrir se um cliente que vai comprar ou não um produto no site. Para isso, podemos utilizar algumas informações como se ele veio de um link externo, como e-mail, ou um anúncio, se ele olhou a descrição de outro produto, se ele tem cadastro.

Podemos utilizar dados de acesso dos usuários para treinar o modelo a classificar se o usuário pode comprar ou não. Podemos pegar esses dados e falar para o nosso algoritmo: olha, esse usuário veio de um link externo, não olhou a descrição, tem cadastro e comprou o produto.

Já esse outro, não veio de link externo, olhou a descrição, não tinha cadastro e comprou o produto. Para cada um dos comportamentos no site, treinamos a máquina com os dados e com os resultados. Quando um novo usuário acessa a página, podemos falar para o modelo qual foi o seu comportamento.

Assim, o modelo consegue predizer se esse novo usuário comprará ou não. Nesse caso, assim como no frete, estamos passando os dados e os resultados para treinar nosso algoritmo. Contudo, ao contrário do outro, não estamos tentando prever um valor e sim uma classificação.

Estamos querendo classificar um usuário em vai comprar ou não vai comprar. Portanto, esse tipo de algoritmo - que também é um algoritmo de aprendizado supervisionado, já que estamos passando os dados e os resultados para ensinar o modelo - é chamado de algoritmo de classificação.

Enquanto que o algoritmo para calcular o frete é chamado de algoritmo de regressão. Esses dois tipos de algoritmo são os mais conhecidos, e mais utilizados, algoritmos para o aprendizado supervisionado.

Todos esses algoritmos, como o aprendizado de máquina no geral, utiliza de funções matemáticas para treinar os modelos. No nosso primeiro exemplo, podemos utilizar, por exemplo, a regressão linear, enquanto que para classificar, nós podemos utilizar o algoritmo de Naive Bayes, por exemplo.

Legal! Vimos como resolver dois dos nossos problemas. Basta agora, descobrir como podemos agrupar os clientes.

Criando grupos

Olhando para os algoritmos que conhecemos, podemos pensar que criar grupos de clientes é um problema de classificação. De fato, podemos aplicar classificação para criar grupos para a gente, mas que grupos teríamos?

Grupos de clientes que compram eletrônicos? Grupo de clientes com até quarenta anos? Grupo de clientes da região norte? Podemos utilizar esses grupos para enviar e-mails especiais para cada um deles, mas e se esses clientes só tiverem isso em comum?

Isto é, talvez nem todos os clientes que compram eletrônicos ou os clientes que moram em uma determinada região tenham gostos parecidos.

Mas então, como podemos agrupar os clientes? Vimos que podemos classificar nossos dados, mas isso poderia gerar grupos não muito próximos ao que queremos. E se, ao invés de nós criarmos os grupos, falar para o modelo agrupar os dados da maneira que ele achar melhor?

Dessa forma, por meio do algoritmo implementado, o modelo associa um dado a outro e dessa forma cria os grupos.

Ao contrário da classificação, estamos passando para o modelo apenas os dados e não os resultados. Ou seja, não estamos supervisionando o aprendizado, logo, dizemos que esse é um algoritmo de aprendizado não supervisionado.

Diferente do aprendizado supervisionado, neste tipo de aprendizado nós não passamos os resultados para ensinar o algoritmo. O próprio algoritmo pega o conjunto de dados e descobre como trabalhar com eles. Os tipos de algoritmos mais utilizados nesse tipo de aprendizado são o clustering e as regras de associação. Um exemplo de algoritmo é o K-Means.

Para saber mais

Além desses tipos de algoritmos, existem também o chamado aprendizado de reforço. Nele a máquina interage com o ambiente.

Essa interação gera um feedback, positivo ou negativo. Caso seja um feedback positivo, a máquina grava que pode realizar essa ação novamente, em caso de feedback negativo, o modelo sabe que não pode executá-lo novamente.

Essa foi uma breve introdução sobre o tema de aprendizado de máquina. Para cada conjunto de dados, podemos aplicar diferentes algoritmos e modelos para alcançar os melhores resultados.

Aqui na Alura temos a Formação Machine Learning.

Nesta formação, você verá algoritmos de classificação e algoritmos não supervisionado. Aprenderá sobre processamento de linguagem natural, validação e otimização de modelos. Além de sistemas de recomendação e redes neurais.

Leia também: