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

Python License MCP

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

  1. Clone o repositório

    git clone https://github.com/emircansoftware/AutoML.git
    cd AutoML
    
  2. 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 dados
  • reading_csv(file_name): Lê o arquivo csv
  • visualize_correlation_num(file_name): Visualiza a matriz de correlação para colunas numéricas
  • visualize_correlation_cat(file_name): Visualiza a matriz de correlação para colunas categóricas
  • visualize_correlation_final(file_name, target_column): Visualiza a matriz de correlação após o pré-processamento
  • visualize_outliers(file_name): Visualiza outliers nos dados
  • visualize_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 problema
  • visualize_accuracy_matrix(file_name, target_column, problem_type): Visualiza a matriz de confusão para previsões
  • best_model_hyperparameter(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state): Ajusta os hiperparâmetros do melhor modelo
  • test_external_data(main_file_name, target_column, problem_type, test_file_name): Testa dados externos com o melhor modelo e retorna previsões
  • predict_value(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state, input): Prevê o valor da coluna alvo para novas entradas
  • feature_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

  1. Faça um fork do repositório
  2. Crie um branch de recurso (git checkout -b feature/AmazingFeature)
  3. Faça commit das suas alterações (git commit -m 'Add some AmazingFeature')
  4. Envie para o branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

🙏 Agradecimentos

📞 Suporte

Se você encontrar problemas ou tiver dúvidas:

  1. Verifique a página de Issues
  2. Crie uma nova issue com informações detalhadas
  3. Entre em contato com os mantenedores