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 tem uma influência significativa nas tarifas que oferecem aos clientes. Calcular com precisão o valor residual de um automóvel novo pode ajudar a empresa a definir uma tarifa de leasing adequada e a maximizar os lucros. Atualmente, encontra-se uma grande quantidade de informação na Internet, como opiniões gerais, notícias e publicações em fóruns. Estes conteúdos podem dar uma indicação da popularidade de determinados automóveis ou marcas. Este grande volume de dados textuais pode ser combinado com os dados sobre 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, composto por palavras e letras, não pode ser usado como entrada de um modelo de machine learning. Para fins de NLP, os word embeddings costumam funcionar bem como representação de texto. Os modelos de word embeddings mais conhecidos são o word2vec, o fastText e o GloVe. Ao escolher um modelo de machine learning para uma questão de NLP, as redes neuronais são muitas vezes uma boa opção. O Long Short-Term Memory (LSTM) é um método conhecido, mas uma Convolutional Neural Network (CNN) também produz bons resultados em previsões baseadas em texto.
Por fim, é importante escolher o intervalo temporal 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 todas as publicações nas redes sociais, discussões em fóruns sobre automóveis e notícias do último mês. No entanto, não sabemos se um mês é suficiente; talvez sejam necessários 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. No entanto, numa base de dados ou para um computador, são geralmente considerados dois objetos diferentes. Isto gera 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 uniformes. Queremos converter todos os dados que não estão limpos para um nome normalizado. Para isso, primeiro temos de definir como queremos, idealmente, descrever os dados e criar uma lista normalizada. Esta lista contém todos os nomes de marcas e modelos, escritos da forma pretendida. Se “Mercedes-Benz C Klasse” for um nome normalizado nessa lista, queremos converter para esse nome todos os pontos de dados designados, por exemplo, por “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.
Poderíamos abordar este processo de várias formas. Uma opção simples, mas eficaz, é utilizar fuzzy string matching. Este método permite comparar os dados de entrada – neste caso, as marcas e os nomes dos modelos que pretende normalizar – com os nomes da sua lista normalizada. O fuzzy string matching associa dois textos que não são exatamente iguais, mas que se assemelham de forma aproximada ou parcial. Uma forma de medir a semelhança entre dois textos é a distância de Levenshtein. Essencialmente, esta medida indica quantos caracteres é necessário alterar para tornar os dois textos iguais.
Uma vantagem do fuzzy string matching é ser relativamente fácil de implementar. Ao contrário do que acontece com os modelos tradicionais de machine learning, não é necessário treinar o modelo com os dados antes de comparar os textos. Os textos podem ser comparados diretamente. Isto também significa que os pontos de dados pouco frequentes podem ser associados com sucesso, ao passo que os modelos de machine learning muitas vezes precisam de muitos dados para conseguirem classificar determinados rótulos. Uma desvantagem do fuzzy matching é que os textos têm de apresentar alguma semelhança para ser possível encontrar uma correspondência. Com exemplos como “C-Klasse”, “C Classe” e “Klasse C”, podemos estar bastante seguros de que será encontrada uma correspondência. Mas, com exemplos como “C220” e “C-Klasse”, encontrar uma correspondência torna-se rapidamente muito mais difícil, embora se trate do mesmo modelo de automóvel.
O exemplo anterior é muito adequado para modelos clássicos de machine learning. Estes modelos, como o Random Forest, são muitas vezes eficazes a encontrar relações que não são evidentes à primeira vista. 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 costumam ser eficazes neste tipo de problema. Para além de escolher o tipo de modelo preditivo, é preciso começar por pensar em 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 e atribui 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 existam dados suficientes (embora este requisito também possa ser considerado uma desvantagem). Muitas vezes, têm mais dificuldade em identificar resultados que aparecem raramente nos dados ou que são completamente novos. Por isso, é frequentemente necessário voltar a treinar o modelo de forma periódica.
Todos já ouvimos dizer que um acidente acontece quando menos se espera. 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 veículos em regime de leasing, a responsabilidade pelos danos cabe muitas vezes ao condutor. A verificação de danos no fim do contrato de leasing é um processo que ainda envolve muitas etapas manuais e tem um grande potencial de automatização.
Os algoritmos de object detection, como R-CNN e YOLO, podem usar machine learning e câmaras para identificar novos danos. 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 fim do contrato de leasing, as câmaras podem voltar a inspecionar o veículo e compará-lo com esse estado. Assim, é possível identificar rapidamente, com o mínimo de trabalho manual, se o veículo sofreu danos durante o contrato. Com base nessa análise, também é possível apresentar de imediato uma estimativa dos potenciais custos de reparação.
Muitos empregadores disponibilizam aos trabalhadores um cartão de combustível para facilitar o pagamento das deslocações em serviço. Assim, os trabalhadores não precisam de registar e pedir posteriormente o reembolso dos quilómetros percorridos em serviço. Infelizmente, estes cartões também apresentam um risco de fraude. Os criminosos podem copiar os dados de um cartão de combustível e usá-lo para pagar combustível, gerando custos elevados para o empregador. 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 atempadamente e evitar custos elevados, podemos usar métodos de machine learning que preveem se uma transação é fraudulenta ou legítima. A deteção de fraude é um desafio frequente em data science. Muitas vezes, estas soluções centram-se nos cartões de crédito, mas as técnicas subjacentes podem ser usadas para qualquer tipo de transação, desde que existam dados suficientes. Com algoritmos como o XGBoost, podemos detetar possíveis fraudes quando há dados rotulados suficientes. Mesmo sem dados rotulados, podemos usar métodos unsupervised, como Isolation Forest e 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 explorar como podemos ajudar a alcançar 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!