Projetos de Classificação, Regressão e
Agrupamento não supervisionado
Projetos de Classificação, Regressão e
Agrupamento não supervisionado
Introdução:
Para combater a fraude em cartão, instituições financeiras e empresas implementam medidas de segurança, como sistemas de detecção de fraudes, análise de padrões suspeitos e autenticação em duas etapas.
Neste projeto, utilizamos o algoritmos de Machine Learning Decision-Tree, para construir um modelo preditivo capaz de identificar transações fraudulentas com base nas características disponíveis. Validamos e refinamos continuamente o desempenho do modelo por meio de avaliações e ajustes necessários.
Enfrentamos o desafio dos dados desbalanceados, já que a ocorrência de fraudes é geralmente rara em comparação com transações legítimas. Para lidar com isso, aplicamos técnicas de oversampling e undersampling para equilibrar a representação dos dados e melhorar o desempenho do modelo.
Conclusão:
Para avaliar o desempenho do modelo, utilizamos métricas de validação, como precision, recall, f1-score, support e accuracy. Essas métricas fornecem insights valiosos sobre a eficácia do modelo em fazer previsões precisas, auxiliando na avaliação de sua performance.
Projeto ArtMI-Auto enconder-Som
Agrupamento de Fotos da National Gallery of Art de Nova York: Utilizando Banco de Dados Real de Imagens e as Ferramentas Auto Encoder e Mapa Auto Ajustável (SOM)
Introdução: Este projeto acadêmico é o trabalho final da disciplina de mestrado da UFBA (Universidade Federal da Bahia) na disciplina de Tópicos em Inteligência Computacional III. Neste projeto, trabalhamos com um banco de dados real de imagens, utilizando técnicas de processamento de imagens e aprendizado de máquina para agrupar fotos de uma galeria de arte de Nova York.
Banco de Dados: O banco de dados utilizado neste projeto foi retirado da National Gallery Of Art de Nova York. Os dados estão disponíveis publicamente no link https://raw.githubusercontent.com/NationalGalleryOfArt/opendata/main/data/published_images.csv. Esse banco de dados contém uma grande quantidade de imagens, totalizando cerca de 104 gigabytes de dados. No entanto, para facilitar o processamento e a análise, realizamos um tratamento dos dados e reduzimos o banco para aproximadamente 1,4 gigabytes, mantendo apenas as imagens na dimensão de 32x32.
Técnicas Utilizadas:
Tratamento de Dados: Antes de prosseguir com as etapas de análise, realizamos um tratamento dos dados para garantir a qualidade e a usabilidade das imagens. Isso incluiu a remoção de imagens corrompidas ou inválidas, a padronização do formato e tamanho das imagens, bem como a redução do tamanho do banco de dados para facilitar a manipulação.
Autoencoder: Utilizamos a técnica de autoencoder para extrair características relevantes das imagens do banco de dados. O autoencoder é uma rede neural que aprende a codificar uma imagem em um espaço latente de dimensionalidade inferior e, em seguida, decodifica a imagem a partir desse espaço latente. Isso permite que o autoencoder aprenda uma representação compacta das imagens, capturando as informações mais importantes para a reconstrução.
Mapa Autoajustável (SOM): Além do autoencoder, implementamos um Mapa Autoajustável, também conhecido como Self-Organizing Map (SOM). A SOM é uma técnica de aprendizado não supervisionado que mapeia os dados em um espaço bidimensional ou tridimensional, preservando as relações topológicas entre os dados originais. Neste projeto, utilizamos a SOM para agrupar as imagens em diferentes regiões do mapa, com base em suas características semelhantes aprendidas pelo autoencoder.
Resultados e Conclusões:
Após a aplicação do autoencoder e da SOM, obtivemos resultados interessantes. As imagens foram agrupadas em diferentes regiões do mapa, refletindo suas semelhanças e características compartilhadas. Isso possibilita a exploração eficiente do banco de dados, facilitando a busca por imagens semelhantes e a descoberta de padrões interessantes.
Por fim, gostaríamos de ressaltar que a implementação do autoencoder e da SOM foi realizada sem o uso da biblioteca "minisom", visando uma maior compreensão e controle sobre o processo.
Projeto realizado em parceria com João Pedro Neto.
Churn- Decision Tree
Detecção Antecipada de Padrões de Evasão de Clientes em Instituição Financeira: Estudo de Casos em Cartão de Crédito: Churn
Introdução:
Projeto para identificação de possíveis evasões de clientes para antecipação de medidas de fidelização.
A taxa de retenção de clientes é um indicativo importante da qualidade do produto/serviço, refletindo a satisfação e fidelidade dos clientes. Se o produto/serviço não atende às expectativas, é provável que haja uma alta taxa de Churn, com clientes deixando de comprar ou mudando para concorrentes.
Diversos fatores podem levar um cliente a dar Churn, como falta de valor percebido, problemas de qualidade, suporte insatisfatório, falta de personalização ou oferta de produtos/serviços mais atrativos pela concorrência. Compreender essas características é fundamental para implementar melhorias e reter os clientes, aumentando a satisfação e reduzindo a taxa de Churn.
Problema:
identificar o perfil dos clientes em risco de Churn, para a tomada de medidas proativas para reter esses clientes.
Qual o perfil de clientes que cancelaram o contrato (Churn)?
Análise exploratória dos dados para compreender sua estrutura, distribuição e relacionamentos. Gráficos e estatísticas descritivas para extração de insights e identificação de possíveis padrões ou variáveis-chave relacionadas ao Churn.
Pré-processamento:
Preparação os dados para a etapa de modelagem, tratamento de dados faltantes, codificação de variáveis categóricas, normalização ou padronização de dados numéricos, Adequação dos dados para os algoritmos de Machine Learning.
Selecionar e aplicar modelos de Machine Learning adequados para prever o Churn dos clientes. Alguns exemplos de algoritmos comumente utilizados são regressão logística, árvores de decisão, Random Forest, redes neurais, entre outros. Ajuste dos modelos aos dados de treinamento e avaliação de desempenho.
Avaliação da capacidade de prever o Churn corretamente. Utilizar métricas de avaliação, como acurácia, precisão, recall ou AUC-ROC, para medir o desempenho dos modelos. Ajuste os parâmetros do modelo, se necessário, para melhorar seu desempenho e escolha o modelo mais adequado com base nos resultados obtidos.
K-means e Prophet: agrupamento e serie temporal
Introdução:
Este projeto tem como objetivo realizar uma análise abrangente das vendas do Walmart nos Estados Unidos, durante o período de 2011 a 2014. Além disso, serão aplicadas técnicas de segmentação de clientes e previsão de vendas utilizando um modelo de séries temporais com o Prophet.
Inicialmente, será realizado o pré-processamento do dataset, que envolverá a limpeza e transformação dos dados para garantir sua qualidade e adequação para as análises subsequentes. Serão tratados valores ausentes, ajustadas as colunas de data e formatos de dados, e realizada uma análise exploratória para obter insights preliminares.
Utilizando a técnica de agrupamento K-means, faremos uma segmentação dos clientes do Walmart com base em critérios como faturamento, lucros e quantidade de produtos vendidos Essa segmentação permitirá uma melhor compreensão do comportamento e características dos diferentes grupos de clientes.
Utilizaremos o método Elbow para determinar a quantidade ideal de classes para a segmentação dos clientes. Através dessa técnica, identificaremos o ponto de inflexão no gráfico de variância explicada em relação ao número de classes, a fim de encontrar o número ótimo de grupos para a análise.
Após a segmentação, realizaremos uma análise aprofundada das 4 (redução feita para otimização de processamento) classes agrupadas de clientes, explorando características distintas, comportamentos de compra e possíveis estratégias de marketing direcionadas a cada grupo. Essa análise contribuirá para o desenvolvimento de ações mais personalizadas e eficazes.
Por fim, aplicaremos o modelo Prophet, uma técnica de séries temporais, para realizar a previsão de vendas futuras do Walmart. Utilizaremos os dados históricos disponíveis para criar um modelo robusto e preciso, capaz de gerar previsões confiáveis para auxiliar no planejamento estratégico e na tomada de decisões.
Perceptron-Diagnóstico de doença cardíaca
Este projeto tem como objetivo desenvolver um modelo de diagnóstico médico para identificar a existência de problemas cardíacos em pacientes, utilizando uma base de dados médicos contendo informações de exames realizados. A análise desses dados pode auxiliar na detecção precoce de doenças cardíacas e na tomada de decisões médicas.
Antes da construção do modelo, realizamos um pré-processamento dos dados. As seguintes etapas foram executadas:
Transformação em one-hot encoding: Para melhor processamento dos dados categóricos, utilizamos a técnica de one-hot encoding.
Normalização: Realizamos a normalização das seguintes variáveis: 'idade', 'pressão', 'colesterol', 'freq_crd_max' e 'depressão ST'. Essa etapa é importante para garantir que as variáveis estejam na mesma escala e facilitar o treinamento do modelo.
Desenvolvemos uma rede neural utilizando um perceptron implementado do zero, sem o uso de bibliotecas específicas, devido à natureza acadêmica do projeto. A rede foi treinada com os dados pré-processados e ajustada com base em uma determinada métrica.
Criamos um Callback para capturar o melhor conjunto de pesos (weights) e bias durante o treinamento. Esse Callback nos permitiu monitorar a métrica escolhida e guardar os melhores valores obtidos.
Realizamos a avaliação do modelo utilizando três métricas: F1-score, Recall e Acurácia. Essas métricas fornecem insights sobre o desempenho do modelo em diferentes aspectos.
Os modelos avaliados com acurácia e F1-score apresentaram desempenho semelhante, com acurácia = 0.9135 e F1-score = 0.8888. No entanto, considerando a natureza do problema de diagnóstico médico, a minimização de falsos negativos é essencial para evitar que pacientes doentes sejam erroneamente classificados como saudáveis. Nesse sentido, o modelo avaliado com a métrica Recall obteve um valor de 0.9444, identificando corretamente 94,44% dos pacientes doentes.
Trabalho acadêmico realizado em parceria com João Pedro Brito.
Perceptron-Ìris(implementação)
Implementação de Algoritmo Perceptron para Classificação do Banco de Dados Iris sem Utilizar
a Biblioteca sklearn e sem Pré-processamento
Introdução:
Este projeto foi concebido com objetivo de implementar um algoritmo de perceptron.
Foi utilizado um dataset íris, por ser equilibrado e não necessitar de pré-processamento, e serviu de base para testes sobre uma implementação de uma função de perceptron, para ser usado em outro projeto, Perceptron-Diagnóstico de doença cardíaca
Conclusão:
A implementação do algorítmo demonstrou ser funcional e apresentou resultados altamente eficientes ao lidar com a espécie Setosa. A distinção clara de seus parâmetros permitiu uma classificação precisa e confiável. No entanto, quando se trata da espécie Versicolor, as medidas utilizadas revelaram-se bastante semelhantes às de outras espécies, o que resultou em resultados insatisfatórios na criação de agrupamentos preditivos.
É importante ressaltar que o objetivo principal deste projeto era testar a funcionalidade da implementação, buscando utilizá-la como base para um projeto futuro. Nesse sentido, embora os resultados não tenham sido ideais para a espécie Versicolor, essa etapa permitiu obter um conhecimento valioso sobre o funcionamento da função e sua aplicabilidade no contexto do diagnóstico médico.
Com base nas lições aprendidas durante esta implementação, é possível direcionar esforços para o aprimoramento do modelo, com criação de uma classe e considerando outras variáveis e métricas relevantes . Além disso, é fundamental investigar e validar a eficácia do modelo em um conjunto de dados mais abrangente, que contemple uma variedade maior de espécies e características.
Embora o projeto tenha revelado limitações na criação de agrupamentos preditivos para a espécie Versicolor, ele foi bem-sucedido em seu objetivo primordial de testar a implementação da função.
Essa etapa inicial é fundamental para o desenvolvimento futuro de um projeto de diagnóstico de doenças cardíacas mais robusto e confiável, que possa fornecer informações precisas e auxiliar no cuidado e tratamento de pacientes.
Projeto de inteligência artificial (IA) voltado para a previsão de scores de crédito de clientes bancários. O objetivo principal é analisar um conjunto de dados abrangente contendo informações dos clientes já previamente pré-processado,e por meio da implementação de diversos modelos de aprendizado de máquina, atribuir automaticamente um score de crédito a cada cliente, classificando-o como "Ruim", "Ok" ou "Bom".
Case: Score de Crédito de Clientes de um Banco O caso de uso central deste projeto gira em torno da análise de scores de crédito de clientes bancários. Por meio da aplicação de técnicas de análise de dados e aprendizado de máquina, o projeto visa a criar modelos comparativos capazes de processar as informações individuais de cada cliente e, com base nessas informações, determinar a categoria de score de crédito mais apropriada.
Objetivos Análise Abrangente: O projeto envolve uma análise detalhada de todos os clientes do banco, levando em consideração uma ampla variedade de informações relevantes.
Modelos Comparativos: Vários modelos de aprendizado de máquina foram implementados e comparados para determinar qual deles oferece o melhor desempenho na previsão de scores de crédito.
Categorização de Scores: Através da IA, os modelos automaticamente classificam os clientes em três categorias distintas de score de crédito: "Ruim", "Ok" e "Bom".