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
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
-
Clona el repositorio
git clone https://github.com/emircansoftware/AutoML.git cd AutoML -
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 datosreading_csv(file_name): Lee el archivo csvvisualize_correlation_num(file_name): Visualiza la matriz de correlación para columnas numéricasvisualize_correlation_cat(file_name): Visualiza la matriz de correlación para columnas categóricasvisualize_correlation_final(file_name, target_column): Visualiza la matriz de correlación después del preprocesamientovisualize_outliers(file_name): Visualiza valores atípicos en los datosvisualize_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 problemavisualize_accuracy_matrix(file_name, target_column, problem_type): Visualiza la matriz de confusión para las prediccionesbest_model_hyperparameter(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state): Ajusta los hiperparámetros del mejor modelotest_external_data(main_file_name, target_column, problem_type, test_file_name): Prueba datos externos con el mejor modelo y devuelve prediccionespredict_value(model_name, file_name, target_column, problem_type, n_trials, scoring, random_state, input): Predice el valor de la columna objetivo para nuevas entradasfeature_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
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/AmazingFeature) - Haz commit de tus cambios (
git commit -m 'Add some AmazingFeature') - Haz push a la rama (
git push origin feature/AmazingFeature) - 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
- Model Context Protocol por el marco MCP
- scikit-learn por los algoritmos de aprendizaje automático
- XGBoost por el impulso de gradiente (gradient boosting)
- CatBoost por el impulso categórico (categorical boosting)
- pandas por la manipulación de datos
📞 Soporte
Si encuentras algún problema o tienes preguntas:
- Consulta la página de Issues
- Crea un nuevo issue con información detallada
- Contacta a los mantenedores