MCP Server

Automatiza las etapas de ciencia de datos usando tus propios archivos de datos CSV.

Documentación

Auto ML - Plataforma de Aprendizaje Automático Automatizado

Python License MCP

Una plataforma inteligente de aprendizaje automático automatizado que proporciona capacidades integrales de análisis de datos, preprocesamiento, selección de modelos y ajuste de hiperparámetros a través de herramientas del Protocolo de Contexto de Modelo (MCP).

🚀 Características

📊 Análisis y Exploración de Datos

  • Información de Datos: Obtén estadísticas completas del conjunto de datos, incluyendo forma, uso de memoria, tipos de datos y valores faltantes
  • Lectura de CSV: Lectura eficiente de archivos CSV con soporte para pandas y pyarrow
  • Análisis de Correlación: Visualiza matrices de correlación para variables numéricas y categóricas
  • Detección de Valores Atípicos: Identifica y visualiza valores atípicos en tus conjuntos de datos

🔧 Preprocesamiento de Datos

  • Preprocesamiento Automatizado: Maneja valores faltantes, codifica variables categóricas y escala características numéricas
  • Ingeniería de Características: Prepara características para problemas de regresión y clasificación
  • Validación de Datos: Verifica duplicados y problemas de calidad de datos

🤖 Modelos de Aprendizaje Automático

  • Múltiples Algoritmos: Soporte para varios algoritmos de ML, incluyendo:
    • Regresión: Regresión Lineal, Ridge, Lasso, ElasticNet, Random Forest, XGBoost, SVR, KNN, CatBoost
    • Clasificación: Regresión Logística, Clasificador Ridge, Random Forest, XGBoost, SVM, KNN, Árbol de Decisión, Naive Bayes, CatBoost

📈 Evaluación y Visualización de Modelos

  • Métricas de Rendimiento:
    • Regresión: R², MAE, MSE
    • Clasificación: Precisión, Puntuación F1
  • Visualización de Matriz de Confusión: Para problemas de clasificación
  • Comparación de Modelos: Compara múltiples modelos lado a lado

⚙️ Ajuste de Hiperparámetros

  • Ajuste Automatizado: Optimiza los hiperparámetros del modelo utilizando algoritmos de búsqueda avanzados
  • Puntuación Personalizable: Elige entre varias métricas de evaluación
  • Gestión de Pruebas: Controla el número de pruebas de optimización

📁 Estructura del Proyecto

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

🛠️ Instalación

Requisitos Previos

  • Python 3.8 o superior
  • pip o el gestor de paquetes uv

Configuración

  1. Clona el repositorio

    git clone https://github.com/emircansoftware/AutoML.git
    cd AutoML
    
  2. Instala las dependencias

    # Using pip
    pip install -r requirements.txt
    pip install uv
    
    

Uso con Claude Desktop

1. Configuración de la Ruta de Datos

En utils/read_csv_file.py, actualiza la variable path para que coincida con el directorio de tu propio proyecto en tu computadora:

# Example:
path = r"C:\\YOUR\\PROJECT\\PATH\\AutoML\\data"

2. Configuración de Claude Desktop

En Claude Desktop, agrega el siguiente bloque a tu archivo claude_desktop_config.json y ajusta las rutas para que coincidan con tu propio sistema:

{
  "mcpServers": {
    "AutoML": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\YOUR\\PROJECT\\PATH\\AutoML",
        "run",
        "main.py"
      ]
    }
  }
}

Ahora puedes iniciar tu proyecto desde Claude Desktop.

📋 Dependencias

  • Marco MCP: mcp[cli]>=1.9.4 - Protocolo de Contexto de Modelo para la integración de herramientas
  • Procesamiento de Datos: pandas>=2.3.0, pyarrow>=20.0.0, numpy>=2.3.1
  • Aprendizaje Automático: scikit-learn>=1.3.0, xgboost>=2.0.0, lightgbm>=4.3.0
  • ML Adicional: catboost (para modelos CatBoost)

