Três lições dos nossos projetos de IA
Ao longo de dois anos, acompanhámos dezenas de projetos de IA, desde a exploração inicial até um modelo que é executado todas as noites. Alguns…
O valor residual de um automóvel em leasing é uma informação importante para as empresas de leasing, pois influencia as tarifas que cobram aos seus clientes. Uma estimativa rigorosa do valor residual de um automóvel novo pode ajudar uma empresa de leasing a definir uma tarifa adequada e, assim, maximizar os lucros. Hoje, existe uma grande quantidade de informação na Internet, incluindo opiniões gerais, notícias e mensagens em fóruns. Esta informação pode indicar a popularidade de determinados automóveis ou marcas. O grande volume de dados textuais pode ser combinado com os dados sobre os automóveis que a empresa de leasing já possui, como a marca, a cilindrada e o número de portas, para prever o valor residual com a maior precisão possível através de modelos de machine learning.
Os dados a utilizar têm primeiro de ser convertidos em números. Isto é importante porque o texto em bruto, com palavras e letras, não pode servir de entrada para um modelo de machine learning. Para fins de NLP, os embeddings de palavras funcionam muitas vezes bem como representação de texto. Os modelos de word embeddings mais conhecidos são word2vec, fastText e GloVe. Ao escolher um modelo de machine learning para um problema de NLP, as redes neuronais são muitas vezes uma boa opção. Long Short-Term Memory (LSTM) é um método conhecido, mas uma Convolutional Neural Network (CNN) também apresenta bons resultados em previsões baseadas em texto.
Por fim, é importante escolher o período adequado para os dados de texto. Para calcular o valor residual de um automóvel em 1 de setembro de 2021, podemos incluir no modelo publicações nas redes sociais, discussões em fóruns sobre automóveis ou notícias do último mês. Contudo, não sabemos se um mês é suficiente; talvez precisemos de pelo menos 2, 3 ou 4 meses.
Um problema comum nas organizações é a falta de normalização dos dados. Isto significa que o mesmo valor num campo nem sempre é descrito da mesma forma. Se um conjunto de dados contiver “Mercedes-Benz C Klasse” e “Mercedes Classe C”, percebemos rapidamente que se trata do mesmo tipo de automóvel, enquanto uma base de dados ou um computador os considera, em geral, dois objetos diferentes. Isto cria inconsistências na modelação dos dados e na obtenção de informações. Para criar modelos preditivos robustos e obter informações corretas, precisamos de dados coerentes. Queremos converter todos os dados “não limpos” para um nome normalizado. Para isso, temos primeiro de definir como queremos, idealmente, descrever os dados e criar uma lista normalizada. Essa lista reúne todos os nomes de marcas e modelos, escritos da forma como queremos que apareçam. Se “Mercedes-Benz C Klasse” for um nome normalizado nessa lista, queremos converter para esse nome todos os pontos de dados identificados, por exemplo, como “Mercedes C-Klasse”, “Mercedes C220”, “Benz Klasse C” ou “Mercedes-Benz C220d Automaat”. Queremos reduzir ao mínimo as correções manuais dos dados, pelo que procuramos uma forma de automatizar o processo de normalização.
Podemos abordar este processo de várias formas. Uma opção simples, mas eficaz, é utilizar fuzzy string matching. Este método permite fazer corresponder os dados de entrada — no nosso caso, os nomes das marcas e dos modelos que pretende converter — aos nomes da sua lista normalizada. Fuzzy string matching é um método que faz corresponder dois textos que não são exatamente iguais, mas que se assemelham, total ou parcialmente. Uma medida da semelhança entre dois textos é a distância de Levenshtein. Em termos gerais, esta medida indica quantos caracteres é necessário alterar para tornar os dois textos iguais.
Uma vantagem do fuzzy string matching é ser relativamente simples de implementar. Ao contrário dos modelos convencionais de machine learning, no fuzzy matching não é necessário treinar um modelo com os dados. Os textos podem ser comparados diretamente. Isto também significa que os dados que surgem com pouca frequência podem, potencialmente, encontrar uma correspondência, enquanto os modelos de machine learning precisam muitas vezes de muitos dados para conseguir classificar determinadas categorias. Uma desvantagem do fuzzy matching é que os textos têm de ter alguma semelhança para que seja possível encontrar uma correspondência. Em exemplos como “C-Klasse”, “C Classe” e “Klasse C”, podemos ter bastante confiança de que será encontrada uma correspondência. Mas, em exemplos como “C220” e “C-Klasse”, torna-se rapidamente muito mais difícil encontrar uma correspondência, apesar de se tratar do mesmo modelo de automóvel.
O exemplo anterior é bastante adequado para modelos clássicos de machine learning. Modelos como o Random Forest conseguem muitas vezes encontrar relações que, à primeira vista, não são óbvias. Com dados de treino suficientes, um Random Forest poderia aprender rapidamente que um “C220” é um “Classe C”. Além dos modelos baseados em árvores, como o Random Forest ou o XGBoost, as redes neuronais como as LSTMs também têm frequentemente bons resultados neste tipo de problema. Para além de escolher o tipo de modelo preditivo, é preciso decidir primeiro como representar as palavras de um texto. Uma forma de o fazer é utilizar uma matriz TF-IDF. Esta matriz inclui todas as palavras do conjunto de dados, atribuindo um valor numérico a cada uma. Esse valor representa a ‘importância’ de uma palavra num texto em comparação com todos os textos do conjunto de dados.
Como referido anteriormente, uma vantagem destes modelos preditivos é que costumam ser muito precisos, desde que haja dados suficientes (o que também faz deste requisito uma desvantagem). Muitas vezes, têm mais dificuldade em identificar resultados que raramente aparecem nos dados ou que são inteiramente novos. Por isso, é frequentemente necessário voltar a treinar o modelo de forma periódica.
Os acidentes acontecem quando menos se espera — já todos ouvimos isso muitas vezes. Conduzir implica um risco considerável de acidentes e, quando olhamos para o próprio veículo, os custos dos danos podem ser elevados. Nos automóveis em leasing, a responsabilidade pelos danos recai muitas vezes sobre o próprio condutor. A verificação de danos no final do contrato de leasing é um processo que ainda envolve muitas etapas manuais e tem um grande potencial de automatização.
É possível utilizar algoritmos de deteção de objetos, como R-CNN e YOLO, para identificar novos danos com recurso a machine learning e câmaras. Antes de um novo veículo em leasing ser entregue ao condutor, pode ser inspecionado por câmaras para registar o seu estado inicial. No final do contrato de leasing, as câmaras podem voltar a inspecioná-lo e comparar o seu estado com o estado inicial. Assim, é possível determinar rapidamente, com o mínimo de trabalho manual, se o veículo sofreu danos durante o contrato. Com base nessa informação, pode também ser apresentada de imediato uma estimativa dos potenciais custos de reparação.
Muitas entidades empregadoras disponibilizam cartões de combustível aos trabalhadores para facilitar o pagamento das deslocações em serviço. Deste modo, os trabalhadores não precisam de registar constantemente os quilómetros percorridos em serviço e pedir o respetivo reembolso mais tarde. Infelizmente, estes cartões também implicam um risco de fraude. Os criminosos podem copiar os dados de um cartão de combustível e utilizá-lo para comprar combustível, gerando custos elevados para a entidade empregadora. Os próprios trabalhadores também podem cometer fraude, por exemplo, emprestando regularmente o cartão a familiares ou amigos.
Para detetar este tipo de fraude a tempo e evitar custos elevados, podemos utilizar métodos de machine learning que preveem se uma transação é fraudulenta ou legítima. A deteção de fraude é um problema frequente em data science. Estas soluções centram-se muitas vezes em cartões de crédito, mas as técnicas subjacentes podem ser utilizadas para qualquer tipo de transação, desde que haja dados suficientes. Algoritmos como o XGBoost permitem detetar possíveis fraudes quando existem dados rotulados suficientes. Mesmo quando não existem rótulos, podemos utilizar métodos não supervisionados, como o Isolation Forest e o Random Cut Forest, para identificar anomalias (fraude) nos dados das transações.
A sua organização responde a muitas perguntas recorrentes? Quer iniciar um projeto de data science ou saber que soluções orientadas por dados são adequadas para si? Contacte-nos sem compromisso para explorarmos como podemos concretizar os seus objetivos orientados por dados. Juntos, criamos o futuro.
Ao longo de dois anos, acompanhámos dezenas de projetos de IA, desde a exploração inicial até um modelo que é executado todas as noites. Alguns…
Muitas organizações já realizaram um projeto-piloto de IA. O modelo funciona, a demonstração é aplaudida e depois não acontece mais nada. Pela nossa…
A inteligência artificial está a evoluir rapidamente. Surgem novos modelos quase todas as semanas, e cada vez mais organizações experimentam a IA. Ao…
Quer ser a primeira pessoa a saber quando publicamos um novo artigo no blogue?
Obrigado pela sua inscrição!