En este tutorial, combinamos el poder analítico de xgboost con la inteligencia conversacional de Langchain. Construimos una tubería de extremo a extremo que puede generar conjuntos de datos sintéticos, entrenar un modelo XGBOOST, evaluar su rendimiento y visualizar ideas clave, todas orquestadas a través de herramientas modulares de Langchain. Al hacer esto, demostramos cómo la IA conversacional puede interactuar sin problemas con los flujos de trabajo de aprendizaje automático, permitiendo a un agente administrar de manera inteligente todo el ciclo de vida de ML de manera estructurada y humana. A través de este proceso, experimentamos cómo la integración de la automatización basada en el razonamiento puede hacer que el aprendizaje automático sea interactivo y explicable. Mira los códigos completos aquí.
Comenzamos instalando e importando todas las bibliotecas esenciales necesarias para este tutorial. Utilizamos Langchain para la integración de AI de agente, XGBOost y Scikit-Learn para el aprendizaje automático, y pandas, Numpy y Seaborn para el manejo y visualización de datos. Mira los códigos completos aquí.
Def Generate_Data (self): “” “Genere el conjunto de datos de clasificación sintética” “” x, y = make_classification (n_samples = self.n_samples, n_features = self.n_features, n_informative = 15, n_redund = 5, random_state = self.random_state) self.x_train, self. self.y_test = trenes_test_split (x, y, test_size = 0.2, random_state = self.random_state) return f “conjunto de datos generado: {self.x_train.shape[0]} muestras de trenes, {self.x_test.shape[0]} muestras de prueba “def get_data_summary (self):” “” Devuelve estadísticas resumidas del conjunto de datos “” “” Si Self.x_train es Ninguno: return “No hay datos generados todavía. Genere los datos primero. “Resumen = {” Train_samples “: self.x_train.shape[0]”test_samples”: self.x_test.shape[0]”Características”: self.x_train.shape[1]”class_distribution”: {“Train”: {0: int (np.sum (self.y_train == 0)), 1: int (np.sum (self.y_train == 1))}, “test”: {0: int (np.sum (self.y_test == 0)), 1: int (np.sum (self.y_test) return json.dumps (resumen, sangría = 2)
Definimos la clase DataManager para manejar las tareas de generación de conjuntos de datos y preprocesamiento. Aquí, creamos datos de clasificación sintética utilizando la función de clasificación Make_Classification de Scikit-Learn, los dividimos en conjuntos de entrenamiento y prueba, y generamos un resumen conciso que contiene recuentos de muestras, dimensiones de características y distribuciones de clases. Mira los códigos completos aquí.
hachas[0, 1].Barh (rango (10), importancia[indices]) hachas[0, 1].set_yticks (rango (10)) ejes[0, 1].set_yticklabels ([feature_names[i] para i en índices]) hachas[0, 1].set_title (‘ejes de las 10 importantes de características superiores’)[0, 1].set_xlabel (‘importancia’) ejes[1, 0]. Hist ([y_test, self.predictions]etiqueta =[‘True’, ‘Predicted’]contenedores = 2) hachas[1, 0].set_title (‘verdadero vs distribución predicha’) ejes[1, 0].legend () hachas[1, 0].set_xticks ([0, 1]) Train_sizes = [0.2, 0.4, 0.6, 0.8, 1.0]
Train_scores = [0.7, 0.8, 0.85, 0.88, 0.9]
hachas[1, 1].plot (Train_Sizes, Train_Scores, Marker = “O”) Axes[1, 1].set_title (‘curva de aprendizaje (simulado)’) ejes[1, 1].set_xlabel (‘tamaño de conjunto de entrenamiento’) ejes[1, 1].set_ylabel (‘precisión’) ejes[1, 1].Grid (true) plt.tight_layout () plt.show ()
Implementamos XGBOostManager para capacitar, evaluar e interpretar nuestro clasificador de extremo a extremo. Se ajustamos a un clasificador XGB, calculamos la precisión y las métricas por clase, extraemos importantes de características principales y visualizamos los resultados utilizando una matriz de confusión, un cuadro de importancia, comparación de distribución y una simple vista de curva de aprendizaje. Mira los códigos completos aquí.
Tool(
name=”GenerateData”,
func=lambda x: data_manager.generate_data(),
description=”Generate synthetic dataset for training. No input needed.”
),
Tool(
name=”DataSummary”,
func=lambda x: data_manager.get_data_summary(),
description=”Get summary statistics of the dataset. No input needed.”
),
Tool(
name=”TrainModel”,
func=lambda x: xgb_manager.train_model(
data_manager.X_train, data_manager.y_train
),
description=”Train XGBoost model on the dataset. No input needed.”
),
Tool(
name=”EvaluateModel”,
func=lambda x: xgb_manager.evaluate_model(
data_manager.X_test, data_manager.y_test
),
description=”Evaluate trained model performance. No input needed.”
),
Tool(
name=”FeatureImportance”,
func=lambda x: xgb_manager.get_feature_importance(
data_manager.feature_names, top_n=10
),
description=”Get top 10 most important features. No input needed.”
)
]
Herramientas de retorno
Definimos la función create_ml_agent para integrar tareas de aprendizaje automático en el ecosistema Langchain. Aquí, envolvemos las operaciones clave, la generación de datos, el resumen, la capacitación del modelo, la evaluación y el análisis de características en las herramientas de Langchain, lo que permite a un agente conversacional que realice flujos de trabajo ML de extremo a extremo a través de las instrucciones del lenguaje natural. Mira los códigos completos aquí.
Orquestamos el flujo de trabajo completo con run_tutorial (), donde generamos datos, entrenamos y evaluamos el modelo XGBOOST y las importantes de las características de la superficie. Luego visualizamos los resultados e imprimimos las conclusiones clave, lo que nos permite experimentar interactivamente una tubería de ML conversacional de extremo a extremo.
En conclusión, creamos una tubería ML completamente funcional que combina el marco de agente basado en herramientas de Langchain con la fuerza predictiva del clasificador XGBOOST. Vemos cómo Langchain puede servir como una interfaz de conversación para realizar operaciones de ML complejas, como generación de datos, capacitación de modelos y evaluación, todo de manera lógica y guiada. Este tutorial práctico nos ayuda a apreciar cómo la combinación de orquestación alimentada por LLM con el aprendizaje automático puede simplificar la experimentación, mejorar la interpretabilidad y allanar el camino para flujos de trabajo de ciencia de datos más inteligentes e impulsados por el diálogo.
Mira los códigos completos aquí. No dude en consultar nuestra página de GitHub para obtener tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro subreddit de 100k+ ml y suscribirse a nuestro boletín.
Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.
🙌 Siga a MarkTechPost: agrégenos como una fuente preferida en Google.