🎯 Uso

Iniciando el Servidor MCP

from server import mcp

# Run the server
mcp.run()

Herramientas Disponibles

La plataforma proporciona las siguientes herramientas MCP:

Herramientas de Análisis de Datos

  • information_about_data(file_name): Proporciona información detallada sobre los datos
  • reading_csv(file_name): Lee el archivo csv
  • visualize_correlation_num(file_name): Visualiza la matriz de correlación para columnas numéricas
  • visualize_correlation_cat(file_name): Visualiza la matriz de correlación para columnas categóricas
  • visualize_correlation_final(file_name, target_column): Visualiza la matriz de correlación después del preprocesamiento
  • visualize_outliers(file_name): Visualiza valores atípicos en los datos
  • visualize_outliers_final(file_name, target_column): Visualiza valores atípicos después del preprocesamiento

Herramientas de Preprocesamiento

  • preprocessing_data(file_name, target_column): Preprocesa los datos (elimina valores atípicos, rellena nulos, etc.)
  • prepare_data(file_name, target_column, problem_type): Prepara los datos para los modelos (codificación, escalado, etc.)

Entrenamiento y Evaluación de Modelos

  • models(problem_type, file_name, target_column): Selecciona y evalúa modelos según el tipo de problema
  • visualize_accuracy_matrix(file_name, target_column, problem_type): Visualiza la matriz de confusión para las predicciones
  • best_model_hyperparameter(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state): Ajusta los hiperparámetros del mejor modelo
  • test_external_data(main_file_name, target_column, problem_type, test_file_name): Prueba datos externos con el mejor modelo y devuelve predicciones
  • predict_value(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state, input): Predice el valor de la columna objetivo para nuevas entradas
  • feature_importance_analysis(file_name, target_column, problem_type): Analiza la importancia de las características de los datos usando XGBoost

Flujo de Trabajo de Ejemplo

# 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 Datos de Ejemplo (Todos los conjuntos de datos CSV provienen de Kaggle.)

El proyecto incluye varios conjuntos de datos de ejemplo para pruebas:

  • heart.csv: Conjunto de datos de predicción de enfermedades cardíacas
  • Salaries.csv: Conjunto de datos de predicción de salarios
  • Calories.csv: Conjunto de datos de predicción de calorías
  • Personality.csv: Conjunto de datos de análisis de personalidad
  • Digital.csv: Conjunto de datos de comportamiento digital
  • Lifestyle.csv: Conjunto de datos de análisis de estilo de vida
  • Mobiles.csv: Conjunto de datos de teléfonos móviles
  • Habits.csv: Conjunto de datos de análisis de hábitos
  • Sleep.csv: Conjunto de datos de patrones de sueño
  • Cost.csv: Conjunto de datos de análisis de costos
  • ford.csv: Conjunto de datos de automóviles Ford
  • Ai.csv: Conjunto de datos relacionado con IA
  • cat.csv: Conjunto de datos relacionado con gatos

🔧 Configuración

Variables de Entorno

  • Establece tu semilla aleatoria preferida para resultados reproducibles
  • Configura los ajustes del servidor MCP en server.py

Personalización

  • Agrega nuevos algoritmos de ML en utils/model_selection.py
  • Extiende los pasos de preprocesamiento en utils/preprocessing.py
  • Crea funciones de visualización personalizadas en utils/visualize_data.py

🤝 Contribuciones

¡Damos la bienvenida a las contribuciones! No dudes en enviar una Solicitud de Extracción (Pull Request). Para cambios importantes, abre primero un issue para discutir lo que te gustaría cambiar.

Guías de Contribución

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Haz push a la rama (git push origin feature/AmazingFeature)
  5. Abre una Solicitud de Extracción (Pull Request)

📝 Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

📞 Soporte

Si encuentras algún problema o tienes preguntas:

  1. Consulta la página de Issues
  2. Crea un nuevo issue con información detallada
  3. Contacta a los mantenedores