Ir para o conteúdo do rodapé
AJUDA DO PYTHON

XGBoost em Python (Como funciona: um guia para desenvolvedores)

XGBoost significa eXtreme Gradient Boosting, um algoritmo de aprendizado de máquina poderoso e preciso. Tem sido aplicado principalmente em análises de regressão, classificação e problemas de ordenação. Envolve características como regulação que ajudam a evitar sobreajuste, paralelismo e processamento de dados faltantes.

IronPDF é uma biblioteca Python para criar, modificar e ler arquivos PDF. Isso facilita a conversão de HTML, imagens ou texto em PDFs, além de permitir a adição de cabeçalhos, rodapés e marcas d'água. Embora esteja principalmente relacionada ao seu uso em Python, vale ressaltar que a ferramenta .NET pode ser implementada nessa linguagem de programação com a ajuda de ferramentas de interoperabilidade como o Python .NET.

A combinação de XGBoost e IronPDF proporciona aplicações mais amplas. Por meio do IronPDF, o resultado da previsão pode ser combinado com a criação de documentos PDF interativos. Essa combinação é especialmente útil para gerar documentos e números corporativos precisos, bem como os resultados obtidos a partir dos modelos preditivos aplicados.

O que é XGBoost em Python?

XGBoost é uma poderosa biblioteca de aprendizado de máquina for Python baseada em aprendizado conjunto, que é altamente eficiente e flexível. XGBoost é uma implementação de um algoritmo de boosting de gradiente desenvolvido por Tianqi Chen que inclui otimizações adicionais. A eficácia foi comprovada em muitos domínios de aplicação com tarefas correspondentes que podem ser resolvidas por este método, como classificação, regressão, tarefas de ranqueamento, etc. O XGBoost possui diversas características únicas: a ausência de valores ausentes não é um problema para ele; Existe a oportunidade de usar as normas L1 e L2 para combater o sobreajuste;

O treinamento é realizado em paralelo, o que acelera significativamente o processo de treinamento. A poda de árvores também é feita em profundidade no XGBoost, o que ajuda a gerenciar a capacidade do modelo. Uma de suas características é a validação cruzada de hiperparâmetros e funções integradas para avaliar o desempenho do modelo. A biblioteca interage bem com outras ferramentas de ciência de dados desenvolvidas em ambiente Python, como NumPy, SciPy e scikit-learn, possibilitando sua incorporação em um ambiente já estabelecido. Ainda assim, devido à sua velocidade, simplicidade e alto desempenho, o XGBoost tornou-se uma ferramenta essencial no arsenal de muitos analistas de dados, especialistas em aprendizado de máquina e aspirantes a cientistas de dados em redes neurais.

Funcionalidades do XGBoost em Python

O XGBoost é famoso por suas diversas funcionalidades que o tornam vantajoso em várias tarefas e algoritmos de aprendizado de máquina, além de facilitar sua implementação. Aqui estão os principais recursos do XGBoost em Python:

Regularização:

Aplica técnicas de regularização L1 e L2 para reduzir o sobreajuste e aumentar o desempenho do modelo.

Processamento paralelo

O modelo pré-treinado utiliza todos os núcleos da CPU durante o treinamento, melhorando assim o desempenho do treinamento de modelos em uma margem significativa.

Lidando com dados faltantes

Um algoritmo que, quando o modelo é treinado, decide automaticamente a melhor maneira de lidar com valores ausentes.

Poda de árvores

Na poda de árvores, a busca em profundidade nas árvores é alcançada usando o parâmetro "max_depth", que reduz o sobreajuste.

Validação cruzada integrada

Inclui métodos de validação cruzada integrados para avaliação de modelos e otimização de hiperparâmetros; como suporta e realiza validação cruzada nativamente, a implementação é menos complicada.

Escalabilidade

É otimizado para escalabilidade; Dessa forma, ele pode analisar big data e lidar adequadamente com dados no espaço de características.

Suporte para vários idiomas

O XGBoost foi inicialmente desenvolvido em Python; No entanto, para ampliar seu alcance, também oferece suporte a R, Julia e Java.

Computação Distribuída

O pacote foi projetado para ser distribuído, o que significa que pode ser executado em vários computadores para processar grandes quantidades de dados.

Funções de Objetivo e Avaliação Personalizadas

Permite aos usuários definir funções objetivas e medidas de desempenho para suas necessidades específicas. Além disso, suporta classificação binária e multiclasse.

Importância da funcionalidade

Isso ajuda a identificar o valor de várias características, pode auxiliar na seleção de características para um determinado conjunto de dados e fornece interpretações de múltiplos modelos.

Consciente da Escassez

Ele apresenta bom desempenho com formatos de dados esparsos, o que é muito útil ao trabalhar com dados que contêm muitos valores NULL ou zeros.

