Com o avanço da Era da Informação, uma quantidade imensurável de dados é gerada e armazenada a todo instante de tempo. Com uma abundância tão grande de informações, a fim de que se tenha uma performance eficiente no tempo, é preciso ter as técnicas adequadas para abordar essa massa de dados de maneira apropriada, sabendo identificar quais são as variáveis de interesse e como usá-las para extrair o máximo de conhecimento das mesmas.
Neste artigo, iremos adentrar na esfera de Ciência de Dados — que se utiliza de recursos científicos, matemáticos e algorítmicos — para atacar esses desafios. O objetivo deste artigo é dar sugestões de projetos mais cotados de Data Science para o ano de 2022, contendo: exemplos de aplicações no mundo real, recomendações de algoritmos de machine learning, as bibliotecas mais úteis para desenvolvimento, e conjuntos de dados interessantes. Isso, a fim de que você tenha a direção necessária para desenvolver seu próprio projeto.
Passo a passo para realizar um projeto de Data Science:
Tão importante quanto a aplicação das técnicas adequadas no desenvolvimento de um modelo de machine learning, é ter um fluxo de trabalho — o qual é baseado no próprio método científico — dos processos de ponta a ponta, ou seja, do entendimento à entrega. Para realizar um projeto completo de ciência de dados, deve-se seguir os seguintes passos:
- Gerenciamento do escopo
- Pesquisa e coleta de dados
- Análise exploratória dos dados
- Preparação do conjunto de dados
- Desenvolvimento do modelo
- Validação e interpretação dos resultados
- Entrega de valor
No caso deste artigo, vamos focar na etapa “5. Desenvolvimento do Modelo”. Sendo assim, finalmente, seguimos com as nossas recomendações dos Top 5 projetos:
1. Análise Preditiva
Linguagem: Python ou R
Conjuntos de dados para aplicação: Emotions dataset for NLP | Kaggle | Hourly Energy Consumption | Kaggle | WHO Coronavirus (COVID-19) Dashboard | WHO Coronavirus (COVID-19) Dashboard With Vaccination Data
O que é uma Análise Preditiva em Data Science?
Análises preditivas em Data Science são técnicas que permitem informar sobre algo em um ponto futuro, com uma certa probabilidade (por exemplo, previsões de: demanda, preço, sucesso, bom empréstimo, etc.). Técnicas essas que se utilizam de métodos estatísticos e de machine learning — através de algoritmos computacionais — para coletar, processar, interpretar e traduzir os dados de interesse.
Por que usar uma Análise Preditiva?
Um olhar no futuro ajuda organizações a resolverem problemas difíceis, além de descobrir novas oportunidades, utilizando de um imenso número de dados coletados e compilados para obter novos insights. Otimizando estratégias de marketing, traçando perfil dos consumidores, aprimorando a logística, melhorando as operações, e reduzindo gastos e riscos.
É através da análise preditiva que as empresas aprendem com os dados e podem antecipar a ocorrência de um evento, adotando tomadas de decisões com medidas preventivas, aumentando as chances de sucesso na ação e alcançando resultados efetivos.
Onde podemos aplicar uma Análise Preditiva?
A análise preditiva pode ser aplicada em diversos setores, do varejo à área da saúde, passando por uma gama de segmentos.
- Prever quantidade de estoque
- Analisar sentimentos em comentários
- Antecipar um bom ou mau empréstimo
- Categorizar leads
- Classificar riscos de câncer
Entre outras inúmeras possíveis aplicações, bastando ter apenas o contexto, entendimento e dados sobre onde deseja se aplicar.
Como desenvolver e aplicar o conceito de Análise Preditiva:
Muitas vezes o desafio começa na própria coleta de dados, quando não há muita informação relacionada ao que se deseja prever. Caso já exista um conjunto de dados com volumetria suficiente (se tratando de bases relacionais estruturadas, pelo menos, algumas milhares de linhas), se segue direto com EDA (Exploratory Data Analysis) e preparação dos dados.
Sabendo que a abordagem algorítmica que usaremos é de classe supervisionada, é preciso identificar as características do nosso target, ou seja, variável que deseja-se prever: quantitativa ou qualitativa, categórica ou numérica, discreta ou contínua.
Com isso, temos mais assertividade na abordagem para prever o comportamento futuro daquilo que é interessante.
Técnicas que podem ser utilizadas para desenvolver um projeto de ciência de dados com Análise Preditiva:
→ Para variáveis qualitativas: geralmente caracterizadas com tipo de dado string, utiliza-se o algoritmo de Processo de Linguagem Natural, mais conhecido como NLP (Natural Language Process), para quantificar e categorizar os respectivos dados. Para isso, a biblioteca efetiva nessa aplicação é a nltk (Natural Language Toolkit).
→ Para variáveis quantitativas: sendo estas categóricas, numéricas, discretas e/ou contínuas, e curvas bem definidas, os algoritmos usuais de regressão são:
- Regressão Linear
- Regressão Multi linear
- XGBoost
→ Já para algoritmos de classificação, comumente utilizados são:
- Regressão Logística
- Árvore de Decisão
- KNN (K-nearest neighbors)
- SVM
Esses são só alguns dos exemplos mais recorrentes, mas há diversos outros algoritmos que podem ser empregados para se realizar uma análise preditiva. O critério para utilização deste dependerá do que faz mais sentido ao olhar para as demais características da variável target, ou o que trás um resultado mais acurado.
Em Python, a poderosa biblioteca scikit-learn é a que engloba todos os algoritmos citados, além de ser um recurso seguro e efetivo a se utilizar. Para problemas de classificação mais complexos, com muitas variáveis, ou a fim de se aumentar a eficácia dos resultados, as bibliotecas focadas em algoritmos de deep learning, como TensorFlow e/ou Keras, executam muito bem este papel.
→ Para variáveis quantitativas: sendo estas numéricas, contínuas e com grande variação ao longo do tempo (sazonalidade, tendência e/ou ciclos), — como uma série temporal, por exemplo — os algoritmos amplamente utilizados são:
- ARIMA (Autoregressive Integrated Moving Average)
- SARIMA (Seasonal Autoregressive Integrated Moving Average)
- ES (Exponential Smoothing)
Em Python, a biblioteca associada a esses é a statsmodels.
Ou, ainda, para problemas mais complexos e para obter um maior valor de R², em troca de abrir do conhecimento do processo de aprendizado do algoritmo, os algoritmos no estado da arte que tem grande eficácia são:
- XGBoost
- LSTM
- N-BEATS
Encontrados nas bibliotecas: xgboost, keras.layers import LSTM, e nbeats-pytorch.
2. Avaliação de Risco
Linguagem: Python ou R
Conjunto de dados para aplicação: German Credit Risk | Kaggle | Cervical Cancer Risk Classification | Kaggle | Behavioral Risk Factor Surveillance System | Kaggle
O que é uma Avaliação de Risco em Data Science?
Similarmente ao desafio de uma análise preditiva, em uma avaliação de risco nós nos importamos em estimar uma previsão de um determinado evento.
No entanto, ao invés de antever um dado relacionado com as próprias características da variável (como, por exemplo, quantidade de vendas em um dia), nosso interesse está em chegar em uma probabilidade de ocorrência do evento em questão, ou um intervalo/faixa onde esta probabilidade se encontra. Ou seja, qual a “chance” de algo acontecer.
Onde podemos utilizar a Avaliação de Risco?
Com uma avaliação de risco podemos:
- Calcular a probabilidade de um cliente não efetuar o pagamento ao fazer uma concisão de crédito (também conhecido como “risco de crédito”)
- Identificar qual a probabilidade de uma falha operacional ocorrer
- Descobrir qual a chance de engajar mais um consumidor com um texto descritivo
As possibilidades são ilimitadas quando se tem entendimento do negócio e dados preparados para esse tipo de análise.
Técnicas que podem ser utilizadas para desenvolver um projeto de ciência de dados utilizando a Avaliação de Risco:
Neste caso, a abordagem algorítmica que usaremos é também de classe supervisionada, a biblioteca scikit-learn abrange uma ampla gama, geralmente, utilizando algoritmos de classificação para este caso, como:
- Regressão Logística
- Árvore de Decisão
- KNN (K-nearest neighbors)
- SVM
entre outros. TensorFlow e/ou Keras também são utilizados para casos de alta complexidade que exijam algorítimos de CNN.
3. Segmentação/Clusterização
Linguagem: Python ou R
Conjunto de dados para aplicação: COVID-19 Literature Clustering | Kaggle | Sales Conversion Optimization | Kaggle | Wine Dataset for Clustering | Kaggle
O que é uma Clusterização de Dados em Data Science?
A clusterização (também conhecida como clustering), ou agrupamento, no contexto de machine learning, é uma técnica que agrupa o conjunto de dados “não rotulados” — isso é, de classe não supervisionada, não possuindo uma variável target, como explicado acima. Pode ser definido como uma forma de agrupar os pontos de dados em diferentes clusters, consistindo em pontos de dados semelhantes. O algoritmo faz isso encontrando alguns padrões semelhantes no conjunto de dados não rotulados, como: forma, tamanho, cor, comportamento etc., separando-os quando há padrões semelhantes.
Como utilizar a Clusterização de Dados?
Em modelos não supervisionados, temos a vantagem de não nos preocupar em definir um target, como em uma análise preditiva, uma vez que o método se baseia em uma análise descritiva dos dados.
No entanto, isso gera a desvantagem caso não se tenha, a princípio, um norte de qual é a principal variável apropriada que será usada para segmentação.
Sendo assim, uma análise exploratória mais intensiva se faz necessária para entender de fato os dados que estão sendo trabalhados, de modo a gerar insights determinantes para o estudo.
Onde podemos utilizar a abordagem de Clusterização de Dados?
- Perfilamento de clientes para recomendar produtos que fazem sentido para o mesmo
- Classificação de produtos para identificar subcategorias e melhor indexação
- Identificar perfis comportamentais utilizando em textos
- Na identificação de células cancerígenas
Onde existir um conjunto de dados, bem preparado, que se possa imaginar formas de agrupar as informações contidas nestes, neste caso, sempre é possível aplicar a técnicas de clusterização.
Técnicas que podem ser utilizadas para desenvolver um projeto de ciência de dados envolvendo segmentação e clusterização:
Os algoritmos que trazem boas métricas de eficiência, eficácia e efetividade para esse tipo de abordagem são:
- K-Means
- DBSCAN
- Gaussian Mixture
Todos podem ser encontrados na biblioteca scikit-learn, para dados alfanuméricos, ou scikit-image para dados de imagens.
4. Web Scraping
Linguagem: Python
O que é Web Scraping em Data Science?
O web scraping, também conhecida como data scraping, é o processo de extrair de informações de um website para um banco de dados.
Onde podemos utilizar Web Scraping?
Todo site de interesse que tem dados abertos disponíveis e que permita o uso legal de um crawler.
Sugestões de websites que podem ser utilizados para se testar o funcionamento no desenvolvimento de um web crawler: Crawler Test Site (crawler-test.com) | Web Scraper Test Sites .
Como utilizar Web Scraping em Data Science?
Nem sempre a base de dados que estamos trabalhando contempla todas informações que temos interesse, além de não ser todos os dias que temos acesso a bases de dados prontinhas para serem analisadas.
Nestes casos, se estes dados que desejamos estão disponíveis de alguma forma em websites (texto, arquivos, imagens, áudio, etc.), uma maneira de obtê-los é utilizar esta técnica conhecida como web scraping. Isso, desde que se respeite os termos e condições do website em questão, bem como as instruções para crawlers do mesmo.
Técnicas que podem ser utilizadas para desenvolver um projeto de ciência de dados envolvendo Web Scraping?
Crawlers, ou web crawlers, são um dos recursos mais conhecidos para a aplicação de web scraping.
A robustez do crawler — que deve ser apropriadamente utilizado — varia de acordo com o nível de complexidade que é necessário para extrair os dados:
- Por requests, via biblioteca Scrapy
- Interação com objetos HTML, para importar textos, executar downloads, ou outras funções, via bibliotecas como BeautifulSoup e Selenium.
5. Otimização de Rotas
Linguagem: Python
Conjunto de dados para aplicação: New York City Taxi Trip Duration | Kaggle | SF Bay Area Bike Share | Kaggle
O que é a Otimização de Rotas em Data Science?
A otimização de rotas é o processo de determinar a rota mais econômica, ou seja, qual é a melhor trajetória que minimiza distância e combustível, e maximiza a velocidade com segurança.
É mais complexo do que simplesmente encontrar o caminho mais curto entre dois pontos. Ele precisa incluir todos os fatores relevantes como:
- Número e a localização de todas as paradas necessárias na rota
- Densidade de tráfego
- Sinalização,
- Previsão do tempo,
- e as demais variáveis que impactam no trânsito.
Onde podemos utilizar a Otimização de Rota?
Todo conjunto de dados de interesse que tenha informações de geolocalização e tráfego, é possível aplicar a Otimização de Rota. Quanto mais variáveis e dados a respeito do veículo, carga e a zona onde ele vai transitar, mais acurado será o seu modelo para encontrar o trajeto mais eficiente.
Como utilizar a Otimização de Rotas em Data Science?
Não apenas utiliza-se inteligência artificial para fazer o cálculo das melhores rotas a serem tomadas, mas também é necessário entender bem das variáveis espaciais e temporais do que se tem sobre o transporte.
- Raio de distância médio máxima para entrega;
- Precificação do frete;
- Tempo médio e máximo de viagem;
- Massa média e máxima da carga;
- Tipo de automóvel;
- Horários com alta demanda;
Tendo variáveis como estas bem conhecidas, torna todo o processo de otimização ainda melhor.
Técnicas que podem ser utilizados para desenvolver um projeto de ciência de dados envolvendo otimização de rotas:
- XGBoost
- LightGBM
- Recursive DBSCAN
os quais utilizam as respectivas bibliotecas: xgboost, lightgbm, e scikit-learn.
Conclusão
Ter uma direção já é o início para começar a traçar a própria trajetória de interesse, neste espaço caótico informacional tecnológico. São essas múltiplas direções que este artigo propõe para os que buscam uma maneira de começar um projeto dentro de seu trabalho, para estudo acadêmico ou até por estudo pessoal. Aplicando conceitos, adaptando abordagens e gerando novos conhecimentos a partir do que foi realizado.
Ainda, não somente abundância de informação de um conjunto de dados de interesse é o que temos, mas também abundância de métodos e técnicas que podem ser utilizadas. Por isso a importância de saber o que, como e porque aplicar determinada abordagem. É isto que realmente irá determinar a relevância da nova sabedoria construída.