AYUDA DE PYTHON

lightgbm Python (Cómo funciona: una guía para desarrolladores)

Publicado en 5 de marzo, 2025
Compartir:

Introducción

LightGBM significa Light Gradient Boosting Machine. Entre los frameworks de gradient boosting y los algoritmos de gradient boosting, LightGBM se destaca como un framework de gradient boosting eficiente y rápido desarrollado por Microsoft para el procesamiento de datos a gran escala, con algoritmos avanzados que garantizan alta precisión y rendimiento. Sus fortalezas son su rápida velocidad de entrenamiento, su fácil escalabilidad a grandes conjuntos de datos y su manejo robusto de tareas complejas.dimensional datos. LightGBM ha tenido un rendimiento muy superior en diversas tareas de aprendizaje automático, como regresión, clasificación y ranking, al proporcionar una mejor generalización a partir de su crecimiento de árbol en función de las hojas.

Se ocupa automáticamente de los datos faltantes, lo cual resulta útil con IronPDF, una biblioteca de Python en la que se pueden crear, editar y leer documentos PDF, ofreciendo varias formas de generar informes PDF profesionales directamente a partir de los resultados del análisis de datos. IronPDF es una biblioteca que ayuda a los desarrolladores a crear documentos PDF a partir de HTML, imágenes o incluso texto sin formato. Agrega funciones como encabezados, pies de página y marcas de agua. Utilizando Python .NET para cerrar la brecha, con LightGBM impulsando el análisis, y luego usando IronPDF para convertir ideas en informes PDF altamente detallados y ricamente formateados que presentan los hallazgos, los científicos de datos pueden hacer mucho. Esta integración creará una solución completa para proyectos basados en datos con un potente modelado predictivo e informes exhaustivos.

¿Qué es lightgbm en Python?

LightGBM es un marco de aumento de gradiente de código abierto desarrollado en Microsoft para un alto rendimiento. Tiene como objetivo ser eficiente y escalable, procesando millones de instancias con muchas características. El algoritmo LightGBM ha sido diseñado para implementar técnicas avanzadas que mejoran aún más la velocidad y el rendimiento del GBM en tareas como el aprendizaje de árboles de decisión basado en histogramas y el crecimiento de árboles hoja a hoja. Después de eso, puede lograr tiempos de entrenamiento más rápidos y un menor uso de memoria en comparación con los métodos tradicionales de gradient boosting.

Imagen rota Añadir desde Pixabay, seleccionar de tus archivos o arrastrar y soltar una imagen aquí.

Admite muchas tareas de aprendizaje automático, como la regresión, la clasificación y la clasificación, y apoya firmemente el manejo de datos faltantes. LightGBM, en general, es muy flexible y expone muchos hiperparámetros para ajuste fino y personalización para perfeccionar y mejorar el rendimiento del modelo. Puede cooperar fácilmente con Python y es bastante famoso entre los científicos de datos y los practicantes de aprendizaje automático para construir tareas predictivas rápidas y precisas.

Características de lightgbm python

LightGBM significa Light Gradient Boosting Machine en Python. Es conocido por su efectividad, escala y rendimiento en datos extensos. Enumeradas a continuación se encuentran algunas de sus características clave más atractivas:

Alta Eficiencia: Los algoritmos basados en histogramas para el entrenamiento ofrecen preferentemente un entrenamiento más rápido y un bajo consumo de memoria. Es posible manejar eficientemente grandes conjuntos con millones de puntos de datos y características.

Escalabilidad: Admite el aprendizaje distribuido y, por lo tanto, es capaz de escalar en más de una máquina. LightGBM soporta procesamiento paralelo optimizado, lo que permite entrenar más rápido utilizando múltiples núcleos de CPU.

Crecimiento del Árbol Hoja por Hoja: Crezca los árboles hoja por hoja(mejor-primero), lo que puede llevar a árboles más profundos y mejor precisión para algunas tareas que el crecimiento nivelado.

Soporte para diversas tareas: Proporciona una extensa colección de funciones objetivo y métricas de evaluación. Además, gestiona la regresión interna de Handles, la clasificación, el ranking y otras tareas de aprendizaje.

