Projeto 1: Sistema de Recomendação.
Definição do problema: Sistemas de Recomendação (Filtragem Colaborativa, filtragem Baseada em Conteúdo ou Híbrida). Imagine que você precise construir um sistema de recomendação de filmes. Cada vez que um usuário assistir a um filme seu sistema deve recomendar cinco outros filmes a fim de manter o usuário conectado na tela tanto quanto possível (o que fazem os canais de streaming e as redes sociais). Criaremos então um sistema de recomendação via filtragem baseada em conteúdo. Para isso, serão utilizados dados reais disponíveis publicamente. Os dados foram gerados a partir do site https://developer.themoviedb.org/docs
Passos seguidos: Definição do problema, preparar o ambiente de codificação, visão geral, carregar e compreender os dados, organizar os dados de texto, análise exploratória dos dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), processamento do texto, cálculo de distâncias de vetores, construir e aplicar o Sistema de Recomendação.
Tipo de Aprendizado: Não supervisionado.
Variáveis/Atributos: budget, genres, homepage, id, keywords, original_language, original_title, overview, popularity, production_companies, production_countries, release_date, revenue, runtime, spoken_languages, status, tagline, title, vote_average, vote_count, movie_id, cast, crew.
Tamanho dos dados: (4803, 23).
Pacotes/Bibliotecas: ast; nltk; sklearn; numpy; pandas; nltk.stem.porter: PorterStemmer; sklearn.feature_extraction.text: CountVectorizer; sklearn.metrics.pairwise: cosine_similarity.
Matemática/Estatística: Vetorização, Análise de Similaridade, Cosseno, Distância Euclidiana, Processamento de Linguagem Natural (PLN).
Projeto 2: Suspeita de Fraude.
Definição do problema: Construir um algoritmo de Machine Learning completo e a partir do zero a fim de aplicar o conceito de operações com matrizes. A situação é, a partir do número de compras em uma transação comercial, compondo dois atributos e oito registros, verificar se a transação foi ou não suspeita.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, definir e escrever o algoritmo para a Classe (Método Construtor, Método da Função de Ativação, Método de Treinamento – Pesos e Bias, Método de Treinamento Forward Pass e Backward Pass, Método de Previsão), definindo e preparando os dados, treinamento e avaliação do modelo.
Tipo de Aprendizado: Aprendizado Supervisionado.
Variáveis/Atributos: Não foram utilizados atributos específicos.
Tamanho dos dados: Foram utilizados dados artificiais aleatórios e com tamanhos variáveis para Treino (T), Validação (V) e Teste (T) è TVT
Pacotes/Bibliotecas: Numpy.
Matemática/Estatística: Matrizes.
Projeto 3: Análise de Componentes Principais - PCA.
Definição do problema: Este projeto tem o propósito de reduzir a dimensionalidade de um dataset que contém as respostas de 40 alunos a um quiz com 49 perguntas. Cada resposta representa uma variável em nosso problema. Os dados são fictícios e de exemplo. A primeira coluna (que carregaremos como índice) representa ID anônimo do aluno. Para isso, será feita a Análise de Componentes Principais (PCA).
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e compreender os dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), implementar o algoritmo PCA em três versões.
Tipo de Aprendizado: Não Supervisionado
Variáveis/Atributos: Respostas a um Quiz com 49 perguntas.
Tamanho dos dados: (40, 49)
Pacotes/Bibliotecas: Numpy, Pandas, sklearn, sklearn.decomposition: PCA
Matemática/Estatística: Autovalores, Autovetores, Variância, Covariância (em torno da média), redução de dimensionalidade.
Projeto 4: Arquitetura Transformer para Análise Forecast em Séries Temporais.
Definição do problema: Este projeto tem como propósito verificar a matemática que compõe a Arquitetura Transformer na Análise e Forecast de Séries Temporais. Para isso, será avaliado um dataset relacionado ao turismo mensal em uma dada região. Esses dados foram coletados do site <https://huggingface.co/datasets/monash_tsf>. Os dados utilizados incluem 366 séries mensais, 427 séries trimestrais e 518 séries anuais, todas fornecidas por organismos de turismo ou por académicos que os utilizaram em estudos anteriores de previsão do turismo.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar os dados de séries temporais a partir da plataforma Hugging Face, explorar e visualizar os dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), configurar os hiperparâmetros, treinamento do modelo, avaliação do modelo com as métricas MASE e SMAPE, previsão com o modelo treinado.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Número de visitantes por mês em uma dada região.
Tamanho dos dados: 187 registros em uma série temporal. Treino (T), validação (V) e teste (T).
Pacotes/Bibliotecas: evaluate; torch; transformers; accelerate; gluonts; pandas; numpy; datasets: load_dataset; matplotlib.pyplot; matplotlib.dates; functools: lru_cache; functools: partial; transformers: (TimeSeriesTransformerConfig, TimeSeriesTransformerForPrediction); transformers: PretrainedConfig; typing: Optional; accelerate: Accelerator; torch.optim: AdamW; evaluate: load; typing: Iterable; gluonts.itertools: Cached, Cyclic; gluonts.dataset.loader: as_stacked_batches; gluonts.time_feature: get_seasonality; gluonts.time_feature: get_lags_for_frequency; gluonts.time_feature: time_features_from_frequency_str; gluonts.transform.sampler: InstanceSampler; gluonts.time_feature: (time_features_from_frequency_str, TimeFeature, get_lags_for_frequency); gluonts.dataset.field_names: FieldName; gluonts.transform: (AddAgeFeature, AddObservedValuesIndicator, AddTimeFeatures, AsNumpyArray, Chain, ExpectedNumInstanceSampler, InstanceSplitter, RemoveFields, SelectFields, SetField, TestSplitSampler, Transformation, ValidationSplitSampler, VstackFeatures, RenameFields).
Matemática/Estatística: Erro Médio Absoluto Escalonado (MASE) e Erro Percentual Absoluto Médio Simétrico (SMAPE).
Projeto 5: Tratamento de Dados Categóricos.
Definição do problema: Construir um modelo preditivo capaz de prever o Custo de Entrega. Além disso, verificar a relação das variáveis em relação à variável alvo Custo de Entrega, bem como explorar e aplicar diferentes técnicas de codificação e transformação de variáveis categóricas, como One Hot Encoding e Ordinal Label Encoding, para preparar os dados para análise. Para mais, investiga o impacto dessas técnicas na performance de modelos estatísticos.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e identificar os tipos de dados, análise exploratória dos dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), análise de multicolinearidade dos dados e colocar os dados em uma mesma escala (padronizar), criar o modelo.
Tipo de Aprendizado: Modelo estatístico e Aprendizado Supervisionado.
Variáveis/Atributos: Valor venda unitário, Valor venda total, Custo entrega, Status entrega, Idade vendedor, Área urbana, Cliente lotal.
Tamanho dos dados: (400, 7). Treino (T), validação (V) e teste (T).
Pacotes/Bibliotecas: sklearn; numpy; pandas; matplotlib.pyplot; seaborn; sklearn.model_selection: train_test_split; sklearn.preprocessing: OneHotEncoder, OrdinalEncoder, StandardScaler; sklearn.compose: ColumnTransformer; sklearn.pipeline: Pipeline; sklearn.linear_model: LinearRegression; sklearn.metrics: mean_squared_error, r2_score.
Matemática/Estatística: Análise de Distribuição normal, Tabela de contingência, Tabela de frequências.
Projeto 6: Indicadores Socioeconômicos
Definição do problema: Estudar e explicar quais são os fatores socioeconômicos que impactam na expectativa de vida das pessoas. Este projeto foi desenvolvido com dados reais disponíveis publicamente sobre atributos socioeconômicos relacionados à expectativa de vida de cidadãos em diversos países. Os dados foram extraídos do link:
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e compreender os dados, análise exploratória dos dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), engenharia de atributos (feature engineering), verificar multicolinearidade e colocar os dados na mesma escala (padronizar), criar o modelo.
Tipo de Aprendizado: Modelagem Estatística.
Variáveis/Atributos: Country, Year, Status, Life expectancy , Adult Mortality, Infant deaths, Alcohol, Percentage expenditure, Hepatitis B, Measles, BMI, Under-five deaths, Polio, Total expenditure, Diphtheria, HIV/AIDS, GDP, Population, Thinness 1-19 years, Thinness 5-9 years, Income composition of resources, Schooling.
Tamanho dos dados: Tamanho total=2938 linhas para 22 variáveis. Treino (T), validação (V) e teste (T).
Pacotes/Bibliotecas: pandas; numpy; seaborn; matplotlib.pyplot, statsmodels.api; statsmodels.formula.api: ols; sklearn.preprocessing: StandardScaler.
Matemática/Estatística: Quartil, Média, Mediana, Gráficos de dispersão, Gráficos de barras, Gráficos de setores, Coeficientes de correlação.
Projeto 7: Pequenas Situações que Envolvem a Probabilidade.
Definição do problema: O propósito deste projeto é resolver diversos pequenos problemas de negócio utilizando o conhecimento no campo da Probabilidade.
Passos seguidos: Definição do problema, preparar o ambiente de codificação.
Tipo de Aprendizado: Modelagem estatística.
Variáveis/Atributos: São diversos, que dependerão da situação.
Tamanho dos dados: Valores aleatórios em contexto.
Pacotes/Bibliotecas: scipy; numpy; matplotlib.pyplot; scipy.stats: uniform; scipy.stats: expon; scipy.stats: norm; scipy.integrate: quad
Matemática/Estatística: Distribuição (Uniforme Discreta, Uniforme Contínua, Exponencial, Binomial, Poisson, Geométrica, Binomial Negativa, Hipergeométrica, Normal), Função Densidade de Probabilidade.
Projeto 8: Testes Estatísticos para analisar a taxa de ocupação de imóveis.
Definição do problema: Aplicação e interpretação de Testes Estatísticos para analisar a taxa de ocupação de imóveis. Analisar os dados e verificar quais fatores influenciam a taxa de ocupação de imóveis em bairros de uma cidade. A taxa de ocupação das residências é a variável alvo e o restante são as variáveis independentes com base nas quais vamos analisar a taxa de ocupação das casas dos bairros de uma determinada cidade.
Para realizar o trabalho usaremos diversos métodos paramétricos, que fazem fortes suposições sobre os dados. A fonte de dados foi obtida a partir do link:
https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar os dados e definir a variável alvo, análise exploratória dos dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), análise bivariada, preparação dos dados, verificar multicolinearidade e padronizar os dados, criação dos modelos (versões), validação das suposições para a regressão linear.
Tipo de Aprendizado: Modelo Estatístico.
Variáveis/Atributos: Número médio de quartos por residência, Idade média residenciais, taxa de criminalidade, proporção de lotes, proporção de empresas, rio no bairro, taxa de poluição, distância ao centro, acessibilidade, imposto residencial, taxa de professores, consumo médio de energia, taxa de desabrigados, taxa de ocupação.
Tamanho dos dados: (500, 14).
Pacotes/Bibliotecas: numpy; pandas; matplotlib.pyplot; seaborn; pylab; scipy: scipy.stats; statsmodels.api; statsmodels.regression.linear_model; statsmodels.stats.api; scipy.stats: pearsonr; statsmodels.stats.outliers_influence: variance_inflation_factor;
statsmodels.compat: lzip; sklearn; sklearn.model_selection: train_test_split; sklearn.preprocessing: StandardScaler.
Matemática/Estatística: Teste paramétrico (Pearson, t de Student e Análise de variância – ANOVA de 1 e 2 fatores), Variance Inflation Factor (VIF - multicolinearidade), curva gaussiana, Análise de simetria, Análise de 3 desvios na curva gaussiana, média, mediana e amplitude estatística, coeficientes de correlação de Pearson, resíduos.
Projeto 9: Análise de Sentimento em Avaliações de Usuários com Regressão Não Paramétrica
Definição do problema: Demonstra na prática como aplicar regressão não paramétrica no contexto de um problema de negócio com o objetivo de prever sentimento em avaliações de usuários. Usaremos dados fictícios criados dentro do projeto. Análise de sentimento em avaliações de usuários com regressão não paramétrica.
Passos seguidos: Definição do problema, preparar o ambiente de codificação.
Tipo de Aprendizado: Modelo estatístico de regressão.
Variáveis/Atributos: Dados fictícios.
Tamanho dos dados: (100, 2).
Pacotes/Bibliotecas: scipy; statsmodels; numpy;pandas; matplotlib.pyplot; statsmodels.nonparametric.smoothers_lowess: lowess; scipy.stats: kstest
Matemática/Estatística: Regressão não paramétrica (Locally Estimated Scatterplot Smoothing - LOESS),
Projeto 10: Análise de Teste A/B em Campanha de Marketing Digital.
Definição do problema: Análise de Teste A/B em Campanha de Marketing Digital. Testes A/B são uma metodologia usada para comparar duas versões de uma variável (como uma página da web, um aplicativo ou uma campanha publicitária) para determinar qual delas apresenta um desempenho melhor em termos de uma métrica definida. Basicamente, o público é dividido aleatoriamente em dois grupos: o grupo A (controle) recebe a versão original e o grupo B (tratamento) recebe a versão modificada. O desempenho de cada grupo é então medido e comparado para ver qual versão é mais eficaz. Esse tipo de teste é muito útil para tomar decisões baseadas em dados, permitindo que as empresas otimizem suas estratégias de marketing. Os dados para este projeto são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), aplicar testes estatísticos.
Tipo de Aprendizado: Modelagem estatística.
Variáveis/Atributos: id_usuário, timestamp, grupo, pagina, converteu.
Tamanho dos dados: (294460, 5).
Pacotes/Bibliotecas: Random; numpy; pandas; matplotlib.pyplot; seaborn; statsmodels.api; scipy: stats; scipy.stats: chi2_contingency; scipy.stats: Shapiro; scipy.stats: mannwhitneyu; sklearn.linear_model: LogisticRegression.
Matemática/Estatística: Testes estatísticos/hipóteses, Regressão logística, Teste A/B com Qui-Quadrado (Q-Q), Teste A/B com Teste t de Student, Teste de Mann-Whitney U.
Projeto 11: Análise Multivariada para a Área de Marketing.
Definição do problema: o objetivo é fazer um extenso trabalho de exploração dos dados e identificar fatores que ajudem a explicar o porquê um cliente aceita ou não uma campanha de Marketing e realiza a compra de determinados produtos. Devemos realizar a análise e emitir uma conclusão para os tomadores de decisão. Durante o processo vamos trabalhar com diversas técnicas de análise multivariada. Este projeto foi realizado com dados da área de Marketing, utilizando Machine Learning como um meio para análise multivariada, além de formular, aplicar e interpretar testes de hipóteses. Os dados utilizados foram extraídos do link:
https://www.kaggle.com/datasets/rodsaldanha/arketing-campaign
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), engenharia de atributos, aplicar testes estatísticos, extrair insights com análise multivariada.
Tipo de Aprendizado: Aprendizado supervisionado, modelo estatístico.
Variáveis/Atributos: ID, Ano_Nascimento, Educacao, Estado_Civil, Renda, Criancas_em_Casa, Adolescentes_em_Casa, Data_Cadastro_Cliente, Gasto_Vinhos, Gasto_Frutas, Gasto_Carnes, Gasto_Peixes, Gasto_Doces, Gasto_Outros, Num_Compras_Desconto, Num_Compras_Web, Num_Compras_Catalogo, Num_Compras_Loja, Num_Visitas_Web_Mes, Aceitou_Campanha_1, Aceitou_Campanha_2, Aceitou_Campanha_3, Aceitou_Campanha_4, Aceitou_Campanha_5, Aceitou_Campanha_6.
Tamanho dos dados: (2237, 25).
Pacotes/Bibliotecas: sklearn; scipy; pandas; numpy; matplotlib.pyplot; seaborn; missingno; scipy.stats: Shapiro; scipy.stats: mannwhitneyu; sklearn.impute: KNNImputer; sklearn.preprocessing: StandardScaler; sklearn.ensemble: RandomForestClassifier; datetime: datetime.
Matemática/Estatística: Intervalo InterQuartil (IQR = Q1 – Q3) com distribuição normal, teste de hipótese (não paramétrico, Mann-Whitney U), teste de normalidade (Shapiro-Wilk), matriz de correlação, boxplot.
Projeto 12: Seleção de Modelos de Machine Learning para Análise Multivariada.
Definição do problema: Construir um modelo de Machine Learning capaz de prever se o cliente de uma seguradora vai renovar ou não o seguro do carro. Com esse modelo preditivo a seguradora pode planejar melhor seu orçamento prevendo antecipadamente a renovação de um determinado cliente a qualquer momento. Visando manter a privacidade a que todos têm direito (o que é garantido por lei) a empresa anonimizou os dados de todos os clientes. São 178 variáveis de entrada, cada qual representando características dos clientes. Não é possível identificar o que cada característica representa, ou seja, os dados estão anonimizados. A variável 179 é o label, indicando se o cliente renovou ou não o seguro nos 2 anos anteriores. Desta forma, busca-se a implementação e comparação de modelos de Machine Learning para análise multivariada, utilizando um conjunto de dados anonimizados para garantir a privacidade e conformidade com as normativas de proteção de dados. A ideia é explorar diferentes técnicas de seleção de modelos para identificar o algoritmo mais eficaz e eficiente, capaz de lidar com a complexidade e as nuances dos dados multivariados, sem comprometer a identidade dos indivíduos representados.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar e limpar os dados, balanceamento de classe, padronização dos dados, modelagem preditiva, versões do modelo, deploy do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Um atributo com a indicação se vai ou não renovar e mais 128 atributos anonimizados.
Tamanho dos dados: (11500, 179)
Pacotes/Bibliotecas: pickle; pandas; numpy; seaborn; matplotlib.pyplot; xgboost; sklearn; sklearn.preprocessing: StandardScaler; sklearn.linear_model: LogisticRegression; sklearn.naive_bayes: GaussianNB; xgboost: XGBClassifier; sklearn.ensemble: RandomForestClassifier; sklearn.metrics: roc_auc_score, accuracy_score, precision_score, recall_score, roc_curve.
Projeto 13: Ciências Sociais e Indicadores Socioeconômicos.
Definição do problema: Utilizar de Ciência de Dados e Machine Learning para prever a expectativa de vida usando como dados de entrada indicadores socioeconômicos. Para este Projeto trabalharemos com dados reais disponíveis publicamente sobre atributos socioeconômicos relacionados à expectativa de vida de cidadãos em diversos países. Os dados foram extraídos do link abaixo:
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, detectar e tratar outliers e valores ausentes, engenharia de atributos, verificação de multicolinearidade, pré-processamento dos dados, criação dos modelos.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Country, Year, Status, Life expectancy, Adult Mortality, infant deaths, Alcohol, percentage expenditure, Hepatitis B, Measles, BMI, under-five deaths, Polio, Total expenditure, Diphtheria, HIV/AIDS, GDP, Population, thinness 1-19 years,
thinness 5-9 years, Income composition of resources, Schooling.
Tamanho dos dados: (2938, 22).
Pacotes/Bibliotecas: joblib; pandas; numpy; seaborn; matplotlib.pyplot; sklearn; sklearn.ensemble: RandomForestRegressor; sklearn.preprocessing: StandardScaler; sklearn.model_selection: train_test_split; sklearn.linear_model: LinearRegression, Ridge, Lasso, ElasticNet; sklearn.model_selection: GridSearchCV; sklearn: metrics.
Matemática/Estatística: Análise de autocorrelação, regressão, coeficiente de determinação, desvio padrão, gráfico de dispersão.
Projeto 14: Segmentação da Base de Clientes.
Definição do problema: Encontrar grupos de clientes similares e assim ajudar a equipe de Marketing a compreender como orientar melhor as campanhas de acordo com o perfil dos clientes. Usaremos dados fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, limpeza dos dados, detecção de outliers e valores ausentes, criação e análise dos modelos.
Tipo de Aprendizado: Não supervisionado.
Variáveis/Atributos: Idade, Gasto mensal, Tempo de assinatura, Taxa de uso, Suporte tickets, Cancelou.
Tamanho dos dados: (99, 6).
Pacotes/Bibliotecas: threadpoolctl; numpy; pandas; seaborn; matplotlib.pyplot; sklearn; scipy: stats; sklearn.preprocessing: StandardScaler; sklearn.cluster: KMeans; sklearn.metrics: silhouette_score; sklearn.decomposition: PCA; sklearn.manifold: TSNE.
Matemática/Estatística: Intervalo Interquartil (IQR), Análise de correlação.
Projeto 15: Fatores Latentes que Influenciam nas Decisões de Compra.
Definição do problema: Suponha que uma empresa tem diversas métricas coletadas sobre os hábitos de compra, mas os gestores não têm clareza sobre quais dimensões são as mais relevantes. Desta forma, a ideia é realizar uma análise fatorial para reduzir a dimensionalidade dos dados e identificar os fatores latentes que explicam a maior parte da variância no comportamento de compra dos clientes.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, aplicar testes estatísticos, análise fatorial.
Tipo de Aprendizado: Não supervisionado.
Variáveis/Atributos: Frequencia_compras, Valor_medio, Categoria_mais_comprada, Tempo_loja, Uso_app.
Tamanho dos dados: (500, 5).
Pacotes/Bibliotecas: Random; pandas; numpy; factor_analyzer; factor_analyzer: FactorAnalyzer; factor_analyzer.factor_analyzer: calculate_bartlett_sphericity; factor_analyzer.factor_analyzer: calculate_kmo; matplotlib.pyplot.
Projeto 16: Redução de Dimensionalidade de Dados de Sensores de Máquinas Industriais.
Definição do problema: Aplicar a técnica de Análise de Componentes Principais (PCA) para reduzir a dimensionalidade de um conjunto de dados obtidos a partir de sensores em máquinas industriais. O objetivo é simplificar os dados preservando as informações mais críticas, o que facilita a construção e a eficiência de um modelo preditivo. Este modelo será desenvolvido para prever falhas potenciais ou necessidades de manutenção nas máquinas, aumentando a confiabilidade e eficiência operacional. Ao reduzir a quantidade de variáveis, o PCA não apenas melhora o tempo de treinamento do modelo, mas também ajuda a evitar o sobreajuste (overfitting) e melhora a generalização do modelo em dados não vistos. O projeto combina métodos avançados de análise de dados com aplicações práticas na manutenção preditiva, representando um passo significativo em direção à otimização da gestão de ativos e operações industriais. Os dados utilizados são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, padronizar os dados, aplicar o PCA, interpretar e escolher os componentes, criar o modelo de regressão logística.
Tipo de Aprendizado: Não supervisionado e supervisionado.
Variáveis/Atributos: 9 atributos sintéticos.
Tamanho dos dados: (1000, 9).
Pacotes/Bibliotecas: numpy; pandas; sklearn; matplotlib.pyplot; sklearn.preprocessing: StandardScaler; sklearn.decomposition: PCA; sklearn.model_selection: cross_val_score; ; sklearn.linear_model: LogisticRegression; sklearn.model_selection: LeaveOneOut.
Matemática/Estatística: Variância, covariância, autovalores, autovetores.
Projeto 17: Auditoria Financeira para Prever Fraude em Transações de Criptomoedas.
Definição do problema: Construir um modelo XGBoost para classificar transações financeiras com criptomoedas a fim de detectar possíveis fraudes. O projeto inclui a criação de um pipeline de pré-processamento de dados através de técnicas de programação orientada a objetos, bem como a criação de um pipeline de Machine Learning. Os dados foram extraídos do link abaixo:
https://www.kaggle.com/datasets/vagifa/ethereum-frauddetection-dataset/data
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, engenharia de atributos, criação de pipeline de pré-processamento e de machine learning, preparação dos dados, treinamento e avaliação do modelo, deploy do modelo e detecção de fraudes em novas transações com criptomoedas.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: São 51 atributos.
Tamanho dos dados: (9841, 51).
Pacotes/Bibliotecas: joblib; numpy; pandas; sklearn; xgboost; xgboost: XGBClassifier; sklearn.model_selection: train_test_split; sklearn.pipeline: Pipeline; sklearn.base: BaseEstimator, TransformerMixin; sklearn.preprocessing: StandardScaler; sklearn: metrics; joblib: dump, load.
Projeto 18: Prevendo Múltiplos Indicadores Macroeconômicos.
Definição do problema: Este projeto aplica a técnica de Regressão Multi-Target para prever múltiplos indicadores macroeconômicos simultaneamente. Utilizando um conjunto de dados históricos que inclui variáveis como PIB, taxa de desemprego, inflação e taxa de juros, o projeto implementa e avalia modelos de regressão que capturam as correlações entre esses indicadores econômicos. Os dados são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construção/treinamento\avaliação\previsões do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Taxa_juros, Taxa_cambio, produção_industrial, pib, inflação, taxa_desemprego.
Tamanho dos dados: (1000, 6).
Pacotes/Bibliotecas: sklearn; numpy; pandas; sklearn.model_selection: train_test_split; sklearn.preprocessing: StandardScaler; sklearn.multioutput: MultiOutputRegressor; sklearn.ensemble: RandomForestRegressor; sklearn.metrics: mean_squared_error; sklearn.metrics: r2_score
Projeto 19: Agronegócio - Previsão de Rendimento de Colheita e Otimização da Irrigação.
Definição do problema: Este projeto visa aplicar técnicas de Data Science no setor do agronegócio para prever o rendimento das colheitas e otimizar o uso da irrigação. Utilizando dados históricos e variáveis ambientais, como índice de vegetação, capacidade do solo, concentração de CO2, níveis de nutrientes, aplicação de fertilizantes, profundidade das raízes, radiação solar, precipitação e umidade, o objetivo é desenvolver um modelo preditivo que auxilie os agricultores a tomar decisões informadas. Isso pode resultar em uma gestão mais eficiente dos recursos hídricos, aumento da produtividade e sustentabilidade agrícola.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, limpeza e transformação dos dados, padronização dos dados, construir o modelo, compilar e definir os call-backs do modelo, treinar e avaliar o modelo
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: data, indice_vegetacao, capacidade_solo, concentracao_co2, nivel_nutrientes, indice_fertilizantes, profundidade_raiz, radiacao_solar, precipitacao, estagio_crescimento, historico_rendimento, umidade.
Tamanho dos dados: (124, 12).
Pacotes/Bibliotecas: joblib; sklearn; pandas; sklearn.model_selection: train_test_split; sklearn.preprocessing: StandardScaler; tensorflow; tensorflow.keras.models: Sequential; tensorflow.keras.layers: Dense, Dropout; tensorflow.keras.callbacks: EarlyStopping, ModelCheckpoint.
Projeto 20: Construir API para Deploy do Modelo de Deep Learning.
Definição do problema: Criar uma API para deploy do modelo de deep learning.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, limpeza e transformação dos dados, padronização dos dados, construir o modelo, compilar e definir os call-backs do modelo, treinar e avaliar o modelo, criar o código do app e do cliente.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: data, indice_vegetacao, capacidade_solo, concentracao_co2, nivel_nutrientes, indice_fertilizantes, profundidade_raiz, radiacao_solar, precipitacao, estagio_crescimento, historico_rendimento, umidade.
Tamanho dos dados: (124, 12).
Pacotes/Bibliotecas: joblib; sklearn; pandas; sklearn.model_selection: train_test_split; sklearn.preprocessing: StandardScaler; tensorflow; tensorflow.keras.models: Sequential; tensorflow.keras.layers: Dense, Dropout; tensorflow.keras.callbacks: EarlyStopping, ModelCheckpoint, os, traceback, flask: Flask, request, jsonify, json.
Projeto 21: Planejamento, Design e Orçamento de Arquitetura em Nuvem AWS.
Definição do problema: Fazer o planejamento, design e orçamento de arquitetura em nuvem com 3 cenários diferentes. Cada cenário aborda atividades, recursos e serviços típicos no ambiente de Cloud Computing. IaaS, PaaS e SaaS.
Cenário 1 - Análise de Dados de Pequena Escala.
• Título do projeto do cenário 1: Dashboard de Análise de Dados de Portal de E-Commerce.
• Necessidades e requisitos: (i) Criar um Dashboard como um aplicativo web na nuvem; (ii) Capacidade de escalar conforme a demanda e (iii) Armazenamento de dados e backups regulares.
• Design da solução: Arquitetura escalável, Balanceamento de carga, Armazenamento de dados, Carga de dados e Segurança robusta.
• Serviços AWS: Amazon EC2 (para os servidores da app web do dashboard), AWS Elastic Load Balancing (para balanceamento de carga), Amazon S3 (para armazenamento de dados brutos em formato CSV), Amazon RDS (para gerenciamento de banco de dados), AWS Glue (para limpeza e carga de dados no banco de dados), AWS Shield (para segurança).
• Calculadora AWS: https://calculator.aws/#/
Cenário 2 - Machine Learning e Análise de Dados em Média Escala.
• Título do projeto do cenário 2: Modelo Preditivo de Vendas em Tempo Real para Empresa de Varejo.
• Necessidades e requisitos: (i) Modelo de Machine Learning para previsões de vendas por dia em tempo real; (ii) Retreinamento do modelo diariamente com dados do dia anterior; (iii) Processo de integração contínua e deploy contínuo do modelo (CI/CD); (iv) Pipeline de dados para alimentar o modelo; (v) Deploy de aplicação web para disponibilizar o modelo para usuários e (vi) Armazenamento de arquivos com as previsões.
• Design da solução: Fonte de dados, Pipeline de dados, Data Lake, Modelagem, Retreinamento, Backup, Front-End, Segurança.
• Serviços AWS: Amazon Kinesis (para captura de dados em tempo real), AWS Glue (para processamento, transformação e carga de dados), Amazon Elastic Container Service – ECS ou Amazon Elastic Kubernetes Service – EKS (para executar e gerenciar aplicações web em containers), Segurança e monitoramento, Amazon S3 (para armazenar os dados), AWS SageMaker (oferece a capacidade de construir treinar e implantar modelos de machine learning), AWS Lambda (pode ser usado para acionar o retreinamento do modelo no SageMaker com dados atualizados diariamente), Amazon EventBridge (para agendar tarefas de treinamento diárias), AWS CodePipeline e AWS CodeBuild (para automação do processo de integração contínua e deploy contínuo do modelo de machine learning).
• Calculadora AWS: https://calculator.aws/#/
Cenário 3 - Big Data e Análise de Dados em Larga Escala.
• Título do projeto do cenário 3: Processamento de Dados para Treinar LLMs e Deploy de Chatbot com IA.
• Necessidades e requisitos: (i) Web com chatbot baseado em IA alimentado por LLM; (ii) Construção e treino do LLM com dados específicos da empresa; (iii) Armazenamento e processamento de grandes volumes de dados
• Design da solução: Processamento de dados em grande escala, Armazenamento eficiente, Inteligência artificial, Criação de chatbot inteligente, Aplicação web, Segurança de acesso, Balanceamento de carga,
• Serviços AWS: Amazon S3 (para armazenamento seguro de durável de grandes volumes de dados estruturados e não estruturados), Amazon SageMaker (para a construção treinamento e otimização de modelos de deep learning). Amazon EC2\P3\P4 Instances (especialmente adequadas para o treinamento de modelos de deep learning devido ao seu poder computacional e GPUs otimizadas), Amazon Lex (para a criação de interfaces de conversação no chatbot), Amazon Badrock (novo serviço da AWS que permite experimentar os mais avançados LLMs do mercado e então fazer o ajuste fino do LLM com um volume de dados menor), Amazon ECS\EKS (para implantar e gerenciar a aplicação web que hospeda o chatbot), AWS Identify and Access Management – IAM (para controlar o acesso aos recursos AWS de forma segura), Amazon Cognito (para gerenciar a autenticação e autorização de usuários na aplicação web), AWS WAF – Web Application Firewall (para proteger a aplicação contra ataques web comuns), Amazon CloudWatch (para monitorar o desempenho da aplicação, os recursos AWS utilizados e para obter logs detalhados do sistema), AWS Elastic Load Balancing – ELB (para distribuir automaticamente o tráfego de entrada da aplicação web, garantindo maior disponibilidade e tolerância a falhas), Amazon Route 53 (para gerenciar o tráfego de DNS e garantir que os usuários sejam direcionados para a infraestrutura mais saudável e com melhor desempenho), AWS CloudTrail (para monitorar os serviços AWS utilizados).
• Calculadora AWS: https://calculator.aws/#/
Projeto 22: Otimização de Hiperparâmetros de Modelo de Machine Learning com Amazon SageMaker - Análise da Qualidade de Dois Tipos de Vinhos.
Definição do problema: O objetivo é construir um modelo capaz de prever a qualidade do vinho numa escala de 1 a 10 com base em 11 características. Os dados estão divididos em 2 datasets que deverão ser mesclados como parte do trabalho de preparação dos dados.
O AWS SageMaker será utilizado para treinar um modelo XGBoost usando conjuntos de
treinamento e validação. O SageMaker será usado para o ajuste de hiperparâmetros a fim de otimizar o desempenho do modelo. Os dados são provenientes do repositório UCI ML: https://archive.ics.uci.edu/dataset/186/wine+quality
A ideia é demonstrar na prática como provisionar a infraestrutura na nuvem para otimizar os hiperparâmetros de um modelo de Machine Learning. Executaremos todo o processo
de Machine Learning usando Linguagem Python, com execução 100% na nuvem AWS.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, detecção de outliers e multicolinearidades, divisão (treino, validação e teste) e padronização dos dados, converter os dataframes para o formato CSV na memória, upload para o S3, criar um estimador XGBoost, definir o grid de hiperparâmetros, otimização de hiperparâmetros,
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: fixed acidity, volatile acidity, citric acid, residual sugar, chlorides, free sulfur dioxide, total sulfur dioxide, density, pH, sulphates, alcohol, quality.
Tamanho dos dados: (6497, 12).
Pacotes/Bibliotecas: io; math; boto3; pickle; sklearn; sagemaker; numpy; pandas; xgboost; matplotlib.pyplot; seaborn; sklearn.preprocessing: MinMaxScaler; sklearn.model_selection: train_test_split; sklearn.metrics: mean_squared_error, mean_absolute_error, r2_score; sagemaker.inputs: TrainingInput; sagemaker: get_execution_role; sagemaker.tuner: HyperparameterTuner, IntegerParameter, ContinuousParameter.
Serviços AWS: Jupyter notebook, S3.
Matemática/Estatística: Análise de correlação, boxplot, variáveis dummy, intervalo interquartil.
Projeto 23: Modelagem de Séries Temporais para Estimar o Número de Casos Prováveis de Dengue em Salvador-BA.
Definição do problema: O propósito deste projeto é criar um modelo de previsão para estimar o número de casos prováveis nas próximas seis semanas epidemiológicas, com base nos dados históricos de dados prováveis de dengue em Salvador-BA. Assim, serão desenvolvidos um modelo estatístico (relacionamento entre as variáveis) e um modelo de machine learning (previsão) para mapear este evento. Os dados podem ser obtidos por meio do link http://tabnet.datasus.gov.br/cgi/tabcgi.exe?sinannet/cnv/denguebba.def
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e compreender os dados, análise exploratória dos dados, pré-processamento dos dados (limpeza dos dados, valores ausentes, outliers, espaços, etc), criar o modelo.
Tipo de Aprendizado: Modelagem Estatística e Modelo de Machine Learning.
Variáveis/Atributos: Número de casos prováveis, tempo.
Tamanho dos dados: (552, 2).
Pacotes/Bibliotecas: pandas; numpy; matplotlib.pyplot; seaborn; statsmodels.nonparametric.smoothers_lowess: lowess; math: sqrt; statsmodels.tsa.arima.model: ARIMA; statsmodels.graphics.tsaplots: plot_acf, plot_pacf; statsmodels.tsa.stattools: adfuller; sklearn.metrics: mean_squared_error; statsmodels.tsa.holtwinters: ExponentialSmoothing
Matemática/Estatística: boxplot, intervalo interquartil.
Projeto 24: Modelagem de Séries Temporais Para Prever Usuários Ativos em um Web Site ao Longo do Tempo.
Definição do problema: Construir um modelo capaz de prever o volume de usuários ativos em um web site ao longo do tempo. Os dados serão fictícios que representam informação real.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, aplicar testes estatísticos, decomposição e visualização da série temporal, verificação de estacionariedade, transformações para buscar a estacionariedade, preparação dos dados em treino e teste, pré-processamento dos dados, forecasting-modelagem preditiva.
Tipo de Aprendizado: Modelagem preditiva.
Variáveis/Atributos: tempo, número de usuários.
Tamanho dos dados: (23544, 2).
Pacotes/Bibliotecas: pandas; numpy; matplotlib.pyplot; matplotlib; seaborn; statsmodels.api; statsmodels.tsa.seasonal: seasonal_decompose; statsmodels.graphics.tsaplots: plot_acf; statsmodels.graphics.tsaplots: plot_pacf; statsmodels.tsa.stattools: adfuller; scipy; scipy.stats: boxcox; statsmodels; datetime: datetime; matplotlib.pyplot: figure; math: sqrt; sklearn; sklearn.metrics: mean_squared_error; statsmodels.tsa.api: ExponentialSmoothing, SimpleExpSmoothing; statsmodels.tsa.seasonal: seasonal_decompose; statsmodels.tsa.arima.model: ARIMA; statsmodels.tsa.statespace.sarimax: SARIMAX.
Matemática/Estatística: boxplot, curva gaussiana, decomposição multiplicativa e aditiva da série temporal, tendência, sazonalidade, ruído, autocorrelação, teste de Dickey-Fuller, estacionariedade, logaritmo, raiz quadrada, média móvel, suavização exponencial, diferenciação/flutuação, ARIMA, SARIMAX.
Projeto 25: Construir um Multi-Node Cluster Spark Local e Docker.
Definição do problema: Preparação do ambiente de trabalho com Docker e PySpark, bem como construir o Multi-Node Cluster Spark.
Passos seguidos: Preparar o ambiente de codificação, criar o ambiente de instalação e configurações para os scripts do Cluster Spark (config, datasets, projetos, requirements), executar o Docker e os comandos pertinentes, avaliar o ambiente Multi-Node Cluster Spark com o Docker.
Projeto 26: Análise e Visualização de Dados de Vendas ao Longo do Tempo com PySpark e Docker.
Definição do problema: Toda empresa que comercializa produtos ou serviços precisa de vendas para sobreviver. Desta forma, a ideia é construir um modelo capaz de prever as vendas ao longo do tempo, um típico trabalho de modelagem de séries temporais para empresas de qualquer segmento. Para este propósito será utilizado o PySpark em paralelo com o Docker , com um conjunto de dados fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, criar as configurações dos scripts do PySpark para treino e deploy do modelo com o Docker, visualização gráfica.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Tempo, Número de vendas.
Tamanho dos dados: (145, 2).
Pacotes/Bibliotecas: pyspark.sql: SparkSession; pyspark.sql.functions: col, year, month; pyspark.ml.feature: VectorAssembler; pyspark.ml.regression: LinearRegression; pyspark.ml.evaluation: RegressionEvaluator; pyspark.ml: Pipeline; pyspark.sql: SparkSession; pyspark.sql.functions: col, year, month; pyspark.ml: PipelineModel; pyspark.sql.types: StringType; os; pandas; matplotlib.pyplot.
Projeto 27: Otimização de Cadeias de Suprimentos com Modelagem de Séries Temporais com PySpark e Docker.
Definição do problema: Modelar uma série temporal e treinar o modelo em um cluster Spark. O objetivo do modelo será prever a demanda de insumos em Kg para um horizonte de 10 dias. Durante o projeto será feita a otimização de hiperparâmetros, treinamento do modelo, avaliação e interpretação das métricas, e então serão entregues as previsões do modelo para os tomadores de decisão. Sendo os dados constituídos de uma série temporal, o modelo deve ser criado de tal forma que possa ser retreinado todos os dias com novos dados históricos. Os dados a serem utilizados são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, aplicar testes estatísticos, decomposição e análise a série temporal, criar o ambiente de instalação e configurações para os scripts do Cluster Spark (config, datasets, projetos, requirements), executar o Docker e os comandos pertinentes ao ambiente Multi-Node Cluster Spark com o Docker, avaliação do modelo de previsão.
Tipo de Aprendizado: Modelagem estatística.
Variáveis/Atributos: Tempo, Demanda de insumos.
Tamanho dos dados: (732, 2).
Pacotes/Bibliotecas: pyspark.sql: SparkSession; pyspark.sql.functions: col; statsmodels.tsa.arima.model: ARIMA; statsmodels.tsa.seasonal: seasonal_decompose; statsmodels.tsa.stattools: adfuller, acf, pacf; pmdarima: auto_arima:
pandas.
Matemática/Estatística: Transformações logarítmicas, box-cox, tendência, sazonalidade, resíduos, suavização (média móvel, exponencial com os três tipos, raiz quadrada), Teste de Dickey-Fuller Aumentado, Função de Autocorrelação e Função de Autocorrelação Parcial.
Projeto 28: Aplicação e Interpretação de Análise Estatística em Dados do Mercado de Ações com PySpark e Docker.
Definição do problema: Aplicação e interpretação de análise estatística em dados do mercado de ações. A ideia é coletar e analisar conjuntos de dados históricos de preços de ações, utilizando métodos estatísticos para identificar tendências, calcular riscos e testar hipóteses. O objetivo é fornecer insights sobre o comportamento do mercado de ações, ajudando os tomadores de decisão a tomar decisões de investimento mais informadas e estratégicas. Todo estudo será realizado em um cluster do PySpark com Docker. Os dados serão reais, sendo extraídos em tempo real diretamente da fonte https://stockanalysis.com/stocks/
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, aplicar testes estatísticos e análise de causalidade com um cluster PySpark com Docker.
Variáveis/Atributos: Tempo, Preços de ações.
Tamanho dos dados: (2517, 2).
Pacotes/Bibliotecas: pyspark.sql: SparkSession; pyspark.sql.functions: col, mean, stddev, min, max; scipy: stats; yfinance; pandas; statsmodels.tsa.stattools: adfuller, kpss, acf, pacf, q_stat; arch.unitroot: PhillipsPerron; statsmodels.api; yfinance; numpy; statsmodels.tsa.stattools: grangercausalitytests.
Matemática/Estatística: Testes estatísticos (Shapiro-Wilk, Anderson-Darling, Levene, Dick-Fuller Aumentado, KPSS, Phillips-Perron, Ljung-Box, Causalidade de Granger).
Projeto 29: Previsão da Demanda Mensal de Energia Elétrica em Indústria de Alimentos com PySpark e Docker.
Definição do problema: Desenvolver um modelo para estimar o consumo de energia elétrica em uma indústria de alimentos em uma base mensal. Utilizando técnicas de modelagem de séries temporais, como os modelos ARIMA e SARIMA, o projeto visa identificar padrões sazonais e tendências no consumo de energia, permitindo uma gestão mais eficiente e econômica dos recursos energéticos. O modelo inclui não apenas a análise histórica dos dados de consumo de energia, mas também considera variáveis exógenas que podem influenciar significativamente o consumo de energia devido a necessidades de refrigeração e aquecimento em processos de produção alimentícia. A otimização dos hiperparâmetros do modelo é realizada para garantir a maior precisão possível nas previsões. O resultado esperado é fornecer à empresa uma ferramenta robusta para previsão de demanda que possa auxiliar na tomada de decisões estratégicas relacionadas à compra de energia, manutenção de equipamentos e operações diárias, reduzindo custos e aumentando a eficiência operacional. Este projeto será executado com o cluster Spark, PySpark e Docker, sendo os dados utilizados fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, criar e executar os scripts PySpark com Docker para a criação e análise do modelo.
Tipo de Aprendizado: Modelagem estatística.
Variáveis/Atributos: Tempo, Consumo de energia, Temperatura.
Tamanho dos dados: (133, 2) e (133, 3).
Pacotes/Bibliotecas: pmdarima; pandas; pyspark.sql: SparkSession; pyspark.sql.functions: to_date; sklearn.metrics: mean_absolute_error, mean_squared_error; numpy; matplotlib.pyplot;
Matemática/Estatística: SARIMAX, SARIMA, ARIMAX, ARIMA.
Projeto 30: Limpeza e Preparação de Dados Para Modelos de Machine Learning com SageMaker, Docker e Python.
Definição do problema: Criar um ambiente local para executar um job de processamento de dados na nuvem. Para isso usarei Docker e Python para o ambiente local e o processamento com SageMaker. Os dados utilizados foram fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, preparar o ambiente Docker, configurar o ambiente de trabalho Docker e AWS CLI, Autenticação para o AWS, automatização/configuração/construção do módulo Python para o AWS, carregar e analisar os dados, explorar os dados, construção do módulo de processamento de dados com o SageMaker, construção do módulo de limpeza e tratamento de dados com o SageMaker (duplicatas, valores ausentes, outliers, etc).
Variáveis/Atributos: id, nome, idade, salario.
Tamanho dos dados: (105, 4).
Pacotes/Bibliotecas: boto3; os; time; sagemaker; pandas; numpy; argparse;
sagemaker.processing: ScriptProcessor, ProcessingInput, ProcessingOutput;
Serviços AWS: S3, SageMaker, AWS CLI.
Projeto 31: Modelagem Preditiva de Séries Temporais Irregulares com Python e PySpark.
Definição do problema: Construir um modelo preditivo para prever o preço de imóveis, usando dados de séries temporais irregulares, onde a variável alvo é o preço do imóvel. A modelagem será implementada utilizando Python e PySpark para processar grandes volumes de dados e lidar com a irregularidade temporal. Os dados de entrada incluem a data da venda, o preço do imóvel, o tipo de imóvel e o número de quartos (dados fictícios). A irregularidade na série temporal é tratada por meio de reamostragem. O modelo será treinado usando variáveis temporais e características do imóvel como preditores. Além disso, PySpark é empregado para acelerar o processamento dos dados e possibilitar o treinamento em larga escala, permitindo a criação de um pipeline robusto de preparação, transformação e modelagem, sendo executado em um cluster Spark. A abordagem final inclui a avaliação do desempenho do modelo preditivo utilizando a métrica MAE (Mean Absolute Error). Para concluir faremos o forecast para um período de tempo futuro.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, preparar o cluster spark para acesso remoto, carregar e analisar os dados, explorar os dados, teste estatístico, testar estacionariedade, decomposição da série temporal, engenharia de atributos, verificar assimetria dos dados, transformação logarítmica, divisão dos dados em treino e teste, padronização, construção do modelo, treinamento e avaliação do modelo, execução dos scripts.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: data_venda, preco, tipo_imovel, numero_quartos.
Tamanho dos dados: (32440, 4).
Pacotes/Bibliotecas: joblib; numpy; pandas; matplotlib.pyplot; seaborn; sklearn.preprocessing: LabelEncoder, StandardScaler; sklearn.metrics: mean_squared_error, mean_absolute_error; sklearn.linear_model: LinearRegression; statsmodels.tsa.stattools: adfuller; statsmodels.tsa.seasonal: seasonal_decompose; pyspark.sql: SparkSession; pyspark.sql.functions: col, year, month; pyspark.ml.feature: VectorAssembler, StandardScaler; pyspark.ml.regression: LinearRegression; pyspark.ml.evaluation: RegressionEvaluator; pyspark.ml.regression: LinearRegressionModel; pyspark.sql: Window; pyspark.sql: functions; pyspark.sql.functions: row_number, log, exp.
Matemática/Estatística: Média, curva gaussiana, análise de simetria, logaritmo, análise de tendência, ciclicidade, desvios.
Projeto 32: Machine Learning em Tempo Real para Previsão de Tráfego de Um Web Site de E-Commerce com PySpark e Docker.
Definição do problema: Desenvolver um sistema capaz de prever o número de visitantes de um web site de e-commerce, utilizando técnicas de Machine Learning. O objetivo é analisar dados de tráfego, como visitas por hora, padrões de comportamento de usuários e tendências de vendas, para criar um modelo preditivo que ajude a otimizar o desempenho do site, alocar recursos adequadamente e melhorar a experiência do usuário. A solução envolve a coleta de dados contínuos, processamento em tempo real e a integração com um pipeline automatizado para a previsão dinâmica e eficiente. A geração de dados será simulada em tempo real, a partir de dados fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, criar o módulo de geração de dados históricos, explorar os dados, seleção de variáveis, engenharia de atributos, pré-processamento dos dados, divisão dos dados, criar o modelo preditivo, métricas de regressão, criar módulo de deploy com novos dados, treinamento e avaliação do modelo, execução dos scripts PySpark com Docker.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: dia_semana, e_feriado, campanha_marketing_ativa, taxa_media_conversao, num_visitas_dia_anterior, num_visitas
Tamanho dos dados: (1000, 6).
Pacotes/Bibliotecas: Pandas; Numpy; joblib; pyspark.sql: SparkSession; pyspark.ml.feature: VectorAssembler; xgboost: XGBRegressor; sklearn.model_selection: train_test_split; sklearn.metrics: mean_squared_error; time.
Projeto 33: IA Para Detecção de Anomalias em Dados de Sensores IoT em Tempo Real com PySpark e Docker.
Definição do problema: Utiliza técnicas de Inteligência Artificial e análise de dados em tempo real para detectar anomalias em dados de sensores IoT (Internet Of Things ou Internet das Coisas). Combinando a potência de TensorFlow e PySpark, o sistema é capaz de processar os dados, padronizá-los e treinar um modelo de rede neural para identificar anomalias. O pipeline de dados permite ingestão contínua de dados, pré-processamento e uso do modelo para detectar desvios significativos, o que pode ajudar na manutenção preventiva e no monitoramento de operações em tempo real. Este projeto será executado em um cluster Spark com PySpark.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construção do módulo de treinamento do modelo e do deploy, execução dos scripts.
Tipo de Aprendizado: Não supervisionado.
Variáveis/Atributos: sensor_id, timestamp, temperatura, umidade, pressão.
Tamanho dos dados: (100, 5).
Pacotes/Bibliotecas: json; numpy; pyspark.sql: SparkSession; pyspark.sql.functions: from_json, col; pyspark.sql.types: StructType, StructField, FloatType, StringType, TimestampType; pyspark.ml.feature: VectorAssembler; tensorflow.keras.models: load_model; tensorflow; pandas; pyspark.sql.types: StructType, StructField, FloatType, StringType, TimestampType; pyspark.ml.feature; VectorAssembler, StandardScaler; tensorflow.keras.models: Sequential; tensorflow.keras.layers: LSTM, Dense, Input, RepeatVector, TimeDistributed.
Projeto 34: Modelagem do Crescimento de Agriculturas em Diferentes Condições Usando PySpark e LLM com Docker.
Definição do problema: Analisar o crescimento de culturas agrícolas sob diversas condições ambientais e práticas de manejo. Utilizando PySpark, farei o processamento de dados climáticos, de solo e de práticas agrícolas, permitindo a análise em larga escala. Em seguida, levarei a capacidade generativa de um LLM direto para o cluster Spark, que será usado para interpretar os resultados do processamento, gerar insights e facilitar a tomada de decisões, ajudando a otimizar o rendimento de culturas e a adaptação às condições específicas de cada região. Teremos assim um único ambiente de processamento de dados em larga escala e análise com Inteligência Artificial. Os dados utilizados serão fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, criar os scripts, engenharia de prompt.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: data, cultura, solo, temperatura, umidade, crescimento.
Tamanho dos dados: (3285, 6).
Pacotes/Bibliotecas: pyspark.sql: SparkSession; pyspark.sql.functions: avg, sum, col; pyspark.sql: functions; openai: OpenAI.
Projeto 35: Deploy de Modelo PySpark e API para Web App de Sistema de Recomendação em Tempo Real.
Definição do problema: Desenvolver um sistema completo de recomendação em tempo real, desde o treinamento de um modelo de Machine Learning utilizando PySpark até sua integração com uma API e uma aplicação web. O sistema é composto por:
• Treinamento do Modelo: Um modelo de recomendação é treinado usando o algoritmo ALS (Alternating Least Squares) em um cluster Spark, com dados históricos de interações entre usuários e itens.
• API Para Previsões: O modelo treinado é disponibilizado via uma API construída com FastAPI, permitindo que aplicações clientes requisitem recomendações em tempo real para usuários específicos.
• Interface Web: Uma aplicação web desenvolvida em Streamlit consome a API, fornecendo uma interface intuitiva para visualizar as recomendações de forma dinâmica e interativa.
O projeto permite desenvolver habilidades em Big Data, Machine Learning em ambiente distribuído, criação de APIs e desenvolvimento de aplicações web, sendo ideal para cenários que exigem personalização e escalabilidade. Os dados usados no projeto são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construir o módulo de dados, construir o módulo de sistema de recomendação, construir o módulo da APIcom FastAPI, construir o módulo da AppWeb, criar o ambiente virtual, execução dos scripts.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: date, user_id, item_id, rating
Tamanho dos dados: (2437, 4).
Pacotes/Bibliotecas: os; pandas; numpy, datetime: datetime, timedelta; shutil; pyspark.sql: SparkSession; pyspark.ml.recommendation: ALS; pyspark.ml.evaluation: RegressionEvaluator; fastapi: FastAPI; pyspark.ml.recommendation: ALSModel; uvicorn; streamlit; requests.
Projeto 36: Construção de Feature Store com SageMaker e Apache Iceberg.
Definição do problema: Construir Feature Store com SageMaker e Apache Iceberg. Uma Feature Store é uma plataforma ou sistema centralizado utilizado para armazenar, organizar e gerenciar features (características ou variáveis) que são utilizadas em modelos de aprendizado de máquina. Os dados usados foram fictícios, sendo criados com o pacote faker em Python.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, sessão sagemaker e definição da infraestrutura, criar feature groups, Armazenamento Offline da Feature Store com Apache Iceberg, ingestão de dados nos grupos de recursos, recuperar dados da feature store online, listar os grupos de recursos, deletar os grupos de recursos de forma automática.
Variáveis/Atributos: id_cliente, genero, casado, event_time, idade_18-29, idade_30-39, idade_40-49, idade_50-59, idade_60-69, idade_70-plus, num_dias_ativo, id_pedido, id_cliente, id_produto, quantidade, novo_pedido, event_time, num_dias_ativos_des_ultima_compra, id_produto, event_time, category_baby_food_formula, category_baking_ingredients, category_candy_chocolate, category_chips_pretzels, category_cleaning_products, category_coffee, category_cookies_cakes, category_crackers, category_energy_granola_bars, category_frozen_meals, category_hair_care, category_ice_cream_ice, category_juice_nectars, category_packaged_cheese, category_refrigerated, category_soup_broth_bouillon, category_spices_seasonings, category_tea, category_vitamins_supplements, category_yogurt.
Tamanho dos dados: (17000, 12); (100000, 7) e (10000, 11).
Pacotes/Bibliotecas: sys; time; boto3; subprocess; sagemaker; importlib; logging; pandas; numpy; time: gmtime, strftime, sleep; Random: randint; sagemaker.feature_store.feature_group: FeatureGroup; sagemaker.feature_store.inputs: TableFormatEnum.
Serviços AWS: SageMaker Studio, feature store, Apache Iceberg, S3.
Projeto 37: Extraindo Relatórios do Data Warehouse com Linguagem SQL.
Definição do problema: Criar um Data Warehouse a partir do zero, passando por todo o processo de modelagem. Colocar o DW para funcionar e extrair diversos relatórios, bem como estudar Linguagem SQL com os conceitos mais relevantes para Cientistas de Dados.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, pgadmin, carregar e analisar os dados, explorar os dados, criar relatórios para consultas.
Pacotes/Bibliotecas/Funções: Funções de agregação e arredondamento, SELECT, FROM, WHERE, JOIN, AND, OR, ON, AS, TRIM, OVER, ASC, GROUP BY, ORDER BY, NOT IN, HAVING, PARTITION BY, CREATE OR REPLACE VIEW, CREATE INDEX, DROP INDEX, CREATE TABLE, NOT EXISTS, VARCHAR(), DECIMAL(), CREATE OR REPLACE PROCEDURE, LANGUAGE, BEGIN, INSERT INTO, ON COMMIT DROP AS, END, CALL, CREATE OR REPLACE FUNCTION, RETURN TABLE, CASE, ELSE, IF, SERIAL PRIMARY KEY, TIMESTAMP DEFAULT, VALUES, CREATE TRIGGER, AFTER INSERT OR UPDATE OR DELETE ON, FOR, ROW EXECUTE FUNCTION, SET.
Projeto 38: Modelo de Machine Learning com LightGBM para Portfólio de Investimentos com SageMaker.
Definição do problema: Considere a seguinte situação, em que uma empresa mantém um portfólio de investimentos e tem dados históricos com os percentuais de retorno de cada ativo no portfólio ao longo do tempo. O portfólio gerou retorno de 0 a 9 % ao longo dos anos. A empresa gostaria de criar um modelo preditivo que, ao receber os percentuais de retorno dos ativos individualmente, seja capaz de prever o retorno de todo o portfólio. Essa ferramenta pode ser usada para simular qual a melhor forma da empresa alocar os ativos dentro do portfólio a fim de obter o maior retorno possível. O volume de dados é consideravelmente grande e a empresa precisa saber se um modelo preditivo com boa performance pode ou não ser construído com base nesses dados. Suponha que há a necessidade de encaminhar a resposta para a diretoria em até 48 horas. Como o prazo é curto e o volume de dados é grande, usarei a plataforma SageMaker e o modelo LightGBM pré-treinado que a plataforma oferece, fazendo apenas o ajuste fino aos nossos dados e extraindo a resposta que a diretoria precisa em poucos minutos. Os dados utilizados são fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, definir o modelo LightGBM e a instância de treino, definir a URI da imagem Docker, definir o script de treino, definir os hiperparâmetros, criar o job e estimador, treinar o modelo, definir a instância e o script de inferência, carregar os dados de teste, extrair e avaliar as previsões com o Endpoint
Tipo de Aprendizado: Supervisionado.
Tamanho dos dados: (60000, 785).
Pacotes/Bibliotecas: numpy; pandas; sklearn.metrics: accuracy_score; sklearn.metrics: f1_score; sklearn.metrics: confusion_matrix; matplotlib.pyplot; logging; sagemaker; boto3; json; sagemaker: get_execution_role; sagemaker: image_uris, model_uris, script_uris; sagemaker: hyperparameters; sagemaker.tuner: ContinuousParameter, IntegerParameter, HyperparameterTuner; sagemaker.estimator: Estimator; sagemaker.utils: name_from_base.
Serviços AWS: SageMaker, S3.
Projeto 39: Análise RFM (Recency, Frequency, Monetary Value) e Dashboard Interativo para a Área de Marketing.
Definição do problema: Aplicação da análise RFM (Recency, Frequency, Monetary Value) para segmentar clientes e avaliar seu comportamento de compra em uma empresa. A análise RFM é uma técnica de marketing que utiliza dados históricos de compras para classificar clientes com base em três critérios: Recency (quão recentemente um cliente fez uma compra), Frequency (com que frequência um cliente faz compras) e Monetary Value (quanto dinheiro um cliente gasta em compras). Com base nessa segmentação, será desenvolvido um dashboard interativo para a área de marketing, permitindo visualização dinâmica e análise dos segmentos de clientes e de suas tendências de compra. Os dados foram extraídos do site: https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, engenharia de atributos, agregação dos dados para criação dos parâmetros RFM, definição dos recursos RFM através da análise estatística, processamento dos dados e Label Encoding, criação dos seguimentos RFM, segmentação de clientes usando análise RFM, dashboard interativo.
Tipo de Aprendizado: Análise estatística.
Variáveis/Atributos: São 53 atributos.
Tamanho dos dados: (116581, 53).
Pacotes/Bibliotecas: sklearn; squarify; pandas; seaborn; plotly.graph_objects; matplotlib.pyplot; sklearn.preprocessing: LabelEncoder; datetime: datetime, timedelta.
Projeto 40: Análise de Sentimento em Avaliações de Usuários.
Definição do problema: Construir um projeto para análise de sentimento em avaliações de usuários. Os dados foram extraídos do link:
https://www.kaggle.com/datasets/lakshmi25npathi/imdb-dataset-of-50k-movie-reviews
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, pré-processamento dos dados, criação dos modelos de machine learning, avaliação/interpretação e compactação dos modelos, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Review, sentimento.
Tamanho dos dados: (50000, 2).
Pacotes/Bibliotecas: re; pickle; nltk; sklearn; numpy; pandas; nltk.corpus: stopwords; nltk.tokenize: word_tokenize; nltk.stem: SnowballStemmer; sklearn.feature_extraction.text: CountVectorizer; sklearn.model_selection: train_test_split; sklearn.naive_bayes: GaussianNB, MultinomialNB, BernoulliNB; sklearn.metrics: accuracy_score.
Projeto 41: Prevendo Manutenção de Máquinas Industriais.
Definição do problema: Prever se uma máquina industrial precisa ou não de manutenção através de 178 leituras de dados de sensores IoT (Internet of Things ou Internet das Coisas). Trabalharei com dados históricos coletados de sensores IoT de máquinas industriais. Os dados são fictícios. Cada linha do dataset contém 178 leituras, que são as colunas de diferentes sensores. Ou seja, existem 178 colunas que compõem as leituras de sensores IoT. No total, existem 11.500 linhas e 179 colunas com a última coluna contendo o status da máquina industrial, se precisou ou não de manutenção.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, balanceamento de classe, padronização, modelagem preditiva e relatório de métricas, modelos lineares e probabilísticos, modelos de árvore de decisão e gradient boosting, validação cruzada, otimização de hiperparâmetros com GridSearchCV, seleção do melhor modelo, avaliação e interpretação das métricas, deploy do modelo.
Tipo de Aprendizado: Supervisionado.
Tamanho dos dados: (11500, 179).
Pacotes/Bibliotecas: pickle; sklearn; pandas; numpy; seaborn; matplotlib.pyplot; xgboost; xgboost: XGBClassifier; sklearn.linear_model: LogisticRegression; sklearn.naive_bayes: GaussianNB; sklearn.preprocessing: StandardScaler; sklearn.model_selection: cross_val_score, GridSearchCV; sklearn.metrics: roc_auc_score, accuracy_score, precision_score, recall_score, roc_curve.
Projeto 42: DataWarehousing Analytics para Análise Geoespacial com Python e DuckDB.
Definição do problema: Analisar dados geoespaciais com o python e DuckDB. A compreensão dos dados pode ser verificada no link: https://sites.research.google/open-buildings/#download
A descrição completa dos dados pode ser verificada no link:
https://beta.source.coop/repositories/vida/google-microsoft-open-buildings/description/
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, inicializar o DuckDB para processamento em memória, carregar os dados geoespaciais no formato GeoParquet, consultar os dados geoespaciais em tabela, análise estatística por partição dos dados, exportar os resultados para o formato espacial
Variáveis/Atributos: Dados geoespaciais.
Tamanho dos dados: 140 milhões de registros.
Pacotes/Bibliotecas: duckdb; geopandas; pyarrow.
Projeto 43: Otimização de Hiperparâmetros em Modelo de Previsão de Churn de Clientes com AutoML.
Definição do problema: Trabalhar com o SageMaker AutoPilot para automatizar e otimizar a construção de modelos de Machine Learning. O objetivo é identificar os clientes com maior probabilidade de churn, ajustando automaticamente os hiperparâmetros dos modelos para maximizar a precisão e encontrar o melhor modelo possível. A abordagem combina a facilidade de uso do AutoML com a robustez do SageMaker, garantindo resultados eficientes e escaláveis, ideais para aplicações em análise de dados e retenção de clientes. O conjunto de dados foi extraído do link:
https://www.kaggle.com/datasets/blastchar/telco-customer-churn
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, definir região AWS, Role de execução e sessão SageMaker, definir o Bucket S3 com a fonte de dados, separando os dados em treino e teste, salvar as amostras de treino e teste no Bucket S3, configurar do Job com SageMaker AutoPilot, execução do Job no SageMaker AutoPilot, visualizar os Jupyter Notebooks gerados pelo SageMaker AutoPilot, extrair o melhor candidato após a otimização, criar a versão final do modelo após otimização, preparar a configuração do Endpoint, criando o preditor para inferência, avaliar as métricas.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: 197 atributos.
Tamanho dos dados: (5000, 197).
Pacotes/Bibliotecas: io; os; sys; time; json; boto3; sagemaker; pandas; numpy; matplotlib.pyplot; io: StringIO; time: gmtime, strftime, sleep; IPython.display: display; sagemaker: get_execution_role; sagemaker.predictor: Predictor; sagemaker.serializers: CSVSerializer; sagemaker.deserializers: CSVDeserializer; sklearn.metrics: accuracy_score, precision_score, recall_score, f1_score.
Serviços AWS: S3, SageMaker.
Projeto 44: Criando Workflow Para Automatizar o Pipeline de Projetos de Data Science com Airflow.
Definição do problema: Construir um workflow para automatizar pipelines de Data Science usando o Airflow.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, criar os scripts airflow, Docker, executar os scripts.
Variáveis/Atributos: Temperatura, data, cidade, clima.
Pacotes/Bibliotecas: os; requests; sqlite3; airflow: DAG; airflow.operators.python_operator: PythonOperator; datetime: datetime, timedelta.
Projeto 45: Teste A/B em Campanha de Geoespacial Marketing Analytics.
Definição do problema: Considere a seguinte situação, em que a minha empresa realizou uma campanha de Marketing Digital em diferentes áreas geográficas a fim de anunciar um produto digital comercializado pela empresa. Os dados foram coletados e a empresa gostaria de analisar os dados a fim de identificar se há diferença na taxa de conversão com base na geografia. Ou seja, a campanha teve resultado diferente com base na localização geográfica de quem foi alvo da campanha?
Durante a análise terei que decidir (e justificar) se devo usar teste paramétrico ou não paramétrico.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, aplicar testes estatísticos paramétricos e não paramétricos.
Variáveis/Atributos: usuário_id, grupo, latitude, longitude, conversão.
Tamanho dos dados: (1000, 5).
Pacotes/Bibliotecas: pandas; numpy; matplotlib.pyplot; seaborn; scipy.stats;
Matemática/Estatística: t Student, levene, Mann-Whitney U, Shapiro-Wilk.
Projeto 46: IA Para Previsão de Demanda e Otimização do Estoque de Produtos Sazonais.
Definição do problema: Criar uma solução inovadora que combine a análise de dados estruturados via SQL com o poder dos Modelos de Linguagem de Grande Escala (LLM) para prever demandas e otimizar estoques de produtos sazonais. Utilizando SQL, extraí e manipulei grandes volumes de dados históricos e transacionais, fornecendo uma base sólida e precisa para análise. Em seguida, apliquei técnicas avançadas de Machine Learning com LLM para identificar padrões sazonais, prever a demanda futura de produtos e sugerir estratégias de estoque otimizadas. Este projeto visa reduzir desperdícios, melhorar a disponibilidade de produtos e aumentar a eficiência operacional, permitindo que as empresas respondam de maneira mais ágil e precisa às variações sazonais do mercado. Os dados para este projeto serão fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construir banco de dados, construir pipeline, pipeline e SQL para carga dos dados, utilizar LLMs para análise de dados, pipeline de IA para análise dos dados, execução dos scripts.
Variáveis/Atributos: id_categoria, nome_categoria, id_cliente, nome_cliente, email, id_estoque, id_produto, quantidade_em_estoque, data_ultimo_reabastecimento, id_forecast, id_produto, data_forecast, data_forecast, id_fornecedor, nome_fornecedor, nome_contato, email_contato, id_pedido, id_fornecedor, data_pedido, id_produto, quantidade, id_produto, nome_produto, id_categoria, id_fornecedor, preco_unitario, id_reabastecimento, id_produto, data_reabastecimento, quantidade, id_sazonalidade, id_produto, nome_temporada, data_inicio, data_fim, id_venda, id_produto, id_cliente, data_venda, quantidade_vendida, total_venda.
Pacotes/Bibliotecas: psycopg2; pandas; sqlalchemy: create_engine; csv; langchain_core.prompts: ChatPromptTemplate; langchain_core.output_parsers: StrOutputParser; langchain_community.llms.ollama: Ollama; subprocess.
Projeto 47: Identificando e Prevendo os Fatores Que Contribuem Para a Satisfação dos Funcionários.
Definição do problema: Utilizar técnicas de ciência de dados e aprendizado de máquina para analisar e prever os fatores que influenciam a satisfação dos funcionários em uma empresa. O objetivo é identificar as variáveis mais significativas que afetam o bem-estar e a motivação dos colaboradores, como ambiente de trabalho, remuneração, oportunidades de crescimento, e equilíbrio entre vida pessoal e profissional. Utilizarei um conjunto de dados que inclui diversas características dos funcionários, como idade, tempo de empresa, avaliações de desempenho, feedbacks e índices de satisfação. Através de modelos preditivos, buscarei entender padrões e tendências que podem orientar políticas internas para melhorar a satisfação e retenção dos funcionários. Usarei um conjunto de dados que foi adaptado a partir do dataset disponível no link abaixo:
https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, seleção e encode da variável alvo, preparação dos dados, pipeline de pré-processamento de variáveis numéricas e categóricas, pipeline de modelagem, analisar os coeficientes do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Age, Attrition, BusinessTravel, Department, DistanceFromHome, Education, EducationField, EnvironmentSatisfaction, Gender, JobInvolvement, JobLevel, JobRole, JobSatisfaction, MaritalStatus, MonthlyIncome, NumCompaniesWorked, OverTime, PercentSalaryHike, PerformanceRating, RelationshipSatisfaction, StockOptionLevel, TotalWorkingYears, TrainingTimesLastYear, WorkLifeBalance, YearsAtCompany, YearsInCurrentRole, YearsSinceLastPromotion, YearsWithCurrManager, Employee Source, AgeStartedWorking.
Tamanho dos dados: (23058, 30).
Pacotes/Bibliotecas: sklearn; pandas; sklearn.model_selection: train_test_split; sklearn.preprocessing: StandardScaler, OneHotEncoder; sklearn.compose: ColumnTransformer; sklearn.pipeline: Pipeline; sklearn.impute: SimpleImputer; sklearn.linear_model: LogisticRegression; sklearn.metrics: accuracy_score.
Projeto 48: Previsão de Demanda para Otimizar a Entrega de Produtos e Uso de Transportadoras.
Definição do problema: O Índice de Rotatividade de Estoque é uma métrica que indica quantas vezes o estoque de uma empresa é renovado ou vendido durante um determinado período, geralmente um ano. Ele é um indicador-chave da eficiência da gestão de estoques, pois reflete a rapidez com que os produtos são comprados, vendidos e substituídos.
Esse índice ajuda as empresas a entenderem se estão mantendo níveis de estoque adequados. Um índice de rotatividade elevado pode indicar que os produtos estão sendo vendidos rapidamente, o que é positivo, mas também pode sugerir que a empresa corre o risco de falta de estoque. Por outro lado, um índice baixo pode indicar excesso de estoque, o que pode levar a custos desnecessários de armazenamento e ao risco de obsolescência dos produtos.
O Índice de Rotatividade de Estoque tem uma relação direta e importante com a Previsão de Demanda Para Otimizar a Entrega de Produtos e Uso de Transportadoras e neste projeto vamos construir um modelo para prever esse índice. Para este projeto, os dados serão fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, preparar o dataset para treinamento do modelo, dividir a série temporal em treino e teste, padronização dos dados, preparação e ajuste do formato dos dados, arquitetura do modelo de ML, compilação do modelo, treinamento e avaliação do modelo, formatar os dados para visualização, módulo de forecast para previsões com o modelo treinado,
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: ano, otif, lead_time, custo_transporte, indice_rotatividade_estoque.
Tamanho dos dados: (55, 5).
Pacotes/Bibliotecas: sklearn; Random; pandas; numpy; tensorflow; sklearn.preprocessing: MinMaxScaler; sklearn.metrics: mean_squared_error; matplotlib.pyplot
Projeto 49: Machine Learning Para Detecção de Doenças em Plantas Usando Imagens de Drones.
Definição do problema: A ferrugem da folha do trigo é a doença mais comum desta cultura. As perdas em rendimento de grãos podem chegar a 50%. Essa doença manifesta-se desde o surgimento das primeiras folhas até a maturação da planta. Inicialmente, surgem pequenos nódulos arredondados, amarelo-alaranjados, dispostos sem ordenação (parecendo ferrugem mesmo), normalmente localizados na face superior das folhas, estendendo-se ao caule. Estas frutificações ficam sempre recobertas pela epiderme até o final do ciclo da planta. O patógeno sobrevive no verão-outono parasitando plantas de trigo que se constituem na principal fonte de problemas em plantações de trigo em países mais quentes, como o Brasil. As condições ambientais para o desenvolvimento da doença são temperatura média de 20ºC e mais de 6 horas de molhamento foliar contínuo.
O objetivo deste Projeto é construir um modelo de Deep Learning para classificar corretamente se uma planta (trigo) é saudável, possui ferrugem no caule ou ferrugem na folha. Os links abaixo fornecem detalhes sobre o problema que será abordado neste Projeto:
https://www.agrolink.com.br/problemas/ferrugem-da-folha_1653.html
Usarei como fonte de dados o dataset fornecido gratuitamente pela Zindi no endereço abaixo:
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, caminho para as imagens de treino e teste, processamento das imagens, binarização dos Labels, construção do modelo, treinamento do modelo, avaliação do modelo, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Imagens de plantas.
Tamanho dos dados: 3,1GB.
Pacotes/Bibliotecas: os; cv2; pickle; imutils; Random; sklearn; matplotlib; numpy; matplotlib.pyplot; imutils: paths; tensorflow; keras; keras.models: load_model, save_model; keras.callbacks: ModelCheckpoint, EarlyStopping; tensorflow.keras.utils: img_to_array, load_img; tensorflow.keras.preprocessing.image: ImageDataGenerator; tensorflow.keras.optimizers: Adam; sklearn.preprocessing: LabelBinarizer; sklearn.model_selection: train_test_split; IPython.display: clear_output; plt.rcParams['figure.figsize'] = (15, 9)
Projeto 50: Blockchain Analytics Para Criptoativos com Machine Learning.
Definição do problema: Construir um modelo capaz de classificar uma notícia ou informação sobre Blockchain (incluindo a própria tecnologia e criptomoedas baseadas em Blockchain) como sendo positiva, neutra ou negativa. O objetivo é ajudar investidores a tomarem decisões com base no sentimento do mercado. Usarei um modelo de linguagem pré-treinado e sobre ele faremos o ajuste fino com os próprios dados. Após treinar e avaliar o modelo farei o deploy em uma app web que vai gerar gráficos e tabela. Os dados serão fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, detecção automática de idioma dos dados, ajuste fino do modelo de análise de sentimentos, função de cálculo das métricas, definir os argumentos de treino, treinar o modelo para ajuste fino, avaliar e salvar o modelo para deploy.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: id, data, texto, sentimento.
Tamanho dos dados: (138, 4).
Pacotes/Bibliotecas: rich; torch; langid; sklearn; datasets; transformers; pandas; numpy; sklearn.model_selection: train_test_split; transformers: BertTokenizer, BertForSequenceClassification; transformers: Trainer, TrainingArguments; transformers: DataCollatorWithPadding; sklearn.metrics: accuracy_score, precision_recall_fscore_support; datasets: Dataset; rich.progress: track; streamlit; plotly.graph_objects; matplotlib.pyplot.
Projeto 51: Sistema de Recomendação de Manutenção Preditiva Integrado com IoT Para Redução de Paradas Não Planejadas.
Definição do problema: Construir uma aplicação web para um sistema de recomendação de manutenção preventiva. Para isso, antes irei construir um modelo de Machine Learning que será capaz de fazer previsão da necessidade ou não de manutenção com base em dados extraídos de sensores IoT. Como o dataset apresenta problemas, aplicarei 5 estratégias de balanceamento de classe. Ao final decidirei qual a melhor estratégia para os dados que temos em mãos, sempre justificando a escolha. Os dados serão fictícios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, preparação dos dados, ajuste de pesos no modelo (sem reamostragem), subamostragem da classe majoritária (undersampling), superamostragem da classe minoritária (oversampling), balanceamento automático com SMOTE e mudança de algoritmo, seleção do modelo,
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: vibração, temperatura, pressão, umidade, horas_trabalho, manutenção necessária.
Tamanho dos dados: (10000, 6).
Pacotes/Bibliotecas: joblib; sklearn; numpy; pandas; lightgbm; sklearn.model_selection: train_test_split; sklearn.ensemble: RandomForestClassifier; sklearn.metrics: accuracy_score, roc_auc_score, classification_report; sklearn.preprocessing: StandardScaler; sklearn.utils: resample; imblearn.over_sampling: SMOTE; streamlit.
Projeto 52: Visão Computacional - Tratamento de Imagens.
Definição do problema: A ideia deste projeto é realizar diversos tipos de transformações em diferentes imagens, como mudança de cores, filtros, rotações e etc.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, realizar transformações.
Variáveis/Atributos: Imagens de robôs e cavalos.
Pacotes/Bibliotecas: cv2; numpy; matplotlib; matplotlib.pyplot; matplotlib.image; IPython.display; PIL: Image
Projeto 53: Deep Learning na Detecção de Imagens.
Definição do problema: Este projeto tem como propósito realizar interpolação, detecção de bordas e segmentação, reconhecimento de padrões e classificação de imagens.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, realizar o tratamento das imagens, métodos de interpolação, detecção de bordas e segmentação, extratores de características, algoritmo de detecção de objetos, reconhecimento de padrões e classificação de imagens com Deep Learning, técnicas de aumento de dados.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Imagens de plantas, cachorros, cavalos.
Pacotes/Bibliotecas: cv2; PIL; imageio.v2; itertools; pandas; numpy; matplotlib.gridspec; matplotlib.pyplot; tensorflow; skimage; skimage.feature: hog; skimage: exposure; PIL: Image; tensorflow.keras.preprocessing.image: ImageDataGenerator, img_to_array, load_img; tensorflow; tensorflow.keras.datasets: cifar10; tensorflow.keras.models: Sequential; tensorflow.keras.layers: Dense, Flatten, Conv2D, MaxPooling2D; tensorflow.keras.utils: to_categorical; matplotlib.pyplot.
Projeto 54: Sistema de Gerenciamento de Gado em Tempo Real com IA e Visão Computacional.
Definição do problema: Desenvolver um sistema completo de monitoramento e gerenciamento de gado em tempo real aplicando Inteligência Artificial em vídeos para detecção de gado.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, loop principal para o rastreador de objetos em vídeo, módulo de tratamento dos Frames do vídeo, alinhamento linear em Deep Sort Algorithm, compreendendo a Interseção Sobre União, converter caixa delimitadora para o formato de vetor, converter o vetor de estado para o formato de caixa delimitadora, associar detecções nos Frames do vídeo aos rastreadores, criar o Kalman Box Tracker, compreender e implementar o Simple Online and Realtime Tracking (SORT), deploy do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Arquivo de vídeo com áudio contendo vacas e pessoas.
Pacotes/Bibliotecas: math; time; cv2; ultralytics: YOLO; pygame; os; glob; time; numpy; matplotlib; matplotlib.pyplot; matplotlib.patches; skimage: io; filterpy.kalman: KalmanFilter.
Projeto 55: Fine Tuning de Modelo Pré Treinado para Classificação de Imagens de Animais Silvestres.
Definição do problema: Ajustar um modelo Vision Transformer (ViT) pré-treinado para classificação de imagens em um conjunto de dados personalizado. O objetivo é adicionar um cabeçote de classificação inicializado aleatoriamente no topo de um modelo pré-treinado e ajustar o modelo completamente em nosso próprio conjunto de dados. Os dados foram extraídos da fonte https://www.kaggle.com/datasets/virtualdvid/oregon-wildlife
Link das imagens organizadas:
https://drive.google.com/file/d/1v3DwpNghZqpfYZZhftXdWpc2xxJ2tVwG/view?usp=sharing
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, automatizar a carga dos próprios dados para ajuste do modelo, criar mapeamentos, pré-processamento das imagens, definir argumentos e hiperparâmetros do fine-tuning, treinamento do modelo, avaliação e métricas de desempenho, utilizar o modelo para previsões com novas imagens.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: 20 diferentes tipos de animais.
Tamanho dos dados: 4,6 GB de imagens, contendo 14013 imagens.
Pacotes/Bibliotecas: numpy; torch; torchvision; torchvision.transforms: (CenterCrop, Compose, Normalize, RandomHorizontalFlip, RandomResizedCrop, Resize, ToTensor); transformers: AutoImageProcessor, AutoModelForImageClassification, TrainingArguments, Trainer; datasets: load_metric; datasets: load_dataset.
Projeto 56: IA e Visão Computacional no Agronegócio para Detecção de Doenças em Plantações.
Definição do problema: Trabalhar com arquitetura CNN (Convolutional Neural Network) para criar um modelo capaz de classificar imagens de plantações de milho identificando a planta como saudável ou doente (e nesse caso especificando o tipo de doença na planta. As imagens estão disponíveis no link abaixo:
https://www.kaggle.com/datasets/sahityamamillapalli/corn-or-maize-leaf-disease-dataset
As imagens organizadas podem ser obtidas no link a seguir:
https://drive.google.com/file/d/1pXjbbvxFMctaZvfSY3E0fn0nMa0TB7G0/view?usp=sharing
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, dividir os dados (treino, validação e teste), técnicas de Data Augmentation para CNNs, aplicar transformações nas imagens, carregar imagens em estruturas de dados, visualizar as imagens, criar os dataloaders, construir o modelo, definir (hiperparâmetros, função de erro e otimizador), criar o loop de treino, criar o loop de teste, treino do modelo, previsões com novos dados,
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Imagens de plantações de milho.
Tamanho dos dados: 167 MB de imagens, com 4178 arquivos.
Pacotes/Bibliotecas: torch; random; splitfolders; shutil; sklearn; numpy; pandas; matplotlib.pyplot; seaborn; torch: nn; torch.utils.data: DataLoader; torchvision: transforms, datasets; sklearn.metrics: classification_report, confusion_matrix.
Projeto 57: IA e Transfer Learning para Geração de Texto a Partir de Imagem.
Definição do problema: Implementar um modelo de Deep Learning para gerar legendas para imagens. A tarefa envolve treinar um modelo para compreender o conteúdo de uma imagem e gerar uma descrição humana do que está acontecendo na imagem. Este projeto usa o conjunto de dados Flickr8K, que consiste em imagens junto com as legendas correspondentes. A arquitetura do modelo aproveita uma combinação de Redes Neurais Convolucionais (CNNs) para extração de recursos de imagem e Redes Neurais Recorrentes (RNNs) para gerar legendas. Os dados estão disponíveis no link:
https://www.kaggle.com/datasets/adityajn105/flickr8k
O link abaixo tem mais detalhes sobre cada imagem:
https://hockenmaier.cs.illinois.edu/8k-pictures.html
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, organizar as imagens em disco, carregar o modelo pré-treinado, extrator de recursos para pré-processamento de imagens, pré-processamento dos dados de texto, processo de tokenização, divisão e preparação dos dados para treino, arquitetura do modelo, treinamento do modelo, avaliação do modelo, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Imagens variadas.
Tamanho dos dados: Mais de 8 mil imagens, totalizando 1,1 GB.
Pacotes/Bibliotecas: os; pickle; numpy; tensorflow; matplotlib.pyplot; PIL: Image; tqdm.notebook: tqdm; tensorflow.keras.applications.vgg16: VGG16, preprocess_input; tensorflow.keras.preprocessing.image: load_img, img_to_array; tensorflow.keras.preprocessing.text: Tokenizer; tensorflow.keras.preprocessing.sequence: pad_sequences; tensorflow.keras.models: Model; tensorflow.keras.utils: to_categorical, plot_model; tensorflow.keras.layers: Input, Dense, LSTM, Embedding, Dropout, add.
Projeto 58: Vision Transformers (ViT) para Prever Qualidade de Alimentos em Plantações Agrícolas.
Definição do problema: Fazer o fine-tuning em um modelo Vision Transformer Pré-treinado e ajustá-lo ao próprio caso de uso, a fim de classificar e prever a qualidade de alimentos em plantações agrícolas. Ao final farei o deploy do modelo ajustado. Com base em imagens de folhas de plantações, o objetivo desta tarefa é prever o tipo de doença (Mancha ou Ferrugem), se houver. Usarei dados (imagens) reais disponíveis no link abaixo (o download do dataset será feito via código Python durante o projeto):
https://huggingface.co/datasets/beans
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, carregar e aplicar o ViT Feature Extractor, processamento de imagens, construção do módulo de treino, instância de treino do modelo, treinamento e avaliação do modelo, deploy do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Diversas imagens de plantações agrícolas saudáveis e não saudáveis.
Pacotes/Bibliotecas: requests; torch; datasets; transformers; numpy; datasets: load_dataset, load_metric; transformers: ViTFeatureExtractor, ViTForImageClassification; transformers: TrainingArguments, Trainer; PIL: Image
Projeto 59: Global Context Vision Transformer (GCViT) para Classificação de Imagens.
Definição do problema: Fazer o fine-tuning em um modelo Vision Transformer Pré-treinado e ajustá-lo ao próprio caso de uso, a fim de classificar e prever imagens de flores em alta resolução. Usarei o modelo com arquitetura GCViT. Usarei dados (imagens) reais disponíveis no repositório do TensorFlow (as imagens serão baixadas durante a execução do projeto): https://www.tensorflow.org/datasets
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, criar o pipeline de imagens, construir o procedimento de LR Scheduler, hiperparâmetros de treino, otimizador e função de erro, construção do modelo GCViT, definir os call-backs, treinar o modelo, analisar o histórico de treino, previsões com novas imagens e avaliação do modelo, visualizar as previsões.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Várias imagens de diferentes tipos de flores.
Pacotes/Bibliotecas: os; sys; math; gcvit; numpy; pandas; matplotlib.pyplot; tensorflow; tensorflow_datasets; tensorflow: keras; gcvit: GCViTTiny
Projeto 60: Deploy de App Para Day Trade Analytics em Tempo Real com Agentes de IA, Groq, DeepSeek e AWS Para Monetização.
Definição do problema: Uma empresa que atua na área financeira busca ampliar sua oferta de serviços utilizando Inteligência Artificial para atender investidores que atuam com day trade. Esses investidores necessitam de análises rápidas e precisas sobre tendências do mercado financeiro para tomar decisões lucrativas em tempo real. Atualmente, o processo é manual e lento, ocasionando perda de oportunidades e prejuízos potenciais. O objetivo é entregar uma plataforma robusta, integrada com Agentes de IA que utilizam tecnologias de ponta como Groq, DeepSeek e infraestrutura em nuvem da AWS. Essa solução proverá um módulo de Analytics em tempo real e um módulo de IA recomendando oportunidades assertivas e automatizando o suporte às decisões financeiras dos clientes, possibilitando assim uma nova fonte de receita através da monetização direta por assinaturas e serviços premium. O projeto garantirá uma vantagem competitiva decisiva ao aumentar a velocidade, precisão e rentabilidade das operações dos investidores.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, avaliação de dados disponíveis, modelo de precificação por projeto, desenvolvimento de modelos de IA, deploy.
Pacotes/Bibliotecas: EC2.
Projeto 61: Construção e Deploy de REST API com SageMaker, Lambda Function e API Gateway.
Definição do problema: Para o problema de negócio criaremos um modelo de classificação capaz de classificar animais (pinguins, especificamente). Dadas características do um novo animal (pinguim) nosso modelo vai prever a qual de três classes o animal pertence. Todo o processo deste projeto pode ser aplicado a qualquer modelo de classificação. O dataset usado no projeto foi baseado no dataset disponível no link: https://archive.ics.uci.edu/dataset/690/palmer+penguins-3
Passos seguidos: Definição do problema, diagrama da arquitetura da solução, preparar o ambiente de codificação, criar o ambiente de armazenamento no S3, inicializar e configurar o Sagemaker, carregar e analisar os dados, explorar e limpar os dados, divisão dos dados em treino e teste, construção e treinamento do modelo, deploy do modelo, visualizar o endpoint do modelo, configurar perfil de acesso no IAM, criar a função Lambda, criar o REST API com API GATEWAY na AWS, deploy.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: id, species, island., bill_length_mm, bill_depth_mm, flíper_length_mm, body_mass_g, sex, yer.
Tamanho dos dados: (344; 9).
Pacotes/Bibliotecas: os; boto3; pandas; sagemaker; sagemaker: get_execution_role; sagemaker.inputs: TrainingInput; sklearn.model_selection: train_test_split.
Projeto 62: Pipelines de Dados com Microsoft Fabric Data Factory e Data Engineering.
Definição do problema: Construir um Lakehouse, criar as camadas de processamento Bronze, Silver e Gold, construir e agendar o pipeline e então analisar os dados com Linguagem SQL criando relatórios a partir da tabela Gold. Vamos extrair dados sobre terremotos, especificamente abalos sísmicos, a partir da API fornecida pelo USGS. Este é o site oficial de onde os dados serão extraídos: https://earthquake.usgs.gov
Passos seguidos: Definição do problema, preparar o ambiente de codificação, configurar Microsoft Fabric, criar o Lakehouse, pipeline de extração de dados brutos na Bronze Layer, pipeline de limpeza de dados na Silver Layer, pipeline de preparação dos dados para análise na Gold Layer, pipeline com Data Factory, análise dos dados com SQL, reporting com a Tabela Gold.
Pacotes/Bibliotecas: requests; json; pyspark.sql.functions: col, When, udf; pyspark.sql.types: TimestampType, StringType
Projeto 63: Workflow de Criação de Dashboards Interativos com Microsoft Fabric e Power BI.
Definição do problema: Criar um Dataflow a partir de dados de uma planilha Excel. Então usaremos o Power BI para consumir o Dataflow e construir um Dashboard interativo.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, criar o Dataflow, instalar e configurar o Gateway, carregar e analisar os dados, explorar os dados, utilizar o DAX para cálculos avançados, utilizar o Power Query para transformar os dados, publicar o dashboard do Power BI.
Variáveis/Atributos: categoria, produto, loja, regiao, quantidade, valor_total.
Tamanho dos dados: (100; 6).
Projeto 64: Pipeline de Machine Learning com Microsoft Fabric.
Definição do problema: Construir um pipeline de Machine Learning completo, de ponta a ponta, da definição do problema de negócio, passando pela carga de dados no formato Parquet, criação de experimento com MLflow, até o deploy do modelo, no Microsoft Fabric. O projeto demonstra ainda na prática o que realmente é overfitting.
Passos seguidos: Definição do problema, preparar o ambiente de codificação e o Fabric, carregar os dados no formato Parquet, divisão dos dados em treino e teste, criar experimento MLflow, deploy do modelo.
Variáveis/Atributos: mlflow; pandas; sklearn.model_selection: train_test_split; sklearn.linear_model: LinearRegression; sklearn.tree: DecisionTreeRegressor; sklearn.metrics: r2_score; matplotlib.pyplot; warnings.
Projeto 65: Data Warehousing Analytics para Análise Geoespacial com Python e DuckDB.
Definição do problema: Usaremos dados reais disponíveis publicamente. O conjunto de dados mescla o V3 Open Buildings do Google e o Building Footprints mais recente da Microsoft. Com 2.534.595.270 footprints é, até onde sabemos, o conjunto de dados mais completo disponível abertamente. Abrange 92% das fronteiras administrativas e está dividido em 182 partições. Cada footprint é rotulado com sua respectiva fonte, Google ou Microsoft. Ele pode ser acessado em formatos geoespaciais nativos, como GeoParquet, FlatGeobuf e PMTiles.
Em resumo, o dataset contém detalhes geoespaciais sobre edificações em diversos países do mundo. O dataset pode, por exemplo, ser usado para identificar áreas de grande concentração de construções, crescimento urbano desorganizado ou mesmo monitoramento e prevenção de desastres. Os dados foram extraídos do link:
https://sites.research.google/open-buildings/#download
Descrição dos dados: https://beta.source.coop/repositories/vida/google-microsoft-open-buildings/description/
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, realizar análise estatística.
Tamanho dos dados: 140 milhões de registros.
Matemática/Estatística: Estatística descritiva.
Projeto 66: Chatbot Personalizado com Sistema de Recomendação Para Suporte ao Cliente Usando LLMs.
Definição do problema: Desenvolvimento de um chatbot personalizado para suporte ao cliente, integrado com um sistema de recomendação inteligente. Utilizando LLM, o chatbot será capaz de compreender e responder a uma ampla gama de perguntas dos clientes, proporcionando um atendimento eficiente e humanizado. Além disso, o sistema de recomendação incorporado permitirá sugerir soluções relevantes com base em um banco de dados históricos, melhorando a experiência do usuário e aumentando a satisfação do cliente.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, preparar documentos de FAQ para usar como BD do chatbot baseado em IA, configurar a interface do chatbot, definir o LLM, modelo de criação das embeddings, motor de execuçãoexecutar o chatbot.
Pacotes/Bibliotecas: docx2txt; streamlit; langchain_huggingface: HuggingFaceEmbeddings; llama_index.llms.ollama: Ollama; llama_index.core: VectorStoreIndex, SimpleDirectoryReader, Settings
Projeto 67: Seleção de Modelos de Machine Learning em Análise Multivariada com Dados Anonimizados.
Definição do problema: O objetivo é a implementação e comparação de modelos de Machine Learning para análise multivariada, utilizando um conjunto de dados anonimizados para garantir a privacidade e conformidade com as normativas de proteção de dados. Desta forma, a ideia é explorar diferentes técnicas de seleção de modelos para identificar o algoritmo mais eficaz e eficiente, capaz de lidar com a complexidade e as nuances dos dados multivariados, sem comprometer a identidade dos indivíduos representados.
Através de um processo rigoroso que inclui a limpeza de dados, a seleção de características, o ajuste de hiperparâmetros e a validação cruzada, o projeto busca otimizar a performance preditiva mantendo a integridade e a anonimidade dos dados. Este trabalho não só demonstra o uso de técnicas de aprendizado de máquina, mas também destaca a importância de práticas éticas no tratamento de dados sensíveis.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, balanceamento de classes, divisão dos dados, padronização dos dados, modelagem preditiva, regressão logística, Naice Bayes, XGBoost, Random Forest, comparar métricas, curva ROC, deploy do modelo.
Tipo de Aprendizado: Supervisionado.
Tamanho dos dados: (11500; 179).
Projeto 68: Implementando o Mecanismo de Atenção em Python Sem Uso de Frameworks.
Definição do problema: Implementar o mecanismo de atenção em um modelo Transformer. Fazer a implementação primeiro usando o PyTorch, um dos mais completos frameworks de Deep Learning, e então faremos a implementação somente com operações matemáticas, sem o uso de frameworks.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, definir a arquitetura Transformer, construir o modelo Transformer, componentes Q (Query)K (Key) V (Value), mecanismo de atenção, função de ativação softmax, Scale Dot Product, testar o modelo para previsões.
Pacotes/Bibliotecas: torch; numpy.
Projeto 69: Fine-Tuning de Um Modelo Transformer Para Classificação de Sentimento.
Definição do problema: Passo a passo o fine tuning de um modelo Transformer para classificação de sentimento. Um resumo das atividades realizadas neste projeto:
• Processamento de dados de texto com SpaCy.
• Vetorização de dados de texto.
• Construção, treinamento e avaliação de 3 modelos de Deep Learning, sendo 2 modelos com arquiteturas tradicionais e 1 modelo com arquitetura Transformer (o objetivo é comparar os procedimentos de construção dos modelos e a performance).
• Callbacks e otimização do processo de treinamento dos modelos.
• Interpretação das métricas de avaliação dos modelos.
• Uso da plataforma Hugging Face.
• Transferência de aprendizado e fine tuning de modelo pré-treinado.
• Deploy de 3 modelos com 3 diferentes arquiteturas de Deep Learning.
Os dados usados no projetos foram extraídos da fonte disponível no link abaixo:
https://huggingface.co/datasets/carblacac/twitter-sentiment-analysis
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, pré-processamento com Spacy, arquitetura Fully Connected Neural Network, vetorização com TF-IDF, encoding da variável alvo, balanceamento de classes, construção dos modelos, Regularização L2, Learning Rate Scheduler, Early Stopping, Callbacks, treinamento e avaliação dos modelos.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: sentimentos (joy, sadness, anger, fear, love, surprise), quantidade.
Tamanho dos dados: (18000; 2).
Pacotes/Bibliotecas: math; nltk; spacy; numpy; pandas; tensorflow; matplotlib.pyplot; transformers; tokenizers: BertWordPieceTokenizer; tqdm: tqdm; nltk.corpus: stopwords; sklearn.preprocessing: LabelEncoder; sklearn.feature_extraction.text: TfidfVectorizer; sklearn.model_selection: train_test_split; sklearn.utils.class_weight: compute_class_weight; sklearn.metrics: confusion_matrix, accuracy_score, classification_report; tensorflow: keras; keras.utils: to_categorical; tensorflow.keras: Sequential; tensorflow.keras.models: load_model; keras.preprocessing.text: Tokenizer; keras.metrics: Precision, Recall, AUC; tensorflow.keras.preprocessing.sequence: pad_sequences; keras.layers: Embedding, LSTM, Dense, Dropout, Bidirectional; keras.callbacks: EarlyStopping, LearningRateScheduler, CallbackList, ReduceLROnPlateau; tensorflow.keras.optimizers.experimental: Adam
Projeto 70: Classificação de Imagens de Satélite com Deep Learning.
Definição do problema: Construção de um modelo de Deep Learning a partir do zero para classificar imagens de satélite em um típico projeto de Visão Computacional. A fonte de dados se encontra no link: https://huggingface.co/datasets/blanchon/EuroSAT_RGB
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, organizar as imagens em disco, automatizar a separação das imagens, pré-processamento e criação de dataloaders, modelagem e construção do modelo de DL, selecionar a função erro e o otimizador, treinar o modelo, avaliar o modelo, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: AnnualCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, PermanentCrop, Residential, River, SeaLake
Tamanho dos dados: Mais de 140 MB de imagens.
Pacotes/Bibliotecas: os; time; shutil; Random; numpy; seaborn; matplotlib.pyplot; torch; torchvision; torchvision.transforms; torchvision.datasets: ImageFolder; torch.nn; torch.nn.functional; torch.optim; tqdm: tqdm; sklearn; sklearn.metrics: confusion_matrix
Projeto 71: Fine Tuning de LLM Open Source com Dataset Customizado Para Geração de Texto.
Definição do problema: A partir de um LLM open-source pré-treinado farei o ajuste fino do modelo com nossos próprios dados, ajustando o LLM para uma tarefa específica: gerar texto médico em resposta à descrição de um quadro clínico do paciente.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, ajustar o formato do prompt de entrada,parâmetros de quantização, carregar o LLM e o tokenizador, gerar resposta com o LLMantes do ajuste fino, parâmetros LoRa para PEFT, argumentos de treino, parâmetros do Supervised Fine-Tuning Trainer (SFFT), treinar o LLM, gerar texto com o LLM,
Pacotes/Bibliotecas: accelerate; peft; bitsandbytes; transformers; trl; datasets; torch; datasets: load_dataset; transformers: AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig; transformers: TrainingArguments; peft: AutoPeftModelForCausalLM, LoraConfig, get_peft_model, prepare_model_for_kbit_training; trl: SFTTrainer; warnings
Projeto 72: Deep Learning Para Detecção de Fraudes em Transações Financeiras com Criptomoedas.
Definição do problema: Construir um modelo de Deep Learning para classificar transações financeiras com criptomoedas a fim de detectar possíveis fraudes. Inclui também a criação de um pipeline de pré-processamento de dados através de técnicas de programação orientada a objetos. Os dados foram extraídos do link:
https://www.kaggle.com/datasets/vagifa/ethereum-frauddetection-dataset/data
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, limpeza dos dados, criar o pipeline de pré-processamento, construir o modelo de DL, treinar e avaliar o modelo, deploy do modelo e detecção de fraudes.
Tipo de Aprendizado: Supervisionado.
Tamanho dos dados: (9841; 51).
Pacotes/Bibliotecas: sklearn; numpy; pandas; matplotlib.pyplot; tensorflow; keras.utils: to_categorical; keras.models: Sequential; keras.layers: Dense; keras: Input; sklearn.model_selection: train_test_split; sklearn.pipeline: Pipeline; sklearn.base: BaseEstimator, TransformerMixin; sklearn.preprocessing: StandardScaler; sklearn: metrics; warnings
Projeto 73: Temporal Fusion Transformers Para Prever o Retorno de Investimentos.
Definição do problema: Criação de indicadores financeiros para análise de dados, engenharia de atributos em dados de série temporal multivariada, construção do modelo Temporal Fusion Transformer e criação da estratégia para previsão do retorno de aplicações financeiras. Os dados usados são reais, disponíveis publicamente e coletados em tempo real. Link: https://finance.yahoo.com/
Passos seguidos: Definição do problema, preparar o ambiente de codificação, extração dos dados diretamente da fonte, analisar os dados, explorar os dados, engenharia de atributos de dados financeiros, pré-processamento dos dados, construção do modelo Temporal Fusion Transformer, treinamento e avaliação do modelo, previsões e cálculo do retorno.
Tipo de Aprendizado: Supervisionado
Variáveis/Atributos: open, high, low, close, adj close, volume.
Tamanho dos dados: (6037; 6).
Pacotes/Bibliotecas: ta; sklearn; pandas; numpy; tensorflow; yfinance; matplotlib.pyplot; tensorflow: keras; keras: layers; sklearn.preprocessing: StandardScaler; sklearn: metrics; warnings
Projeto 74: Inteligência Artificial Para Prever o Preço de Ativos Financeiros.
Definição do problema: Criar um modelo de IA capaz de prever com alta precisão o preço de ativos financeiros. Link dos dados: https://finance.yahoo.com/
Passos seguidos: Definição do problema, preparar o ambiente de codificação, extração dos dados via API, carregar e analisar os dados, explorar os dados, engenharia de atributos, pré-processamento dos dados, modelagem preditiva, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Dividends, Stock Splits, Tomorrow, Open, High, Low, Volume.
Tamanho dos dados: (24143; 7).
Pacotes/Bibliotecas: sklearn; numpy; pandas; matplotlib.pyplot; yfinance; sklearn.preprocessing: StandardScaler; sklearn.model_selection: train_test_split; sklearn.linear_model: LinearRegression; sklearn: metrics; warnings
Projeto 75: Web App com Inteligência Artificial Para Análise e Previsão de Preços de Ações em Tempo Real.
Definição do problema: Desenvolvimento de aplicação web e a construção de modelo de IA, para analisar e prever o preço de ações de diferentes empresas em tempo real, calculando diferentes indicadores técnicos e customizando nossa web app.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, construir barra lateral e título, construir módulo de seleção e página, construir módulo de download de dados, definir os seletores, construir o módulo de cálculo de indicadores técnicos, construir o módulo de previsões, construir o módulo de IA,
Pacotes/Bibliotecas: datetime: date; pandas; streamlit; yfinance; ta.momentum: RSIIndicator; ta.volatility: BollingerBands; ta.trend: MACD, EMAIndicator, SMAIndicator; sklearn.preprocessing: StandardScaler; sklearn.model_selection: train_test_split; sklearn.linear_model: LinearRegression; sklearn.metrics: r2_score, mean_absolute_error
Projeto 76: Portfólio de Investimento com Fronteira Eficiente e Otimização Matemática.
Definição do problema: Aplicar conceitos de finanças para maximizar os retornos ajustados ao risco de um portfólio de investimentos. Utilizando a teoria moderna de portfólios, o projeto busca identificar a combinação ótima de ativos financeiros que constitui a Fronteira Eficiente de Markowitz, um conceito chave na otimização de portfólios.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, definir os ativos financeiros, calcular a variação percentual, simular diferentes variações de pesos para os ativos, calcular o retorno esperado (volatilidade e índice de sharpe), interpretar o sharpe ratio máximo, gráfico de retornoXRiscoXSharpeRatio, teoria da média variância para construir a fronteira eficiente, definir as restrições do problema de otimização, otimização com Sequential Least Squares Programming (SLSQP), construção e interpretação da fronteira eficiente,
Tipo de Aprendizado: Análise estatística.
Variáveis/Atributos: NVDA, AMZN, GOOGL, AMD, MSFT, AAPL, TSLA, SONY, META, NFLX.
Tamanho dos dados: (61; 10).
Pacotes/Bibliotecas: scipy; numpy; pandas; yfinance; matplotlib.pyplot; scipy.optimize: minimize; warnings
Projeto 77: IA com LLM (e Construção de API) Para Análise de Sentimento em Noticiário Financeiro.
Definição do problema: Desenvolver um sistema de análise de sentimento aplicado a notícias financeiras utilizando LLM. Farei o deploy da solução construindo uma API, criando ainda um módulo cliente para consumir a API através do seu endpoint e então executarei a análise de sentimento em tempo real.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construir a app.
Pacotes/Bibliotecas: fastapi: FastAPI; pydantic: BaseModel; transformers: AutoModelForSequenceClassification, AutoTokenizer; torch; uvicorn; requests
Projeto 78: Pipeline Automatizado de IA Para Detecção de Fraudes em Transações Financeiras Imobiliárias.
Definição do problema: Desenvolver uma solução automatizada utilizando técnicas avançadas de Inteligência Artificial através de LLM sendo executado localmente e análises estruturadas com SQL para identificar e prevenir fraudes em atividades imobiliárias. O projeto vai permitir analisar padrões de texto e comportamentais nos dados históricos e em transações imobiliárias, permitindo a detecção proativa de irregularidades e comportamentos suspeitos. Paralelamente, a utilização de SQL para manipulação e análise de dados assegura que a integridade e a precisão dos dados sejam mantidas, permitindo uma investigação detalhada de transações e padrões anômalos.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, construir o banco de dados de transações imobiliárias, automatizar a execução de scriptsSQL com python, automatizar o processo de carga de dados, definir o modelo a ser usado para detecção de fraudes, configurar o modelo de IA, construir o pipeline de detecção de fraudes, automatizar a execução do pipeline, executar o projeto.
Variáveis/Atributos: id_cliente, nome, email, cidade, estado, cep, id_historico, id_transacao, data_modificacao, descrição, id_imovel, valor, tipo_transacao, status.
Pacotes/Bibliotecas: psycopg2; pandas; sqlalchemy: create_engine; csv; langchain_core.prompts: ChatPromptTemplate; langchain_core.output_parsers: StrOutputParser; langchain_community.llms.ollama: Ollama; subprocess; time
Projeto 79: IA em Ativos Financeiros Para Prever Lucro Por Ação (EPS).
Definição do problema: Utilizar redes neurais do tipo Long Short-Term Memory (LSTM) para prever o Lucro por Ação (EPS), um indicador financeiro fundamental. O objetivo é construir um modelo de IA que analise séries temporais de EPS e utilize uma estratégia de lag para prever valores futuros da própria série. Usando dados históricos de EPS, o modelo LSTM será treinado para reconhecer padrões e tendências ao longo do tempo, permitindo previsões mais precisas. A abordagem de lag envolve utilizar valores passados da série temporal como inputs para prever valores futuros, capturando assim a dinâmica temporal dos dados. Este projeto combina técnicas avançadas de aprendizado de máquina e análise financeira, proporcionando uma ferramenta poderosa para analistas e investidores tomarem decisões informadas sobre o desempenho futuro de ações. A previsão precisa do EPS pode auxiliar na avaliação da saúde financeira de empresas e na identificação de oportunidades de investimento.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, processamento da série temporal, padronização dos dados, reshape dos dados, construção do modelo de IA, compilação do modelo otimizador e função erro, módulo de treinamento e avaliação do modelo, módulo de cálculo das métricas, módulo de criação dos gráficos.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: ano, taxa_juros, inflacao, pib, eps.
Pacotes/Bibliotecas: os; random; pandas; numpy; tensorflow; sklearn.preprocessing: MinMaxScaler; sklearn.metrics: mean_squared_error; matplotlib.pyplot; warnings
Projeto 80: Previsão de Risco em Operações Financeiras.
Definição do problema: Utilizar dados de cadastro de clientes para prever um score de risco para concessão de empréstimo. Os dados usados estão repletos de problemas e terei que realizar um extenso trabalho de limpeza e engenharia de atributos. E então criarei modelos de classificação e regressão. Os dados foram extraídos do link:
https://www.kaggle.com/datasets/altruistdelhite04/loan-prediction-problem-dataset
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, limpeza e engenharia de atributos, pré-processamento dos dados para a classificação e regressão, criar o modelo de previsão de risco (regressão linear, Bayesiano, Random Forest, XGBoost), análise dos modelos, deploy.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: ID_Emprestimo, genero, casado, dependentes, educação, empreendedor, SalarioAnualAplicantePrincipal, SalarioAnualCoAplicante, Score_Risco, TempoEmprestimo, Historico_Credito, LocalResidencia, StatusEmprestimo
Tamanho dos dados: (600; 13).
Pacotes/Bibliotecas: sklearn; xgboost; pandas; numpy; matplotlib.pyplot; seaborn; xgboost: XGBRegressor; sklearn.preprocessing: StandardScaler; sklearn.model_selection: train_test_split; sklearn.linear_model: LinearRegression, BayesianRidge; sklearn.neighbors: KNeighborsClassifier; sklearn.ensemble: RandomForestRegressor; sklearn.metrics: classification_report, confusion_matrix, max_error, explained_variance_score, accuracy_score, mean_absolute_error
Projeto 81: Estratégia de Trading Usando Inteligência Artificial com Aprendizado Por Reforço.
Definição do problema: Desenvolver uma estratégia de trading automatizada utilizando Inteligência Artificial com foco em aprendizado por reforço (Reinforcement Learning). O objetivo é criar um agente que aprenda a tomar decisões de compra e venda de ativos financeiros de forma autônoma, maximizando os lucros e minimizando as perdas. O projeto inclui a modelagem do ambiente de mercado, o treinamento do agente com algoritmo de aprendizado por reforço, e a validação dos resultados por meio de testes em dados históricos e em tempo real.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, criar módulo de extração dos dados históricos, janela de LookBack, criar ambiente de negociação, definir o saldo inicialpara negociação e outros parâmetros, criar e treinar o modelo, executar o agente Trading no ambiente de negociação, decisão final do agente, resultado obtido pelo agente de trading, usar o agente de trading para períodos futuros.
Tipo de Aprendizado: Por reforço.
Tamanho dos dados: (2516; 1).
Pacotes/Bibliotecas: yfinance; numpy; pandas; matplotlib.pyplot; gymnasium; gym_anytrading; stable_baselines3; gym_anytrading.envs: Actions; stable_baselines3: PPO
Projeto 82: Estratégia de Hedging Usando Inteligência Artificial.
Definição do problema: Desenvolver uma estratégia de hedging automatizada utilizando Inteligência Artificial com foco em aprendizado por reforço (Reinforcement Learning). O objetivo é criar um agente que aprenda a tomar decisões de investimento. Vamos construir a massa de dados para simulação com o agente.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, processar os dados, calcular o delta de uma opção de compra ou venda, calcular o preço de uma opção de compra ou venda, calcular o payoff terminal de uma opção financeira, ajustar os parâmetros para a preparação dos dados, preparação dos dados, função para mostrar o caminho de venda, pré-processamento dos dados para modelagem com Reinforcement Learning, modelagem com Reinforcement Learning, construir o módulo de memória do agente, construir o modelo Deep Q-Network, definir a política, executar o treinamento do modelo, funções para cálculo da recompensa, avaliar a estratégia de Hedge nos passos de tempo
Tipo de Aprendizado: Por reforço.
Pacotes/Bibliotecas: Random; scipy; numpy; pandas; plotly.express; plotly.graph_objs;
scipy.stats: norm; warnings; collections; tensorflow; keras; collections: deque, namedtuple; keras.models: Sequential; keras.layers: Dense; tqdm.auto: tqdm
Projeto 83: Robô Investidor com IA Usando LLMs Para Investment Analytics.
Definição do problema: Imagine coletar notícias (em português) sobre uma empresa em tempo real. E então usar as notícias e solicitar que um LLM faça análise de sentimento sobre o noticiário, criando um ranking dos sentimentos, e compare com o preço da ação da empresa na bolsa de valores, para tomar uma decisão de investimento: Comprar, Manter ou Vender ações da empresa. E fazer tudo isso em Python executando apenas um único comando no seu computador. Imaginou? Este projeto demonstra ainda como usar LLM proprietário e LLM open-source, ressaltando as diferenças e quando usar uma opção ou outra! Todos os dados usados no projeto serão extraídos da web em tempo real.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, definir o LLM proprietário e Open-Source, definir como extrair dados de noticiário em tempo real, módulo de extração de noticiário em tempo real, módulo de extração de cotações de ações, módulo de análise de sentimento com LLM Open-Source, módulo de conversão de sentimento em pontuação, módulo de tomada de decisão (comprar, vender ou manter), sequência de execução, executar com LLM Proprietário via API e Open-Source Local.
Pacotes/Bibliotecas: requests; yfinance; numpy; openai: OpenAI; newsapi: NewsApiClient; langchain_core.prompts: ChatPromptTemplate; langchain_core.output_parsers: StrOutputParser; langchain_community.llms.ollama: Ollama
Projeto 84: Converse com Seus PDFs Criando Assistente Pessoal de IA com LLM e VectorDB.
Definição do problema: Com o uso de LLMs e VectorDBs podemos literalmente conversar com documentos em PDF, extraindo informações e insights. Imagine fazer isso em centenas ou mesmo milhares de arquivos PDF.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, extrair textos de documentos, autenticação e uso da API da OpenAI, gerar vetores de embeddings, definir o vector store e criar o índice, criar o analisador de documentos PDF com LangChain, conversar com os documentos, técnicas de prompts engineering.
Pacotes/Bibliotecas: os; openai; langchain; pinecone; langchain.document_loaders: PyPDFDirectoryLoader; langchain.embeddings.openai: OpenAIEmbeddings; langchain.vectorstores: Pinecone; langchain.llms: OpenAI; langchain.chains.question_answering: load_qa_chain; warnings
Projeto 85: Fine Tuning Eficiente de LLMs com LoRA Para Análise de Sentimentos em Texto.
Definição do problema: Passar por todo o processo de ajuste fino de um LLM com as técnicas mais avançadas da atualidade. Dado um texto de entrada, o modelo será ajustado para gerar texto descrevendo o sentimento identificado. Utilizei como fonte de dados os dados disponíveis no link: https://ai.stanford.edu/~amaas/data/sentiment
Passos seguidos: Definição do problema, preparar o ambiente de codificação, definir parâmetros de configuração, carregar os dados para o ajuste fino, organizar os dados, definir o LLM, parâmetros LoRA (Low-Rank Adaptation), parâmetros de Quantização, carregar tokenizador, treinar o modelo.
Pacotes/Bibliotecas: os; torch; datasets; pandas; datasets: load_dataset; transformers: AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, HfArgumentParser, TrainingArguments, pipeline, logging; peft: LoraConfig, PeftModel; trl: SFTTrainer; warnings
Projeto 86: Fine Tuning de LLM Open Source Para App de Assistente Jurídico.
Definição do problema: Fazer o ajuste fino de um LLM Open-Source com dados da área de Direito. Também usaremos métricas específicas para avaliar a performance do modelo após o ajuste fino. Usarei como fonte de dados os dados que foram extraídos via API com base no procedimento disponível no link: https://huggingface.co/datasets/ymoslem/Law-StackExchange
Passos seguidos: Definição do problema, preparar o ambiente de codificação, extração dos dados via API, carregar os dados e dividir em treino e teste, definir o tokenizador e o LLM, pré-processamento dos dados e ajuste fino, métrica de avaliação, definir os hiperparâmetros, treinar e avaliar o modelo, deploy e uso do modelo.
Tipo de Aprendizado: Supervisionado.
Pacotes/Bibliotecas: numpy; nltk; shutil; evaluate; transformers; datasets; datasets: load_dataset; transformers: T5Tokenizer, DataCollatorForSeq2Seq; transformers: T5ForConditionalGeneration, Seq2SeqTrainingArguments, Seq2SeqTrainer; transformers: AutoModelForSeq2SeqLM, AutoTokenizer; warnings
Projeto 87: Ajuste Fino de LLM Open Source Para Chatbot de Atendimento ao Cliente.
Definição do problema: Fazer o ajuste fino de um LLM Open-Source com nossos próprios dados a fim de criar um chatbot para atendimento ao cliente. Vamos criar nossa própria massa de dados de exemplo em português e fazer o ajuste fino do LLM Falcon-7b.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, definir os parâmetros de Quantização, carregar o modelo e o tokenizador, congelar os pesos originais do LLM, ativar o checkpoint de gradientes do modelo, definir os adaptadores LoRA, pré-processamento dos dados, definir os argumentos de treino, treinar o modelo, avaliar o ajuste fino com a métrica BLEU, deploy e uso do chatbot.
Tipo de Aprendizado: Supervisionado.
Pacotes/Bibliotecas: os; json; torch; evaluate; torch.nn; transformers; bitsandbytes; transformers: AutoTokenizer, AutoConfig, AutoModelForCausalLM; transformers: BitsAndBytesConfig, pipeline; peft: LoraConfig, get_peft_model; datasets: Dataset, Features, ClassLabel, Value, Sequence; warnings
Projeto 88: LangChain e LLM Open Source Para Sistema de Perguntas e Respostas.
Definição do problema: O LangChain é uma excelente ferramenta para construir aplicações a partir de LLMs. Neste projeto usarei o LangChain em conjunto com um LLM Open-Source para criar um sistema de perguntas e respostas.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, automatizar a criação dos prompts para treinamento do modelo com LangChain, processo de Quantização, Carregar LLM e tokenizador, configurar adaptadores LoRA, parâmetros do ajuste fino, ajuste fino do LLM, configura o LangChain com LLM Open-Source ajustado, construir o pipeline de geração de texto com LangChain, Criar o LLM Chain, deploy do modelo e uso do sistema de perguntas e respostas.
Pacotes/Bibliotecas: torch; accelerate; peft; bitsandbytes; transformers; trl; datasets; langchain; trl: SFTTrainer; datasets: load_dataset; transformers: AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig; transformers: pipeline, TrainingArguments; peft: AutoPeftModelForCausalLM, LoraConfig, get_peft_model, prepare_model_for_kbit_training; langchain_community.llms.huggingface_pipeline: HuggingFacePipeline; langchain.prompts: PromptTemplate; langchain.memory: ConversationBufferMemory; langchain.chains: LLMChain; warnings
Projeto 89: Construção e Deploy de Interface Web Para Agente de Conversação e Busca com LangChain e LLM.
Definição do problema: Construir uma interface web para servir um LLM.
Passos seguidos: Definição do problema, preparar o ambiente de codificação.
Pacotes/Bibliotecas: streamlit; langchain.agents: ConversationalChatAgent, AgentExecutor; langchain_community.callbacks: StreamlitCallbackHandler; langchain_openai: ChatOpenAI; langchain.memory: ConversationBufferMemory; langchain_community.chat_message_histories: StreamlitChatMessageHistory; langchain_community.tools: DuckDuckGoSearchRun
Projeto 90: Criando Contexto e Base de Conhecimento Para LLMs com Vector Database.
Definição do problema: Neste projeto usarei um banco de dados vetorial e vou construir uma base de conhecimento para o LLM da Qwen sendo executado localmente (sem envio de dados para a internet) e com alta precisão para geração de texto em nível humano com alta performance e segurança. O banco vetorial vai oferecer o contexto com base em nossos próprios dados.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, extrair dados de texto de arquivos PDF, divisão dos dados de texto em Chunks, carregar os vetores dos dados de texto no banco de dados vetorial, acessar e compreender o banco de dados vetorial, testar os parâmetros da busca vetorial, Maximal Marginal Relevance (MMR), definir o LLM, configurar o contexto e o prompt, tokenização do prompt, gerar resposta com o LLM, sistema de perguntas e respostas.
Pacotes/Bibliotecas: pypdf; chromadb; urllib3; accelerate; sentence_transformers; langchain.document_loaders: PyPDFLoader; langchain.embeddings: HuggingFaceEmbeddings; langchain.vectorstores: Chroma; langchain.text_splitter: RecursiveCharacterTextSplitter, CharacterTextSplitter; langchain.chains: RetrievalQA; langchain.prompts: PromptTemplate; transformers: AutoModelForCausalLM, AutoTokenizer; warnings
Projeto 91: Ajuste Fino com os Próprios Dados e Deploy de LLM via App Web.
Definição do problema: Personalização e implementação de um LLM ajustado para as necessidades específicas de uma aplicação. O projeto começa com a preparação de dados relevantes para o domínio específico, seguida pelo ajuste fino de um modelo de linguagem pré-treinado utilizando esses dados. Após o ajuste fino, o modelo é integrado em um aplicativo web, onde pode ser acessado e utilizado para diversas funcionalidades, como atendimento ao cliente, geração de texto ou suporte a decisões. O projeto abrange desde o treinamento do modelo até a sua implantação e manutenção, garantindo que ele atenda aos requisitos de desempenho e usabilidade.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, módulo de treinamento e ajuste fino, carregar o LLM e definir janela de contexto, criar e testar tokenizador, organizar o formato dos dados, criar os datasets de treino e teste, criar o loop de treinamento, treinar e avaliar o LLM, salvar o LLM para o deploy, estratégias de deploy de LLMs, módulo de deploy do LLM, carregar o LLM treinado e o tokenizador, criar função para previsões com o LLM, testar o LLM, web app para deploy do LLM, monitoramento e manutenção de modelos em produção, segurança e privacidade em deploy de LLM.
Tipo de Aprendizado: Supervisionado.
Pacotes/Bibliotecas: torch; accelerate; transformers; numpy; torch.nn.functional; accelerate: Accelerator; torch.utils.data: Dataset; transformers: AutoConfig, AutoModelForCausalLM, GPT2Tokenizer; warnings; gradio
Projeto 92: IA Generativa e RAG Para App de Sistema Inteligente de Busca em Documentos - Backend e API.
Definição do problema: Construir a primeira parte de uma app de sistema inteligente de busca em documentos usando IA Generativa e LLM. Vou criar o backend e a API. O objetivo do sistema é permitir que o usuário utilize o sistema de IA para obter respostas que podem estar presentes nos documentos internos da empresa. O sistema será capaz de fazer buscas em documentos TXT, PDF, DOCX e PPTX.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, escolher o banco de dados, construir o módulo de RAG, escolher o LLM Open-Source, construir o módulo da API e integrar com o LLM Open-Source.
Pacotes/Bibliotecas: os; fastapi: FastAPI; langchain_qdrant: Qdrant; qdrant_client: QdrantClient; pydantic: BaseModel; langchain_huggingface: HuggingFaceEmbeddings; sys; docx; PyPDF2; pptx: Presentation; os: listdir; from os.path: isfile, join, isdir; from langchain_text_splitters: TokenTextSplitter; from langchain_huggingface: HuggingFaceEmbeddings; from qdrant_client: QdrantClient; from qdrant_client.models: Distance, VectorParams; from langchain_qdrant: Qdrant
Projeto 93: IA Generativa e RAG Para App de Sistema Inteligente de Busca em Documentos - Frontend.
Definição do problema: Construir a segunda parte de uma app de sistema inteligente de busca em documentos usando IA Generativa e LLM. Vou criar o frontend. O objetivo do sistema é permitir que o usuário utilize o sistema de IA para obter respostas que podem estar presentes nos documentos internos da empresa. O sistema será capaz de fazer buscas dentro de documentos TXT, PDF, DOCX e PPTX.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, construir o módulo de Frontend para a APP de IA Generativa e RAG, módulo de inicialização da APP, uso de documentos na APP, integrar todos os módulos e executar a APP, interagir com a APP.
Pacotes/Bibliotecas: os; fastapi: FastAPI; langchain_qdrant: Qdrant; qdrant_client: QdrantClient; pydantic: BaseModel; langchain_huggingface: HuggingFaceEmbeddings; warnings; sys; docx; PyPDF2; pptx: Presentation; os: listdir; os.path: isfile, join, isdir; langchain_text_splitters: TokenTextSplitter; langchain_huggingface: HuggingFaceEmbeddings; qdrant_client: QdrantClient; qdrant_client.models: Distance, VectorParams; langchain_qdrant: Qdrant; uvicorn; re; streamlit; requests; json
Projeto 94: Seleção e Deploy de Modelo de Visão Computacional.
Definição do problema: Construir um modelo de Deep Learning para classificar imagens de lixo. Este modelo será capaz de classificar se uma imagem é ou não de material reciclável, o que pode ser usado por empresas ou governos para facilitar a coleta e a reciclagem. Irei utilizar um modelo pré-treinado, e através de Transfer Learning aproveitarei parte do modelo e então farei minha própria customização. Os dados foram extraídos do link: https://www.kaggle.com/datasets/asdasdasasdas/garbage-classification
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, preparar as imagens, transferir os Data Loaders para o dispositivo (CPU ou GPU), visualizar as imagens, construção dos modelos, loop de treinamento e avaliação, treinamento de diferentes modelos em um único loop, encontrar o melhor modelo, salvar os modelos, carregar os modelos para teste e deploy, avaliação e seleção do modelo, previsão com dados de teste, deploy e uso do modelo com novas imagens.
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: cardboard, glass, metal, paper, plastic, trash.
Tamanho dos dados: Mais de 2500 imagens.
Pacotes/Bibliotecas: os; io; time; torch; Random; numpy; pandas; pickle; urllib.request; torchvision; torch.nn; torch.nn.functional; torchvision.models; torchvision.transforms; matplotlib.pyplot; PIL: Image; pathlib: Path; collections: Counter; torch.utils.data: random_split; torch.utils.data.dataloader: DataLoader; torchvision.utils: make_grid; torchvision.datasets: ImageFolder; torchvision.models: resnet18, ResNet18_Weights, resnet152, ResNet152_Weights; warnings
Projeto 95: Segmentação de Imagens de Satélite Para Detectar Áreas de Plantações.
Fase 1: Construção do Modelo de Classificação com Imagens de Satélite
Definição do problema: Segmentação em imagens de satélites. Criar uma solução completa de Visão Computacional que envolve classificação da imagem e então segmentação da área de interesse. A segmentação de imagens é uma técnica de processamento de imagens usada para dividir uma imagem em partes ou regiões, com o objetivo de simplificar ou mudar a representação de uma imagem em algo mais significativo e mais fácil de analisar. Essencialmente, a segmentação de imagens visa identificar objetos ou fronteiras (linhas, curvas, etc.) dentro de imagens. Cada um dos pixels em uma região é similar com respeito a alguma característica ou propriedade computada, como cor, intensidade ou textura.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, construir o modelo de classificação, organizar as imagens em disco, formatar as imagens, gerar os datasets (treino, validação e teste), visualizar as imagens, arquitetura e construção do modelo, Callbacks para monitorar e salvar a melhor versão do modelo, treinar e avaliar o modelo, salvar o modelo para o deploy
Tipo de Aprendizado: Supervisionado.
Variáveis/Atributos: Forest, River, Highway, AnnualCrop, SeaLake, HerbaceousVegetation, Industrial, Residential, PermanentCrop, Pasture.
Tamanho dos dados: Mais de 100 MB.
Pacotes/Bibliotecas: os; numpy; matplotlib.pyplot; seaborn; tensorflow; tensorflow.keras.preprocessing: image_dataset_from_directory; tensorflow.keras.layers: Rescaling; tensorflow.keras.models: load_model; warnings
Fase 2: Construção do Modelo de Segmentação com Imagens de Satélite
Definição do problema: Segmentação em imagens de satélites. Criar uma solução completa de Visão Computacional que envolve classificação da imagem e então segmentação da área de interesse. A segmentação de imagens é uma técnica de processamento de imagens usada para dividir uma imagem em partes ou regiões, com o objetivo de simplificar ou mudar a representação de uma imagem em algo mais significativo e mais fácil de analisar. Essencialmente, a segmentação de imagens visa identificar objetos ou fronteiras (linhas, curvas, etc.) dentro de imagens. Cada um dos pixels em uma região é similar com respeito a alguma característica ou propriedade computada, como cor, intensidade ou textura.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, organizar e visualizar as imagens em disco, segmentar as imagens (scikit-learn K-Means, OpenCV K-Means), funções para estimar de contorno e avaliar segmentação Não-Supervisionada, detectar os contornos, testar e avaliar a segmentação Não-Supervisionada
Tipo de Aprendizado: Não-Supervisionado.
Variáveis/Atributos: Forest, River, Highway, AnnualCrop, SeaLake, HerbaceousVegetation, Industrial, Residential, PermanentCrop, Pasture.
Tamanho dos dados: Mais de 100 MB.
Pacotes/Bibliotecas: os; cv2; sklearn; numpy; matplotlib.pyplot; seaborn; sklearn.cluster: KMeans; shapely.geometry.polygon: Polygon; shapely.ops: unary_union; warnings
Fase 3: Unir os Modelos de Classificação e Segmentação em uma Única Aplicação
Definição do problema: Segmentação em imagens de satélites. Criar uma solução completa de Visão Computacional que envolve classificação da imagem e então segmentação da área de interesse. A segmentação de imagens é uma técnica de processamento de imagens usada para dividir uma imagem em partes ou regiões, com o objetivo de simplificar ou mudar a representação de uma imagem em algo mais significativo e mais fácil de analisar. Essencialmente, a segmentação de imagens visa identificar objetos ou fronteiras (linhas, curvas, etc.) dentro de imagens. Cada um dos pixels em uma região é similar com respeito a alguma característica ou propriedade computada, como cor, intensidade ou textura.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, organizar e visualizar as imagens em disco, função para desenhar os segmentos na imagem, função para segmentação, função para segmentar e desenhar os segmentos, função para dividir a imagem de satélite em amostras, função para o processamento de novas imagens no deploy, reduzindo a resolução de novas imagens para o deploy, extraindo as amostras, classificar as amostras com o modelo de classificação, analisar as classes previstas com gráfico waffle, deploy e segmentação de novas imagens de satélite, resultado da segmentação em imagens de satélite.
Tipo de Aprendizado: Não-Supervisionado.
Variáveis/Atributos: Forest, River, Highway, AnnualCrop, SeaLake, HerbaceousVegetation, Industrial, Residential, PermanentCrop, Pasture.
Tamanho dos dados: Mais de 100 MB.
Pacotes/Bibliotecas: cv2; pywaffle; collections; numpy; matplotlib.pyplot; seaborn; tensorflow; math: prod; collections: Counter; pywaffle: Waffle; warnings
Projeto 96: IA com Stable Diffusion Para Geração de Imagens a Partir de Texto.
Definição do problema: Utilizar o Stable Diffusion para gerar imagens a partir de texto, além de diversas técnicas de otimização do modelo difusor de geração de imagens, bem como estratégias de Engenharia de Prompt.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, utilizar float16 para acelerar a geração de imagem, reduzir o número de etapas de inferência, uso otimizado de memória, slices de atenção, carregar os últimos checkpoints, engenharia de prompt para Stable Diffusion.
Pacotes/Bibliotecas: torch; accelerate; diffusers; diffusers: DiffusionPipeline; diffusers: DPMSolverMultistepScheduler; diffusers: AutoencoderKL; diffusers.utils: make_image_grid; numba
Projeto 97: App Web no Google Colab Para Criar Imagens a Partir de Texto com Stable Diffusion.
Definição do problema: Construir uma app web para um modelo de IA gerador de imagens. Via app web será possível usar texto para gerar as imagens, customizando a execução do modelo através de parâmetros.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, implementar a app.
Pacotes/Bibliotecas: diffusers; streamlit; torch; diffusers: StableDiffusionPipeline; PIL: Image; io: BytesIO
Projeto 98: Prever o Resultado no Exame Normalizado (normexam) de Acordo com as Características dos Alunos e das Escolas.
Definição do problema: Prever o resultado no exame normalizado (normexam) de acordo com as características dos alunos e das escolas. O modelo deve ser capaz de responder quais do tipo de escola (gênero misto, só de homens ou só de mulheres) é mais eficiente na formação de seus alunos de acordo com o resultado do exame normalizado.
Passos seguidos: Definição do problema, preparar o ambiente de codificação, carregar e analisar os dados, explorar os dados, análise descritiva, aplicar testes estatísticos, modelagem preditiva, treinar e avaliar modelos, simulação.
Tipo de Aprendizado: Supervisionado e Análise Estatística.
Variáveis/Atributos: categoria_student, numero_student, categoria_school, numero_school, Variable, value.
Tamanho dos dados: (12000; 6).
Pacotes/Bibliotecas: pandas; numpy; matplotlib.pyplot; seaborn; sklearn.model_selection: train_test_split, GridSearchCV, RandomizedSearchCV; sklearn.linear_model: LinearRegression; sklearn.ensemble: RandomForestRegressor; sklearn.metrics: mean_squared_error, r2_score; sklearn.preprocessing: MinMaxScaler, StandardScaler, LabelEncoder; sklearn.neighbors: NearestNeighbors; sklearn.utils: resample; imblearn.over_sampling: SMOTE; xgboost: XGBRegressor; sklearn.impute: KNNImputer, SimpleImputer; scipy.stats: skew, kurtosis, zscore, f_oneway, mode; scipy: stats; statsmodels.stats.multicomp: pairwise_tukeyhsd; tqdm: tqdm