- Ignite Trilha Desenvovimento de IA - Algoritmos Supervisionados
Repositório que reuni os módulos 7 ao 13 da trilha Desenvolvimento IA 2023-2024, desenvolvido pela Rocketseat Education.
Acessar anotações de aulas
Este módulo é o primeiro de uma série para estudo dos algoritmos supervisionados, com foco especial na Regressão Linear Simples. Neste segmento do curso, nosso principal objetivo é fornecer uma compreensão aprofundada dos fundamentos dos algoritmos de regressão, essenciais para a construção de projetos eficazes de machine learning voltados para a previsão de valores. Como ponto de partida, mergulharemos no universo da Regressão Linear Simples. Através de um projeto prático, abordaremos cada etapa do processo, desde a Análise Exploratória de Dados (EDA) até a implementação final do modelo em uma API, facilitando sua integração e utilização em diversas aplicações. Este módulo é projetado para guiá-los através dos conceitos e práticas essenciais, preparando-os para aplicar essas habilidades em cenários reais de machine learning.
# rodar servidor com api do modelo de predição - regressão linear simples
$ cd api
$ uvicorn api_model_lr_simple:app --reload
Acesso ao servidor uvicorn: http://127.0.0.1:8000/docs
(localhost)
Este módulo é o segundo de uma série para estudo dos algoritmos supervisionados, com foco especial na Regressão Linear Múltipla. O obejetivo deste é apresentar o conceito de regressão linear múltipla, onde também iremos desenvolver um modelo através de um processo completo desde o EDA até a entrega do modelo através de uma UI para uso do usuário final. Será desenvolvido um modelo para um laboratório de análises clínicas que realiza testes de colesterol. O objetivo é avaliar se características dos pacientes, como idade, nível de atividade física e peso, podem influenciar nos resultados do exame de colesterol total. Vamos utilizar um algoritmo de regressão linear múltipla para prever o resultado do exame com base nessas características. O processo será semelhante ao que fizemos no módulo anterior de regressão linear simples, incluindo carregar os dados, realizar uma análise exploratória, preparar o dataset, treinar o modelo, validar o modelo e salvar para uso futuro.
Para rodar a interface do modelo de previsão numa porta do localhost, execute todas células no notebook
app_gradio_colesterol.ipynb
. Para fechar a porta, executedemo.close()
.
Este módulo é o terceiro de uma série para estudo dos algoritmos supervisionados, com foco especial na Regressão Polinomial. O objetivo deste módulo é apresentar o conceito de polinómios e regresão polinomial, onde também iremos desenvolver um modelo através de processo completo desde o EDA até a entrega do modelo por App com acesso para os usuários finais. Também trabalharemos o conceito de validação cruzada, além de definir o melhor modelo através do monitoramento do sobreajuste (overfitting).
# rodar servidor com api do modelo de predição - regressão polinomial
$ cd api
$ uvicorn api_model_salary:app --reload
seguido de:
# rodar front-end streamlit com o modelo de predição de salário
$ cd apps
$ streamlit run app_streamlit_salary.py
Acesso ao servidor uvicorn: http://127.0.0.1:8000/docs
(localhost)
Acesso ao front-end streamlit: http://127.0.0.1:8501/
(localhost)
O objetivo deste módulo foi apresentar conceitualmente os principais algoritmos de classificação para desenvolver projetos de machine learning que fazem previsões de categorias de classes. Também foi feito um projeto explorando o primeiro destes algoritmos, que é o árvore de decisão, onde o processo completado, desde o EDA até a entrega do modelo, através de uma aplicação de inferência de batch.
Porta de acesso ao app no servidor Gradio: http://127.0.0.1:7860
(localhost)
Parar servidor:
def stop_gradio():
demo.close()
print("Servidor Gradio foi interrompido.")
stop_gradio()
Neste módulo, foi explorado o algoritmo de classificação Naive Bayes, que é baseado no Teorema de Bayes. Vamos aprender sobre a importância de Bayes na estatística e como seu trabalho foi publicado por Richard Price. Vamos realizar um projeto prático, onde faremos análise exploratória automatizada e utilizaremos hiperparâmetros. Além disso, aprendemos a automatizar a seleção de features, para identificar as mais relevantes para nosso modelo. Isso é importante para termos um modelo eficiente e não sobrecarregado com variáveis desnecessárias.
Acesso a API do modelo via instância servidor Flask: execute no terminal os comandos cd api
e python api_model_obesity.py
. Em seguida, utilize o molde json abaixo (requests/request_example.json
) no body da requisição POST via REST API de sua preferência:
{
"Genero_Masculino": 1,
"Idade": 48,
"Historico_Familiar_Sobrepeso": 1,
"Consumo_Alta_Caloria_Com_Frequencia": 1,
"Consumo_Vegetais_Com_Frequencia": 0,
"Refeicoes_Dia": 2,
"Consumo_Alimentos_entre_Refeicoes": 0,
"Fumante": 0,
"Consumo_Agua": 2,
"Monitora_Calorias_Ingeridas": 0,
"Nivel_Atividade_Fisica": 0,
"Nivel_Uso_Tela": 2,
"Consumo_Alcool": 1,
"Transporte_Automovel": 1,
"Transporte_Bicicleta": 0,
"Transporte_Motocicleta": 0,
"Transporte_Publico": 0,
"Transporte_Caminhada": 0
}
Este módulo tem como propósito fornece uma compreensão abrangente do algoritmo de Regressão Logística, uma técnica essencial em problemas de classificação binária e multiclasse. Além de discutir os fundamentos teóricos, aplicou-se o algoritmo em cenários reais, desde a exploração e análise dos dados (EDA) até a otimização dos hiper parâmetros do modelo.
Acesso ao servidor Uvicorn: dentro da pasta /apps/m12
execute o comando uvicorn main:app --host 0.0.0.0 --port 80 --reload
Requisição API REST Client: envie uma requisição POST no URL http://localhost:80/classify
com o molde json abaixo:
{
"A_id": 4,
"Size": 1.36421682,
"Weight": -1.296611877,
"Sweetness": -0.384658206,
"Crunchiness": -0.55300577,
"Juiciness": 3.030874354,
"Ripeness": -1.303849429,
"Acidity": 0.501984036
}
Neste módulo, vamos explorar técnicas que podem ser incorporadas nos algoritmos supervisionados para torná-los mais robustos. Essas técnicas têm várias finalidades, como mitigar o overfitting, aprimorar a seleção de features, identificar relações entre variáveis e obter uma interpretação mais profunda dos modelos. Com essas técnicas, vocês poderão melhorar significativamente o desempenho e a eficácia dos seus modelos, além de obter insights valiosos dos dados analisados.
python
(v3.11.3)
pandas
numpy
matplotlib
seaborn
scipy
scikit-learn
statsmodels
fastapi
uvicorn
pydantic
pingouin
gradio
streamlit
requests
pylint
-dev
nbqa
-dev
ipykernel
plotly
nbformat
optuna
ipywidgets
sweetviz
flask
flask-pydantic
pyarrow
-
Certifique-se de que está usando o
pyenv
e opipenv
para gerenciar as dependências do projeto. Veja como instalar e configurar clicando nos respectivos links do tópico Gerenciadores de Ambiente Virtual. -
Faça o clone pelo Github:
git clone https://github.com/mgckaled/ignite-devia-supervised_algorithms.git
-
Acesse o diretório:
cd ignite-devia-supervised_algorithms
-
Ative o ambiente virtual pelo terminal
pipenv shell
-
Instale as dependências. (Certifique-se de estar utilzando a versão exata do python - 3.11.3)
pipenv install
ou, como um recurso de degurança, instale dependências exatas do
requirements.txt
:pipenv install -r requirements.txt
Distribuído sob a licença MIT. Veja LICENSE para mais informações.