Características integradas para el manejo de datos faltantes: Esta función maneja automáticamente los valores faltantes, ahorrándote así la molestia de preprocesar la regularización y los parámetros de regularización.

L1(Lazo)y L2(Ridge)La regularización previene el sobreajuste y permite que los modelos se generalicen con mayor precisión.

Soporte de Características Categóricas: Maneja directamente las características categóricas, por lo que no es necesario codificarlas mediante one-hot, reduciendo la dimensionalidad del conjunto de datos.

Detención temprana: Obliga a detenerse tempranamente en función del rendimiento de validación para evitar el sobreajuste y reducir el tiempo de entrenamiento.

Ajuste de hiperparámetros: Tiene un espacio bastante amplio para el ajuste de hiperparámetros, como la tasa de aprendizaje, la profundidad máxima y el número de hojas que se pueden ajustar para mejorar el rendimiento del modelo.

Importancia de las características: Proporciona herramientas para medir la importancia de cada característica en la selección de características y la interpretabilidad del modelo.

Flexible y personalizable: Esto permite el uso de funciones objetivo y métricas de evaluación personalizadas, lo que otorga al usuario flexibilidad en el diseño del modelo.

Integración Nativa y Perfecta con el Ecosistema de Python: Se integra perfectamente con otras bibliotecas populares en ciencia de datos, como NumPy, pandas y sci-kit-learn, y puede integrarse fácilmente en flujos de trabajo existentes.

Crea y configura lightgbm en Python

Configurar y configurar un modelo LightGBM en Python incluye varios pasos: preparación de datos, construcción del modelo, entrenamiento y evaluación. Los pasos son los siguientes:

Instalar LightGBM

Primero, necesitas asegurarte de que LightGBM esté instalado. A través de pip, puedes instalarlo con la línea de comandos:

pip install lightgbm
pip install lightgbm
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install lightgbm
$vbLabelText   $csharpLabel

Bibliotecas de importación

Importa todas las bibliotecas esenciales, incluidas LightGBM y otras bibliotecas utilizadas para el procesamiento y evaluación de datos.

import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import TryCast(lightgbm, lgb) import TryCast(numpy, np) from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error
$vbLabelText   $csharpLabel

Preparar los datos

Primero, vamos al ejemplo usando el conjunto de datos de viviendas de Boston:

# Load the Boston housing dataset
boston = load_boston()
X = boston.data
y = boston.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Load the Boston housing dataset
boston = load_boston()
X = boston.data
y = boston.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
#Load the Boston housing dataset
#Split the dataset into training and testing sets
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'boston = load_boston() X = boston.data y = boston.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
$vbLabelText   $csharpLabel

Crear un conjunto de datos para LightGBM

LightGBM tiene una estructura de datos autodefinida llamada Dataset para el entrenamiento.

# Create Dataset for training and testing sets
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Create Dataset for training and testing sets
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
#Create Dataset for training and testing sets
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
$vbLabelText   $csharpLabel

Establecer parámetros

Ahora, configure los parámetros del modelo. El siguiente es un ejemplo de configuración:

# Set parameters
params = {
    'objective': 'regression',  # Objective function
    'metric': 'mse',  # Evaluation metric
    'boosting_type': 'gbdt',  # Type of boosting (Gradient Boosting Decision Tree)
    'num_leaves': 31,  # Number of leaves in one tree
    'learning_rate': 0.05,  # Learning rate
    'feature_fraction': 0.9,  # Fraction of features to be used for training
    'bagging_fraction': 0.8,  # Fraction of data to be used for each iteration
    'bagging_freq': 5,  # Frequency for bagging
    'verbose': -1  # Suppress warnings
}
# Set parameters
params = {
    'objective': 'regression',  # Objective function
    'metric': 'mse',  # Evaluation metric
    'boosting_type': 'gbdt',  # Type of boosting (Gradient Boosting Decision Tree)
    'num_leaves': 31,  # Number of leaves in one tree
    'learning_rate': 0.05,  # Learning rate
    'feature_fraction': 0.9,  # Fraction of features to be used for training
    'bagging_fraction': 0.8,  # Fraction of data to be used for each iteration
    'bagging_freq': 5,  # Frequency for bagging
    'verbose': -1  # Suppress warnings
}
#Set parameters
'INSTANT VB TODO TASK: The following line could not be converted:
params = {
$vbLabelText   $csharpLabel

Entrenar el modelo

A continuación, entrena el modelo LightGBM utilizando el método de entrenamiento de la siguiente manera:

# Train the model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
# Train the model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
#Train the model
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'num_round = 100 bst = lgb.train(params, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
$vbLabelText   $csharpLabel

Hacer predicciones

Ahora, utiliza el modelo entrenado y realiza predicciones en el conjunto de prueba.

# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
#Make predictions
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'preds = bst.predict(X_test, num_iteration=bst.best_iteration)
$vbLabelText   $csharpLabel

Evaluar el modelo

Lightgbm combina múltiples aprendices débiles para crear un modelo robusto. Calificar un modelo con una métrica adecuada para el problema en cuestión, como el error cuadrático medio:

# Calculate mean squared error
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Calculate mean squared error
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
#Calculate mean squared error
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'mse = mean_squared_error(y_test, preds) print(f"Mean Squared Error: {mse}")
$vbLabelText   $csharpLabel

lightgbm Python(Cómo funciona: una guía para desarrolladores): Figura 2 - ejemplo de salida de consola

Guardar y cargar el modelo

Puedes guardar el modelo entrenado en un archivo y cargarlo nuevamente en caso de que necesite reentrenarse.

# Save lightgbm models
bst.save_model('lightgbm_model.txt')
# Load the model
bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
# Save lightgbm models
bst.save_model('lightgbm_model.txt')
# Load the model
bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
#Save lightgbm models
#Load the model
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'bst.save_model('lightgbm_model.txt') bst_loaded = lgb.Booster(model_file='lightgbm_model.txt')
$vbLabelText   $csharpLabel

lightgbm Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 3 - Datos de salida de ejemplo del modelo anterior

Primeros pasos

Primero, debes configurar ambas bibliotecas, realizar análisis de datos con LightGBM, y generar un informe PDF usando IronPDF. Aquí tienes una guía detallada sobre cómo integrar estas herramientas en tu aplicación.

¿Qué es IronPDF?

Utiliza el poderoso paquete IronPDF for Python para habilitar la creación, edición y visualización de PDFs. Esto proporciona a los programadores una forma de manipular PDFs preexistentes y convertir archivos HTML en archivos PDF, entre otras acciones basadas en programación sobre PDFs. IronPDF aporta flexibilidad y facilidad de uso al generar informes de calidad en formato PDF. Se vuelve eficiente para aplicaciones que requieren la creación y procesamiento dinámico de PDFs.

lightgbm Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 4 - IronPDF: La Biblioteca PDF de Python

Conversión de HTML a PDF

Puedes utilizar IronPDF para crear documentos PDF a partir de cualquier información HTML, sin importar cuán antigua sea. Lo siguiente hace posible convertir contenido web que utiliza plenamente el poder del HTML5, CSS3 y JavaScript contemporáneos en impresionantes publicaciones PDF artísticas.

Construir y Modificar PDFs

Puede crear nuevos documentos PDF generados por programación con texto, imágenes, tablas y otros materiales. IronPDF también puede abrir y editar documentos PDF ya existentes para una mayor personalización. Puedes añadir, cambiar o eliminar cualquier contenido incluido en un documento PDF según tus necesidades.

diseño intrincado y estilo

Se logra mediante el estilo del contenido en los PDF a través de CSS; por lo tanto, admitiría diseños complejos con diferentes fuentes, colores y otros estilos de diseño a través de un amplio espectro. No solo eso, sino que con la ayuda de JavaScript, los PDF también podrán soportar contenido dinámico, lo que hace posible renderizar contenido HTML.

Instalar IronPDF

IronPDF se puede instalar usando Pip. El siguiente es el comando para instalar:

pip install ironpdf
pip install ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install ironpdf
$vbLabelText   $csharpLabel

Combina lightgbm con IronPDF

Primero, importa las bibliotecas necesarias, luego carga tu información. Para este ejemplo, trabajaremos con el conjunto de datos de viviendas de Boston.

import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Load data
boston = load_boston()
X = boston.data
y = boston.target
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create Dataset
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Set parameters
params = {
    'objective': 'regression',
    'metric': 'mse',
    'boosting_type': 'gbdt',
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': -1
}
# Train model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data])
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Evaluate model
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Create a PDF document
iron_pdf =  ChromePdfRenderer()
# Create HTML content
# Create HTML content
html_content = f"""
<html>
<head>
    <title>LightGBM Model Report</title>
</head>
<body>
    <h1>LightGBM Model Report</h1>
    <p>Mean Squared Error: {mse}</p>
    <h2>Predictions</h2>
    <ul>
        {''.join([f'<li>{pred}</li>' for pred in preds])}
    </ul>
</body>
</html>
"""
pdf=iron_pdf.RenderHtmlAsPdf(html_content)
# Save the PDF document
pdf.SaveAs("LightGBM_Report.pdf")
print("PDF document generated successfully.")
import lightgbm as lgb
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Load data
boston = load_boston()
X = boston.data
y = boston.target
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create Dataset
train_data = lgb.Dataset(X_train, label=y_train)
test_data = lgb.Dataset(X_test, label=y_test, reference=train_data)
# Set parameters
params = {
    'objective': 'regression',
    'metric': 'mse',
    'boosting_type': 'gbdt',
    'num_leaves': 31,
    'learning_rate': 0.05,
    'feature_fraction': 0.9,
    'bagging_fraction': 0.8,
    'bagging_freq': 5,
    'verbose': -1
}
# Train model
num_round = 100
bst = lgb.train(params, train_data, num_round, valid_sets=[test_data])
# Make predictions
preds = bst.predict(X_test, num_iteration=bst.best_iteration)
# Evaluate model
mse = mean_squared_error(y_test, preds)
print(f"Mean Squared Error: {mse}")
# Create a PDF document
iron_pdf =  ChromePdfRenderer()
# Create HTML content
# Create HTML content
html_content = f"""
<html>
<head>
    <title>LightGBM Model Report</title>
</head>
<body>
    <h1>LightGBM Model Report</h1>
    <p>Mean Squared Error: {mse}</p>
    <h2>Predictions</h2>
    <ul>
        {''.join([f'<li>{pred}</li>' for pred in preds])}
    </ul>
</body>
</html>
"""
pdf=iron_pdf.RenderHtmlAsPdf(html_content)
# Save the PDF document
pdf.SaveAs("LightGBM_Report.pdf")
print("PDF document generated successfully.")
import TryCast(lightgbm, lgb) import TryCast(numpy, np) _ 'ignore') License.LicenseKey = "";
	From sklearn.datasets import load_boston
	From sklearn.model_selection import train_test_split
	From sklearn.metrics import mean_squared_error
	From ironpdf import * import warnings warnings.filterwarnings(
#Load data
#Split data
#Create Dataset
#Set parameters
#Train model
#Make predictions
#Evaluate model
#Create a PDF document
#Create HTML content
#Create HTML content
#Save the PDF document
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'boston = load_boston() X = boston.data y = boston.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test, reference=train_data) params = { 'objective': 'regression', 'metric': 'mse', 'boosting_type': 'gbdt', 'num_leaves': 31, 'learning_rate': 0.05, 'feature_fraction': 0.9, 'bagging_fraction': 0.8, 'bagging_freq': 5, 'verbose': -1 } num_round = 100 bst = lgb.train(params, train_data, num_round, valid_sets=[test_data]) preds = bst.predict(X_test, num_iteration=bst.best_iteration) mse = mean_squared_error(y_test, preds) print(f"Mean Squared Error: {mse}") iron_pdf = ChromePdfRenderer() html_content = f"<html>
'<head>
'    <title>LightGBM Model Report</title>
'</head>
'<body>
'    <h1>LightGBM Model Report</h1>
'    <p>Mean Squared Error: {mse}</p>
'    <h2>Predictions</h2>
'    <ul>
'        {''.join([f'<li>{pred}</li>' for pred in preds])}
'    </ul>
'</body>
'</html>" pdf=iron_pdf.RenderHtmlAsPdf(html_content) pdf.SaveAs("LightGBM_Report.pdf") print("PDF document generated successfully.")
$vbLabelText   $csharpLabel

La integración de LightGBM e IronPDF implica primero analizar usando LightGBM, seguido del uso de la biblioteca de Python como una aplicación de IronPDF en la generación de informes PDF. Primero está la instalación de LightGBM, la carga del conjunto de datos, su preprocesamiento, la división en conjuntos de entrenamiento y prueba, y la creación de objetos DMatrix que ayudan a manejar los datos de manera eficiente. Luego se establecen los parámetros del modelo LightGBM, seguidos por la función objetivo y otros diversos parámetros. El modelo está entrenado, y con ese modelo, se deben predecir las predicciones del conjunto de prueba y medirlas contra métricas como el Error Cuadrático Medio.

lightgbm Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 5 - Ejemplo de salida de consola

Una biblioteca de Python llamada IronPDF genera PDFs. El HTML de salida contiene los resultados del análisis, modelo y predicción de rendimiento. Este contenido HTML se convierte en un documento PDF a través de la claseRenderHtmlAsPdfde la biblioteca IronPDF y guardado en la ubicación deseada. Esto permite un flujo de trabajo fluido desde el desarrollo y la evaluación de modelos de aprendizaje automático hasta la generación de informes PDF detallados que facilitan la comunicación eficiente de ideas basadas en datos.

lightgbm Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 6 - Informe de ejemplo que utiliza el modelo LightGBM para producir datos y IronPDF para presentarlos

Conclusión

Los desarrolladores pueden combinar LightGBM e IronPDF en Python para realizar análisis de datos complejos y generar informes profesionales. Debido a sus propiedades, LightGBM funcionará bien en conjuntos de datos grandes con problemas complejos de aprendizaje automático. Los resultados de LightGBM se pueden utilizar con Python .NET para generar informes PDF de calidad profesional usando IronPDF.

Esta interfaz facilita compartir conocimientos con las partes interesadas al crear un flujo de trabajo desde el procesamiento de datos y la validación de modelos hasta la documentación y presentación. LightGBM e IronPDF se combinan para allanar el camino hacia una capacidad más robusta para realizar estudios en profundidad con una presentación coherente de los hallazgos al público, ya sea un proyecto basado en datos, análisis de negocios o incluso investigación académica.

IntegrarIronPDF yIronSoftwareproductos para ofrecer soluciones de software de alta gama y ricas en características a sus clientes y sus usuarios. Esto también le ayudará a optimizar el trabajo y los procesos del proyecto.

Además de sus funcionalidades, IronPDF cuenta con una documentación exhaustiva, una comunidad activa y actualizaciones regulares. Con todo eso, Iron Software funciona como un socio confiable para proyectos de desarrollo de software modernos. Los desarrolladores pueden probar todas las capacidades de IronPDF con unprueba gratuita. Posteriormente, las tarifas de la licencia son de $749 en adelante.

Regan Pun

Regan Pun

Ingeniero de software

 LinkedIn

Regan se licenció en Ingeniería Electrónica por la Universidad de Reading. Antes de incorporarse a Iron Software, sus anteriores puestos de trabajo le obligaban a centrarse en tareas concretas; lo que más le gusta de Iron Software es la variedad de tareas que puede realizar, ya sea añadiendo valor a las ventas, el soporte técnico, el desarrollo de productos o el marketing. Le gusta entender cómo utilizan los desarrolladores la biblioteca de Iron Software y utilizar ese conocimiento para mejorar continuamente la documentación y desarrollar los productos.
< ANTERIOR
Botella Python ((Cómo funciona: una guía para desarrolladores))
SIGUIENTE >
PyJWT Python (Cómo funciona: una guía para desarrolladores)