MCP Server
Automatize estágios de ciência de dados usando seus próprios arquivos de dados CSV.
Documentação
Auto ML - Plataforma de Machine Learning Automatizado
Uma plataforma inteligente de machine learning automatizado que fornece análise de dados abrangente, pré-processamento, seleção de modelos e ajuste de hiperparâmetros por meio das ferramentas do Model Context Protocol (MCP).
🚀 Recursos
📊 Análise e Exploração de Dados
- Informações dos Dados: Obtenha estatísticas abrangentes do conjunto de dados, incluindo formato, uso de memória, tipos de dados e valores ausentes
- Leitura de CSV: Leitura eficiente de arquivos CSV com suporte a pandas e pyarrow
- Análise de Correlação: Visualize matrizes de correlação para variáveis numéricas e categóricas
- Detecção de Outliers: Identifique e visualize outliers em seus conjuntos de dados
🔧 Pré-processamento de Dados
- Pré-processamento Automatizado: Trate valores ausentes, codifique variáveis categóricas e dimensione características numéricas
- Engenharia de Recursos: Prepare características para problemas de regressão e classificação
- Validação de Dados: Verifique duplicatas e problemas de qualidade dos dados
🤖 Modelos de Machine Learning
- Múltiplos Algoritmos: Suporte para vários algoritmos de ML, incluindo:
- Regressão: Regressão Linear, Ridge, Lasso, ElasticNet, Random Forest, XGBoost, SVR, KNN, CatBoost
- Classificação: Regressão Logística, Classificador Ridge, Random Forest, XGBoost, SVM, KNN, Árvore de Decisão, Naive Bayes, CatBoost
📈 Avaliação de Modelos e Visualização
- Métricas de Desempenho:
- Regressão: R², MAE, MSE
- Classificação: Acurácia, F1-Score
- Visualização da Matriz de Confusão: Para problemas de classificação
- Comparação de Modelos: Compare vários modelos lado a lado
⚙️ Ajuste de Hiperparâmetros
- Ajuste Automatizado: Otimize os hiperparâmetros do modelo usando algoritmos avançados de busca
- Pontuação Personalizável: Escolha entre várias métricas de avaliação
- Gerenciamento de Tentativas: Controle o número de tentativas de otimização
📁 Estrutura do Projeto
AutoML/
├── data/ # Sample datasets
│ ├── Ai.csv
│ ├── Calories.csv
│ ├── Cost.csv
│ ├── Digital.csv
│ ├── Electricity.csv
│ ├── ford.csv
│ ├── Habits.csv
│ ├── heart.csv
│ ├── Lifestyle.csv
│ ├── Mobiles.csv
│ ├── Personality.csv
│ ├── Salaries.csv
│ ├── Shopper.csv
│ ├── Sleep.csv
│ ├── cat.csv
│ ├── test.csv
│ └── train.csv
├── tools/
│ └── all_tools.py # MCP tool definitions
├── utils/
│ ├── before_model.py # Feature preparation
│ ├── details.py # Data information
│ ├── external_test.py # External data test with XGBoost
│ ├── feature_importance.py # Feature importance analysis
│ ├── hyperparameter.py # Hyperparameter tuning
│ ├── model_selection.py # Model selection and evaluation
│ ├── prediction.py # Prediction utilities
│ ├── preprocessing.py # Data preprocessing
│ ├── read_csv_file.py # CSV reading utilities
│ └── visualize_data.py # Visualization functions
├── main.py # Application entry point
├── server.py # MCP server configuration
├── requirements.txt # Python dependencies
└── README.md # This file
🛠️ Instalação
Pré-requisitos
- Python 3.8 ou superior
- Gerenciador de pacotes pip ou uv
Configuração
-
Clone o repositório
git clone https://github.com/emircansoftware/AutoML.git cd AutoML -
Instale as dependências
# Using pip pip install -r requirements.txt pip install uv
Usando com o Claude Desktop
1. Configuração do Caminho dos Dados
Em utils/read_csv_file.py, atualize a variável path para corresponder ao diretório do seu próprio projeto no seu computador:
# Example:
path = r"C:\\YOUR\\PROJECT\\PATH\\AutoML\\data"
2. Configuração do Claude Desktop
No Claude Desktop, adicione o seguinte bloco ao seu arquivo claude_desktop_config.json e ajuste os caminhos para corresponder ao seu próprio sistema:
{
"mcpServers": {
"AutoML": {
"command": "uv",
"args": [
"--directory",
"C:\\YOUR\\PROJECT\\PATH\\AutoML",
"run",
"main.py"
]
}
}
}
Agora você pode iniciar seu projeto a partir do Claude Desktop.
📋 Dependências
- Framework MCP:
mcp[cli]>=1.9.4- Model Context Protocol para integração de ferramentas - Processamento de Dados:
pandas>=2.3.0,pyarrow>=20.0.0,numpy>=2.3.1 - Machine Learning:
scikit-learn>=1.3.0,xgboost>=2.0.0,lightgbm>=4.3.0 - ML Adicional:
catboost(para modelos CatBoost)
🎯 Uso
Iniciando o MCP Server
from server import mcp
# Run the server
mcp.run()
Ferramentas Disponíveis
A plataforma fornece as seguintes ferramentas MCP:
Ferramentas de Análise de Dados
information_about_data(file_name): Fornece informações detalhadas sobre os dadosreading_csv(file_name): Lê o arquivo csvvisualize_correlation_num(file_name): Visualiza a matriz de correlação para colunas numéricasvisualize_correlation_cat(file_name): Visualiza a matriz de correlação para colunas categóricasvisualize_correlation_final(file_name, target_column): Visualiza a matriz de correlação após o pré-processamentovisualize_outliers(file_name): Visualiza outliers nos dadosvisualize_outliers_final(file_name, target_column): Visualiza outliers após o pré-processamento
Ferramentas de Pré-processamento
preprocessing_data(file_name, target_column): Pré-processa os dados (remove outliers, preenche nulos, etc.)prepare_data(file_name, target_column, problem_type): Prepara os dados para os modelos (codificação, dimensionamento, etc.)
Treinamento e Avaliação de Modelos
models(problem_type, file_name, target_column): Seleciona e avalia modelos com base no tipo de problemavisualize_accuracy_matrix(file_name, target_column, problem_type): Visualiza a matriz de confusão para previsõesbest_model_hyperparameter(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state): Ajusta os hiperparâmetros do melhor modelotest_external_data(main_file_name, target_column, problem_type, test_file_name): Testa dados externos com o melhor modelo e retorna previsõespredict_value(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state, input): Prevê o valor da coluna alvo para novas entradasfeature_importance_analysis(file_name, target_column, problem_type): Analisa a importância das características dos dados usando XGBoost
Fluxo de Trabalho de Exemplo
# 1. Analyze your data
info = information_about_data("data/heart.csv")
# 2. Preprocess the data
preprocessed = preprocessing_data("data/heart.csv", "target")
# 3. Prepare features for classification
features = prepare_data("data/heart.csv", "target", "classification")
# 4. Train and evaluate models
results = models("classification", "data/heart.csv", "target")
# 5. Visualize results
confusion_matrix = visualize_accuracy_matrix("data/heart.csv", "target", "classification")
# 6. Optimize best model
best_model = best_model_hyperparameter("RandomForestClassifier", "data/heart.csv", "target", "classification", 100, "accuracy", 42)
📊 Conjuntos de Dados de Exemplo (Todos os conjuntos de dados CSV são do Kaggle.)
O projeto inclui vários conjuntos de dados de exemplo para testes:
- heart.csv: Conjunto de dados de previsão de doenças cardíacas
- Salaries.csv: Conjunto de dados de previsão de salários
- Calories.csv: Conjunto de dados de previsão de calorias
- Personality.csv: Conjunto de dados de análise de personalidade
- Digital.csv: Conjunto de dados de comportamento digital
- Lifestyle.csv: Conjunto de dados de análise de estilo de vida
- Mobiles.csv: Conjunto de dados de telefones celulares
- Habits.csv: Conjunto de dados de análise de hábitos
- Sleep.csv: Conjunto de dados de padrões de sono
- Cost.csv: Conjunto de dados de análise de custos
- ford.csv: Conjunto de dados de carros Ford
- Ai.csv: Conjunto de dados relacionado a IA
- cat.csv: Conjunto de dados relacionado a gatos
🔧 Configuração
Variáveis de Ambiente
- Defina sua semente aleatória preferida para resultados reproduzíveis
- Configure as configurações do MCP server em
server.py
Personalização
- Adicione novos algoritmos de ML em
utils/model_selection.py - Estenda as etapas de pré-processamento em
utils/preprocessing.py - Crie funções de visualização personalizadas em
utils/visualize_data.py
🤝 Contribuindo
Aceitamos contribuições! Sinta-se à vontade para enviar um Pull Request. Para mudanças importantes, abra primeiro uma issue para discutir o que você gostaria de alterar.
Diretrizes de Contribuição
- Faça um fork do repositório
- Crie um branch de recurso (
git checkout -b feature/AmazingFeature) - Faça commit das suas alterações (
git commit -m 'Add some AmazingFeature') - Envie para o branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📝 Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
🙏 Agradecimentos
- Model Context Protocol pelo framework MCP
- scikit-learn pelos algoritmos de machine learning
- XGBoost pelo gradient boosting
- CatBoost pelo boosting categórico
- pandas pela manipulação de dados
📞 Suporte
Se você encontrar problemas ou tiver dúvidas:
- Verifique a página de Issues
- Crie uma nova issue com informações detalhadas
- Entre em contato com os mantenedores