Integração com outras bibliotecas

Ele complementa bibliotecas populares de ciência de dados, como NumPy, SciPy e scikit-learn, que são fáceis de integrar em fluxos de trabalho de ciência de dados.

Criar e configurar o XGBoost em Python

Em Python, existem vários processos envolvidos na criação e configuração de um modelo XGBoost: o processo de coleta e pré-processamento de dados, a criação do modelo, o gerenciamento do modelo e a avaliação do modelo. Abaixo, você encontrará um guia detalhado para começar:

Instale o XGBoost

Primeiro, verifique se o pacote XGBoost está instalado no seu sistema. Você pode instalá-lo em seu computador com o pip:

pip install xgboost
pip install xgboost
SHELL

Importar bibliotecas

import xgboost as xgb
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 xgboost as xgb
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
PYTHON

Preparar os dados

Neste exemplo, vamos usar o conjunto de dados de habitação de Boston:

# Load the Boston housing dataset
boston = load_boston()
# Load data and target values
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()
# Load data and target values
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)
PYTHON

Criar matriz D

O XGBoost utiliza uma estrutura de dados autodefinida chamada DMatrix para treinamento.

# Create DMatrix for training and testing sets
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# Create DMatrix for training and testing sets
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
PYTHON

Definir parâmetros

Configure os parâmetros do modelo. Um exemplo de configuração é o seguinte:

# Set parameters
params = {
    'objective': 'reg:squarederror',  # Objective function for regression
    'max_depth': 4,  # Maximum depth of a tree
    'eta': 0.1,  # Learning rate
    'subsample': 0.8,  # Subsample ratio of the training instances
    'colsample_bytree': 0.8,  # Subsample ratio of columns when constructing each tree
    'seed': 42  # Random seed for reproducibility
}
# Set parameters
params = {
    'objective': 'reg:squarederror',  # Objective function for regression
    'max_depth': 4,  # Maximum depth of a tree
    'eta': 0.1,  # Learning rate
    'subsample': 0.8,  # Subsample ratio of the training instances
    'colsample_bytree': 0.8,  # Subsample ratio of columns when constructing each tree
    'seed': 42  # Random seed for reproducibility
}
PYTHON

Treinar o modelo

Utilize o método train para treinar um modelo XGBoost.

# Number of boosting rounds
num_round = 100
# Train the model
bst = xgb.train(params, dtrain, num_round)
# Number of boosting rounds
num_round = 100
# Train the model
bst = xgb.train(params, dtrain, num_round)
PYTHON

Faça previsões

Agora, utilize esse modelo treinado e faça previsões no conjunto de teste.

# Make predictions
preds = bst.predict(dtest)
# Make predictions
preds = bst.predict(dtest)
PYTHON

Avalie o modelo

Verifique o desempenho do modelo de aprendizado de máquina usando uma métrica apropriada — por exemplo, o erro quadrático médio (RMSE):

# 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}")
PYTHON

Salvar e carregar o modelo

Você pode salvar o modelo treinado em um arquivo e carregá-lo posteriormente, se necessário:

# Save the model
bst.save_model('xgboost_model.json')
# Load the model 
bst_loaded = xgb.Booster()
bst_loaded.load_model('xgboost_model.json')
# Save the model
bst.save_model('xgboost_model.json')
# Load the model 
bst_loaded = xgb.Booster()
bst_loaded.load_model('xgboost_model.json')
PYTHON

Começando

Abaixo está a instalação básica de ambas as bibliotecas, com um exemplo de como começar a usar o XGBoost para análise de dados e o IronPDF para gerar relatórios em PDF.

O que é o IronPDF?

Utilize o poderoso pacote Python IronPDF para gerar, manipular e ler PDFs. Isso permite que os programadores realizem diversas operações de programação em PDFs, como trabalhar com PDFs preexistentes e converter HTML em arquivos PDF. O IronPDF é uma solução eficiente para aplicações que exigem geração e processamento dinâmico de PDFs, pois oferece uma maneira adaptável e amigável de gerar documentos PDF de alta qualidade.

Conversão de HTML para PDF

O IronPDF pode criar documentos PDF a partir de qualquer conteúdo HTML, seja ele novo ou existente. Permite a criação de publicações em PDF visualmente atraentes e artísticas a partir de conteúdo da web, aproveitando todo o potencial do HTML5, CSS3 e JavaScript modernos em suas diversas formas.

Criar/Editar PDFs

Ele permite adicionar texto, imagens, tabelas e outros conteúdos em novos documentos PDF gerados programaticamente. Utilizando o IronPDF, documentos PDF existentes podem ser abertos e editados para modificações adicionais. Em um PDF, você pode editar/adicionar conteúdo e excluir conteúdo específico no documento conforme necessário.

Layout e estilo complexos

Ele usa CSS para estilizar o conteúdo em PDFs. Ele suporta layouts complexos, fontes, cores e todos esses componentes de design. Além disso, as formas de renderizar material HTML que podem ser usadas com JavaScript permitem a criação de conteúdo dinâmico em PDFs.

Instale o IronPDF

O IronPDF pode ser instalado via pip. Use o seguinte comando para instalá-lo:

pip install ironpdf

Combine XGBoost Python com IronPDF

Importe todas as bibliotecas relevantes e carregue seu conjunto de dados. No nosso caso, usaremos o conjunto de dados sobre habitação de Boston:

import xgboost as xgb
import numpy as np
from ironpdf import *     
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 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 DMatrix
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)

# Set parameters
params = {
    'objective': 'reg:squarederror',
    'max_depth': 4,
    'eta': 0.1,
    'subsample': 0.8,
    'colsample_bytree': 0.8,
    'seed': 42
}

# Train model
num_round = 100
bst = xgb.train(params, dtrain, num_round)

# Make predictions
preds = bst.predict(dtest)
mse = mean_squared_error(y_test, preds)

# Create a PDF document using IronPDF
iron_pdf = ChromePdfRenderer()

# Create HTML content
html_content = f"""
<html>
<head>
    <title>XGBoost Model Report</title>
</head>
<body>
    <h1>XGBoost 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("XGBoost_Report.pdf")
print("PDF document generated successfully.")
import xgboost as xgb
import numpy as np
from ironpdf import *     
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 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 DMatrix
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)

# Set parameters
params = {
    'objective': 'reg:squarederror',
    'max_depth': 4,
    'eta': 0.1,
    'subsample': 0.8,
    'colsample_bytree': 0.8,
    'seed': 42
}

# Train model
num_round = 100
bst = xgb.train(params, dtrain, num_round)

# Make predictions
preds = bst.predict(dtest)
mse = mean_squared_error(y_test, preds)

# Create a PDF document using IronPDF
iron_pdf = ChromePdfRenderer()

# Create HTML content
html_content = f"""
<html>
<head>
    <title>XGBoost Model Report</title>
</head>
<body>
    <h1>XGBoost 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("XGBoost_Report.pdf")
print("PDF document generated successfully.")
PYTHON

Agora, você criará objetos da classe DMatrix para manipular seus dados de forma eficiente e, em seguida, configurará os parâmetros do modelo referentes à função objetivo e aos hiperparâmetros. Após treinar o modelo XGBoost, faça a previsão no conjunto de teste; Você pode usar o Erro Quadrático Médio ou métricas semelhantes para avaliar o desempenho. Em seguida, use o IronPDF para criar um PDF com todos os resultados.

Você cria uma representação em HTML com todos os seus resultados; Em seguida, você usará a classe ChromePdfRenderer do IronPDF para transformar esse conteúdo HTML em um documento PDF . Por fim, você pode salvar este relatório em PDF gerado no local desejado. Essa integração permitirá automatizar a criação de relatórios profissionais muito elaborados, nos quais se sintetizam as informações obtidas a partir de modelos de aprendizado de máquina.

Conclusão

Em resumo, o XGBoost e o IronPDF são integrados para análise de dados avançada e geração de relatórios profissionais. A eficiência e a escalabilidade do XGBoost oferecem a melhor solução para lidar com tarefas complexas de aprendizado de máquina em tempo real, com recursos preditivos robustos e excelentes ferramentas para otimização de modelos. Você pode integrar esses elementos perfeitamente em Python com o IronPDF, transformando insights valiosos obtidos com o XGBoost em relatórios em PDF altamente detalhados.

Dessa forma, essas integrações permitirão consideravelmente a produção de documentos atraentes e ricos em informações sobre os resultados, tornando-os comunicáveis ​​às partes interessadas ou adequados para análises posteriores. Análises de negócios, pesquisas acadêmicas ou qualquer projeto orientado por dados se beneficiariam muito de uma sinergia integrada entre o XGBoost e o IronPDF para processar dados com eficiência e comunicar as descobertas com facilidade.

Integre o IronPDF e outros produtos da Iron Software para garantir que seus clientes e usuários finais obtenham soluções de software premium e repletas de recursos. Isso também ajudará a otimizar seus projetos e processos.

Documentação completa, comunidade ativa e atualizações frequentes — tudo isso se encaixa perfeitamente na funcionalidade do IronPDF . Iron Software é o nome de um parceiro confiável para projetos modernos de desenvolvimento de software. O IronPDF está disponível para teste gratuito para todos os desenvolvedores. Eles podem experimentar todas as suas funcionalidades. Estão disponíveis taxas de licenciamento de $799 para que você obtenha o máximo valor deste produto.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim